Fortran: 02.01.02.01/P04
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.02.01/04 *
C * TEST TITLE : Deletion of multiple structures *
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 PHIGS parameter types
INTEGER DELSTR
LOGICAL CSSEQ
CHARACTER MSG*300
CALL INITGL ('02.01.02.01/04')
C open PHIGS
CALL XPOPPH (ERRFIL, MEMUN)
C creation of structures
CALL POPST (100)
CALL PEXST (103)
CALL PEXST (104)
CALL PCLST
CALL POPST (102)
CALL PEXST (106)
CALL PEXST (109)
CALL PCLST
CALL POPST (103)
CALL PEXST (105)
CALL PEXST (105)
CALL PCLST
CALL POPST (104)
CALL PEXST (106)
CALL PCLST
CALL POPST (106)
CALL PEXST (107)
CALL PEXST (108)
CALL PCLST
CALL POPST (109)
CALL PEXST (108)
CALL PEXST (110)
CALL PCLST
CALL SETMSG ('1 2', 'Changes to the CSS should be ' //
1 'reflected when deleting more ' //
2 'than one structure.')
DELSTR = 103
CALL PDST (DELSTR)
IF (.NOT. CSSEQ ('100,1, 104,1, 106,1, 107,0/ ' //
1 '100,1, 104,1, 106,2, 108,0/ ' //
2 '102,1, 106,1, 107,0/ ' //
3 '102,1, 106,2, 108,0/ ' //
4 '102,2, 109,1, 108,0/ ' //
5 '102,2, 109,2, 110,0/ ' //
6 '105,0/ ')) THEN
GOTO 555
ENDIF
DELSTR = 106
CALL PDST (DELSTR)
IF (.NOT. CSSEQ ('102,1, 109,1, 108,0/ ' //
1 '102,1, 109,2, 110,0/ ' //
2 '100,1, 104,0/ ' //
3 '107,0/ ' //
4 '105,0/ ')) THEN
GOTO 555
ENDIF
DELSTR = 102
CALL PDST (DELSTR)
IF (.NOT. CSSEQ ('109,1, 108,0/ ' //
1 '109,2, 110,0/ ' //
2 '100,1, 104,0/ ' //
3 '107,0/ ' //
4 '105,0/ ')) THEN
GOTO 555
ENDIF
DELSTR = 110
CALL PDST (DELSTR)
IF (.NOT. CSSEQ ('109,1, 108,0/ '//
1 '100,1, 104,0/ '//
2 '107,0/ ' //
3 '105,0/ ')) THEN
GOTO 555
ELSE
CALL PASS
GOTO 666
ENDIF
C fail test
555 CONTINUE
CALL FAIL
WRITE (MSG, '(A, I3)')
1 'Failure occurred when deleting structure ', DELSTR
CALL INMSG (MSG)
666 CONTINUE
CALL ENDIT
END