Fortran: 06.02.01/P03
This is Fortran source code, based on the
abstract design
for this program. You may return to the
documentation
for the module containing this program, or to the
entire hierarchical table of
topics covered by the PVT.
C *********************************************************
C * *
C * TEST NUMBER: 06.02.01/03 *
C * TEST TITLE : Behavior of 2D mapping *
C * *
C * PHIGS Validation Tests, produced by NIST *
C * *
C *********************************************************
COMMON /GLOBNU/ CTLHND, ERRSIG, ERRFIL, IERRCT, UNERR,
1 TESTCT, IFLERR, PASSSW, ERRSW, MAXLIN,
2 CONID, MEMUN, WKID, WTYPE, GLBLUN, INDLUN,
3 DUMINT, DUMRL
INTEGER CTLHND, ERRSIG, ERRFIL, IERRCT, UNERR,
1 TESTCT, IFLERR, PASSSW, ERRSW, MAXLIN,
2 CONID, MEMUN, WKID, WTYPE, GLBLUN, INDLUN,
3 DUMINT(20), ERRIND
REAL DUMRL(20)
COMMON /GLOBCH/ PIDENT, GLBERR, TSTMSG, FUNCID,
1 DUMCH
CHARACTER PIDENT*40, GLBERR*60, TSTMSG*900, FUNCID*80,
1 DUMCH(20)*20
C Declare program-specific variables
REAL VWWNLM(4), PJVPLM(4), ACT3X3(3,3), EXP3X3(3,3)
LOGICAL TRNSEQ
CHARACTER MSG*300
CALL INITGL ('06.02.01/03')
C open PHIGS
CALL XPOPPH (ERRFIL, MEMUN)
CALL SETMSG ('1 2 11 12 13', '<Evaluate view mapping matrix> ' //
1 'should return a correct representation for the ' //
2 'transformation from the view window to the 2D ' //
3 'projection viewport.')
C Set 2D mapping parameters:
VWWNLM(1) = -23.32
VWWNLM(2) = 3.56E4
VWWNLM(3) = 2.29
VWWNLM(4) = 2.295
PJVPLM(1) = 0.298
PJVPLM(2) = 0.736
PJVPLM(3) = 0.22
PJVPLM(4) = 0.89
C <Evaluate view mapping matrix> returns act3x3 = actual array
CALL PEVMM (VWWNLM, PJVPLM, ERRIND, ACT3X3)
IF (ERRIND .NE. 0) THEN
CALL FAIL
WRITE (MSG, '(A,I5)')
1 'Non-zero error code from PEVMM:', ERRIND
CALL INMSG (MSG)
GOTO 666
ENDIF
C Compute exp3x3 = expected array
CALL EEVMM (VWWNLM, PJVPLM, EXP3X3)
C pass/fail depending on (act3x3 represents same transformation as exp3x3)
CALL IFPF (TRNSEQ (3, ACT3X3, EXP3X3))
666 CONTINUE
CALL ENDIT
END