Fortran: 02.01.01/P10
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: 02.01.01/10 *
C * TEST TITLE : Multiple structure creation *
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
INTEGER IDST
PARAMETER (IDST = 10)
C PHIGS parameter types
INTEGER NSTID, STRID, IDUM1, STARR(IDST), ACTUAL(IDST), NIDST, I
REAL RDUM1
LOGICAL SETEQ
CALL INITGL ('02.01.01/10')
C open PHIGS
CALL XPOPPH (ERRFIL, MEMUN)
C open workstation
CALL POPWK (WKID, CONID, WTYPE)
C creation of multiple structures
RDUM1 = 0.02
STRID = 1
DO 100 NIDST = 1, 5
STARR(NIDST) = STRID
STRID = STRID + 3
100 CONTINUE
CALL PEMST (STARR(1))
CALL PCSTID (100, STARR(2))
CALL PPOST (WKID, STARR(3), RDUM1)
CALL POPST (STARR(4))
CALL PEXST (STARR(5))
CALL SETMSG ('9 10', 'The CSS should be able to hold ' //
1 'multiple structures.')
C nstid = number of structure identifiers
CALL PQSID (0, ERRIND, NSTID, IDUM1)
CALL CHKINQ ('pqsid', ERRIND)
IF (NSTID .EQ. 5) THEN
DO 200 I = 1, 5
CALL PQSID (I, ERRIND, IDUM1, ACTUAL(I))
CALL CHKINQ ('pqsid', ERRIND)
200 CONTINUE
CALL IFPF (SETEQ (5, ACTUAL, STARR))
ELSE
CALL FAIL
ENDIF
CALL ENDIT
END