blob: cd0f8e61f175f1f0df5d2b0a0c75e70d00f71afe [file] [log] [blame]
PROGRAM FM016
C 00010016
C COMMENT SECTION. 00020016
C 00030016
C FM016 00040016
C 00050016
C THIS ROUTINE BEGINS A SERIES OF TESTS OF THE FORTRAN 00060016
C LOGICAL IF STATEMENT IN ALL OF THE VARIOUS FORMS. THE 00070016
C FOLLOWING LOGICAL OPERANDS ARE USED FOR THIS ROUTINE - LOGICAL 00080016
C CONSTANTS, LOGICAL VARIABLES, LOGICAL ARRAY ELEMENTS, AND 00090016
C ARITHMETIC EXPRESSIONS WITH VARIOUS RELATIONAL OPERATORS. BOTH 00100016
C THE TRUE AND FALSE BRANCHES ARE TESTED IN THE SERIES OF TESTS. 00110016
C 00120016
C REFERENCES 00130016
C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00140016
C X3.9-1978 00150016
C 00160016
C SECTION 4.7.1, LOGICAL CONSTANT 00170016
C SECTION 6, EXPRESSIONS 00180016
C SECTION 6.1, ARITHMETIC EXPRESSIONS 00190016
C SECTION 6.3, RELATIONAL EXPRESSIONS 00200016
C SECTION 6.4, LOGICAL EXPRESSIONS 00210016
C SECTION 6.6, EVALUATION OF EXPRESSIONS 00220016
C SECTION 10, ASSIGNMENT STATEMENTS 00230016
C SECTION 10.2, LOGICAL ASSIGNMENT STATEMENT 00240016
C SECTION 11.5, LOGICAL IF STATEMENT 00250016
C 00260016
LOGICAL LCTNT1, LCTNF1, LVTNTF, LVTNFT, LATN1A(2) 00270016
LOGICAL LADN1D, LADN1B 00280016
DIMENSION LADN1D(2), LADN1B(2) 00290016
DATA LADN1D/.TRUE., .FALSE./ 00300016
C 00310016
C ********************************************************** 00320016
C 00330016
C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00340016
C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00350016
C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00360016
C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00370016
C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00380016
C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00390016
C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00400016
C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00410016
C OF EXECUTING THESE TESTS. 00420016
C 00430016
C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00440016
C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00450016
C 00460016
C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00470016
C 00480016
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00490016
C SOFTWARE STANDARDS VALIDATION GROUP 00500016
C BUILDING 225 RM A266 00510016
C GAITHERSBURG, MD 20899 00520016
C ********************************************************** 00530016
C 00540016
C 00550016
C 00560016
C INITIALIZATION SECTION 00570016
C 00580016
C INITIALIZE CONSTANTS 00590016
C ************** 00600016
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00610016
I01 = 5 00620016
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00630016
I02 = 6 00640016
C SYSTEM ENVIRONMENT SECTION 00650016
C 00660016
CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00670016
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00680016
C (UNIT NUMBER FOR CARD READER). 00690016
CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00700016
C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00710016
C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00720016
C 00730016
CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00740016
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00750016
C (UNIT NUMBER FOR PRINTER). 00760016
CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00770016
C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00780016
C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00790016
C 00800016
IVPASS=0 00810016
IVFAIL=0 00820016
IVDELE=0 00830016
ICZERO=0 00840016
C 00850016
C WRITE PAGE HEADERS 00860016
WRITE (I02,90000) 00870016
WRITE (I02,90001) 00880016
WRITE (I02,90002) 00890016
WRITE (I02, 90002) 00900016
WRITE (I02,90003) 00910016
WRITE (I02,90002) 00920016
WRITE (I02,90004) 00930016
WRITE (I02,90002) 00940016
WRITE (I02,90011) 00950016
WRITE (I02,90002) 00960016
WRITE (I02,90002) 00970016
WRITE (I02,90005) 00980016
WRITE (I02,90006) 00990016
WRITE (I02,90002) 01000016
IVTNUM = 139 01010016
C TEST 139 - THIS TESTS THE LOGICAL CONSTANT .TRUE. 01020016
C 01030016
IF (ICZERO) 31390, 1390, 31390 01040016
1390 CONTINUE 01050016
IVON01=0 01060016
IF ( .TRUE. ) IVON01 = 1 01070016
GO TO 41390 01080016
31390 IVDELE = IVDELE + 1 01090016
WRITE (I02,80003) IVTNUM 01100016
IF (ICZERO) 41390, 1401, 41390 01110016
41390 IF ( IVON01 - 1 ) 21390, 11390, 21390 01120016
11390 IVPASS = IVPASS + 1 01130016
WRITE (I02,80001) IVTNUM 01140016
GO TO 1401 01150016
21390 IVFAIL = IVFAIL + 1 01160016
IVCOMP=IVON01 01170016
IVCORR=1 01180016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01190016
1401 CONTINUE 01200016
IVTNUM = 140 01210016
C TEST 140 - THIS TESTS THE LOGICAL CONSTANT .FALSE. 01220016
C 01230016
IF (ICZERO) 31400, 1400, 31400 01240016
1400 CONTINUE 01250016
IVON01=1 01260016
IF ( .FALSE. ) IVON01=0 01270016
GO TO 41400 01280016
31400 IVDELE = IVDELE + 1 01290016
WRITE (I02,80003) IVTNUM 01300016
IF (ICZERO) 41400, 1411, 41400 01310016
41400 IF ( IVON01 - 1 ) 21400, 11400, 21400 01320016
11400 IVPASS = IVPASS + 1 01330016
WRITE (I02,80001) IVTNUM 01340016
GO TO 1411 01350016
21400 IVFAIL = IVFAIL + 1 01360016
IVCOMP=IVON01 01370016
IVCORR=1 01380016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01390016
1411 CONTINUE 01400016
IVTNUM = 141 01410016
C TEST 141 - THIS TESTS THE LOGICAL VARIABLE = .TRUE. 01420016
C 01430016
IF (ICZERO) 31410, 1410, 31410 01440016
1410 CONTINUE 01450016
LCTNT1=.TRUE. 01460016
IVON01 = 0 01470016
IF ( LCTNT1 ) IVON01 = 1 01480016
GO TO 41410 01490016
31410 IVDELE = IVDELE + 1 01500016
WRITE (I02,80003) IVTNUM 01510016
IF (ICZERO) 41410, 1421, 41410 01520016
41410 IF ( IVON01 - 1 ) 21410, 11410, 21410 01530016
11410 IVPASS = IVPASS + 1 01540016
WRITE (I02,80001) IVTNUM 01550016
GO TO 1421 01560016
21410 IVFAIL = IVFAIL + 1 01570016
IVCOMP=IVON01 01580016
IVCORR=1 01590016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01600016
1421 CONTINUE 01610016
IVTNUM = 142 01620016
C TEST 142 - THIS TESTS THE LOGICAL VARIABLE = .FALSE. 01630016
C 01640016
IF (ICZERO) 31420, 1420, 31420 01650016
1420 CONTINUE 01660016
IVON01=1 01670016
LCTNF1=.FALSE. 01680016
IF ( LCTNF1 ) IVON01=0 01690016
GO TO 41420 01700016
31420 IVDELE = IVDELE + 1 01710016
WRITE (I02,80003) IVTNUM 01720016
IF (ICZERO) 41420, 1431, 41420 01730016
41420 IF ( IVON01 - 1 ) 21420, 11420, 21420 01740016
11420 IVPASS = IVPASS + 1 01750016
WRITE (I02,80001) IVTNUM 01760016
GO TO 1431 01770016
21420 IVFAIL = IVFAIL + 1 01780016
IVCOMP=IVON01 01790016
IVCORR=1 01800016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01810016
1431 CONTINUE 01820016
IVTNUM = 143 01830016
C TEST 143 - THIS TESTS CHANGING THE VALUE OF A LOGICAL VARIABLE 01840016
C FROM .TRUE. TO .FALSE. 01850016
C 01860016
IF (ICZERO) 31430, 1430, 31430 01870016
1430 CONTINUE 01880016
LVTNTF=.TRUE. 01890016
LVTNTF=.FALSE. 01900016
IVON01 = 1 01910016
IF ( LVTNTF ) IVON01 = 0 01920016
GO TO 41430 01930016
31430 IVDELE = IVDELE + 1 01940016
WRITE (I02,80003) IVTNUM 01950016
IF (ICZERO) 41430, 1441, 41430 01960016
41430 IF ( IVON01 - 1 ) 21430, 11430, 21430 01970016
11430 IVPASS = IVPASS + 1 01980016
WRITE (I02,80001) IVTNUM 01990016
GO TO 1441 02000016
21430 IVFAIL = IVFAIL + 1 02010016
IVCOMP=IVON01 02020016
IVCORR=1 02030016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02040016
1441 CONTINUE 02050016
IVTNUM = 144 02060016
C TEST 144 - THIS TESTS CHANGING THE VALUE OF A LOGICAL VARIABLE 02070016
C FROM .FALSE. TO .TRUE. 02080016
C 02090016
IF (ICZERO) 31440, 1440, 31440 02100016
1440 CONTINUE 02110016
LVTNFT=.FALSE. 02120016
LVTNFT=.TRUE. 02130016
IVON01=0 02140016
IF ( LVTNFT ) IVON01=1 02150016
GO TO 41440 02160016
31440 IVDELE = IVDELE + 1 02170016
WRITE (I02,80003) IVTNUM 02180016
IF (ICZERO) 41440, 1451, 41440 02190016
41440 IF ( IVON01 - 1 ) 21440, 11440, 21440 02200016
11440 IVPASS = IVPASS + 1 02210016
WRITE (I02,80001) IVTNUM 02220016
GO TO 1451 02230016
21440 IVFAIL = IVFAIL + 1 02240016
IVCOMP=IVON01 02250016
IVCORR=1 02260016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02270016
1451 CONTINUE 02280016
IVTNUM = 145 02290016
C TEST 145 - TEST OF A LOGICAL ARRAY ELEMENT SET TO .TRUE. 02300016
C 02310016
IF (ICZERO) 31450, 1450, 31450 02320016
1450 CONTINUE 02330016
LATN1A(1)=.TRUE. 02340016
IVON01=0 02350016
IF ( LATN1A(1) ) IVON01=1 02360016
GO TO 41450 02370016
31450 IVDELE = IVDELE + 1 02380016
WRITE (I02,80003) IVTNUM 02390016
IF (ICZERO) 41450, 1461, 41450 02400016
41450 IF ( IVON01 - 1 ) 21450, 11450, 21450 02410016
11450 IVPASS = IVPASS + 1 02420016
WRITE (I02,80001) IVTNUM 02430016
GO TO 1461 02440016
21450 IVFAIL = IVFAIL + 1 02450016
IVCOMP=IVON01 02460016
IVCORR=1 02470016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02480016
1461 CONTINUE 02490016
IVTNUM = 146 02500016
C TEST 146 - TEST OF A LOGICAL ARRAY ELEMENT SET TO .FALSE. 02510016
C 02520016
IF (ICZERO) 31460, 1460, 31460 02530016
1460 CONTINUE 02540016
LATN1A(2) = .FALSE. 02550016
IVON01=1 02560016
IF ( LATN1A(2) ) IVON01=0 02570016
GO TO 41460 02580016
31460 IVDELE = IVDELE + 1 02590016
WRITE (I02,80003) IVTNUM 02600016
IF (ICZERO) 41460, 1471, 41460 02610016
41460 IF ( IVON01 - 1 ) 21460, 11460, 21460 02620016
11460 IVPASS = IVPASS + 1 02630016
WRITE (I02,80001) IVTNUM 02640016
GO TO 1471 02650016
21460 IVFAIL = IVFAIL + 1 02660016
IVCOMP=IVON01 02670016
IVCORR=1 02680016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02690016
1471 CONTINUE 02700016
IVTNUM = 147 02710016
C TEST 147 - TEST OF A LOGICAL ARRAY ELEMENT SET .TRUE. 02720016
C IN A DATA INITIALIZATION STATEMENT. 02730016
C 02740016
IF (ICZERO) 31470, 1470, 31470 02750016
1470 CONTINUE 02760016
IVON01=0 02770016
IF ( LADN1D(1) ) IVON01=1 02780016
GO TO 41470 02790016
31470 IVDELE = IVDELE + 1 02800016
WRITE (I02,80003) IVTNUM 02810016
IF (ICZERO) 41470, 1481, 41470 02820016
41470 IF ( IVON01 - 1 ) 21470, 11470, 21470 02830016
11470 IVPASS = IVPASS + 1 02840016
WRITE (I02,80001) IVTNUM 02850016
GO TO 1481 02860016
21470 IVFAIL = IVFAIL + 1 02870016
IVCOMP=IVON01 02880016
IVCORR=1 02890016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02900016
1481 CONTINUE 02910016
IVTNUM = 148 02920016
C TEST 148 - TEST OF A LOGICAL ARRAY ELEMENT SET .FALSE. 02930016
C IN A DATA INITIALIZATION STATEMENT. 02940016
C 02950016
IF (ICZERO) 31480, 1480, 31480 02960016
1480 CONTINUE 02970016
IVON01=1 02980016
IF ( LADN1D(2) ) IVON01=0 02990016
GO TO 41480 03000016
31480 IVDELE = IVDELE + 1 03010016
WRITE (I02,80003) IVTNUM 03020016
IF (ICZERO) 41480, 1491, 41480 03030016
41480 IF ( IVON01 - 1 ) 21480, 11480, 21480 03040016
11480 IVPASS = IVPASS + 1 03050016
WRITE (I02,80001) IVTNUM 03060016
GO TO 1491 03070016
21480 IVFAIL = IVFAIL + 1 03080016
IVCOMP=IVON01 03090016
IVCORR=1 03100016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03110016
1491 CONTINUE 03120016
IVTNUM = 149 03130016
C TEST 149 - LIKE TEST 145 EXCEPT THAT THE ARRAY DECLARATION WAS 03140016
C IN A DIMENSION STATEMENT RATHER THAN IN THE TYPE STATEMENT. 03150016
C 03160016
IF (ICZERO) 31490, 1490, 31490 03170016
1490 CONTINUE 03180016
LADN1B(1)=.TRUE. 03190016
IVON01=0 03200016
IF ( LADN1B(1) ) IVON01=1 03210016
GO TO 41490 03220016
31490 IVDELE = IVDELE + 1 03230016
WRITE (I02,80003) IVTNUM 03240016
IF (ICZERO) 41490, 1501, 41490 03250016
41490 IF ( IVON01 - 1 ) 21490, 11490, 21490 03260016
11490 IVPASS = IVPASS + 1 03270016
WRITE (I02,80001) IVTNUM 03280016
GO TO 1501 03290016
21490 IVFAIL = IVFAIL + 1 03300016
IVCOMP=IVON01 03310016
IVCORR=1 03320016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03330016
C 03340016
C FOR TESTS 150 THRU 156 THE TRUE PATH IS USED.. 03350016
C 03360016
1501 CONTINUE 03370016
IVTNUM = 150 03380016
C TEST 150 - RELATIONAL EXPRESSION WITH INTEGER CONSTANTS .LT. 03390016
C 03400016
IF (ICZERO) 31500, 1500, 31500 03410016
1500 CONTINUE 03420016
IVON01=0 03430016
IF ( 3 .LT. 76 ) IVON01=1 03440016
GO TO 41500 03450016
31500 IVDELE = IVDELE + 1 03460016
WRITE (I02,80003) IVTNUM 03470016
IF (ICZERO) 41500, 1511, 41500 03480016
41500 IF ( IVON01 - 1 ) 21500, 11500, 21500 03490016
11500 IVPASS = IVPASS + 1 03500016
WRITE (I02,80001) IVTNUM 03510016
GO TO 1511 03520016
21500 IVFAIL = IVFAIL + 1 03530016
IVCOMP=IVON01 03540016
IVCORR=1 03550016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03560016
1511 CONTINUE 03570016
IVTNUM = 151 03580016
C TEST 151 - TEST WITH RELATIONAL EXPRESSION .LE. 03590016
C 03600016
IF (ICZERO) 31510, 1510, 31510 03610016
1510 CONTINUE 03620016
IVON01=0 03630016
IF ( 587 .LE. 587 ) IVON01=1 03640016
GO TO 41510 03650016
31510 IVDELE = IVDELE + 1 03660016
WRITE (I02,80003) IVTNUM 03670016
IF (ICZERO) 41510, 1521, 41510 03680016
41510 IF ( IVON01 - 1 ) 21510, 11510, 21510 03690016
11510 IVPASS = IVPASS + 1 03700016
WRITE (I02,80001) IVTNUM 03710016
GO TO 1521 03720016
21510 IVFAIL = IVFAIL + 1 03730016
IVCOMP=IVON01 03740016
IVCORR=1 03750016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03760016
1521 CONTINUE 03770016
IVTNUM = 152 03780016
C TEST 152 - TEST OF RELATIONAL EXPRESSION WITH INTEGER CONSTANTS 03790016
C RELATIONAL OPERATOR IS .EQ. 03800016
C 03810016
IF (ICZERO) 31520, 1520, 31520 03820016
1520 CONTINUE 03830016
IVON01=0 03840016
IF ( 9999 .EQ. 9999 ) IVON01=1 03850016
GO TO 41520 03860016
31520 IVDELE = IVDELE + 1 03870016
WRITE (I02,80003) IVTNUM 03880016
IF (ICZERO) 41520, 1531, 41520 03890016
41520 IF ( IVON01 - 1 ) 21520, 11520, 21520 03900016
11520 IVPASS = IVPASS + 1 03910016
WRITE (I02,80001) IVTNUM 03920016
GO TO 1531 03930016
21520 IVFAIL = IVFAIL + 1 03940016
IVCOMP=IVON01 03950016
IVCORR=1 03960016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03970016
1531 CONTINUE 03980016
IVTNUM = 153 03990016
C TEST 153 - TEST OF RELATIONAL EXPRESSION WITH INTEGER CONSTANTS 04000016
C RELATIONAL OPERATOR IS .NE. 04010016
C 04020016
IF (ICZERO) 31530, 1530, 31530 04030016
1530 CONTINUE 04040016
IVON01=0 04050016
IF ( 0 .NE. 32767 ) IVON01=1 04060016
GO TO 41530 04070016
31530 IVDELE = IVDELE + 1 04080016
WRITE (I02,80003) IVTNUM 04090016
IF (ICZERO) 41530, 1541, 41530 04100016
41530 IF ( IVON01 - 1 ) 21530, 11530, 21530 04110016
11530 IVPASS = IVPASS + 1 04120016
WRITE (I02,80001) IVTNUM 04130016
GO TO 1541 04140016
21530 IVFAIL = IVFAIL + 1 04150016
IVCOMP=IVON01 04160016
IVCORR=1 04170016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04180016
1541 CONTINUE 04190016
IVTNUM = 154 04200016
C TEST 154 - TEST OF RELATIONAL EXPRESSION WITH INTEGER CONSTANTS 04210016
C RELATIONAL OPERATOR IS .GT. 04220016
C 04230016
IF (ICZERO) 31540, 1540, 31540 04240016
1540 CONTINUE 04250016
IVON01=0 04260016
IF ( 32767 .GT. 76 ) IVON01=1 04270016
GO TO 41540 04280016
31540 IVDELE = IVDELE + 1 04290016
WRITE (I02,80003) IVTNUM 04300016
IF (ICZERO) 41540, 1551, 41540 04310016
41540 IF ( IVON01 - 1 ) 21540, 11540, 21540 04320016
11540 IVPASS = IVPASS + 1 04330016
WRITE (I02,80001) IVTNUM 04340016
GO TO 1551 04350016
21540 IVFAIL = IVFAIL + 1 04360016
IVCOMP=IVON01 04370016
IVCORR=1 04380016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04390016
1551 CONTINUE 04400016
IVTNUM = 155 04410016
C TEST 155 - TEST OF RELATIONAL EXPRESSION WITH INTEGER CONSTANTS 04420016
C RELATIONAL OPERATOR IS .GE. 04430016
C 04440016
IF (ICZERO) 31550, 1550, 31550 04450016
1550 CONTINUE 04460016
IVON01=0 04470016
IF ( 32767 .GE. 76 ) IVON01=1 04480016
GO TO 41550 04490016
31550 IVDELE = IVDELE + 1 04500016
WRITE (I02,80003) IVTNUM 04510016
IF (ICZERO) 41550, 1561, 41550 04520016
41550 IF ( IVON01 - 1 ) 21550, 11550, 21550 04530016
11550 IVPASS = IVPASS + 1 04540016
WRITE (I02,80001) IVTNUM 04550016
GO TO 1561 04560016
21550 IVFAIL = IVFAIL + 1 04570016
IVCOMP=IVON01 04580016
IVCORR=1 04590016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04600016
1561 CONTINUE 04610016
IVTNUM = 156 04620016
C TEST 156 - TEST OF RELATIONAL EXPRESSION WITH INTEGER CONSTANTS 04630016
C RELATIONAL OPERATOR IS .GE. 04640016
C 04650016
IF (ICZERO) 31560, 1560, 31560 04660016
1560 CONTINUE 04670016
IVON01=0 04680016
IF ( 32767 .GE. 32767 ) IVON01=1 04690016
GO TO 41560 04700016
31560 IVDELE = IVDELE + 1 04710016
WRITE (I02,80003) IVTNUM 04720016
IF (ICZERO) 41560, 1571, 41560 04730016
41560 IF ( IVON01 - 1 ) 21560, 11560, 21560 04740016
11560 IVPASS = IVPASS + 1 04750016
WRITE (I02,80001) IVTNUM 04760016
GO TO 1571 04770016
21560 IVFAIL = IVFAIL + 1 04780016
IVCOMP=IVON01 04790016
IVCORR=1 04800016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04810016
C 04820016
C FOR TESTS 157 THRU 162 THE FALSE PATH IS USED.. 04830016
C 04840016
1571 CONTINUE 04850016
IVTNUM = 157 04860016
C TEST 157 - RELATIONAL EXPRESSION INTEGER CONSTANTS FALSE PATH 04870016
C RELATIONAL OPERATOR IS .LT. 04880016
C 04890016
IF (ICZERO) 31570, 1570, 31570 04900016
1570 CONTINUE 04910016
IVON01=1 04920016
IF ( 76 .LT. 3 ) IVON01=0 04930016
GO TO 41570 04940016
31570 IVDELE = IVDELE + 1 04950016
WRITE (I02,80003) IVTNUM 04960016
IF (ICZERO) 41570, 1581, 41570 04970016
41570 IF ( IVON01 - 1 ) 21570, 11570, 21570 04980016
11570 IVPASS = IVPASS + 1 04990016
WRITE (I02,80001) IVTNUM 05000016
GO TO 1581 05010016
21570 IVFAIL = IVFAIL + 1 05020016
IVCOMP=IVON01 05030016
IVCORR=1 05040016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05050016
1581 CONTINUE 05060016
IVTNUM = 158 05070016
C TEST 158 - RELATIONAL EXPRESSION INTEGER CONSTANTS FALSE PATH 05080016
C RELATIONAL OPERATOR IS .LE. 05090016
C 05100016
IF (ICZERO) 31580, 1580, 31580 05110016
1580 CONTINUE 05120016
IVON01=1 05130016
IF ( 76 .LE. 3 ) IVON01=0 05140016
GO TO 41580 05150016
31580 IVDELE = IVDELE + 1 05160016
WRITE (I02,80003) IVTNUM 05170016
IF (ICZERO) 41580, 1591, 41580 05180016
41580 IF ( IVON01 - 1 ) 21580, 11580, 21580 05190016
11580 IVPASS = IVPASS + 1 05200016
WRITE (I02,80001) IVTNUM 05210016
GO TO 1591 05220016
21580 IVFAIL = IVFAIL + 1 05230016
IVCOMP=IVON01 05240016
IVCORR=1 05250016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05260016
1591 CONTINUE 05270016
IVTNUM = 159 05280016
C TEST 159 - RELATIONAL EXPRESSION INTEGER CONSTANTS FALSE PATH 05290016
C RELATIONAL OPERATOR IS .EQ. 05300016
C 05310016
IF (ICZERO) 31590, 1590, 31590 05320016
1590 CONTINUE 05330016
IVON01=1 05340016
IF ( 9999 .EQ. 587 ) IVON01=0 05350016
GO TO 41590 05360016
31590 IVDELE = IVDELE + 1 05370016
WRITE (I02,80003) IVTNUM 05380016
IF (ICZERO) 41590, 1601, 41590 05390016
41590 IF ( IVON01 - 1 ) 21590, 11590, 21590 05400016
11590 IVPASS = IVPASS + 1 05410016
WRITE (I02,80001) IVTNUM 05420016
GO TO 1601 05430016
21590 IVFAIL = IVFAIL + 1 05440016
IVCOMP=IVON01 05450016
IVCORR=1 05460016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05470016
1601 CONTINUE 05480016
IVTNUM = 160 05490016
C TEST 160 - RELATIONAL EXPRESSION INTEGER CONSTANTS FALSE PATH 05500016
C RELATIONAL OPERATOR IS .NE. 05510016
C 05520016
IF (ICZERO) 31600, 1600, 31600 05530016
1600 CONTINUE 05540016
IVON01=1 05550016
IF ( 3 .NE. 3 ) IVON01=0 05560016
GO TO 41600 05570016
31600 IVDELE = IVDELE + 1 05580016
WRITE (I02,80003) IVTNUM 05590016
IF (ICZERO) 41600, 1611, 41600 05600016
41600 IF ( IVON01 - 1 ) 21600, 11600, 21600 05610016
11600 IVPASS = IVPASS + 1 05620016
WRITE (I02,80001) IVTNUM 05630016
GO TO 1611 05640016
21600 IVFAIL = IVFAIL + 1 05650016
IVCOMP=IVON01 05660016
IVCORR=1 05670016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05680016
1611 CONTINUE 05690016
IVTNUM=161 05700016
C 05710016
C TEST 161 - RELATIONAL EXPRESSION INTEGER CONSTANTS FALSE PATH 05720016
C RELATIONAL OPERATOR IS .GT. 05730016
C 05740016
IF ( ICZERO ) 31610, 1610, 31610 05750016
1610 CONTINUE 05760016
IVON01=1 05770016
IF ( 76 .GT. 32767 ) IVON01=0 05780016
GO TO 41610 05790016
31610 IVDELE = IVDELE + 1 05800016
WRITE (I02,80003) IVTNUM 05810016
IF ( ICZERO ) 41610, 1621, 41610 05820016
41610 IF ( IVON01 - 1 ) 21610, 11610, 21610 05830016
11610 IVPASS = IVPASS+ 1 05840016
WRITE (I02,80001) IVTNUM 05850016
GO TO 1621 05860016
21610 IVFAIL = IVFAIL + 1 05870016
IVCOMP=IVON01 05880016
IVCORR=1 05890016
WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 05900016
1621 CONTINUE 05910016
IVTNUM = 162 05920016
C 05930016
C 05940016
C **** TEST 162 **** 05950016
C 05960016
C TEST 162 - RELATIONAL EXPRESSION INTEGER CONSTANTS FALSE PATH 05970016
C RELATIONAL OPERATOR IS .GE. 05980016
C 05990016
IF (ICZERO) 31620, 1620, 31620 06000016
1620 CONTINUE 06010016
IVON01=1 06020016
IF ( 76 .GE. 32767 ) IVON01 = 0 06030016
GO TO 41620 06040016
31620 IVDELE = IVDELE + 1 06050016
WRITE (I02,80003) IVTNUM 06060016
IF (ICZERO) 41620, 1631, 41620 06070016
41620 IF ( IVON01 - 1 ) 21620, 11620, 21620 06080016
11620 IVPASS = IVPASS + 1 06090016
WRITE (I02,80001) IVTNUM 06100016
GO TO 1631 06110016
21620 IVFAIL = IVFAIL + 1 06120016
IVCOMP=IVON01 06130016
IVCORR=1 06140016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06150016
1631 CONTINUE 06160016
IVTNUM = 163 06170016
C 06180016
C **** TEST 163 **** 06190016
C TEST 163 - RELATIONAL EXPRESSION WITH INTEGER VARIABLE 06200016
C REFERENCES (IC) (RO) (IVR). TRUE PATH. USE .LT. 06210016
C 06220016
C 06230016
IF (ICZERO) 31630, 1630, 31630 06240016
1630 CONTINUE 06250016
IVON01 = 76 06260016
IVON02 = 0 06270016
IF ( 3 .LT. IVON01 ) IVON02 = 1 06280016
GO TO 41630 06290016
31630 IVDELE = IVDELE + 1 06300016
WRITE (I02,80003) IVTNUM 06310016
IF (ICZERO) 41630, 1641, 41630 06320016
41630 IF ( IVON02 - 1 ) 21630, 11630, 21630 06330016
11630 IVPASS = IVPASS + 1 06340016
WRITE (I02,80001) IVTNUM 06350016
GO TO 1641 06360016
21630 IVFAIL = IVFAIL + 1 06370016
IVCOMP = IVON02 06380016
IVCORR = 1 06390016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06400016
1641 CONTINUE 06410016
IVTNUM = 164 06420016
C 06430016
C **** TEST 164 **** 06440016
C TEST 164 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCES. 06450016
C TRUE PATH. .LE. 06460016
C 06470016
C 06480016
IF (ICZERO) 31640, 1640, 31640 06490016
1640 CONTINUE 06500016
IVON01 = 587 06510016
IVON02 = 0 06520016
IF ( 587 .LE. IVON01 ) IVON02 = 1 06530016
GO TO 41640 06540016
31640 IVDELE = IVDELE + 1 06550016
WRITE (I02,80003) IVTNUM 06560016
IF (ICZERO) 41640, 1651, 41640 06570016
41640 IF ( IVON02 - 1 ) 21640, 11640, 21640 06580016
11640 IVPASS = IVPASS + 1 06590016
WRITE (I02,80001) IVTNUM 06600016
GO TO 1651 06610016
21640 IVFAIL = IVFAIL + 1 06620016
IVCOMP = IVON02 06630016
IVCORR = 1 06640016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06650016
1651 CONTINUE 06660016
IVTNUM = 165 06670016
C 06680016
C **** TEST 165 **** 06690016
C TEST 165 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 06700016
C TRUE PATH. .EQ. 06710016
C 06720016
C 06730016
IF (ICZERO) 31650, 1650, 31650 06740016
1650 CONTINUE 06750016
IVON01 = 9999 06760016
IVON02 = 0 06770016
IF ( 9999 .EQ. IVON01 ) IVON02 = 1 06780016
GO TO 41650 06790016
31650 IVDELE = IVDELE + 1 06800016
WRITE (I02,80003) IVTNUM 06810016
IF (ICZERO) 41650, 1661, 41650 06820016
41650 IF ( IVON02 - 1 ) 21650, 11650, 21650 06830016
11650 IVPASS = IVPASS + 1 06840016
WRITE (I02,80001) IVTNUM 06850016
GO TO 1661 06860016
21650 IVFAIL = IVFAIL + 1 06870016
IVCOMP = IVON02 06880016
IVCORR = 1 06890016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06900016
1661 CONTINUE 06910016
IVTNUM = 166 06920016
C 06930016
C **** TEST 166 **** 06940016
C TEST 166 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 06950016
C TRUE PATH. .NE. 06960016
C 06970016
C 06980016
IF (ICZERO) 31660, 1660, 31660 06990016
1660 CONTINUE 07000016
IVON01 = 32767 07010016
IVON02 = 0 07020016
IF ( 0 .NE. IVON01 ) IVON02 = 1 07030016
GO TO 41660 07040016
31660 IVDELE = IVDELE + 1 07050016
WRITE (I02,80003) IVTNUM 07060016
IF (ICZERO) 41660, 1671, 41660 07070016
41660 IF ( IVON02 - 1 ) 21660, 11660, 21660 07080016
11660 IVPASS = IVPASS + 1 07090016
WRITE (I02,80001) IVTNUM 07100016
GO TO 1671 07110016
21660 IVFAIL = IVFAIL + 1 07120016
IVCOMP = IVON02 07130016
IVCORR = 1 07140016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07150016
1671 CONTINUE 07160016
IVTNUM = 167 07170016
C 07180016
C **** TEST 167 **** 07190016
C TEST 167 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 07200016
C TRUE PATH. .GT. 07210016
C 07220016
C 07230016
IF (ICZERO) 31670, 1670, 31670 07240016
1670 CONTINUE 07250016
IVON01 = 76 07260016
IVON02 = 0 07270016
IF ( 32767 .GT. IVON01 ) IVON02 = 1 07280016
GO TO 41670 07290016
31670 IVDELE = IVDELE + 1 07300016
WRITE (I02,80003) IVTNUM 07310016
IF (ICZERO) 41670, 1681, 41670 07320016
41670 IF ( IVON02 - 1 ) 21670, 11670, 21670 07330016
11670 IVPASS = IVPASS + 1 07340016
WRITE (I02,80001) IVTNUM 07350016
GO TO 1681 07360016
21670 IVFAIL = IVFAIL + 1 07370016
IVCOMP = IVON02 07380016
IVCORR = 1 07390016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07400016
1681 CONTINUE 07410016
IVTNUM = 168 07420016
C 07430016
C **** TEST 168 **** 07440016
C TEST 168 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 07450016
C TRUE PATH. .GE. 07460016
C 07470016
C 07480016
IF (ICZERO) 31680, 1680, 31680 07490016
1680 CONTINUE 07500016
IVON01 = 76 07510016
IVON02 = 0 07520016
IF ( 32767 .GE. IVON01 ) IVON02 = 1 07530016
GO TO 41680 07540016
31680 IVDELE = IVDELE + 1 07550016
WRITE (I02,80003) IVTNUM 07560016
IF (ICZERO) 41680, 1691, 41680 07570016
41680 IF ( IVON02 - 1 ) 21680, 11680, 21680 07580016
11680 IVPASS = IVPASS + 1 07590016
WRITE (I02,80001) IVTNUM 07600016
GO TO 1691 07610016
21680 IVFAIL = IVFAIL + 1 07620016
IVCOMP = IVON02 07630016
IVCORR = 1 07640016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07650016
1691 CONTINUE 07660016
IVTNUM = 169 07670016
C 07680016
C **** TEST 169 **** 07690016
C TEST 169 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 07700016
C TRUE PATH. .EQ. 07710016
C 07720016
C 07730016
IF (ICZERO) 31690, 1690, 31690 07740016
1690 CONTINUE 07750016
IVON01 = 32767 07760016
IVON02 = 0 07770016
IF ( 32767 .EQ. IVON01 ) IVON02 = 1 07780016
GO TO 41690 07790016
31690 IVDELE = IVDELE + 1 07800016
WRITE (I02,80003) IVTNUM 07810016
IF (ICZERO) 41690, 1701, 41690 07820016
41690 IF ( IVON02 - 1 ) 21690, 11690, 21690 07830016
11690 IVPASS = IVPASS + 1 07840016
WRITE (I02,80001) IVTNUM 07850016
GO TO 1701 07860016
21690 IVFAIL = IVFAIL + 1 07870016
IVCOMP = IVON02 07880016
IVCORR = 1 07890016
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07900016
1701 CONTINUE 07910016
C 07920016
C WRITE PAGE FOOTINGS AND RUN SUMMARIES 07930016
99999 CONTINUE 07940016
WRITE (I02,90002) 07950016
WRITE (I02,90006) 07960016
WRITE (I02,90002) 07970016
WRITE (I02,90002) 07980016
WRITE (I02,90007) 07990016
WRITE (I02,90002) 08000016
WRITE (I02,90008) IVFAIL 08010016
WRITE (I02,90009) IVPASS 08020016
WRITE (I02,90010) IVDELE 08030016
C 08040016
C 08050016
C TERMINATE ROUTINE EXECUTION 08060016
STOP 08070016
C 08080016
C FORMAT STATEMENTS FOR PAGE HEADERS 08090016
90000 FORMAT ("1") 08100016
90002 FORMAT (" ") 08110016
90001 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 08120016
90003 FORMAT (" ",21X,"VERSION 2.1" ) 08130016
90004 FORMAT (" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" ) 08140016
90005 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT") 08150016
90006 FORMAT (" ",5X,"----------------------------------------------" ) 08160016
90011 FORMAT (" ",18X,"SUBSET LEVEL TEST" ) 08170016
C 08180016
C FORMAT STATEMENTS FOR RUN SUMMARIES 08190016
90008 FORMAT (" ",15X,I5," ERRORS ENCOUNTERED" ) 08200016
90009 FORMAT (" ",15X,I5," TESTS PASSED" ) 08210016
90010 FORMAT (" ",15X,I5," TESTS DELETED" ) 08220016
C 08230016
C FORMAT STATEMENTS FOR TEST RESULTS 08240016
80001 FORMAT (" ",4X,I5,7X,"PASS") 08250016
80002 FORMAT (" ",4X,I5,7X,"FAIL") 08260016
80003 FORMAT (" ",4X,I5,7X,"DELETED") 08270016
80004 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6) 08280016
80005 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5) 08290016
C 08300016
90007 FORMAT (" ",20X,"END OF PROGRAM FM016" ) 08310016
END 08320016