| PROGRAM FM004 |
| |
| C COMMENT SECTION 00010004 |
| C 00020004 |
| C FM004 00030004 |
| C 00040004 |
| C THIS ROUTINE CONTAINS BASIC ARITHMETIC IF STATEMENT TESTS. 00050004 |
| C THE STATEMENT FORMAT IS 00060004 |
| C IF (E) K1, K2, K3 00070004 |
| C WHERE E IS A SIMPLE INTEGER EXPRESSION OF FORM 00080004 |
| C VARIABLE - CONSTANT 00090004 |
| C VARIABLE + CONSTANT 00100004 |
| C AND K1, K2 AND K3 ARE STATEMENT LABELS. ONLY THE STATEMENTS IN 00110004 |
| C THE BASIC ASSUMPTIONS ARE INCLUDED IN THESE TESTS. 00120004 |
| C EXECUTION OF AN IF STATEMENT CAUSES EVALUATION OF THE 00130004 |
| C EXPRESSION E FOLLOWING WHICH THE STATEMENT LABEL K1, K2 OR K3 00140004 |
| C IS EXECUTED NEXT AS THE VALUE OF E IS LESS THAN ZERO, ZERO, OR 00150004 |
| C GREATER THAN ZERO, RESPECTIVELY. 00160004 |
| C 00170004 |
| C THE BASIC UNCONDITIONAL GO TO STATEMENT IS TESTED IN THIS 00180004 |
| C ROUTINE. THE STATEMENT IS OF THE FORM 00190004 |
| C GO TO K 00200004 |
| C WHERE K IS A STATEMENT LABEL. 00210004 |
| C EXECUTION OF AN UNCONDITIONAL GO TO STATEMENT CAUSES THE 00220004 |
| C STATEMENT IDENTIFIED BY STATEMENT LABEL K TO BE EXECUTED NEXT. 00230004 |
| C 00240004 |
| C REFERENCES 00250004 |
| C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00260004 |
| C X3.9-1978 00270004 |
| C 00280004 |
| C SECTION 3.6, NORMAL EXECUTION SEQUENCE AND TRANSFER OF CONTROL 00290004 |
| C SECTION 11.1, GO TO STATEMENT 00300004 |
| C SECTION 11.4, ARITHMETIC IF STATEMENT 00310004 |
| C 00320004 |
| C ********************************************************** 00330004 |
| C 00340004 |
| C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00350004 |
| C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00360004 |
| C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00370004 |
| C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00380004 |
| C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00390004 |
| C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00400004 |
| C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00410004 |
| C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00420004 |
| C OF EXECUTING THESE TESTS. 00430004 |
| C 00440004 |
| C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00450004 |
| C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00460004 |
| C 00470004 |
| C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00480004 |
| C 00490004 |
| C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00500004 |
| C SOFTWARE STANDARDS VALIDATION GROUP 00510004 |
| C BUILDING 225 RM A266 00520004 |
| C GAITHERSBURG, MD 20899 00530004 |
| C ********************************************************** 00540004 |
| C 00550004 |
| C 00560004 |
| C 00570004 |
| C INITIALIZATION SECTION 00580004 |
| C 00590004 |
| C INITIALIZE CONSTANTS 00600004 |
| C ************** 00610004 |
| C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00620004 |
| I01 = 5 00630004 |
| C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00640004 |
| I02 = 6 00650004 |
| C SYSTEM ENVIRONMENT SECTION 00660004 |
| C 00670004 |
| CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00680004 |
| C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00690004 |
| C (UNIT NUMBER FOR CARD READER). 00700004 |
| CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00710004 |
| C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00720004 |
| C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00730004 |
| C 00740004 |
| CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00750004 |
| C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00760004 |
| C (UNIT NUMBER FOR PRINTER). 00770004 |
| CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00780004 |
| C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00790004 |
| C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00800004 |
| C 00810004 |
| IVPASS=0 00820004 |
| IVFAIL=0 00830004 |
| IVDELE=0 00840004 |
| ICZERO=0 00850004 |
| C 00860004 |
| C WRITE PAGE HEADERS 00870004 |
| WRITE (I02,90000) 00880004 |
| WRITE (I02,90001) 00890004 |
| WRITE (I02,90002) 00900004 |
| WRITE (I02, 90002) 00910004 |
| WRITE (I02,90003) 00920004 |
| WRITE (I02,90002) 00930004 |
| WRITE (I02,90004) 00940004 |
| WRITE (I02,90002) 00950004 |
| WRITE (I02,90011) 00960004 |
| WRITE (I02,90002) 00970004 |
| WRITE (I02,90002) 00980004 |
| WRITE (I02,90005) 00990004 |
| WRITE (I02,90006) 01000004 |
| WRITE (I02,90002) 01010004 |
| C TEST SECTION 01020004 |
| C 01030004 |
| C TESTS 21, 22, AND 23 CONTAIN THE SAME IF STATEMENT BUT THE 01040004 |
| C EXPECTED BRANCH IS TO THE FIRST, SECOND OR THIRD STATEMENT LABEL 01050004 |
| C AS THE INTEGER EXPRESSION IS LESS THAN ZERO, EQUAL TO ZERO, OR 01060004 |
| C GREATER THAN ZERO RESPECTIVELY. 01070004 |
| C 01080004 |
| 211 CONTINUE 01090004 |
| IVTNUM = 21 01100004 |
| C 01110004 |
| C **** TEST 021 **** 01120004 |
| C TEST 21 - ARITHMETIC IF STATEMENT TEST 01130004 |
| C LESS THAN ZERO BRANCH EXPECTED. 01140004 |
| C 01150004 |
| IF (ICZERO) 30210, 210, 30210 01160004 |
| 210 CONTINUE 01170004 |
| IVON01=2 01180004 |
| IF (IVON01 - 3) 212,213,214 01190004 |
| 212 IVON02 = -1 01200004 |
| GO TO 40210 01210004 |
| 213 IVON02 = 0 01220004 |
| GO TO 40210 01230004 |
| 214 IVON02 = 1 01240004 |
| GO TO 40210 01250004 |
| 30210 IVDELE = IVDELE + 1 01260004 |
| WRITE (I02,80003) IVTNUM 01270004 |
| IF (ICZERO) 40210, 221, 40210 01280004 |
| 40210 IF (IVON02) 10210, 20210, 20210 01290004 |
| 10210 IVPASS = IVPASS + 1 01300004 |
| WRITE (I02,80001) IVTNUM 01310004 |
| GO TO 221 01320004 |
| 20210 IVFAIL = IVFAIL + 1 01330004 |
| IVCOMP=IVON02 01340004 |
| IVCORR=-1 01350004 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01360004 |
| 221 CONTINUE 01370004 |
| IVTNUM = 22 01380004 |
| C 01390004 |
| C **** TEST 022 **** 01400004 |
| C TEST 22 - ARITHMETIC IF STATEMENT TEST 01410004 |
| C EQUAL TO ZERO BRANCH EXPECTED 01420004 |
| C 01430004 |
| IF (ICZERO) 30220, 220, 30220 01440004 |
| 220 CONTINUE 01450004 |
| IVON01 = 3 01460004 |
| IF (IVON01 - 3) 222,223,224 01470004 |
| 222 IVON02 = -1 01480004 |
| GO TO 40220 01490004 |
| 223 IVON02 = 0 01500004 |
| GO TO 40220 01510004 |
| 224 IVON02 = 1 01520004 |
| GO TO 40220 01530004 |
| 30220 IVDELE = IVDELE + 1 01540004 |
| WRITE (I02,80003) IVTNUM 01550004 |
| IF (ICZERO) 40220, 231, 40220 01560004 |
| 40220 IF (IVON02) 20220, 10220, 20220 01570004 |
| 10220 IVPASS = IVPASS + 1 01580004 |
| WRITE (I02,80001) IVTNUM 01590004 |
| GO TO 231 01600004 |
| 20220 IVFAIL = IVFAIL + 1 01610004 |
| IVCOMP=IVON02 01620004 |
| IVCORR= 0 01630004 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01640004 |
| 231 CONTINUE 01650004 |
| IVTNUM = 23 01660004 |
| C 01670004 |
| C **** TEST 023 **** 01680004 |
| C TEST 23 - ARITHMETIC IF STATEMENT TEST 01690004 |
| C GREATER THAN ZERO BRANCH EXPECTED 01700004 |
| C 01710004 |
| IF (ICZERO) 30230, 230, 30230 01720004 |
| 230 CONTINUE 01730004 |
| IVON01 = 4 01740004 |
| IF (IVON01 - 3) 232,233,234 01750004 |
| 232 IVON02 = -1 01760004 |
| GO TO 40230 01770004 |
| 233 IVON02 = 0 01780004 |
| GO TO 40230 01790004 |
| 234 IVON02 = 1 01800004 |
| GO TO 40230 01810004 |
| 30230 IVDELE = IVDELE + 1 01820004 |
| WRITE (I02,80003) IVTNUM 01830004 |
| IF (ICZERO) 40230, 241, 40230 01840004 |
| 40230 IF (IVON02) 20230, 20230, 10230 01850004 |
| 10230 IVPASS = IVPASS + 1 01860004 |
| WRITE (I02,80001) IVTNUM 01870004 |
| GO TO 241 01880004 |
| 20230 IVFAIL = IVFAIL + 1 01890004 |
| IVCOMP=IVON02 01900004 |
| IVCORR = 1 01910004 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01920004 |
| C 01930004 |
| C TESTS 24 THROUGH 29 CONTAIN AN IF STATEMENT WITH TWO OF THE 01940004 |
| C THREE BRANCH STATEMENT LABELS EQUAL. 01950004 |
| C 01960004 |
| 241 CONTINUE 01970004 |
| IVTNUM = 24 01980004 |
| C 01990004 |
| C **** TEST 024 **** 02000004 |
| C TEST 24 - ARITHMETIC IF STATEMENT TEST 02010004 |
| C LESS THAN ZERO BRANCH EXPECTED 02020004 |
| C 02030004 |
| IF (ICZERO) 30240, 240, 30240 02040004 |
| 240 CONTINUE 02050004 |
| IVON01=2 02060004 |
| IF (IVON01 - 3) 242,243,242 02070004 |
| 242 IVON02=-1 02080004 |
| GO TO 40240 02090004 |
| 243 IVON02=0 02100004 |
| GO TO 40240 02110004 |
| 30240 IVDELE = IVDELE + 1 02120004 |
| WRITE (I02,80003) IVTNUM 02130004 |
| IF (ICZERO) 40240, 251, 40240 02140004 |
| 40240 IF (IVON02) 10240, 20240, 20240 02150004 |
| 10240 IVPASS = IVPASS + 1 02160004 |
| WRITE (I02,80001) IVTNUM 02170004 |
| GO TO 251 02180004 |
| 20240 IVFAIL = IVFAIL + 1 02190004 |
| IVCOMP=IVON02 02200004 |
| IVCORR=-1 02210004 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02220004 |
| 251 CONTINUE 02230004 |
| IVTNUM = 25 02240004 |
| C 02250004 |
| C **** TEST 025 **** 02260004 |
| C TEST 25 - ARITHMETIC IF STATEMENT TEST 02270004 |
| C EQUAL TO ZERO BRANCH EXPECTED 02280004 |
| C 02290004 |
| IF (ICZERO) 30250, 250, 30250 02300004 |
| 250 CONTINUE 02310004 |
| IVON01=3 02320004 |
| IF (IVON01 - 3) 252,253,252 02330004 |
| 252 IVON02= -1 02340004 |
| GO TO 40250 02350004 |
| 253 IVON02 = 0 02360004 |
| GO TO 40250 02370004 |
| 30250 IVDELE = IVDELE + 1 02380004 |
| WRITE (I02,80003) IVTNUM 02390004 |
| IF (ICZERO) 40250, 261, 40250 02400004 |
| 40250 IF (IVON02) 20250,10250,20250 02410004 |
| 10250 IVPASS = IVPASS + 1 02420004 |
| WRITE (I02,80001) IVTNUM 02430004 |
| GO TO 261 02440004 |
| 20250 IVFAIL = IVFAIL + 1 02450004 |
| IVCOMP=IVON02 02460004 |
| IVCORR=0 02470004 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02480004 |
| 261 CONTINUE 02490004 |
| IVTNUM = 26 02500004 |
| C 02510004 |
| C **** TEST 026 **** 02520004 |
| C TEST 26 - ARITHMETIC IF STATEMENT TEST 02530004 |
| C GREATER THAN ZERO BRANCH EXPECTED 02540004 |
| C 02550004 |
| IF (ICZERO) 30260, 260, 30260 02560004 |
| 260 CONTINUE 02570004 |
| IVON01=4 02580004 |
| IF (IVON01-3) 262, 263, 262 02590004 |
| 262 IVON02= 1 02600004 |
| GO TO 40260 02610004 |
| 263 IVON02 = 0 02620004 |
| GO TO 40260 02630004 |
| 30260 IVDELE = IVDELE + 1 02640004 |
| WRITE (I02,80003) IVTNUM 02650004 |
| IF (ICZERO) 40260, 271, 40260 02660004 |
| 40260 IF (IVON02) 20260, 20260, 10260 02670004 |
| 10260 IVPASS = IVPASS + 1 02680004 |
| WRITE (I02,80001) IVTNUM 02690004 |
| GO TO 271 02700004 |
| 20260 IVFAIL = IVFAIL + 1 02710004 |
| IVCOMP=IVON02 02720004 |
| IVCORR = 1 02730004 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02740004 |
| 271 CONTINUE 02750004 |
| IVTNUM = 27 02760004 |
| C 02770004 |
| C **** TEST 027 **** 02780004 |
| C TEST 27 - ARITHMETIC IF STATEMENT TEST 02790004 |
| C LESS THAN ZERO BRANCH EXPECTED 02800004 |
| C 02810004 |
| IF (ICZERO) 30270, 270, 30270 02820004 |
| 270 CONTINUE 02830004 |
| IVON01 = -4 02840004 |
| IF (IVON01 + 3) 272, 272, 273 02850004 |
| 272 IVON02= -1 02860004 |
| GO TO 40270 02870004 |
| 273 IVON02 = 1 02880004 |
| GO TO 40270 02890004 |
| 30270 IVDELE = IVDELE + 1 02900004 |
| WRITE (I02,80003) IVTNUM 02910004 |
| IF (ICZERO) 40270, 281, 40270 02920004 |
| 40270 IF (IVON02) 10270, 20270, 20270 02930004 |
| 10270 IVPASS = IVPASS + 1 02940004 |
| WRITE (I02,80001) IVTNUM 02950004 |
| GO TO 281 02960004 |
| 20270 IVFAIL = IVFAIL + 1 02970004 |
| IVCOMP=IVON02 02980004 |
| IVCORR= -1 02990004 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03000004 |
| 281 CONTINUE 03010004 |
| IVTNUM = 28 03020004 |
| C 03030004 |
| C **** TEST 028 **** 03040004 |
| C TEST 28 - ARITHMETIC IF STATEMENT TEST 03050004 |
| C EQUAL TO ZERO BRANCH EXPECTED 03060004 |
| C 03070004 |
| IF (ICZERO) 30280, 280, 30280 03080004 |
| 280 CONTINUE 03090004 |
| IVON01 = -3 03100004 |
| IF (IVON01 + 3) 282, 282, 283 03110004 |
| 282 IVON02 = 0 03120004 |
| GO TO 40280 03130004 |
| 283 IVON02 = 1 03140004 |
| GO TO 40280 03150004 |
| 30280 IVDELE = IVDELE + 1 03160004 |
| WRITE (I02,80003) IVTNUM 03170004 |
| IF (ICZERO) 40280, 291, 40280 03180004 |
| 40280 IF (IVON02) 20280, 10280, 20280 03190004 |
| 10280 IVPASS = IVPASS + 1 03200004 |
| WRITE (I02,80001) IVTNUM 03210004 |
| GO TO 291 03220004 |
| 20280 IVFAIL = IVFAIL + 1 03230004 |
| IVCOMP=IVON02 03240004 |
| IVCORR= 0 03250004 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03260004 |
| 291 CONTINUE 03270004 |
| IVTNUM = 29 03280004 |
| C 03290004 |
| C **** TEST 029 **** 03300004 |
| C TEST 29 - ARITHMETIC IF STATEMENT TEST 03310004 |
| C GREATER THAN ZERO BRANCH EXPECTED 03320004 |
| C 03330004 |
| IF (ICZERO) 30290, 290, 30290 03340004 |
| 290 CONTINUE 03350004 |
| IVON01 = -2 03360004 |
| IF (IVON01 + 3) 292,292,293 03370004 |
| 292 IVON02 = -1 03380004 |
| GO TO 40290 03390004 |
| 293 IVON02 = 1 03400004 |
| GO TO 40290 03410004 |
| 30290 IVDELE = IVDELE + 1 03420004 |
| WRITE (I02,80003) IVTNUM 03430004 |
| IF (ICZERO) 40290, 301, 40290 03440004 |
| 40290 IF (IVON02) 20290, 20290, 10290 03450004 |
| 10290 IVPASS = IVPASS + 1 03460004 |
| WRITE (I02,80001) IVTNUM 03470004 |
| GO TO 301 03480004 |
| 20290 IVFAIL = IVFAIL + 1 03490004 |
| IVCOMP= IVON02 03500004 |
| IVCORR = 1 03510004 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03520004 |
| C 03530004 |
| C TESTS 30 AND 31 CONTAIN THE BASIC GO TO STATEMENT TESTS. 03540004 |
| C 03550004 |
| 301 CONTINUE 03560004 |
| IVTNUM = 30 03570004 |
| C 03580004 |
| C **** TEST 030 **** 03590004 |
| C TEST 30 - UNCONDITIONAL GO TO STATEMENT TEST 03600004 |
| C 03610004 |
| IF (ICZERO) 30300, 300, 30300 03620004 |
| 300 CONTINUE 03630004 |
| IVON01 = 1 03640004 |
| GO TO 302 03650004 |
| 303 IVON01 = 2 03660004 |
| GO TO 304 03670004 |
| 302 IVON01 = 3 03680004 |
| GO TO 303 03690004 |
| 304 GO TO 40300 03700004 |
| 30300 IVDELE = IVDELE + 1 03710004 |
| WRITE (I02,80003) IVTNUM 03720004 |
| IF (ICZERO) 40300, 311, 40300 03730004 |
| 40300 IF (IVON01 - 2) 20300,10300,20300 03740004 |
| 10300 IVPASS = IVPASS + 1 03750004 |
| WRITE (I02,80001) IVTNUM 03760004 |
| GO TO 311 03770004 |
| 20300 IVFAIL = IVFAIL + 1 03780004 |
| IVCOMP = IVON01 03790004 |
| IVCORR = 2 03800004 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03810004 |
| 311 CONTINUE 03820004 |
| IVTNUM = 31 03830004 |
| C 03840004 |
| C **** TEST 031 **** 03850004 |
| C TEST 31 - UNCONDITIONAL GO TO STATEMENT TEST 03860004 |
| C 03870004 |
| IF (ICZERO) 30310, 310, 30310 03880004 |
| 310 CONTINUE 03890004 |
| IVON01 = 1 03900004 |
| GO TO 316 03910004 |
| 313 GO TO 317 03920004 |
| 314 IVON01 = 3 03930004 |
| GO TO 40310 03940004 |
| 315 GO TO 313 03950004 |
| 316 GO TO 315 03960004 |
| 317 GO TO 314 03970004 |
| 30310 IVDELE = IVDELE + 1 03980004 |
| WRITE (I02,80003) IVTNUM 03990004 |
| IF (ICZERO) 40310, 321, 40310 04000004 |
| 40310 IF (IVON01 - 3) 20310, 10310, 20310 04010004 |
| 10310 IVPASS = IVPASS + 1 04020004 |
| WRITE (I02,80001) IVTNUM 04030004 |
| GO TO 321 04040004 |
| 20310 IVFAIL = IVFAIL + 1 04050004 |
| IVCOMP=IVON01 04060004 |
| IVCORR = 3 04070004 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04080004 |
| 321 CONTINUE 04090004 |
| IVTNUM = 32 04100004 |
| C 04110004 |
| C **** TEST 032 **** 04120004 |
| C TEST 32 - ARITHMETIC IF STATEMENT AND UNCONDITIONAL GO TO 04130004 |
| C STATEMENT 04140004 |
| C THIS TEST COMBINES THE BASIC ARITHMETIC IF STATEMENTS AND 04150004 |
| C UNCONDITIONAL GO TO STATEMENTS IN ONE TEST. 04160004 |
| C 04170004 |
| IF (ICZERO) 30320, 320, 30320 04180004 |
| 320 CONTINUE 04190004 |
| IVON01 = 1 04200004 |
| GO TO 322 04210004 |
| 324 IVON01 = 2 04220004 |
| IF (IVON01 -1) 323, 323, 325 04230004 |
| 327 IVON01 = 5 04240004 |
| GO TO 328 04250004 |
| 326 IVON01 = -4 04260004 |
| IF (IVON01 + 4) 323, 327, 323 04270004 |
| 322 IF (IVON01 - 1) 323, 324, 323 04280004 |
| 323 GO TO 20320 04290004 |
| 325 IVON01 = 3 04300004 |
| IF (IVON01 -4) 326,323,323 04310004 |
| 328 GO TO 40320 04320004 |
| 30320 IVDELE = IVDELE + 1 04330004 |
| WRITE (I02,80003) IVTNUM 04340004 |
| IF (ICZERO) 40320, 331, 40320 04350004 |
| 40320 IF (IVON01 - 5) 20320, 10320, 20320 04360004 |
| 10320 IVPASS = IVPASS + 1 04370004 |
| WRITE (I02,80001) IVTNUM 04380004 |
| GO TO 331 04390004 |
| 20320 IVFAIL = IVFAIL + 1 04400004 |
| IVCOMP=IVON01 04410004 |
| IVCORR=5 04420004 |
| WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04430004 |
| 331 CONTINUE 04440004 |
| C 04450004 |
| C WRITE PAGE FOOTINGS AND RUN SUMMARIES 04460004 |
| 99999 CONTINUE 04470004 |
| WRITE (I02,90002) 04480004 |
| WRITE (I02,90006) 04490004 |
| WRITE (I02,90002) 04500004 |
| WRITE (I02,90002) 04510004 |
| WRITE (I02,90007) 04520004 |
| WRITE (I02,90002) 04530004 |
| WRITE (I02,90008) IVFAIL 04540004 |
| WRITE (I02,90009) IVPASS 04550004 |
| WRITE (I02,90010) IVDELE 04560004 |
| C 04570004 |
| C 04580004 |
| C TERMINATE ROUTINE EXECUTION 04590004 |
| STOP 04600004 |
| C 04610004 |
| C FORMAT STATEMENTS FOR PAGE HEADERS 04620004 |
| 90000 FORMAT ("1") 04630004 |
| 90002 FORMAT (" ") 04640004 |
| 90001 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 04650004 |
| 90003 FORMAT (" ",21X,"VERSION 2.1" ) 04660004 |
| 90004 FORMAT (" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" ) 04670004 |
| 90005 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT") 04680004 |
| 90006 FORMAT (" ",5X,"----------------------------------------------" ) 04690004 |
| 90011 FORMAT (" ",18X,"SUBSET LEVEL TEST" ) 04700004 |
| C 04710004 |
| C FORMAT STATEMENTS FOR RUN SUMMARIES 04720004 |
| 90008 FORMAT (" ",15X,I5," ERRORS ENCOUNTERED" ) 04730004 |
| 90009 FORMAT (" ",15X,I5," TESTS PASSED" ) 04740004 |
| 90010 FORMAT (" ",15X,I5," TESTS DELETED" ) 04750004 |
| C 04760004 |
| C FORMAT STATEMENTS FOR TEST RESULTS 04770004 |
| 80001 FORMAT (" ",4X,I5,7X,"PASS") 04780004 |
| 80002 FORMAT (" ",4X,I5,7X,"FAIL") 04790004 |
| 80003 FORMAT (" ",4X,I5,7X,"DELETED") 04800004 |
| 80004 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6) 04810004 |
| 80005 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5) 04820004 |
| C 04830004 |
| 90007 FORMAT (" ",20X,"END OF PROGRAM FM004" ) 04840004 |
| END 04850004 |