|
|
1.1 ! root 1: C COMMENT SECTION 00010039 ! 2: C DATE***82/08/02*18.33.46 ! 3: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/ ! 4: C AUDIT FCVS78 V2.0 ! 5: C 00020039 ! 6: C FM039 00030039 ! 7: C 00040039 ! 8: C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050039 ! 9: C FORM INTEGER VARIABLE = ARITHMETIC EXPRESSION 00060039 ! 10: C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00070039 ! 11: C OPERATOR /, INTEGER CONSTANTS AND AN INTEGER VARIABLE. BOTH 00080039 ! 12: C POSITIVE AND NEGATIVE VALUES ARE USED FOR THE INTEGER CONSTANTS 00090039 ! 13: C AND THE INTEGER VARIABLE. 00100039 ! 14: C 00110039 ! 15: C THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT 00120039 ! 16: C AND TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED 00130039 ! 17: C IN THE RESULTANT INTEGER VARIABLE. SOME OF THE TESTS USE PARENS 00140039 ! 18: C TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSION. 00150039 ! 19: C 00160039 ! 20: C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00170039 ! 21: C (1) INTEGER VARIABLE/INTEGER CONSTANT/INTEGER CONSTANT 00180039 ! 22: C INTEGER CONSTANT/INTEGER VARIABLE/INTEGER CONSTANT 00190039 ! 23: C INTEGER CONSTANT/INTEGER CONSTANT/INTEGER VARIABLE 00200039 ! 24: C (2) SAME AS (1) BUT WITH PARENTHESES TO GROUP ELEMENTS 00210039 ! 25: C IN THE ARITHMETIC EXPRESSION. 00220039 ! 26: C 00230039 ! 27: C REFERENCES 00240039 ! 28: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00250039 ! 29: C X3.9-1978 00260039 ! 30: C 00270039 ! 31: C SECTION 4.3, INTEGER TYPE 00280039 ! 32: C SECTION 4.3.1, INTEGER CONSTANT 00290039 ! 33: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00300039 ! 34: C SECTION 6.6, EVALUATION OF EXPRESSIONS 00310039 ! 35: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00320039 ! 36: C 00330039 ! 37: C ********************************************************** 00340039 ! 38: C 00350039 ! 39: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00360039 ! 40: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00370039 ! 41: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00380039 ! 42: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00390039 ! 43: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00400039 ! 44: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00410039 ! 45: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00420039 ! 46: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00430039 ! 47: C OF EXECUTING THESE TESTS. 00440039 ! 48: C 00450039 ! 49: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00460039 ! 50: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00470039 ! 51: C 00480039 ! 52: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00490039 ! 53: C 00500039 ! 54: C DEPARTMENT OF THE NAVY 00510039 ! 55: C FEDERAL COBOL COMPILER TESTING SERVICE 00520039 ! 56: C WASHINGTON, D.C. 20376 00530039 ! 57: C 00540039 ! 58: C ********************************************************** 00550039 ! 59: C 00560039 ! 60: C 00570039 ! 61: C 00580039 ! 62: C INITIALIZATION SECTION 00590039 ! 63: C 00600039 ! 64: C INITIALIZE CONSTANTS 00610039 ! 65: C ************** 00620039 ! 66: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00630039 ! 67: I01 = 5 00640039 ! 68: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00650039 ! 69: I02 = 6 00660039 ! 70: C SYSTEM ENVIRONMENT SECTION 00670039 ! 71: C 00680039 ! 72: I01 = 5 00690039 ! 73: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00700039 ! 74: C (UNIT NUMBER FOR CARD READER). 00710039 ! 75: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00720039 ! 76: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00730039 ! 77: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00740039 ! 78: C 00750039 ! 79: I02 = 6 00760039 ! 80: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00770039 ! 81: C (UNIT NUMBER FOR PRINTER). 00780039 ! 82: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00790039 ! 83: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00800039 ! 84: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00810039 ! 85: C 00820039 ! 86: IVPASS=0 00830039 ! 87: IVFAIL=0 00840039 ! 88: IVDELE=0 00850039 ! 89: ICZERO=0 00860039 ! 90: C 00870039 ! 91: C WRITE PAGE HEADERS 00880039 ! 92: WRITE (I02,90000) 00890039 ! 93: WRITE (I02,90001) 00900039 ! 94: WRITE (I02,90002) 00910039 ! 95: WRITE (I02, 90002) 00920039 ! 96: WRITE (I02,90003) 00930039 ! 97: WRITE (I02,90002) 00940039 ! 98: WRITE (I02,90004) 00950039 ! 99: WRITE (I02,90002) 00960039 ! 100: WRITE (I02,90011) 00970039 ! 101: WRITE (I02,90002) 00980039 ! 102: WRITE (I02,90002) 00990039 ! 103: WRITE (I02,90005) 01000039 ! 104: WRITE (I02,90006) 01010039 ! 105: WRITE (I02,90002) 01020039 ! 106: C 01030039 ! 107: C TEST SECTION 01040039 ! 108: C 01050039 ! 109: C ARITHMETIC ASSIGNMENT STATEMENT 01060039 ! 110: C 01070039 ! 111: C TEST 552 THROUGH TEST 557 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS01080039 ! 112: C OF THE FORM IV = IV/IC/IC. 01090039 ! 113: C 01100039 ! 114: 5521 CONTINUE 01110039 ! 115: IVTNUM = 552 01120039 ! 116: C 01130039 ! 117: C **** TEST 552 **** 01140039 ! 118: C 01150039 ! 119: IF (ICZERO) 35520, 5520, 35520 01160039 ! 120: 5520 CONTINUE 01170039 ! 121: IVON01 = 24 01180039 ! 122: IVCOMP = IVON01/3/4 01190039 ! 123: GO TO 45520 01200039 ! 124: 35520 IVDELE = IVDELE + 1 01210039 ! 125: WRITE (I02,80003) IVTNUM 01220039 ! 126: IF (ICZERO) 45520, 5531, 45520 01230039 ! 127: 45520 IF (IVCOMP - 2) 25520,15520,25520 01240039 ! 128: 15520 IVPASS = IVPASS + 1 01250039 ! 129: WRITE (I02,80001) IVTNUM 01260039 ! 130: GO TO 5531 01270039 ! 131: 25520 IVFAIL = IVFAIL + 1 01280039 ! 132: IVCORR = 2 01290039 ! 133: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01300039 ! 134: 5531 CONTINUE 01310039 ! 135: IVTNUM = 553 01320039 ! 136: C 01330039 ! 137: C **** TEST 553 **** 01340039 ! 138: C 01350039 ! 139: IF (ICZERO) 35530, 5530, 35530 01360039 ! 140: 5530 CONTINUE 01370039 ! 141: IVON01 = 7151 01380039 ! 142: IVCOMP = IVON01/3/10 01390039 ! 143: GO TO 45530 01400039 ! 144: 35530 IVDELE = IVDELE + 1 01410039 ! 145: WRITE (I02,80003) IVTNUM 01420039 ! 146: IF (ICZERO) 45530, 5541, 45530 01430039 ! 147: 45530 IF (IVCOMP - 238) 25530,15530,25530 01440039 ! 148: 15530 IVPASS = IVPASS + 1 01450039 ! 149: WRITE (I02,80001) IVTNUM 01460039 ! 150: GO TO 5541 01470039 ! 151: 25530 IVFAIL = IVFAIL + 1 01480039 ! 152: IVCORR = 238 01490039 ! 153: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01500039 ! 154: 5541 CONTINUE 01510039 ! 155: IVTNUM = 554 01520039 ! 156: C 01530039 ! 157: C **** TEST 554 **** 01540039 ! 158: C 01550039 ! 159: IF (ICZERO) 35540, 5540, 35540 01560039 ! 160: 5540 CONTINUE 01570039 ! 161: IVON01 = -330 01580039 ! 162: IVCOMP = IVON01/3/2 01590039 ! 163: GO TO 45540 01600039 ! 164: 35540 IVDELE = IVDELE + 1 01610039 ! 165: WRITE (I02,80003) IVTNUM 01620039 ! 166: IF (ICZERO) 45540, 5551, 45540 01630039 ! 167: 45540 IF (IVCOMP + 55) 25540,15540,25540 01640039 ! 168: 15540 IVPASS = IVPASS + 1 01650039 ! 169: WRITE (I02,80001) IVTNUM 01660039 ! 170: GO TO 5551 01670039 ! 171: 25540 IVFAIL = IVFAIL + 1 01680039 ! 172: IVCORR = -55 01690039 ! 173: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01700039 ! 174: 5551 CONTINUE 01710039 ! 175: IVTNUM = 555 01720039 ! 176: C 01730039 ! 177: C **** TEST 555 **** 01740039 ! 178: C 01750039 ! 179: IF (ICZERO) 35550, 5550, 35550 01760039 ! 180: 5550 CONTINUE 01770039 ! 181: IVON01 = 15249 01780039 ! 182: IVCOMP = IVON01/(-13)/51 01790039 ! 183: GO TO 45550 01800039 ! 184: 35550 IVDELE = IVDELE + 1 01810039 ! 185: WRITE (I02,80003) IVTNUM 01820039 ! 186: IF (ICZERO) 45550, 5561, 45550 01830039 ! 187: 45550 IF (IVCOMP + 23) 25550,15550,25550 01840039 ! 188: 15550 IVPASS = IVPASS + 1 01850039 ! 189: WRITE (I02,80001) IVTNUM 01860039 ! 190: GO TO 5561 01870039 ! 191: 25550 IVFAIL = IVFAIL + 1 01880039 ! 192: IVCORR = -23 01890039 ! 193: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01900039 ! 194: 5561 CONTINUE 01910039 ! 195: IVTNUM = 556 01920039 ! 196: C 01930039 ! 197: C **** TEST 556 **** 01940039 ! 198: C 01950039 ! 199: IF (ICZERO) 35560, 5560, 35560 01960039 ! 200: 5560 CONTINUE 01970039 ! 201: IVON01 = -27342 01980039 ! 202: IVCOMP = IVON01/(-4)/(-3) 01990039 ! 203: GO TO 45560 02000039 ! 204: 35560 IVDELE = IVDELE + 1 02010039 ! 205: WRITE (I02,80003) IVTNUM 02020039 ! 206: IF (ICZERO) 45560, 5571, 45560 02030039 ! 207: 45560 IF (IVCOMP + 2278) 25560,15560,25560 02040039 ! 208: 15560 IVPASS = IVPASS + 1 02050039 ! 209: WRITE (I02,80001) IVTNUM 02060039 ! 210: GO TO 5571 02070039 ! 211: 25560 IVFAIL = IVFAIL + 1 02080039 ! 212: IVCORR = -2278 02090039 ! 213: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02100039 ! 214: 5571 CONTINUE 02110039 ! 215: IVTNUM = 557 02120039 ! 216: C 02130039 ! 217: C **** TEST 557 **** 02140039 ! 218: C 02150039 ! 219: IF (ICZERO) 35570, 5570, 35570 02160039 ! 220: 5570 CONTINUE 02170039 ! 221: IVON01 = -27342 02180039 ! 222: IVCOMP = -IVON01/4/(-3) 02190039 ! 223: GO TO 45570 02200039 ! 224: 35570 IVDELE = IVDELE + 1 02210039 ! 225: WRITE (I02,80003) IVTNUM 02220039 ! 226: IF (ICZERO) 45570, 5581, 45570 02230039 ! 227: 45570 IF (IVCOMP + 2278) 25570,15570,25570 02240039 ! 228: 15570 IVPASS = IVPASS + 1 02250039 ! 229: WRITE (I02,80001) IVTNUM 02260039 ! 230: GO TO 5581 02270039 ! 231: 25570 IVFAIL = IVFAIL + 1 02280039 ! 232: IVCORR = -2278 02290039 ! 233: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02300039 ! 234: C 02310039 ! 235: C TEST 558 THROUGH TEST 563 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS02320039 ! 236: C OF THE FORM IV=IC/IV/IC. 02330039 ! 237: C 02340039 ! 238: 5581 CONTINUE 02350039 ! 239: IVTNUM = 558 02360039 ! 240: C 02370039 ! 241: C **** TEST 558 **** 02380039 ! 242: C 02390039 ! 243: IF (ICZERO) 35580, 5580, 35580 02400039 ! 244: 5580 CONTINUE 02410039 ! 245: IVON02 = 3 02420039 ! 246: IVCOMP = 24/IVON02/4 02430039 ! 247: GO TO 45580 02440039 ! 248: 35580 IVDELE = IVDELE + 1 02450039 ! 249: WRITE (I02,80003) IVTNUM 02460039 ! 250: IF (ICZERO) 45580, 5591, 45580 02470039 ! 251: 45580 IF (IVCOMP - 2) 25580,15580,25580 02480039 ! 252: 15580 IVPASS = IVPASS + 1 02490039 ! 253: WRITE (I02,80001) IVTNUM 02500039 ! 254: GO TO 5591 02510039 ! 255: 25580 IVFAIL = IVFAIL + 1 02520039 ! 256: IVCORR = 2 02530039 ! 257: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02540039 ! 258: 5591 CONTINUE 02550039 ! 259: IVTNUM = 559 02560039 ! 260: C 02570039 ! 261: C **** TEST 559 **** 02580039 ! 262: C 02590039 ! 263: IF (ICZERO) 35590, 5590, 35590 02600039 ! 264: 5590 CONTINUE 02610039 ! 265: IVON02 = 3 02620039 ! 266: IVCOMP = 7151/IVON02/10 02630039 ! 267: GO TO 45590 02640039 ! 268: 35590 IVDELE = IVDELE + 1 02650039 ! 269: WRITE (I02,80003) IVTNUM 02660039 ! 270: IF (ICZERO) 45590, 5601, 45590 02670039 ! 271: 45590 IF (IVCOMP - 238) 25590,15590,25590 02680039 ! 272: 15590 IVPASS = IVPASS + 1 02690039 ! 273: WRITE (I02,80001) IVTNUM 02700039 ! 274: GO TO 5601 02710039 ! 275: 25590 IVFAIL = IVFAIL + 1 02720039 ! 276: IVCORR = 238 02730039 ! 277: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02740039 ! 278: 5601 CONTINUE 02750039 ! 279: IVTNUM = 560 02760039 ! 280: C 02770039 ! 281: C **** TEST 560 **** 02780039 ! 282: C 02790039 ! 283: IF (ICZERO) 35600, 5600, 35600 02800039 ! 284: 5600 CONTINUE 02810039 ! 285: IVON02 = -3 02820039 ! 286: IVCOMP = 330/IVON02/2 02830039 ! 287: GO TO 45600 02840039 ! 288: 35600 IVDELE = IVDELE + 1 02850039 ! 289: WRITE (I02,80003) IVTNUM 02860039 ! 290: IF (ICZERO) 45600, 5611, 45600 02870039 ! 291: 45600 IF (IVCOMP +55) 25600,15600,25600 02880039 ! 292: 15600 IVPASS = IVPASS + 1 02890039 ! 293: WRITE (I02,80001) IVTNUM 02900039 ! 294: GO TO 5611 02910039 ! 295: 25600 IVFAIL = IVFAIL + 1 02920039 ! 296: IVCORR = -55 02930039 ! 297: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02940039 ! 298: 5611 CONTINUE 02950039 ! 299: IVTNUM = 561 02960039 ! 300: C 02970039 ! 301: C **** TEST 561 **** 02980039 ! 302: C 02990039 ! 303: IF (ICZERO) 35610, 5610, 35610 03000039 ! 304: 5610 CONTINUE 03010039 ! 305: IVON02 = +13 03020039 ! 306: IVCOMP = 15249/IVON02/(-51) 03030039 ! 307: GO TO 45610 03040039 ! 308: 35610 IVDELE = IVDELE + 1 03050039 ! 309: WRITE (I02,80003) IVTNUM 03060039 ! 310: IF (ICZERO) 45610, 5621, 45610 03070039 ! 311: 45610 IF (IVCOMP + 23) 25610,15610,25610 03080039 ! 312: 15610 IVPASS = IVPASS + 1 03090039 ! 313: WRITE (I02,80001) IVTNUM 03100039 ! 314: GO TO 5621 03110039 ! 315: 25610 IVFAIL = IVFAIL + 1 03120039 ! 316: IVCORR = -23 03130039 ! 317: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03140039 ! 318: 5621 CONTINUE 03150039 ! 319: IVTNUM = 562 03160039 ! 320: C 03170039 ! 321: C **** TEST 562 **** 03180039 ! 322: C 03190039 ! 323: IF (ICZERO) 35620, 5620, 35620 03200039 ! 324: 5620 CONTINUE 03210039 ! 325: IVON02 = -4 03220039 ! 326: IVCOMP = (-27342)/IVON02/(-3) 03230039 ! 327: GO TO 45620 03240039 ! 328: 35620 IVDELE = IVDELE + 1 03250039 ! 329: WRITE (I02,80003) IVTNUM 03260039 ! 330: IF (ICZERO) 45620, 5631, 45620 03270039 ! 331: 45620 IF (IVCOMP + 2278) 25620,15620,25620 03280039 ! 332: 15620 IVPASS = IVPASS + 1 03290039 ! 333: WRITE (I02,80001) IVTNUM 03300039 ! 334: GO TO 5631 03310039 ! 335: 25620 IVFAIL = IVFAIL + 1 03320039 ! 336: IVCORR = -2278 03330039 ! 337: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03340039 ! 338: 5631 CONTINUE 03350039 ! 339: IVTNUM = 563 03360039 ! 340: C 03370039 ! 341: C **** TEST 563 **** 03380039 ! 342: C 03390039 ! 343: IF (ICZERO) 35630, 5630, 35630 03400039 ! 344: 5630 CONTINUE 03410039 ! 345: IVON02 = -4 03420039 ! 346: IVCOMP = -27342/(-IVON02)/(-3) 03430039 ! 347: GO TO 45630 03440039 ! 348: 35630 IVDELE = IVDELE + 1 03450039 ! 349: WRITE (I02,80003) IVTNUM 03460039 ! 350: IF (ICZERO) 45630, 5641, 45630 03470039 ! 351: 45630 IF (IVCOMP - 2278) 25630,15630,25630 03480039 ! 352: 15630 IVPASS = IVPASS + 1 03490039 ! 353: WRITE (I02,80001) IVTNUM 03500039 ! 354: GO TO 5641 03510039 ! 355: 25630 IVFAIL = IVFAIL + 1 03520039 ! 356: IVCORR = 2278 03530039 ! 357: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03540039 ! 358: C 03550039 ! 359: C TEST 564 THROUGH TEST 569 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS03560039 ! 360: C OF THE FORM IV = IC/IC/IV. 03570039 ! 361: C 03580039 ! 362: 5641 CONTINUE 03590039 ! 363: IVTNUM = 564 03600039 ! 364: C 03610039 ! 365: C **** TEST 564 **** 03620039 ! 366: C 03630039 ! 367: IF (ICZERO) 35640, 5640, 35640 03640039 ! 368: 5640 CONTINUE 03650039 ! 369: IVON03 = 4 03660039 ! 370: IVCOMP = 24/3/IVON03 03670039 ! 371: GO TO 45640 03680039 ! 372: 35640 IVDELE = IVDELE + 1 03690039 ! 373: WRITE (I02,80003) IVTNUM 03700039 ! 374: IF (ICZERO) 45640, 5651, 45640 03710039 ! 375: 45640 IF (IVCOMP -2) 25640,15640,25640 03720039 ! 376: 15640 IVPASS = IVPASS + 1 03730039 ! 377: WRITE (I02,80001) IVTNUM 03740039 ! 378: GO TO 5651 03750039 ! 379: 25640 IVFAIL = IVFAIL + 1 03760039 ! 380: IVCORR = 2 03770039 ! 381: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03780039 ! 382: 5651 CONTINUE 03790039 ! 383: IVTNUM = 565 03800039 ! 384: C 03810039 ! 385: C **** TEST 565 **** 03820039 ! 386: C 03830039 ! 387: IF (ICZERO) 35650, 5650, 35650 03840039 ! 388: 5650 CONTINUE 03850039 ! 389: IVON03 = 10 03860039 ! 390: IVCOMP = 7151/3/IVON03 03870039 ! 391: GO TO 45650 03880039 ! 392: 35650 IVDELE = IVDELE + 1 03890039 ! 393: WRITE (I02,80003) IVTNUM 03900039 ! 394: IF (ICZERO) 45650, 5661, 45650 03910039 ! 395: 45650 IF (IVCOMP - 238) 25650,15650,25650 03920039 ! 396: 15650 IVPASS = IVPASS + 1 03930039 ! 397: WRITE (I02,80001) IVTNUM 03940039 ! 398: GO TO 5661 03950039 ! 399: 25650 IVFAIL = IVFAIL + 1 03960039 ! 400: IVCORR = 238 03970039 ! 401: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03980039 ! 402: 5661 CONTINUE 03990039 ! 403: IVTNUM = 566 04000039 ! 404: C 04010039 ! 405: C **** TEST 566 **** 04020039 ! 406: C 04030039 ! 407: IF (ICZERO) 35660, 5660, 35660 04040039 ! 408: 5660 CONTINUE 04050039 ! 409: IVON03 = -2 04060039 ! 410: IVCOMP = 330/3/IVON03 04070039 ! 411: GO TO 45660 04080039 ! 412: 35660 IVDELE = IVDELE + 1 04090039 ! 413: WRITE (I02,80003) IVTNUM 04100039 ! 414: IF (ICZERO) 45660, 5671, 45660 04110039 ! 415: 45660 IF (IVCOMP + 55) 25660,15660,25660 04120039 ! 416: 15660 IVPASS = IVPASS + 1 04130039 ! 417: WRITE (I02,80001) IVTNUM 04140039 ! 418: GO TO 5671 04150039 ! 419: 25660 IVFAIL = IVFAIL + 1 04160039 ! 420: IVCORR = -55 04170039 ! 421: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04180039 ! 422: 5671 CONTINUE 04190039 ! 423: IVTNUM = 567 04200039 ! 424: C 04210039 ! 425: C **** TEST 567 **** 04220039 ! 426: C 04230039 ! 427: IF (ICZERO) 35670, 5670, 35670 04240039 ! 428: 5670 CONTINUE 04250039 ! 429: IVON03 = +51 04260039 ! 430: IVCOMP = 15249/(-13)/IVON03 04270039 ! 431: GO TO 45670 04280039 ! 432: 35670 IVDELE = IVDELE + 1 04290039 ! 433: WRITE (I02,80003) IVTNUM 04300039 ! 434: IF (ICZERO) 45670, 5681, 45670 04310039 ! 435: 45670 IF (IVCOMP + 23) 25670,15670,25670 04320039 ! 436: 15670 IVPASS = IVPASS + 1 04330039 ! 437: WRITE (I02,80001) IVTNUM 04340039 ! 438: GO TO 5681 04350039 ! 439: 25670 IVFAIL = IVFAIL + 1 04360039 ! 440: IVCORR = -23 04370039 ! 441: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04380039 ! 442: 5681 CONTINUE 04390039 ! 443: IVTNUM = 568 04400039 ! 444: C 04410039 ! 445: C **** TEST 568 **** 04420039 ! 446: C 04430039 ! 447: IF (ICZERO) 35680, 5680, 35680 04440039 ! 448: 5680 CONTINUE 04450039 ! 449: IVON03 = -3 04460039 ! 450: IVCOMP = (-27342)/(-4)/IVON03 04470039 ! 451: GO TO 45680 04480039 ! 452: 35680 IVDELE = IVDELE + 1 04490039 ! 453: WRITE (I02,80003) IVTNUM 04500039 ! 454: IF (ICZERO) 45680, 5691, 45680 04510039 ! 455: 45680 IF (IVCOMP + 2278) 25680,15680,25680 04520039 ! 456: 15680 IVPASS = IVPASS + 1 04530039 ! 457: WRITE (I02,80001) IVTNUM 04540039 ! 458: GO TO 5691 04550039 ! 459: 25680 IVFAIL = IVFAIL + 1 04560039 ! 460: IVCORR = -2278 04570039 ! 461: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04580039 ! 462: 5691 CONTINUE 04590039 ! 463: IVTNUM = 569 04600039 ! 464: C 04610039 ! 465: C **** TEST 569 **** 04620039 ! 466: C 04630039 ! 467: IF (ICZERO) 35690, 5690, 35690 04640039 ! 468: 5690 CONTINUE 04650039 ! 469: IVON03 = -3 04660039 ! 470: IVCOMP = -27342/(-4)/(-IVON03) 04670039 ! 471: GO TO 45690 04680039 ! 472: 35690 IVDELE = IVDELE + 1 04690039 ! 473: WRITE (I02,80003) IVTNUM 04700039 ! 474: IF (ICZERO) 45690, 5701, 45690 04710039 ! 475: 45690 IF (IVCOMP - 2278) 25690,15690,25690 04720039 ! 476: 15690 IVPASS = IVPASS + 1 04730039 ! 477: WRITE (I02,80001) IVTNUM 04740039 ! 478: GO TO 5701 04750039 ! 479: 25690 IVFAIL = IVFAIL + 1 04760039 ! 480: IVCORR = 2278 04770039 ! 481: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04780039 ! 482: C 04790039 ! 483: C TEST 570 AND TEST 571 - IV =(IV/IC)/IC 04800039 ! 484: C 04810039 ! 485: 5701 CONTINUE 04820039 ! 486: IVTNUM = 570 04830039 ! 487: C 04840039 ! 488: C **** TEST 570 **** 04850039 ! 489: C 04860039 ! 490: IF (ICZERO) 35700, 5700, 35700 04870039 ! 491: 5700 CONTINUE 04880039 ! 492: IVON01 = 24 04890039 ! 493: IVCOMP = (IVON01/3)/4 04900039 ! 494: GO TO 45700 04910039 ! 495: 35700 IVDELE = IVDELE + 1 04920039 ! 496: WRITE (I02,80003) IVTNUM 04930039 ! 497: IF (ICZERO) 45700, 5711, 45700 04940039 ! 498: 45700 IF (IVCOMP -2) 25700,15700,25700 04950039 ! 499: 15700 IVPASS = IVPASS + 1 04960039 ! 500: WRITE (I02,80001) IVTNUM 04970039 ! 501: GO TO 5711 04980039 ! 502: 25700 IVFAIL = IVFAIL + 1 04990039 ! 503: IVCORR = 2 05000039 ! 504: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05010039 ! 505: 5711 CONTINUE 05020039 ! 506: IVTNUM = 571 05030039 ! 507: C 05040039 ! 508: C **** TEST 571 **** 05050039 ! 509: C 05060039 ! 510: IF (ICZERO) 35710, 5710, 35710 05070039 ! 511: 5710 CONTINUE 05080039 ! 512: IVON01 = -330 05090039 ! 513: IVCOMP = (IVON01/(-3))/4 05100039 ! 514: GO TO 45710 05110039 ! 515: 35710 IVDELE = IVDELE + 1 05120039 ! 516: WRITE (I02,80003) IVTNUM 05130039 ! 517: IF (ICZERO) 45710, 5721, 45710 05140039 ! 518: 45710 IF (IVCOMP - 27) 25710,15710,25710 05150039 ! 519: 15710 IVPASS = IVPASS + 1 05160039 ! 520: WRITE (I02,80001) IVTNUM 05170039 ! 521: GO TO 5721 05180039 ! 522: 25710 IVFAIL = IVFAIL + 1 05190039 ! 523: IVCORR = 27 05200039 ! 524: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05210039 ! 525: C 05220039 ! 526: C TEST 572 AND TEST 573 - IV= IV/(IC/IC) 05230039 ! 527: C 05240039 ! 528: 5721 CONTINUE 05250039 ! 529: IVTNUM = 572 05260039 ! 530: C 05270039 ! 531: C **** TEST 572 **** 05280039 ! 532: C 05290039 ! 533: IF (ICZERO) 35720, 5720, 35720 05300039 ! 534: 5720 CONTINUE 05310039 ! 535: IVON01 = 24 05320039 ! 536: IVCOMP = IVON01/(8/4) 05330039 ! 537: GO TO 45720 05340039 ! 538: 35720 IVDELE = IVDELE + 1 05350039 ! 539: WRITE (I02,80003) IVTNUM 05360039 ! 540: IF (ICZERO) 45720, 5731, 45720 05370039 ! 541: 45720 IF (IVCOMP - 12) 25720,15720,25720 05380039 ! 542: 15720 IVPASS = IVPASS + 1 05390039 ! 543: WRITE (I02,80001) IVTNUM 05400039 ! 544: GO TO 5731 05410039 ! 545: 25720 IVFAIL = IVFAIL + 1 05420039 ! 546: IVCORR = 12 05430039 ! 547: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05440039 ! 548: 5731 CONTINUE 05450039 ! 549: IVTNUM = 573 05460039 ! 550: C 05470039 ! 551: C **** TEST 573 **** 05480039 ! 552: C 05490039 ! 553: IF (ICZERO) 35730, 5730, 35730 05500039 ! 554: 5730 CONTINUE 05510039 ! 555: IVON01 = -7154 05520039 ! 556: IVCOMP = -IVON01/((-26)/5) 05530039 ! 557: GO TO 45730 05540039 ! 558: 35730 IVDELE = IVDELE + 1 05550039 ! 559: WRITE (I02,80003) IVTNUM 05560039 ! 560: IF (ICZERO) 45730, 5741, 45730 05570039 ! 561: 45730 IF (IVCOMP + 1430) 25730,15730,25730 05580039 ! 562: 15730 IVPASS = IVPASS + 1 05590039 ! 563: WRITE (I02,80001) IVTNUM 05600039 ! 564: GO TO 5741 05610039 ! 565: 25730 IVFAIL = IVFAIL + 1 05620039 ! 566: IVCORR = -1430 05630039 ! 567: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05640039 ! 568: C 05650039 ! 569: C TEST 574 AND TEST 575 - IV=(IC/IV)/IC 05660039 ! 570: C 05670039 ! 571: 5741 CONTINUE 05680039 ! 572: IVTNUM = 574 05690039 ! 573: C 05700039 ! 574: C **** TEST 574 **** 05710039 ! 575: C 05720039 ! 576: IF (ICZERO) 35740, 5740, 35740 05730039 ! 577: 5740 CONTINUE 05740039 ! 578: IVON02 = 3 05750039 ! 579: IVCOMP = (24/IVON02)/4 05760039 ! 580: GO TO 45740 05770039 ! 581: 35740 IVDELE = IVDELE + 1 05780039 ! 582: WRITE (I02,80003) IVTNUM 05790039 ! 583: IF (ICZERO) 45740, 5751, 45740 05800039 ! 584: 45740 IF (IVCOMP -2) 25740,15740,25740 05810039 ! 585: 15740 IVPASS = IVPASS + 1 05820039 ! 586: WRITE (I02,80001) IVTNUM 05830039 ! 587: GO TO 5751 05840039 ! 588: 25740 IVFAIL = IVFAIL + 1 05850039 ! 589: IVCORR = 2 05860039 ! 590: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05870039 ! 591: 5751 CONTINUE 05880039 ! 592: IVTNUM = 575 05890039 ! 593: C 05900039 ! 594: C **** TEST 575 **** 05910039 ! 595: C 05920039 ! 596: IF (ICZERO) 35750, 5750, 35750 05930039 ! 597: 5750 CONTINUE 05940039 ! 598: IVON02 = -3 05950039 ! 599: IVCOMP = (-330/IVON02)/(-4) 05960039 ! 600: GO TO 45750 05970039 ! 601: 35750 IVDELE = IVDELE + 1 05980039 ! 602: WRITE (I02,80003) IVTNUM 05990039 ! 603: IF (ICZERO) 45750, 5761, 45750 06000039 ! 604: 45750 IF (IVCOMP + 27) 25750,15750,25750 06010039 ! 605: 15750 IVPASS = IVPASS + 1 06020039 ! 606: WRITE (I02,80001) IVTNUM 06030039 ! 607: GO TO 5761 06040039 ! 608: 25750 IVFAIL = IVFAIL + 1 06050039 ! 609: IVCORR = -27 06060039 ! 610: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06070039 ! 611: C 06080039 ! 612: C TEST 576 AND TEST 577 - IV=IC/(IV/IC) 06090039 ! 613: C 06100039 ! 614: 5761 CONTINUE 06110039 ! 615: IVTNUM = 576 06120039 ! 616: C 06130039 ! 617: C **** TEST 576 **** 06140039 ! 618: C 06150039 ! 619: IF (ICZERO) 35760, 5760, 35760 06160039 ! 620: 5760 CONTINUE 06170039 ! 621: IVON02 = 8 06180039 ! 622: IVCOMP = 24/(IVON02/4) 06190039 ! 623: GO TO 45760 06200039 ! 624: 35760 IVDELE = IVDELE + 1 06210039 ! 625: WRITE (I02,80003) IVTNUM 06220039 ! 626: IF (ICZERO) 45760, 5771, 45760 06230039 ! 627: 45760 IF (IVCOMP - 12) 25760,15760,25760 06240039 ! 628: 15760 IVPASS = IVPASS + 1 06250039 ! 629: WRITE (I02,80001) IVTNUM 06260039 ! 630: GO TO 5771 06270039 ! 631: 25760 IVFAIL = IVFAIL + 1 06280039 ! 632: IVCORR = 12 06290039 ! 633: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06300039 ! 634: 5771 CONTINUE 06310039 ! 635: IVTNUM = 577 06320039 ! 636: C 06330039 ! 637: C **** TEST 577 **** 06340039 ! 638: C 06350039 ! 639: IF (ICZERO) 35770, 5770, 35770 06360039 ! 640: 5770 CONTINUE 06370039 ! 641: IVON02 = -26 06380039 ! 642: IVCOMP = 7154/((-IVON02)/(-5)) 06390039 ! 643: GO TO 45770 06400039 ! 644: 35770 IVDELE = IVDELE + 1 06410039 ! 645: WRITE (I02,80003) IVTNUM 06420039 ! 646: IF (ICZERO) 45770, 5781, 45770 06430039 ! 647: 45770 IF (IVCOMP + 1430) 25770,15770,25770 06440039 ! 648: 15770 IVPASS = IVPASS + 1 06450039 ! 649: WRITE (I02,80001) IVTNUM 06460039 ! 650: GO TO 5781 06470039 ! 651: 25770 IVFAIL = IVFAIL + 1 06480039 ! 652: IVCORR = -1430 06490039 ! 653: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06500039 ! 654: C 06510039 ! 655: C TEST 578 AND TEST 579 - IV=(IC/IC)/IV 06520039 ! 656: C 06530039 ! 657: 5781 CONTINUE 06540039 ! 658: IVTNUM = 578 06550039 ! 659: C 06560039 ! 660: C **** TEST 578 **** 06570039 ! 661: C 06580039 ! 662: IF (ICZERO) 35780, 5780, 35780 06590039 ! 663: 5780 CONTINUE 06600039 ! 664: IVON03 = 4 06610039 ! 665: IVCOMP = (24/3)/IVON03 06620039 ! 666: GO TO 45780 06630039 ! 667: 35780 IVDELE = IVDELE + 1 06640039 ! 668: WRITE (I02,80003) IVTNUM 06650039 ! 669: IF (ICZERO) 45780, 5791, 45780 06660039 ! 670: 45780 IF (IVCOMP - 2) 25780,15780,25780 06670039 ! 671: 15780 IVPASS = IVPASS + 1 06680039 ! 672: WRITE (I02,80001) IVTNUM 06690039 ! 673: GO TO 5791 06700039 ! 674: 25780 IVFAIL = IVFAIL + 1 06710039 ! 675: IVCORR = 2 06720039 ! 676: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06730039 ! 677: 5791 CONTINUE 06740039 ! 678: IVTNUM = 579 06750039 ! 679: C 06760039 ! 680: C **** TEST 579 **** 06770039 ! 681: C 06780039 ! 682: IF (ICZERO) 35790, 5790, 35790 06790039 ! 683: 5790 CONTINUE 06800039 ! 684: IVON03 = -4 06810039 ! 685: IVCOMP = (330/(-3))/IVON03 06820039 ! 686: GO TO 45790 06830039 ! 687: 35790 IVDELE = IVDELE + 1 06840039 ! 688: WRITE (I02,80003) IVTNUM 06850039 ! 689: IF (ICZERO) 45790, 5801, 45790 06860039 ! 690: 45790 IF (IVCOMP - 27) 25790,15790,25790 06870039 ! 691: 15790 IVPASS = IVPASS + 1 06880039 ! 692: WRITE (I02,80001) IVTNUM 06890039 ! 693: GO TO 5801 06900039 ! 694: 25790 IVFAIL = IVFAIL + 1 06910039 ! 695: IVCORR = 27 06920039 ! 696: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06930039 ! 697: C 06940039 ! 698: C TEST 580 AND TEST 581 - IV= IC/(IC/IV) 06950039 ! 699: C 06960039 ! 700: 5801 CONTINUE 06970039 ! 701: IVTNUM = 580 06980039 ! 702: C 06990039 ! 703: C **** TEST 580 **** 07000039 ! 704: C 07010039 ! 705: IF (ICZERO) 35800, 5800, 35800 07020039 ! 706: 5800 CONTINUE 07030039 ! 707: IVON03 = 4 07040039 ! 708: IVCOMP = 24/(8/IVON03) 07050039 ! 709: GO TO 45800 07060039 ! 710: 35800 IVDELE = IVDELE + 1 07070039 ! 711: WRITE (I02,80003) IVTNUM 07080039 ! 712: IF (ICZERO) 45800, 5811, 45800 07090039 ! 713: 45800 IF (IVCOMP - 12) 25800,15800,25800 07100039 ! 714: 15800 IVPASS = IVPASS + 1 07110039 ! 715: WRITE (I02,80001) IVTNUM 07120039 ! 716: GO TO 5811 07130039 ! 717: 25800 IVFAIL = IVFAIL + 1 07140039 ! 718: IVCORR = 12 07150039 ! 719: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07160039 ! 720: 5811 CONTINUE 07170039 ! 721: IVTNUM = 581 07180039 ! 722: C 07190039 ! 723: C **** TEST 581 **** 07200039 ! 724: C 07210039 ! 725: IF (ICZERO) 35810, 5810, 35810 07220039 ! 726: 5810 CONTINUE 07230039 ! 727: IVON03 = -5 07240039 ! 728: IVCOMP = -7154/((-26)/IVON03) 07250039 ! 729: GO TO 45810 07260039 ! 730: 35810 IVDELE = IVDELE + 1 07270039 ! 731: WRITE (I02,80003) IVTNUM 07280039 ! 732: IF (ICZERO) 45810, 5821, 45810 07290039 ! 733: 45810 IF (IVCOMP + 1430) 25810,15810,25810 07300039 ! 734: 15810 IVPASS = IVPASS + 1 07310039 ! 735: WRITE (I02,80001) IVTNUM 07320039 ! 736: GO TO 5821 07330039 ! 737: 25810 IVFAIL = IVFAIL + 1 07340039 ! 738: IVCORR = -1430 07350039 ! 739: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07360039 ! 740: C 07370039 ! 741: C **** END OF TESTS **** 07380039 ! 742: 5821 CONTINUE 07390039 ! 743: C 07400039 ! 744: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 07410039 ! 745: 99999 CONTINUE 07420039 ! 746: WRITE (I02,90002) 07430039 ! 747: WRITE (I02,90006) 07440039 ! 748: WRITE (I02,90002) 07450039 ! 749: WRITE (I02,90002) 07460039 ! 750: WRITE (I02,90007) 07470039 ! 751: WRITE (I02,90002) 07480039 ! 752: WRITE (I02,90008) IVFAIL 07490039 ! 753: WRITE (I02,90009) IVPASS 07500039 ! 754: WRITE (I02,90010) IVDELE 07510039 ! 755: C 07520039 ! 756: C 07530039 ! 757: C TERMINATE ROUTINE EXECUTION 07540039 ! 758: STOP 07550039 ! 759: C 07560039 ! 760: C FORMAT STATEMENTS FOR PAGE HEADERS 07570039 ! 761: 90000 FORMAT (1H1) 07580039 ! 762: 90002 FORMAT (1H ) 07590039 ! 763: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 07600039 ! 764: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 07610039 ! 765: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 07620039 ! 766: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 07630039 ! 767: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 07640039 ! 768: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 07650039 ! 769: C 07660039 ! 770: C FORMAT STATEMENTS FOR RUN SUMMARIES 07670039 ! 771: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 07680039 ! 772: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 07690039 ! 773: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 07700039 ! 774: C 07710039 ! 775: C FORMAT STATEMENTS FOR TEST RESULTS 07720039 ! 776: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 07730039 ! 777: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 07740039 ! 778: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 07750039 ! 779: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 07760039 ! 780: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 07770039 ! 781: C 07780039 ! 782: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM039) 07790039 ! 783: END 07800039
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.