blob: 36b2e9eb63003f405ec615ccd04595f174753aee [file] [log] [blame]
PROGRAM FM009
C COMMENT SECTION. 00010009
C 00020009
C FM009 00030009
C 00040009
C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050009
C FORM 00060009
C INTEGER VARIABLE = ARITHMETIC EXPRESSION 00070009
C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00080009
C OPERATOR +, INTEGER CONSTANTS AND POSITIVE INTEGER VARIABLES. 00090009
C SOME OF THE TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE 00100009
C ARITHMETIC EXPRESSION. 00110009
C 00120009
C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00130009
C (1) TWO INTEGER VARIABLES, 00140009
C (2) TWO INTEGER VARIABLES AND ONE INTEGER CONSTANT, 00150009
C (3) TWO INTEGER VARIABLES AND ONE INTEGER CONSTANT WITH 00160009
C PARENTHESES TO GROUP ELEMENTS. 00170009
C 00180009
C REFERENCES 00190009
C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00200009
C X3.9-1978 00210009
C 00220009
C SECTION 4.3, INTEGER TYPE 00230009
C SECTION 4.3.1, INTEGER CONSTANT 00240009
C SECTION 6.1, ARITHMETIC EXPRESSIONS 00250009
C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENTS 00260009
C 00270009
C ********************************************************** 00280009
C 00290009
C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00300009
C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00310009
C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00320009
C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00330009
C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00340009
C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00350009
C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00360009
C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00370009
C OF EXECUTING THESE TESTS. 00380009
C 00390009
C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00400009
C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00410009
C 00420009
C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00430009
C 00440009
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY 00450009
C SOFTWARE STANDARDS VALIDATION GROUP 00460009
C BUILDING 225 RM A266 00470009
C GAITHERSBURG, MD 20899 00480009
C ********************************************************** 00490009
C 00500009
C 00510009
C 00520009
C INITIALIZATION SECTION 00530009
C 00540009
C INITIALIZE CONSTANTS 00550009
C ************** 00560009
C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00570009
I01 = 5 00580009
C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00590009
I02 = 6 00600009
C SYSTEM ENVIRONMENT SECTION 00610009
C 00620009
CX010 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-010 CONTROL CARD. 00630009
C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00640009
C (UNIT NUMBER FOR CARD READER). 00650009
CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00660009
C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00670009
C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00680009
C 00690009
CX020 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-020 CONTROL CARD. 00700009
C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00710009
C (UNIT NUMBER FOR PRINTER). 00720009
CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00730009
C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00740009
C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00750009
C 00760009
IVPASS=0 00770009
IVFAIL=0 00780009
IVDELE=0 00790009
ICZERO=0 00800009
C 00810009
C WRITE PAGE HEADERS 00820009
WRITE (I02,90000) 00830009
WRITE (I02,90001) 00840009
WRITE (I02,90002) 00850009
WRITE (I02, 90002) 00860009
WRITE (I02,90003) 00870009
WRITE (I02,90002) 00880009
WRITE (I02,90004) 00890009
WRITE (I02,90002) 00900009
WRITE (I02,90011) 00910009
WRITE (I02,90002) 00920009
WRITE (I02,90002) 00930009
WRITE (I02,90005) 00940009
WRITE (I02,90006) 00950009
WRITE (I02,90002) 00960009
C 00970009
C TEST SECTION 00980009
C 00990009
C ARITHMETIC ASSIGNMENT STATEMENT 01000009
C 01010009
C TEST 235 THROUGH TEST 243 CONTAIN TWO POSITIVE INTEGER VARIABLES 01020009
C AND OPERATOR + IN ARITHMETIC EXPRESSION. 01030009
C 01040009
2351 CONTINUE 01050009
IVTNUM = 235 01060009
C 01070009
C **** TEST 235 **** 01080009
C 01090009
IF (ICZERO) 32350, 2350, 32350 01100009
2350 CONTINUE 01110009
IVON01 = 2 01120009
IVON02 = 3 01130009
IVCOMP = IVON01 + IVON02 01140009
GO TO 42350 01150009
32350 IVDELE = IVDELE + 1 01160009
WRITE (I02,80003) IVTNUM 01170009
IF (ICZERO) 42350, 2361, 42350 01180009
42350 IF (IVCOMP - 5) 22350,12350,22350 01190009
12350 IVPASS = IVPASS + 1 01200009
WRITE (I02,80001) IVTNUM 01210009
GO TO 2361 01220009
22350 IVFAIL = IVFAIL + 1 01230009
IVCORR = 5 01240009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01250009
2361 CONTINUE 01260009
IVTNUM = 236 01270009
C 01280009
C **** TEST 236 **** 01290009
C 01300009
IF (ICZERO) 32360, 2360, 32360 01310009
2360 CONTINUE 01320009
IVON01 = 2 01330009
IVON02 = 3 01340009
IVCOMP = IVON02 + IVON01 01350009
GO TO 42360 01360009
32360 IVDELE = IVDELE + 1 01370009
WRITE (I02,80003) IVTNUM 01380009
IF (ICZERO) 42360, 2371, 42360 01390009
42360 IF (IVCOMP - 5) 22360, 12360, 22360 01400009
12360 IVPASS = IVPASS + 1 01410009
WRITE (I02,80001) IVTNUM 01420009
GO TO 2371 01430009
22360 IVFAIL = IVFAIL + 1 01440009
IVCORR = 5 01450009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01460009
2371 CONTINUE 01470009
IVTNUM = 237 01480009
C 01490009
C **** TEST 237 **** 01500009
C 01510009
IF (ICZERO) 32370, 2370, 32370 01520009
2370 CONTINUE 01530009
IVON01 = 51 01540009
IVON02 = 52 01550009
IVCOMP = IVON01 + IVON02 01560009
GO TO 42370 01570009
32370 IVDELE = IVDELE + 1 01580009
WRITE (I02,80003) IVTNUM 01590009
IF (ICZERO) 42370, 2381, 42370 01600009
42370 IF (IVCOMP - 103) 22370, 12370, 22370 01610009
12370 IVPASS = IVPASS + 1 01620009
WRITE (I02,80001) IVTNUM 01630009
GO TO 2381 01640009
22370 IVFAIL = IVFAIL + 1 01650009
IVCORR = 103 01660009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01670009
2381 CONTINUE 01680009
IVTNUM = 238 01690009
C 01700009
C **** TEST 238 **** 01710009
C 01720009
IF (ICZERO) 32380, 2380, 32380 01730009
2380 CONTINUE 01740009
IVON01 = 189 01750009
IVON02 = 676 01760009
IVCOMP = IVON01 + IVON02 01770009
GO TO 42380 01780009
32380 IVDELE = IVDELE + 1 01790009
WRITE (I02,80003) IVTNUM 01800009
IF (ICZERO) 42380, 2391, 42380 01810009
42380 IF (IVCOMP - 865) 22380, 12380, 22380 01820009
12380 IVPASS = IVPASS + 1 01830009
WRITE (I02,80001) IVTNUM 01840009
GO TO 2391 01850009
22380 IVFAIL = IVFAIL + 1 01860009
IVCORR = 865 01870009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01880009
2391 CONTINUE 01890009
IVTNUM = 239 01900009
C 01910009
C **** TEST 239 **** 01920009
C 01930009
IF (ICZERO) 32390, 2390, 32390 01940009
2390 CONTINUE 01950009
IVON01 = 1358 01960009
IVON02 = 8001 01970009
IVCOMP = IVON01 + IVON02 01980009
GO TO 42390 01990009
32390 IVDELE = IVDELE + 1 02000009
WRITE (I02,80003) IVTNUM 02010009
IF (ICZERO) 42390, 2401, 42390 02020009
42390 IF (IVCOMP - 9359) 22390, 12390, 22390 02030009
12390 IVPASS = IVPASS + 1 02040009
WRITE (I02,80001) IVTNUM 02050009
GO TO 2401 02060009
22390 IVFAIL = IVFAIL + 1 02070009
IVCORR = 9359 02080009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02090009
2401 CONTINUE 02100009
IVTNUM = 240 02110009
C 02120009
C **** TEST 240 **** 02130009
C 02140009
IF (ICZERO) 32400, 2400, 32400 02150009
2400 CONTINUE 02160009
IVON01 = 1358 02170009
IVON02 = 8001 02180009
IVCOMP = IVON02 + IVON01 02190009
GO TO 42400 02200009
32400 IVDELE = IVDELE + 1 02210009
WRITE (I02,80003) IVTNUM 02220009
IF (ICZERO) 42400, 2411, 42400 02230009
42400 IF (IVCOMP - 9359) 22400, 12400, 22400 02240009
12400 IVPASS = IVPASS + 1 02250009
WRITE (I02,80001) IVTNUM 02260009
GO TO 2411 02270009
22400 IVFAIL = IVFAIL + 1 02280009
IVCORR = 9359 02290009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02300009
2411 CONTINUE 02310009
IVTNUM = 241 02320009
C 02330009
C **** TEST 241 **** 02340009
C 02350009
IF (ICZERO) 32410, 2410, 32410 02360009
2410 CONTINUE 02370009
IVON01 = 11112 02380009
IVON02 = 10001 02390009
IVCOMP = IVON01 + IVON02 02400009
GO TO 42410 02410009
32410 IVDELE = IVDELE + 1 02420009
WRITE (I02,80003) IVTNUM 02430009
IF (ICZERO) 42410, 2421, 42410 02440009
42410 IF (IVCOMP - 21113) 22410, 12410, 22410 02450009
12410 IVPASS = IVPASS + 1 02460009
WRITE (I02,80001) IVTNUM 02470009
GO TO 2421 02480009
22410 IVFAIL = IVFAIL + 1 02490009
IVCORR = 21113 02500009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02510009
2421 CONTINUE 02520009
IVTNUM = 242 02530009
C 02540009
C **** TEST 242 **** 02550009
C 02560009
IF (ICZERO) 32420, 2420, 32420 02570009
2420 CONTINUE 02580009
IVON01 = 189 02590009
IVON02 = 9876 02600009
IVCOMP = IVON01 + IVON02 02610009
GO TO 42420 02620009
32420 IVDELE = IVDELE + 1 02630009
WRITE (I02,80003) IVTNUM 02640009
IF (ICZERO) 42420, 2431, 42420 02650009
42420 IF (IVCOMP - 10065) 22420, 12420, 22420 02660009
12420 IVPASS = IVPASS + 1 02670009
WRITE (I02,80001) IVTNUM 02680009
GO TO 2431 02690009
22420 IVFAIL = IVFAIL + 1 02700009
IVCORR = 10065 02710009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02720009
2431 CONTINUE 02730009
IVTNUM = 243 02740009
C 02750009
C **** TEST 243 **** 02760009
C REQUIRES 32767 02770009
C 02780009
IF (ICZERO) 32430, 2430, 32430 02790009
2430 CONTINUE 02800009
IVON01 = 16383 02810009
IVON02 = 16384 02820009
IVCOMP = IVON01 + IVON02 02830009
GO TO 42430 02840009
32430 IVDELE = IVDELE + 1 02850009
WRITE (I02,80003) IVTNUM 02860009
IF (ICZERO) 42430, 2441, 42430 02870009
42430 IF (IVCOMP - 32767) 22430, 12430, 22430 02880009
12430 IVPASS = IVPASS + 1 02890009
WRITE (I02,80001) IVTNUM 02900009
GO TO 2441 02910009
22430 IVFAIL = IVFAIL + 1 02920009
IVCORR = 32767 02930009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02940009
C 02950009
C TEST 244 THROUGH TEST 250 CONTAIN TWO POSITIVE INTEGER VARIABLES, 02960009
C ONE INTEGER CONSTANT, AND OPERATOR + IN ARITHMETIC EXPRESSION. 02970009
C 02980009
2441 CONTINUE 02990009
IVTNUM = 244 03000009
C 03010009
C **** TEST 244 **** 03020009
C 03030009
IF (ICZERO) 32440, 2440, 32440 03040009
2440 CONTINUE 03050009
IVON01 = 2 03060009
IVON02 = 3 03070009
IVCOMP = IVON01 + IVON02 + 4 03080009
GO TO 42440 03090009
32440 IVDELE = IVDELE + 1 03100009
WRITE (I02,80003) IVTNUM 03110009
IF (ICZERO) 42440, 2451, 42440 03120009
42440 IF (IVCOMP - 9) 22440, 12440, 22440 03130009
12440 IVPASS = IVPASS + 1 03140009
WRITE (I02,80001) IVTNUM 03150009
GO TO 2451 03160009
22440 IVFAIL = IVFAIL + 1 03170009
IVCORR = 9 03180009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03190009
2451 CONTINUE 03200009
IVTNUM = 245 03210009
C 03220009
C **** TEST 245 **** 03230009
C 03240009
IF (ICZERO) 32450, 2450, 32450 03250009
2450 CONTINUE 03260009
IVON01 = 2 03270009
IVON03 = 4 03280009
IVCOMP = IVON01 +3 + IVON03 03290009
GO TO 42450 03300009
32450 IVDELE = IVDELE + 1 03310009
WRITE (I02,80003) IVTNUM 03320009
IF (ICZERO) 42450, 2461, 42450 03330009
42450 IF (IVCOMP - 9) 22450, 12450, 22450 03340009
12450 IVPASS = IVPASS + 1 03350009
WRITE (I02,80001) IVTNUM 03360009
GO TO 2461 03370009
22450 IVFAIL = IVFAIL + 1 03380009
IVCORR = 9 03390009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03400009
2461 CONTINUE 03410009
IVTNUM = 246 03420009
C 03430009
C **** TEST 246 **** 03440009
C 03450009
IF (ICZERO) 32460, 2460, 32460 03460009
2460 CONTINUE 03470009
IVON02 = 3 03480009
IVON03 = 4 03490009
IVCOMP = 2 + IVON02 + IVON03 03500009
GO TO 42460 03510009
32460 IVDELE = IVDELE + 1 03520009
WRITE (I02,80003) IVTNUM 03530009
IF (ICZERO) 42460, 2471, 42460 03540009
42460 IF (IVCOMP - 9) 22460, 12460, 22460 03550009
12460 IVPASS = IVPASS + 1 03560009
WRITE (I02,80001) IVTNUM 03570009
GO TO 2471 03580009
22460 IVFAIL = IVFAIL + 1 03590009
IVCORR = 9 03600009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03610009
2471 CONTINUE 03620009
IVTNUM = 247 03630009
C 03640009
C **** TEST 247 **** 03650009
C 03660009
IF (ICZERO) 32470, 2470, 32470 03670009
2470 CONTINUE 03680009
IVON01 = 51 03690009
IVON03 = 53 03700009
IVCOMP = IVON01 +52 + IVON03 03710009
GO TO 42470 03720009
32470 IVDELE = IVDELE + 1 03730009
WRITE (I02,80003) IVTNUM 03740009
IF (ICZERO) 42470, 2481, 42470 03750009
42470 IF (IVCOMP - 156) 22470, 12470, 22470 03760009
12470 IVPASS = IVPASS + 1 03770009
WRITE (I02,80001) IVTNUM 03780009
GO TO 2481 03790009
22470 IVFAIL = IVFAIL + 1 03800009
IVCORR = 156 03810009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03820009
2481 CONTINUE 03830009
IVTNUM = 248 03840009
C 03850009
C **** TEST 248 **** 03860009
C 03870009
IF (ICZERO) 32480, 2480, 32480 03880009
2480 CONTINUE 03890009
IVON02 = 676 03900009
IVON03 = 101 03910009
IVCOMP = 189 + IVON02 + IVON03 03920009
GO TO 42480 03930009
32480 IVDELE = IVDELE + 1 03940009
WRITE (I02,80003) IVTNUM 03950009
IF (ICZERO) 42480, 2491, 42480 03960009
42480 IF (IVCOMP - 966) 22480, 12480, 22480 03970009
12480 IVPASS = IVPASS + 1 03980009
WRITE (I02,80001) IVTNUM 03990009
GO TO 2491 04000009
22480 IVFAIL = IVFAIL + 1 04010009
IVCORR = 966 04020009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04030009
2491 CONTINUE 04040009
IVTNUM = 249 04050009
C 04060009
C **** TEST 249 **** 04070009
C 04080009
IF (ICZERO) 32490, 2490, 32490 04090009
2490 CONTINUE 04100009
IVON01 = 1358 04110009
IVON02 = 8001 04120009
IVCOMP = IVON01 + IVON02 + 2189 04130009
GO TO 42490 04140009
32490 IVDELE = IVDELE + 1 04150009
WRITE (I02,80003) IVTNUM 04160009
IF (ICZERO) 42490, 2501, 42490 04170009
42490 IF (IVCOMP - 11548) 22490, 12490, 22490 04180009
12490 IVPASS = IVPASS + 1 04190009
WRITE (I02,80001) IVTNUM 04200009
GO TO 2501 04210009
22490 IVFAIL = IVFAIL + 1 04220009
IVCORR = 11548 04230009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04240009
2501 CONTINUE 04250009
IVTNUM = 250 04260009
C 04270009
C **** TEST 250 **** 04280009
C REQUIRES 32767 04290009
C 04300009
IF (ICZERO) 32500, 2500, 32500 04310009
2500 CONTINUE 04320009
IVON01 = 16383 04330009
IVON03 = 4 04340009
IVCOMP = IVON01 + 16380 + IVON03 04350009
GO TO 42500 04360009
32500 IVDELE = IVDELE + 1 04370009
WRITE (I02,80003) IVTNUM 04380009
IF (ICZERO) 42500, 2511, 42500 04390009
42500 IF (IVCOMP - 32767) 22500,12500,22500 04400009
12500 IVPASS = IVPASS + 1 04410009
WRITE (I02,80001) IVTNUM 04420009
GO TO 2511 04430009
22500 IVFAIL = IVFAIL + 1 04440009
IVCORR = 32767 04450009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04460009
C 04470009
C TEST 251 THROUGH TEST 264 CONTAIN TWO POSITIVE INTEGER VARIABLES, 04480009
C ONE INTEGER CONSTANT, AND OPERATOR + IN ARITHMETIC EXPRESSION. 04490009
C PARENTHESES ARE USED TO GROUP ELEMENTS. THE RESULTS ARE THE SAME 04500009
C AS TESTS 244 THROUGH 250. 04510009
C 04520009
2511 CONTINUE 04530009
IVTNUM = 251 04540009
C 04550009
C **** TEST 251 **** 04560009
C 04570009
IF (ICZERO) 32510, 2510, 32510 04580009
2510 CONTINUE 04590009
IVON01 = 2 04600009
IVON02 = 3 04610009
IVCOMP = (IVON01 + IVON02) + 4 04620009
GO TO 42510 04630009
32510 IVDELE = IVDELE + 1 04640009
WRITE (I02,80003) IVTNUM 04650009
IF (ICZERO) 42510, 2521, 42510 04660009
42510 IF (IVCOMP - 9) 22510,12510,22510 04670009
12510 IVPASS = IVPASS + 1 04680009
WRITE (I02,80001) IVTNUM 04690009
GO TO 2521 04700009
22510 IVFAIL = IVFAIL + 1 04710009
IVCORR = 9 04720009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04730009
2521 CONTINUE 04740009
IVTNUM = 252 04750009
C 04760009
C **** TEST 252 **** 04770009
C 04780009
IF (ICZERO) 32520, 2520, 32520 04790009
2520 CONTINUE 04800009
IVON02 = 3 04810009
IVON03 = 4 04820009
IVCOMP = 2 + (IVON02 + IVON03) 04830009
GO TO 42520 04840009
32520 IVDELE = IVDELE + 1 04850009
WRITE (I02,80003) IVTNUM 04860009
IF (ICZERO) 42520, 2531, 42520 04870009
42520 IF (IVCOMP - 9) 22520,12520,22520 04880009
12520 IVPASS = IVPASS + 1 04890009
WRITE (I02,80001) IVTNUM 04900009
GO TO 2531 04910009
22520 IVFAIL = IVFAIL + 1 04920009
IVCORR = 9 04930009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04940009
2531 CONTINUE 04950009
IVTNUM = 253 04960009
C 04970009
C **** TEST 253 **** 04980009
C 04990009
IF (ICZERO) 32530, 2530, 32530 05000009
2530 CONTINUE 05010009
IVON02 =3 05020009
IVON03 =4 05030009
IVCOMP = (2+IVON02)+IVON03 05040009
GO TO 42530 05050009
32530 IVDELE = IVDELE + 1 05060009
WRITE (I02,80003) IVTNUM 05070009
IF (ICZERO) 42530, 2541, 42530 05080009
42530 IF (IVCOMP -9) 22530,12530,22530 05090009
12530 IVPASS = IVPASS + 1 05100009
WRITE (I02,80001) IVTNUM 05110009
GO TO 2541 05120009
22530 IVFAIL = IVFAIL + 1 05130009
IVCORR =9 05140009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05150009
2541 CONTINUE 05160009
IVTNUM = 254 05170009
C 05180009
C **** TEST 254 **** 05190009
C 05200009
IF (ICZERO) 32540, 2540, 32540 05210009
2540 CONTINUE 05220009
IVON01 = 2 05230009
IVON02 = 3 05240009
IVCOMP = IVON01 + (IVON02 + 4) 05250009
GO TO 42540 05260009
32540 IVDELE = IVDELE + 1 05270009
WRITE (I02,80003) IVTNUM 05280009
IF (ICZERO) 42540, 2551, 42540 05290009
42540 IF (IVCOMP-9)22540,12540,22540 05300009
12540 IVPASS = IVPASS + 1 05310009
WRITE (I02,80001) IVTNUM 05320009
GO TO 2551 05330009
22540 IVFAIL = IVFAIL + 1 05340009
IVCORR=9 05350009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05360009
2551 CONTINUE 05370009
IVTNUM = 255 05380009
C 05390009
C **** TEST 255 **** 05400009
C 05410009
IF (ICZERO) 32550, 2550, 32550 05420009
2550 CONTINUE 05430009
IVON01 = 2 05440009
IVON03 = 4 05450009
IVCOMP = IVON01 +(3+IVON03) 05460009
GO TO 42550 05470009
32550 IVDELE = IVDELE + 1 05480009
WRITE (I02,80003) IVTNUM 05490009
IF (ICZERO) 42550, 2561, 42550 05500009
42550 IF (IVCOMP-9)22550,12550,22550 05510009
12550 IVPASS = IVPASS + 1 05520009
WRITE (I02,80001) IVTNUM 05530009
GO TO 2561 05540009
22550 IVFAIL = IVFAIL + 1 05550009
IVCORR =9 05560009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05570009
2561 CONTINUE 05580009
IVTNUM = 256 05590009
C 05600009
C **** TEST 256 **** 05610009
C 05620009
IF (ICZERO) 32560, 2560, 32560 05630009
2560 CONTINUE 05640009
IVON01 = 2 05650009
IVON03 = 4 05660009
IVCOMP =(IVON01+3)+IVON03 05670009
GO TO 42560 05680009
32560 IVDELE = IVDELE + 1 05690009
WRITE (I02,80003) IVTNUM 05700009
IF (ICZERO) 42560, 2571, 42560 05710009
42560 IF (IVCOMP-9) 22560,12560,22560 05720009
12560 IVPASS = IVPASS + 1 05730009
WRITE (I02,80001) IVTNUM 05740009
GO TO 2571 05750009
22560 IVFAIL = IVFAIL + 1 05760009
IVCORR =9 05770009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05780009
2571 CONTINUE 05790009
IVTNUM = 257 05800009
C 05810009
C **** TEST 257 **** 05820009
C 05830009
IF (ICZERO) 32570, 2570, 32570 05840009
2570 CONTINUE 05850009
IVON01 = 51 05860009
IVON03 = 53 05870009
IVCOMP=IVON01+(52+IVON03) 05880009
GO TO 42570 05890009
32570 IVDELE = IVDELE + 1 05900009
WRITE (I02,80003) IVTNUM 05910009
IF (ICZERO) 42570, 2581, 42570 05920009
42570 IF (IVCOMP -156) 22570,12570,22570 05930009
12570 IVPASS = IVPASS + 1 05940009
WRITE (I02,80001) IVTNUM 05950009
GO TO 2581 05960009
22570 IVFAIL = IVFAIL + 1 05970009
IVCORR = 156 05980009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05990009
2581 CONTINUE 06000009
IVTNUM = 258 06010009
C 06020009
C **** TEST 258 **** 06030009
C 06040009
IF (ICZERO) 32580, 2580, 32580 06050009
2580 CONTINUE 06060009
IVON01 = 51 06070009
IVON03 = 53 06080009
IVCOMP =(IVON01+52)+IVON03 06090009
GO TO 42580 06100009
32580 IVDELE = IVDELE + 1 06110009
WRITE (I02,80003) IVTNUM 06120009
IF (ICZERO) 42580, 2591, 42580 06130009
42580 IF (IVCOMP-156) 22580,12580,22580 06140009
12580 IVPASS = IVPASS + 1 06150009
WRITE (I02,80001) IVTNUM 06160009
GO TO 2591 06170009
22580 IVFAIL = IVFAIL + 1 06180009
IVCORR = 156 06190009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06200009
2591 CONTINUE 06210009
IVTNUM = 259 06220009
C 06230009
C **** TEST 259 **** 06240009
C 06250009
IF (ICZERO) 32590, 2590, 32590 06260009
2590 CONTINUE 06270009
IVON02 = 676 06280009
IVON03 = 101 06290009
IVCOMP = 189+(IVON02+IVON03) 06300009
GO TO 42590 06310009
32590 IVDELE = IVDELE + 1 06320009
WRITE (I02,80003) IVTNUM 06330009
IF (ICZERO) 42590, 2601, 42590 06340009
42590 IF (IVCOMP -966) 22590,12590,22590 06350009
12590 IVPASS = IVPASS + 1 06360009
WRITE (I02,80001) IVTNUM 06370009
GO TO 2601 06380009
22590 IVFAIL = IVFAIL + 1 06390009
IVCORR =966 06400009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06410009
2601 CONTINUE 06420009
IVTNUM = 260 06430009
C 06440009
C **** TEST 260 **** 06450009
C 06460009
IF (ICZERO) 32600, 2600, 32600 06470009
2600 CONTINUE 06480009
IVON02 = 676 06490009
IVON03 = 101 06500009
IVCOMP = (189 + IVON02) + IVON03 06510009
GO TO 42600 06520009
32600 IVDELE = IVDELE + 1 06530009
WRITE (I02,80003) IVTNUM 06540009
IF (ICZERO) 42600, 2611, 42600 06550009
42600 IF (IVCOMP-966) 22600,12600,22600 06560009
12600 IVPASS = IVPASS + 1 06570009
WRITE (I02,80001) IVTNUM 06580009
GO TO 2611 06590009
22600 IVFAIL = IVFAIL + 1 06600009
IVCORR=966 06610009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06620009
2611 CONTINUE 06630009
IVTNUM = 261 06640009
C 06650009
C **** TEST 261 **** 06660009
C 06670009
IF (ICZERO) 32610, 2610, 32610 06680009
2610 CONTINUE 06690009
IVON01 = 1358 06700009
IVON02 = 8001 06710009
IVCOMP = IVON01 + (IVON02 + 2189) 06720009
GO TO 42610 06730009
32610 IVDELE = IVDELE + 1 06740009
WRITE (I02,80003) IVTNUM 06750009
IF (ICZERO) 42610, 2621, 42610 06760009
42610 IF (IVCOMP-11548) 22610,12610,22610 06770009
12610 IVPASS = IVPASS + 1 06780009
WRITE (I02,80001) IVTNUM 06790009
GO TO 2621 06800009
22610 IVFAIL = IVFAIL + 1 06810009
IVCORR=11548 06820009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06830009
2621 CONTINUE 06840009
IVTNUM = 262 06850009
C 06860009
C **** TEST 262 **** 06870009
C 06880009
IF (ICZERO) 32620, 2620, 32620 06890009
2620 CONTINUE 06900009
IVON01 = 1358 06910009
IVON02 = 8001 06920009
IVCOMP =(IVON01+IVON02)+2189 06930009
GO TO 42620 06940009
32620 IVDELE = IVDELE + 1 06950009
WRITE (I02,80003) IVTNUM 06960009
IF (ICZERO) 42620, 2631, 42620 06970009
42620 IF (IVCOMP-11548) 22620,12620,22620 06980009
12620 IVPASS = IVPASS + 1 06990009
WRITE (I02,80001) IVTNUM 07000009
GO TO 2631 07010009
22620 IVFAIL = IVFAIL + 1 07020009
IVCORR=11548 07030009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07040009
2631 CONTINUE 07050009
IVTNUM = 263 07060009
C 07070009
C **** TEST 263 **** 07080009
C REQUIRES 32767 07090009
C 07100009
IF (ICZERO) 32630, 2630, 32630 07110009
2630 CONTINUE 07120009
IVON01 = 16383 07130009
IVON03 = 16380 07140009
IVCOMP = IVON01 + (4+IVON03) 07150009
GO TO 42630 07160009
32630 IVDELE = IVDELE + 1 07170009
WRITE (I02,80003) IVTNUM 07180009
IF (ICZERO) 42630, 2641, 42630 07190009
42630 IF (IVCOMP-32767) 22630,12630,22630 07200009
12630 IVPASS = IVPASS + 1 07210009
WRITE (I02,80001) IVTNUM 07220009
GO TO 2641 07230009
22630 IVFAIL = IVFAIL + 1 07240009
IVCORR =32767 07250009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07260009
2641 CONTINUE 07270009
IVTNUM = 264 07280009
C 07290009
C **** TEST 264 **** 07300009
C REQUIRES 32767 07310009
C 07320009
IF (ICZERO) 32640, 2640, 32640 07330009
2640 CONTINUE 07340009
IVON01 = 16383 07350009
IVON02 = 16380 07360009
IVCOMP = (IVON01+IVON02) +4 07370009
GO TO 42640 07380009
32640 IVDELE = IVDELE + 1 07390009
WRITE (I02,80003) IVTNUM 07400009
IF (ICZERO) 42640, 2651, 42640 07410009
42640 IF (IVCOMP - 32767) 22640,12640,22640 07420009
12640 IVPASS = IVPASS + 1 07430009
WRITE (I02,80001) IVTNUM 07440009
GO TO 2651 07450009
22640 IVFAIL = IVFAIL + 1 07460009
IVCORR = 32767 07470009
WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07480009
2651 CONTINUE 07490009
C 07500009
C WRITE PAGE FOOTINGS AND RUN SUMMARIES 07510009
99999 CONTINUE 07520009
WRITE (I02,90002) 07530009
WRITE (I02,90006) 07540009
WRITE (I02,90002) 07550009
WRITE (I02,90002) 07560009
WRITE (I02,90007) 07570009
WRITE (I02,90002) 07580009
WRITE (I02,90008) IVFAIL 07590009
WRITE (I02,90009) IVPASS 07600009
WRITE (I02,90010) IVDELE 07610009
C 07620009
C 07630009
C TERMINATE ROUTINE EXECUTION 07640009
STOP 07650009
C 07660009
C FORMAT STATEMENTS FOR PAGE HEADERS 07670009
90000 FORMAT ("1") 07680009
90002 FORMAT (" ") 07690009
90001 FORMAT (" ",10X,"FORTRAN COMPILER VALIDATION SYSTEM" ) 07700009
90003 FORMAT (" ",21X,"VERSION 2.1" ) 07710009
90004 FORMAT (" ",10X,"FOR OFFICIAL USE ONLY - COPYRIGHT 1978" ) 07720009
90005 FORMAT (" ",5X,"TEST",5X,"PASS/FAIL", 5X,"COMPUTED",8X,"CORRECT") 07730009
90006 FORMAT (" ",5X,"----------------------------------------------" ) 07740009
90011 FORMAT (" ",18X,"SUBSET LEVEL TEST" ) 07750009
C 07760009
C FORMAT STATEMENTS FOR RUN SUMMARIES 07770009
90008 FORMAT (" ",15X,I5," ERRORS ENCOUNTERED" ) 07780009
90009 FORMAT (" ",15X,I5," TESTS PASSED" ) 07790009
90010 FORMAT (" ",15X,I5," TESTS DELETED" ) 07800009
C 07810009
C FORMAT STATEMENTS FOR TEST RESULTS 07820009
80001 FORMAT (" ",4X,I5,7X,"PASS") 07830009
80002 FORMAT (" ",4X,I5,7X,"FAIL") 07840009
80003 FORMAT (" ",4X,I5,7X,"DELETED") 07850009
80004 FORMAT (" ",4X,I5,7X,"FAIL",10X,I6,9X,I6) 07860009
80005 FORMAT (" ",4X,I5,7X,"FAIL",4X,E12.5,3X,E12.5) 07870009
C 07880009
90007 FORMAT (" ",20X,"END OF PROGRAM FM009" ) 07890009
END 07900009