C C COMMENT SECTION. C C FM019 C C THIS ROUTINE CONTINUES TESTS OF THE FORTRAN LOGICAL IF STATE C BY TESTING VARIOUS FORMS OF RELATIONAL EXPRESSIONS WITH ARITHMETIC C EXPRESSIONS . POSITIVE AND NEGATIVE SIGNS ARE USED IN CONJUNCTION C WITH PARENTHESES. COMBINATIONS OF LOGICAL .AND. .OR. C .NOT. ARE USED TO TEST THE MORE COMPLEX EXPRESSIONS. C C REFERENCES C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, C X3.9-1978 C C SECTION 4.7.1, LOGICAL CONSTANT C SECTION 6, EXPRESSIONS C SECTION 11.5, LOGICAL IF STATEMENT C LOGICAL LCTNT1, LCTNT2 C C ********************************************************** C C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT C OF EXECUTING THESE TESTS. C C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. C C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - C C DEPARTMENT OF THE NAVY C FEDERAL COBOL COMPILER TESTING SERVICE C WASHINGTON, D.C. 20376 C C ********************************************************** C C C C INITIALIZATION SECTION C C INITIALIZE CONSTANTS C ************** C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. I01 = 5 C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. I02 = 6 C SYSTEM ENVIRONMENT SECTION C CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 C (UNIT NUMBER FOR CARD READER). CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. C CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 C (UNIT NUMBER FOR PRINTER). CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. C IVPASS=0 IVFAIL=0 IVDELE=0 ICZERO=0 C C WRITE PAGE HEADERS WRITE (I02,90000) WRITE (I02,90001) WRITE (I02,90002) WRITE (I02, 90002) WRITE (I02,90003) WRITE (I02,90002) WRITE (I02,90004) WRITE (I02,90002) WRITE (I02,90011) WRITE (I02,90002) WRITE (I02,90002) WRITE (I02,90005) WRITE (I02,90006) WRITE (I02,90002) IVTNUM = 530 C C **** TEST 530 **** C TEST 530 - TEST OF POSITIVELY SIGNED TERM +(IC) (RO) -(IC) C .LT. FALSE PATH C IF (ICZERO) 35300, 5300, 35300 5300 CONTINUE IVON01 = 1 IF ( +3 .LT. -3) IVON01 = 0 GO TO 45300 35300 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45300, 5311, 45300 45300 IF ( IVON01 - 1 ) 25300, 15300, 25300 15300 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5311 25300 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5311 CONTINUE IVTNUM = 531 C C **** TEST 531 **** C TEST 531 - TEST OF SIGNED ZERO .LT. FALSE PATH C C IF (ICZERO) 35310, 5310, 35310 5310 CONTINUE IVON01 = 1 IF ( +0 .LT. -0 ) IVON01 = 0 GO TO 45310 35310 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45310, 5321, 45310 45310 IF ( IVON01 - 1 ) 25310, 15310, 25310 15310 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5321 25310 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5321 CONTINUE IVTNUM = 532 C C **** TEST 532 **** C TEST 532 - TEST OF SIGNED ZERO .LE. TRUE PATH C C IF (ICZERO) 35320, 5320, 35320 5320 CONTINUE IVON01 = 0 IF ( +0 .LE. -0 ) IVON01 = 1 GO TO 45320 35320 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45320, 5331, 45320 45320 IF ( IVON01 - 1 ) 25320, 15320, 25320 15320 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5331 25320 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5331 CONTINUE IVTNUM = 533 C C **** TEST 533 **** C TEST 533 - TEST OF SIGNED ZERO .EQ. TRUE PATH C C IF (ICZERO) 35330, 5330, 35330 5330 CONTINUE IVON01 = 0 IF ( +0 .EQ. -0 ) IVON01 = 1 GO TO 45330 35330 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45330, 5341, 45330 45330 IF ( IVON01 - 1 ) 25330, 15330, 25330 15330 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5341 25330 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5341 CONTINUE IVTNUM = 534 C C **** TEST 534 **** C TEST 534 - TEST OF SIGNED ZERO .NE. FALSE PATH C C IF (ICZERO) 35340, 5340, 35340 5340 CONTINUE IVON01 = 1 IF ( +0 .NE. -0 ) IVON01 = 0 GO TO 45340 35340 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45340, 5351, 45340 45340 IF ( IVON01 - 1 ) 25340, 15340, 25340 15340 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5351 25340 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5351 CONTINUE IVTNUM = 535 C C **** TEST 535 **** C TEST 535 - TEST OF SIGNED ZERO .GE. TRUE PATH C C IF (ICZERO) 35350, 5350, 35350 5350 CONTINUE IVON01 = 0 IF ( +0 .GE. -0 ) IVON01 = 1 GO TO 45350 35350 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45350, 5361, 45350 45350 IF ( IVON01 - 1 ) 25350, 15350, 25350 15350 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5361 25350 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5361 CONTINUE IVTNUM = 536 C C **** TEST 536 **** C TEST 536 - TEST OF SIGNED ZERO .GT. FALSE PATH C C IF (ICZERO) 35360, 5360, 35360 5360 CONTINUE IVON01 = 1 IF ( +0 .GT. -0 ) IVON01 = 0 GO TO 45360 35360 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45360, 5371, 45360 45360 IF ( IVON01 - 1 ) 25360, 15360, 25360 15360 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5371 25360 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5371 CONTINUE IVTNUM = 537 C C **** TEST 537 **** C TEST 537 - TEST OF +32767 .EQ. -32766 FALSE PATH C C IF (ICZERO) 35370, 5370, 35370 5370 CONTINUE IVON01 = 1 IF ( +32767 .EQ. -32766 ) IVON01 = 0 GO TO 45370 35370 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45370, 5381, 45370 45370 IF ( IVON01 - 1 ) 25370, 15370, 25370 15370 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5381 25370 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5381 CONTINUE IVTNUM = 538 C C **** TEST 538 **** C TEST 538 - TESTS MINUS SIGN WITH INTEGER VARIABLES C RELATIONAL EXPRESSION USES .LE. TRUE PATH C C IF (ICZERO) 35380, 5380, 35380 5380 CONTINUE IVON01 = 0 IVON02 = 3 IF ( -IVON02 .LE. -IVON02 ) IVON01 = 1 GO TO 45380 35380 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45380, 5391, 45380 45380 IF ( IVON01 - 1 ) 25380, 15380, 25380 15380 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5391 25380 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5391 CONTINUE IVTNUM = 539 C C **** TEST 539 **** C TEST 539 - TEST IS LIKE TEST 538 USES .GE. TRUE PATH C C IF (ICZERO) 35390, 5390, 35390 5390 CONTINUE IVON01 = 0 IVON02 = 32766 IF ( -IVON02 .GE. -IVON02 ) IVON01 = 1 GO TO 45390 35390 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45390, 5401, 45390 45390 IF ( IVON01 - 1 ) 25390, 15390, 25390 15390 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5401 25390 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5401 CONTINUE IVTNUM = 540 C C **** TEST 540 **** C TEST 540 - INTEGER EXPONIENTIATION AND MINUS SIGN USES .NE. C FALSE PATH C C IF (ICZERO) 35400, 5400, 35400 5400 CONTINUE IVON01 = 1 IVON02 = 3 IF ( -IVON02 ** 3 .NE. -27 ) IVON01 = 0 GO TO 45400 35400 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45400, 5411, 45400 45400 IF ( IVON01 - 1 ) 25400, 15400, 25400 15400 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5411 25400 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5411 CONTINUE IVTNUM = 541 C C **** TEST 541 **** C TEST 541 - LIKE TEST 540 USES .LE. TRUE PATH C C IF (ICZERO) 35410, 5410, 35410 5410 CONTINUE IVON01 = 0 IVON02 = 3 IF ( -3 ** IVON02 .LE. -27 ) IVON01 = 1 GO TO 45410 35410 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45410, 5421, 45410 45410 IF ( IVON01 - 1 ) 25410, 15410, 25410 15410 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5421 25410 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5421 CONTINUE IVTNUM = 542 C C **** TEST 542 **** C TEST 542 - INTEGER EXPONIENTIATION AND MULTIPLICATION C USES .EQ. TRUE PATH C C IF (ICZERO) 35420, 5420, 35420 5420 CONTINUE IVON01 = 0 IVON02 = 3 IVON03 = 27 IF ( -IVON02 ** 2 * IVON02 .EQ. -IVON03 ) IVON01 = 1 GO TO 45420 35420 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45420, 5431, 45420 45420 IF ( IVON01 - 1 ) 25420, 15420, 25420 15420 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5431 25420 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5431 CONTINUE IVTNUM = 543 C C **** TEST 543 **** C TEST 543 - INTEGER EXPONIENTIATION AND DIVISION C USES .LT. TRUE PATH C C IF (ICZERO) 35430, 5430, 35430 5430 CONTINUE IVON01 = 0 IVON02 = 587 IVON03 = 3 IVON04 = 3 IF ( -IVON02/IVON04 ** 3 .LT. -3 ** IVON03/IVON02 ) IVON01 = 1 GO TO 45430 35430 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45430, 5441, 45430 45430 IF ( IVON01 - 1 ) 25430, 15430, 25430 15430 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5441 25430 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5441 CONTINUE IVTNUM = 544 C C **** TEST 544 **** C TEST 544 - INTEGER ADDITION AND SUBTRACTION C USES .EQ. TRUE PATH C C IF (ICZERO) 35440, 5440, 35440 5440 CONTINUE IVON01 = 0 IVON02 = 3 IVON03 = 587 IF ( IVON02 - IVON03 .EQ. -IVON03 + IVON02 ) IVON01 = 1 GO TO 45440 35440 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45440, 5451, 45440 45440 IF ( IVON01 - 1 ) 25440, 15440, 25440 15440 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5451 25440 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5451 CONTINUE IVTNUM = 545 C C **** TEST 545 **** C TEST 545 - INTEGER ADDITION AND SUBTRACTION WITH PARENTHESES C USES .EQ. TRUE PATH LIKE TEST 544 C C IF (ICZERO) 35450, 5450, 35450 5450 CONTINUE IVON01 = 0 IVON02 = 3 IVON03 = 587 IF ( (IVON02 - IVON03) .EQ. (-IVON03 + IVON02) ) IVON01 = 1 GO TO 45450 35450 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45450, 5461, 45450 45450 IF ( IVON01 - 1 ) 25450, 15450, 25450 15450 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5461 25450 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5461 CONTINUE IVTNUM = 546 C C **** TEST 546 **** C TEST 546 - INTEGER EXPONIENTIATION AND DIVISION WITH PARENS C USES .LT. TRUE PATH C C IF (ICZERO) 35460, 5460, 35460 5460 CONTINUE IVON01 = 0 IVON02 = 587 IVON03 = 3 IVON04 = 3 IF ((-IVON02/(IVON04**3)).LT.((-3**IVON03)/IVON02))IVON01=1 GO TO 45460 35460 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45460, 5471, 45460 45460 IF ( IVON01 - 1 ) 25460, 15460, 25460 15460 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5471 25460 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5471 CONTINUE IVTNUM = 547 C C **** TEST 547 **** C TEST 547 - INTEGER MULTIPLICATION WITH PARENTHESES .LT. FALSE C C IF (ICZERO) 35470, 5470, 35470 5470 CONTINUE IVON01 = 1 IVON02 = 587 IF ((-3)*(-3).LT.(-IVON02))IVON01=0 GO TO 45470 35470 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45470, 5481, 45470 45470 IF ( IVON01 - 1 ) 25470, 15470, 25470 15470 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5481 25470 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5481 CONTINUE IVTNUM = 548 C C **** TEST 548 **** C TEST 548 - INTEGER EXPONIENTIATION, MINUS SIGNS, AND PARENTHESES C USES .LE. TRUE PATH C C IF (ICZERO) 35480, 5480, 35480 5480 CONTINUE IVON01 = 0 IVON02 = 3 IVON03 = 27 IF ( ((-IVON02) ** IVON02 .LE. (-IVON03))) IVON01 = 1 GO TO 45480 35480 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45480, 5491, 45480 45480 IF ( IVON01 - 1 ) 25480, 15480, 25480 15480 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5491 25480 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5491 CONTINUE IVTNUM = 549 C C **** TEST 549 **** C TEST 549 - TEST THE ORDER OF INTEGER ARITHMETIC OPERATIONS C USES INTEGER EXPONIENTIATION, ADDITION, MULTIPLICATION, C AND PARENTHESES. ALSO USES .EQ. TRUE PATH C SEE SECTION 6.1, ARITHMETIC EXPRESSIONS. C C IF (ICZERO) 35490, 5490, 35490 5490 CONTINUE IVON01 = 0 IVON02 = 3 IF(IVON02 * IVON02/(IVON02+IVON02)**IVON02+IVON02 .EQ. 3) IVON01=1 GO TO 45490 35490 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45490, 5501, 45490 45490 IF ( IVON01 - 1 ) 25490, 15490, 25490 15490 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5501 25490 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5501 CONTINUE IVTNUM = 550 C C **** TEST 550 **** C TEST 550 - COMBINATION OF LOGICAL .NOT. AND .AND. C .NOT. (LP) .AND. .NOT. (LP) C TRUE PATH C C IF (ICZERO) 35500, 5500, 35500 5500 CONTINUE IVON01 = 0 LCTNT1 = .FALSE. IF ( .NOT. .FALSE. .AND. .NOT. LCTNT1 ) IVON01 = 1 GO TO 45500 35500 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45500, 5511, 45500 45500 IF ( IVON01 - 1 ) 25500, 15500, 25500 15500 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5511 25500 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5511 CONTINUE IVTNUM = 551 C C **** TEST 551 **** C TEST 551 - COMBINATION OF LOGICAL .OR. AND .NOT. C .NOT. (LP) .OR. .NOT. (LP) C TRUE PATH C C IF (ICZERO) 35510, 5510, 35510 5510 CONTINUE IVON01 = 0 LCTNT1 = .TRUE. LCTNT2 = .FALSE. IF ( .NOT. LCTNT1 .OR. .NOT. LCTNT2 ) IVON01 = 1 GO TO 45510 35510 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45510, 5521, 45510 45510 IF ( IVON01 - 1 ) 25510, 15510, 25510 15510 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5521 25510 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5521 CONTINUE IVTNUM = 552 C C **** TEST 552 **** C TEST 552 - COMBINATION OF LOGICAL .AND. .OR. AND .NOT. C .NOT. ( (LE) .OR. (LT) ) .AND. .NOT. ( (LT) .AND. (LF) ) C .NOT. IS APPLIED TO A LOGICAL EXPRESSION INCLOSED IN PARENS C FALSE PATH C IF (ICZERO) 35520, 5520, 35520 5520 CONTINUE IVON01 = 1 LCTNT1 = .FALSE. LCTNT2 = .TRUE. IF(.NOT.(LCTNT1.OR.LCTNT2).AND..NOT.(LCTNT1.AND.LCTNT2))IVON01 = 0 GO TO 45520 35520 IVDELE = IVDELE + 1 WRITE (I02,80003) IVTNUM IF (ICZERO) 45520, 5531, 45520 45520 IF ( IVON01 - 1 ) 25520, 15520, 25520 15520 IVPASS = IVPASS + 1 WRITE (I02,80001) IVTNUM GO TO 5531 25520 IVFAIL = IVFAIL + 1 IVCOMP = IVON01 IVCORR = 1 WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 5531 CONTINUE C C WRITE PAGE FOOTINGS AND RUN SUMMARIES 99999 CONTINUE WRITE (I02,90002) WRITE (I02,90006) WRITE (I02,90002) WRITE (I02,90002) WRITE (I02,90007) WRITE (I02,90002) WRITE (I02,90008) IVFAIL WRITE (I02,90009) IVPASS WRITE (I02,90010) IVDELE C C C TERMINATE ROUTINE EXECUTION STOP C C FORMAT STATEMENTS FOR PAGE HEADERS 90000 FORMAT (1H1) 90002 FORMAT (1H ) 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 90003 FORMAT (1H ,21X,11HVERSION 1.0) 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 90006 FORMAT (1H ,5X,46H----------------------------------------------) 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) C C FORMAT STATEMENTS FOR RUN SUMMARIES 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) C C FORMAT STATEMENTS FOR TEST RESULTS 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) C 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM019) END