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