|
|
1.1 ! root 1: C COMMENT SECTION 00010036 ! 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 00020036 ! 6: C FM036 00030036 ! 7: C 00040036 ! 8: C THIS ROUTINE TESTS ARITHMETIC ASIGNMENT STATEMENTS OF THE 00050036 ! 9: C FORM 00060036 ! 10: C INTEGER VARIABLE = ARITHMETIC EXPRESSION 00070036 ! 11: C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00080036 ! 12: C OPERATOR / AND INTEGER CONSTANTS. BOTH POSITIVE AND NEGATIVE 00090036 ! 13: C CONSTANTS ARE USED IN THE ARITHMETIC EXPRESSION. 00100036 ! 14: C 00110036 ! 15: C THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT 00120036 ! 16: C AND TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED 00130036 ! 17: C IN THE RESULTANT INTEGER VARIABLE. THE STANDARD STATES 'THE VALUE00140036 ! 18: C OF AN INTEGER FACTOR OR TERM IS THE NEAREST INTEGER WHOSE 00150036 ! 19: C MAGNITUDE DOES NOT EXCEED THE MAGNITUDE OF THE MATHEMATICAL VALUE 00160036 ! 20: C REPRESENTED BY THAT FACTOR OR TERM.' 00170036 ! 21: C 00180036 ! 22: C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00190036 ! 23: C (1) INTEGER CONSTANT/INTEGER CONSTANT 00200036 ! 24: C NO TRUNCATION REQUIRED, 00210036 ! 25: C (2) INTEGER CONSTANT/INTEGER CONSTANT 00220036 ! 26: C TRUNCATION REQUIRED. 00230036 ! 27: C 00240036 ! 28: C REFERENCES 00250036 ! 29: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00260036 ! 30: C X3.9-1978 00270036 ! 31: C 00280036 ! 32: C SECTION 4.3, INTEGER TYPE 00290036 ! 33: C SECTION 4.3.1, INTEGER CONSTANT 00300036 ! 34: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00310036 ! 35: C SECTION 6.6, EVALUATION OF EXPRESSIONS 00320036 ! 36: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00330036 ! 37: C 00340036 ! 38: C ********************************************************** 00350036 ! 39: C 00360036 ! 40: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00370036 ! 41: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00380036 ! 42: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00390036 ! 43: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00400036 ! 44: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00410036 ! 45: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00420036 ! 46: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00430036 ! 47: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00440036 ! 48: C OF EXECUTING THESE TESTS. 00450036 ! 49: C 00460036 ! 50: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00470036 ! 51: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00480036 ! 52: C 00490036 ! 53: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00500036 ! 54: C 00510036 ! 55: C DEPARTMENT OF THE NAVY 00520036 ! 56: C FEDERAL COBOL COMPILER TESTING SERVICE 00530036 ! 57: C WASHINGTON, D.C. 20376 00540036 ! 58: C 00550036 ! 59: C ********************************************************** 00560036 ! 60: C 00570036 ! 61: C 00580036 ! 62: C 00590036 ! 63: C INITIALIZATION SECTION 00600036 ! 64: C 00610036 ! 65: C INITIALIZE CONSTANTS 00620036 ! 66: C ************** 00630036 ! 67: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00640036 ! 68: I01 = 5 00650036 ! 69: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00660036 ! 70: I02 = 6 00670036 ! 71: C SYSTEM ENVIRONMENT SECTION 00680036 ! 72: C 00690036 ! 73: I01 = 5 00700036 ! 74: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00710036 ! 75: C (UNIT NUMBER FOR CARD READER). 00720036 ! 76: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00730036 ! 77: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00740036 ! 78: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00750036 ! 79: C 00760036 ! 80: I02 = 6 00770036 ! 81: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00780036 ! 82: C (UNIT NUMBER FOR PRINTER). 00790036 ! 83: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00800036 ! 84: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00810036 ! 85: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00820036 ! 86: C 00830036 ! 87: IVPASS=0 00840036 ! 88: IVFAIL=0 00850036 ! 89: IVDELE=0 00860036 ! 90: ICZERO=0 00870036 ! 91: C 00880036 ! 92: C WRITE PAGE HEADERS 00890036 ! 93: WRITE (I02,90000) 00900036 ! 94: WRITE (I02,90001) 00910036 ! 95: WRITE (I02,90002) 00920036 ! 96: WRITE (I02, 90002) 00930036 ! 97: WRITE (I02,90003) 00940036 ! 98: WRITE (I02,90002) 00950036 ! 99: WRITE (I02,90004) 00960036 ! 100: WRITE (I02,90002) 00970036 ! 101: WRITE (I02,90011) 00980036 ! 102: WRITE (I02,90002) 00990036 ! 103: WRITE (I02,90002) 01000036 ! 104: WRITE (I02,90005) 01010036 ! 105: WRITE (I02,90006) 01020036 ! 106: WRITE (I02,90002) 01030036 ! 107: C 01040036 ! 108: C TEST SECTION 01050036 ! 109: C ARITHMETIC ASSIGNMENT STATEMENT 01060036 ! 110: C 01070036 ! 111: C TEST 462 THROUGH TEST 490 CONTAIN TWO INTEGER CONSTANTS AND 01080036 ! 112: C OPERATOR / IN AN ARITHMETIC EXPRESSION. THE FORM TESTED IS 01090036 ! 113: C INTEGER VARIABLE = INTEGER CONSTANT/INTEGER CONSTANT 01100036 ! 114: C 01110036 ! 115: C TEST 462 THROUGH TEST 469 - POSITIVE CONSTANTS 01120036 ! 116: C NO TRUNCATION REQUIRED 01130036 ! 117: C 01140036 ! 118: 4621 CONTINUE 01150036 ! 119: IVTNUM = 462 01160036 ! 120: C 01170036 ! 121: C **** TEST 462 **** 01180036 ! 122: C 01190036 ! 123: IF (ICZERO) 34620, 4620, 34620 01200036 ! 124: 4620 CONTINUE 01210036 ! 125: IVCOMP = 4/2 01220036 ! 126: GO TO 44620 01230036 ! 127: 34620 IVDELE = IVDELE + 1 01240036 ! 128: WRITE (I02,80003) IVTNUM 01250036 ! 129: IF (ICZERO) 44620, 4631, 44620 01260036 ! 130: 44620 IF (IVCOMP - 2) 24620,14620,24620 01270036 ! 131: 14620 IVPASS = IVPASS + 1 01280036 ! 132: WRITE (I02,80001) IVTNUM 01290036 ! 133: GO TO 4631 01300036 ! 134: 24620 IVFAIL = IVFAIL + 1 01310036 ! 135: IVCORR = 2 01320036 ! 136: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01330036 ! 137: 4631 CONTINUE 01340036 ! 138: IVTNUM = 463 01350036 ! 139: C 01360036 ! 140: C **** TEST 463 **** 01370036 ! 141: C 01380036 ! 142: IF (ICZERO) 34630, 4630, 34630 01390036 ! 143: 4630 CONTINUE 01400036 ! 144: IVCOMP = 75 / 25 01410036 ! 145: GO TO 44630 01420036 ! 146: 34630 IVDELE = IVDELE + 1 01430036 ! 147: WRITE (I02,80003) IVTNUM 01440036 ! 148: IF (ICZERO) 44630, 4641, 44630 01450036 ! 149: 44630 IF (IVCOMP - 3) 24630,14630,24630 01460036 ! 150: 14630 IVPASS = IVPASS + 1 01470036 ! 151: WRITE (I02,80001) IVTNUM 01480036 ! 152: GO TO 4641 01490036 ! 153: 24630 IVFAIL = IVFAIL + 1 01500036 ! 154: IVCORR = 3 01510036 ! 155: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01520036 ! 156: 4641 CONTINUE 01530036 ! 157: IVTNUM = 464 01540036 ! 158: C 01550036 ! 159: C **** TEST 464 **** 01560036 ! 160: C 01570036 ! 161: IF (ICZERO) 34640, 4640, 34640 01580036 ! 162: 4640 CONTINUE 01590036 ! 163: IVCOMP = 3575/143 01600036 ! 164: GO TO 44640 01610036 ! 165: 34640 IVDELE = IVDELE + 1 01620036 ! 166: WRITE (I02,80003) IVTNUM 01630036 ! 167: IF (ICZERO) 44640, 4651, 44640 01640036 ! 168: 44640 IF (IVCOMP - 25) 24640,14640,24640 01650036 ! 169: 14640 IVPASS = IVPASS + 1 01660036 ! 170: WRITE (I02,80001) IVTNUM 01670036 ! 171: GO TO 4651 01680036 ! 172: 24640 IVFAIL = IVFAIL + 1 01690036 ! 173: IVCORR = 25 01700036 ! 174: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01710036 ! 175: 4651 CONTINUE 01720036 ! 176: IVTNUM = 465 01730036 ! 177: C 01740036 ! 178: C **** TEST 465 **** 01750036 ! 179: C 01760036 ! 180: IF (ICZERO) 34650, 4650, 34650 01770036 ! 181: 4650 CONTINUE 01780036 ! 182: IVCOMP = 3575/25 01790036 ! 183: GO TO 44650 01800036 ! 184: 34650 IVDELE = IVDELE + 1 01810036 ! 185: WRITE (I02,80003) IVTNUM 01820036 ! 186: IF (ICZERO) 44650, 4661, 44650 01830036 ! 187: 44650 IF (IVCOMP - 143) 24650,14650,24650 01840036 ! 188: 14650 IVPASS = IVPASS + 1 01850036 ! 189: WRITE (I02,80001) IVTNUM 01860036 ! 190: GO TO 4661 01870036 ! 191: 24650 IVFAIL = IVFAIL + 1 01880036 ! 192: IVCORR = 143 01890036 ! 193: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01900036 ! 194: 4661 CONTINUE 01910036 ! 195: IVTNUM = 466 01920036 ! 196: C 01930036 ! 197: C **** TEST 466 **** 01940036 ! 198: C 01950036 ! 199: IF (ICZERO) 34660, 4660, 34660 01960036 ! 200: 4660 CONTINUE 01970036 ! 201: IVCOMP = 6170/1234 01980036 ! 202: GO TO 44660 01990036 ! 203: 34660 IVDELE = IVDELE + 1 02000036 ! 204: WRITE (I02,80003) IVTNUM 02010036 ! 205: IF (ICZERO) 44660, 4671, 44660 02020036 ! 206: 44660 IF (IVCOMP - 5) 24660,14660,24660 02030036 ! 207: 14660 IVPASS = IVPASS + 1 02040036 ! 208: WRITE (I02,80001) IVTNUM 02050036 ! 209: GO TO 4671 02060036 ! 210: 24660 IVFAIL = IVFAIL + 1 02070036 ! 211: IVCORR = 5 02080036 ! 212: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02090036 ! 213: 4671 CONTINUE 02100036 ! 214: IVTNUM = 467 02110036 ! 215: C 02120036 ! 216: C **** TEST 467 **** 02130036 ! 217: C 02140036 ! 218: IF (ICZERO) 34670, 4670, 34670 02150036 ! 219: 4670 CONTINUE 02160036 ! 220: IVCOMP = 28600/8 02170036 ! 221: GO TO 44670 02180036 ! 222: 34670 IVDELE = IVDELE + 1 02190036 ! 223: WRITE (I02,80003) IVTNUM 02200036 ! 224: IF (ICZERO) 44670, 4681, 44670 02210036 ! 225: 44670 IF (IVCOMP - 3575) 24670,14670,24670 02220036 ! 226: 14670 IVPASS = IVPASS + 1 02230036 ! 227: WRITE (I02,80001) IVTNUM 02240036 ! 228: GO TO 4681 02250036 ! 229: 24670 IVFAIL = IVFAIL + 1 02260036 ! 230: IVCORR = 3575 02270036 ! 231: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02280036 ! 232: 4681 CONTINUE 02290036 ! 233: IVTNUM = 468 02300036 ! 234: C 02310036 ! 235: C **** TEST 468 **** 02320036 ! 236: C 02330036 ! 237: IF (ICZERO) 34680, 4680, 34680 02340036 ! 238: 4680 CONTINUE 02350036 ! 239: IVCOMP = 32766/2 02360036 ! 240: GO TO 44680 02370036 ! 241: 34680 IVDELE = IVDELE + 1 02380036 ! 242: WRITE (I02,80003) IVTNUM 02390036 ! 243: IF (ICZERO) 44680, 4691, 44680 02400036 ! 244: 44680 IF (IVCOMP - 16383) 24680,14680,24680 02410036 ! 245: 14680 IVPASS = IVPASS + 1 02420036 ! 246: WRITE (I02,80001) IVTNUM 02430036 ! 247: GO TO 4691 02440036 ! 248: 24680 IVFAIL = IVFAIL + 1 02450036 ! 249: IVCORR = 16383 02460036 ! 250: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02470036 ! 251: 4691 CONTINUE 02480036 ! 252: IVTNUM = 469 02490036 ! 253: C 02500036 ! 254: C **** TEST 469 **** 02510036 ! 255: C 02520036 ! 256: IF (ICZERO) 34690, 4690, 34690 02530036 ! 257: 4690 CONTINUE 02540036 ! 258: IVCOMP = 32767/1 02550036 ! 259: GO TO 44690 02560036 ! 260: 34690 IVDELE = IVDELE + 1 02570036 ! 261: WRITE (I02,80003) IVTNUM 02580036 ! 262: IF (ICZERO) 44690, 4701, 44690 02590036 ! 263: 44690 IF (IVCOMP - 32767) 24690,14690,24690 02600036 ! 264: 14690 IVPASS = IVPASS + 1 02610036 ! 265: WRITE (I02,80001) IVTNUM 02620036 ! 266: GO TO 4701 02630036 ! 267: 24690 IVFAIL = IVFAIL + 1 02640036 ! 268: IVCORR = 32767 02650036 ! 269: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02660036 ! 270: C 02670036 ! 271: C TEST 470 THROUGH TEST 478 - POSITIVE CONSTANTS 02680036 ! 272: C TRUNCATION REQUIRED 02690036 ! 273: C 02700036 ! 274: 4701 CONTINUE 02710036 ! 275: IVTNUM = 470 02720036 ! 276: C 02730036 ! 277: C **** TEST 470 **** 02740036 ! 278: C 02750036 ! 279: IF (ICZERO) 34700, 4700, 34700 02760036 ! 280: 4700 CONTINUE 02770036 ! 281: IVCOMP = 5/2 02780036 ! 282: GO TO 44700 02790036 ! 283: 34700 IVDELE = IVDELE + 1 02800036 ! 284: WRITE (I02,80003) IVTNUM 02810036 ! 285: IF (ICZERO) 44700, 4711, 44700 02820036 ! 286: 44700 IF (IVCOMP - 2) 24700,14700,24700 02830036 ! 287: 14700 IVPASS = IVPASS + 1 02840036 ! 288: WRITE (I02,80001) IVTNUM 02850036 ! 289: GO TO 4711 02860036 ! 290: 24700 IVFAIL = IVFAIL + 1 02870036 ! 291: IVCORR = 2 02880036 ! 292: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02890036 ! 293: 4711 CONTINUE 02900036 ! 294: IVTNUM = 471 02910036 ! 295: C 02920036 ! 296: C **** TEST 471 **** 02930036 ! 297: C 02940036 ! 298: IF (ICZERO) 34710, 4710, 34710 02950036 ! 299: 4710 CONTINUE 02960036 ! 300: IVCOMP = 2/3 02970036 ! 301: GO TO 44710 02980036 ! 302: 34710 IVDELE = IVDELE + 1 02990036 ! 303: WRITE (I02,80003) IVTNUM 03000036 ! 304: IF (ICZERO) 44710, 4721, 44710 03010036 ! 305: 44710 IF (IVCOMP - 0) 24710,14710,24710 03020036 ! 306: 14710 IVPASS = IVPASS + 1 03030036 ! 307: WRITE (I02,80001) IVTNUM 03040036 ! 308: GO TO 4721 03050036 ! 309: 24710 IVFAIL = IVFAIL + 1 03060036 ! 310: IVCORR = 0 03070036 ! 311: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03080036 ! 312: 4721 CONTINUE 03090036 ! 313: IVTNUM = 472 03100036 ! 314: C 03110036 ! 315: C **** TEST 472 **** 03120036 ! 316: C 03130036 ! 317: IF (ICZERO) 34720, 4720, 34720 03140036 ! 318: 4720 CONTINUE 03150036 ! 319: IVCOMP = 80/15 03160036 ! 320: GO TO 44720 03170036 ! 321: 34720 IVDELE = IVDELE + 1 03180036 ! 322: WRITE (I02,80003) IVTNUM 03190036 ! 323: IF (ICZERO) 44720, 4731, 44720 03200036 ! 324: 44720 IF (IVCOMP - 5) 24720,14720,24720 03210036 ! 325: 14720 IVPASS = IVPASS + 1 03220036 ! 326: WRITE (I02,80001) IVTNUM 03230036 ! 327: GO TO 4731 03240036 ! 328: 24720 IVFAIL = IVFAIL + 1 03250036 ! 329: IVCORR = 5 03260036 ! 330: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03270036 ! 331: 4731 CONTINUE 03280036 ! 332: IVTNUM = 473 03290036 ! 333: C 03300036 ! 334: C **** TEST 473 **** 03310036 ! 335: C 03320036 ! 336: IF (ICZERO) 34730, 4730, 34730 03330036 ! 337: 4730 CONTINUE 03340036 ! 338: IVCOMP = 959/120 03350036 ! 339: GO TO 44730 03360036 ! 340: 34730 IVDELE = IVDELE + 1 03370036 ! 341: WRITE (I02,80003) IVTNUM 03380036 ! 342: IF (ICZERO) 44730, 4741, 44730 03390036 ! 343: 44730 IF (IVCOMP - 7) 24730,14730,24730 03400036 ! 344: 14730 IVPASS = IVPASS + 1 03410036 ! 345: WRITE (I02,80001) IVTNUM 03420036 ! 346: GO TO 4741 03430036 ! 347: 24730 IVFAIL = IVFAIL + 1 03440036 ! 348: IVCORR = 7 03450036 ! 349: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03460036 ! 350: 4741 CONTINUE 03470036 ! 351: IVTNUM = 474 03480036 ! 352: C 03490036 ! 353: C **** TEST 474 **** 03500036 ! 354: C 03510036 ! 355: IF (ICZERO) 34740, 4740, 34740 03520036 ! 356: 4740 CONTINUE 03530036 ! 357: IVCOMP = 959 / 12 03540036 ! 358: GO TO 44740 03550036 ! 359: 34740 IVDELE = IVDELE + 1 03560036 ! 360: WRITE (I02,80003) IVTNUM 03570036 ! 361: IF (ICZERO) 44740, 4751, 44740 03580036 ! 362: 44740 IF (IVCOMP - 79) 24740,14740,24740 03590036 ! 363: 14740 IVPASS = IVPASS + 1 03600036 ! 364: WRITE (I02,80001) IVTNUM 03610036 ! 365: GO TO 4751 03620036 ! 366: 24740 IVFAIL = IVFAIL + 1 03630036 ! 367: IVCORR = 79 03640036 ! 368: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03650036 ! 369: 4751 CONTINUE 03660036 ! 370: IVTNUM = 475 03670036 ! 371: C 03680036 ! 372: C **** TEST 475 **** 03690036 ! 373: C 03700036 ! 374: IF (ICZERO) 34750, 4750, 34750 03710036 ! 375: 4750 CONTINUE 03720036 ! 376: IVCOMP = 959/6 03730036 ! 377: GO TO 44750 03740036 ! 378: 34750 IVDELE = IVDELE + 1 03750036 ! 379: WRITE (I02,80003) IVTNUM 03760036 ! 380: IF (ICZERO) 44750, 4761, 44750 03770036 ! 381: 44750 IF (IVCOMP - 159) 24750,14750,24750 03780036 ! 382: 14750 IVPASS = IVPASS + 1 03790036 ! 383: WRITE (I02,80001) IVTNUM 03800036 ! 384: GO TO 4761 03810036 ! 385: 24750 IVFAIL = IVFAIL + 1 03820036 ! 386: IVCORR = 159 03830036 ! 387: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03840036 ! 388: 4761 CONTINUE 03850036 ! 389: IVTNUM = 476 03860036 ! 390: C 03870036 ! 391: C **** TEST 476 **** 03880036 ! 392: C 03890036 ! 393: IF (ICZERO) 34760, 4760, 34760 03900036 ! 394: 4760 CONTINUE 03910036 ! 395: IVCOMP = 28606/8 03920036 ! 396: GO TO 44760 03930036 ! 397: 34760 IVDELE = IVDELE + 1 03940036 ! 398: WRITE (I02,80003) IVTNUM 03950036 ! 399: IF (ICZERO) 44760, 4771, 44760 03960036 ! 400: 44760 IF (IVCOMP - 3575) 24760,14760,24760 03970036 ! 401: 14760 IVPASS = IVPASS + 1 03980036 ! 402: WRITE (I02,80001) IVTNUM 03990036 ! 403: GO TO 4771 04000036 ! 404: 24760 IVFAIL = IVFAIL + 1 04010036 ! 405: IVCORR = 3575 04020036 ! 406: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04030036 ! 407: 4771 CONTINUE 04040036 ! 408: IVTNUM = 477 04050036 ! 409: C 04060036 ! 410: C **** TEST 477 **** 04070036 ! 411: C 04080036 ! 412: IF (ICZERO) 34770, 4770, 34770 04090036 ! 413: 4770 CONTINUE 04100036 ! 414: IVCOMP = 25603/2 04110036 ! 415: GO TO 44770 04120036 ! 416: 34770 IVDELE = IVDELE + 1 04130036 ! 417: WRITE (I02,80003) IVTNUM 04140036 ! 418: IF (ICZERO) 44770, 4781, 44770 04150036 ! 419: 44770 IF (IVCOMP - 12801) 24770,14770,24770 04160036 ! 420: 14770 IVPASS = IVPASS + 1 04170036 ! 421: WRITE (I02,80001) IVTNUM 04180036 ! 422: GO TO 4781 04190036 ! 423: 24770 IVFAIL = IVFAIL + 1 04200036 ! 424: IVCORR = 12801 04210036 ! 425: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04220036 ! 426: 4781 CONTINUE 04230036 ! 427: IVTNUM = 478 04240036 ! 428: C 04250036 ! 429: C **** TEST 478 **** 04260036 ! 430: C 04270036 ! 431: IF (ICZERO) 34780, 4780, 34780 04280036 ! 432: 4780 CONTINUE 04290036 ! 433: IVCOMP = 25603/10354 04300036 ! 434: GO TO 44780 04310036 ! 435: 34780 IVDELE = IVDELE + 1 04320036 ! 436: WRITE (I02,80003) IVTNUM 04330036 ! 437: IF (ICZERO) 44780, 4791, 44780 04340036 ! 438: 44780 IF (IVCOMP - 2) 24780,14780,24780 04350036 ! 439: 14780 IVPASS = IVPASS + 1 04360036 ! 440: WRITE (I02,80001) IVTNUM 04370036 ! 441: GO TO 4791 04380036 ! 442: 24780 IVFAIL = IVFAIL + 1 04390036 ! 443: IVCORR = 2 04400036 ! 444: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04410036 ! 445: C 04420036 ! 446: C TEST 479 THROUGH TEST 482 - NEGATIVE CONSTANTS INCLUDED 04430036 ! 447: C NO TRUNCATION REQUIRED 04440036 ! 448: C 04450036 ! 449: 4791 CONTINUE 04460036 ! 450: IVTNUM = 479 04470036 ! 451: C 04480036 ! 452: C **** TEST 479 **** 04490036 ! 453: C 04500036 ! 454: IF (ICZERO) 34790, 4790, 34790 04510036 ! 455: 4790 CONTINUE 04520036 ! 456: IVCOMP = -4/2 04530036 ! 457: GO TO 44790 04540036 ! 458: 34790 IVDELE = IVDELE + 1 04550036 ! 459: WRITE (I02,80003) IVTNUM 04560036 ! 460: IF (ICZERO) 44790, 4801, 44790 04570036 ! 461: 44790 IF (IVCOMP + 2) 24790,14790,24790 04580036 ! 462: 14790 IVPASS = IVPASS + 1 04590036 ! 463: WRITE (I02,80001) IVTNUM 04600036 ! 464: GO TO 4801 04610036 ! 465: 24790 IVFAIL = IVFAIL + 1 04620036 ! 466: IVCORR = -2 04630036 ! 467: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04640036 ! 468: 4801 CONTINUE 04650036 ! 469: IVTNUM = 480 04660036 ! 470: C 04670036 ! 471: C **** TEST 480 **** 04680036 ! 472: C 04690036 ! 473: IF (ICZERO) 34800, 4800, 34800 04700036 ! 474: 4800 CONTINUE 04710036 ! 475: IVCOMP = 75 / (-25) 04720036 ! 476: GO TO 44800 04730036 ! 477: 34800 IVDELE = IVDELE + 1 04740036 ! 478: WRITE (I02,80003) IVTNUM 04750036 ! 479: IF (ICZERO) 44800, 4811, 44800 04760036 ! 480: 44800 IF (IVCOMP + 3) 24800,14800,24800 04770036 ! 481: 14800 IVPASS = IVPASS + 1 04780036 ! 482: WRITE (I02,80001) IVTNUM 04790036 ! 483: GO TO 4811 04800036 ! 484: 24800 IVFAIL = IVFAIL + 1 04810036 ! 485: IVCORR = -3 04820036 ! 486: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04830036 ! 487: 4811 CONTINUE 04840036 ! 488: IVTNUM = 481 04850036 ! 489: C 04860036 ! 490: C **** TEST 481 **** 04870036 ! 491: C 04880036 ! 492: IF (ICZERO) 34810, 4810, 34810 04890036 ! 493: 4810 CONTINUE 04900036 ! 494: IVCOMP= (-6170) / (-1234) 04910036 ! 495: GO TO 44810 04920036 ! 496: 34810 IVDELE = IVDELE + 1 04930036 ! 497: WRITE (I02,80003) IVTNUM 04940036 ! 498: IF (ICZERO) 44810, 4821, 44810 04950036 ! 499: 44810 IF (IVCOMP - 5) 24810,14810,24810 04960036 ! 500: 14810 IVPASS = IVPASS + 1 04970036 ! 501: WRITE (I02,80001) IVTNUM 04980036 ! 502: GO TO 4821 04990036 ! 503: 24810 IVFAIL = IVFAIL + 1 05000036 ! 504: IVCORR = 5 05010036 ! 505: 05020036 ! 506: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05030036 ! 507: 4821 CONTINUE 05040036 ! 508: IVTNUM = 482 05050036 ! 509: C 05060036 ! 510: C **** TEST 482 **** 05070036 ! 511: C 05080036 ! 512: IF (ICZERO) 34820, 4820, 34820 05090036 ! 513: 4820 CONTINUE 05100036 ! 514: IVCOMP = -32766/(-2) 05110036 ! 515: GO TO 44820 05120036 ! 516: 34820 IVDELE = IVDELE + 1 05130036 ! 517: WRITE (I02,80003) IVTNUM 05140036 ! 518: IF (ICZERO) 44820, 4831, 44820 05150036 ! 519: 44820 IF (IVCOMP - 16383) 24820,14820,24820 05160036 ! 520: 14820 IVPASS = IVPASS + 1 05170036 ! 521: WRITE (I02,80001) IVTNUM 05180036 ! 522: GO TO 4831 05190036 ! 523: 24820 IVFAIL = IVFAIL + 1 05200036 ! 524: IVCORR = 16383 05210036 ! 525: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05220036 ! 526: C 05230036 ! 527: C TEST 483 THROUGH TEST 490 - NEGATIVE CONSTANTS INCLUDED 05240036 ! 528: C TRUNCATION REQUIRED 05250036 ! 529: C 05260036 ! 530: 4831 CONTINUE 05270036 ! 531: IVTNUM = 483 05280036 ! 532: C 05290036 ! 533: C **** TEST 483 **** 05300036 ! 534: C 05310036 ! 535: IF (ICZERO) 34830, 4830, 34830 05320036 ! 536: 4830 CONTINUE 05330036 ! 537: IVCOMP = -5/2 05340036 ! 538: GO TO 44830 05350036 ! 539: 34830 IVDELE = IVDELE + 1 05360036 ! 540: WRITE (I02,80003) IVTNUM 05370036 ! 541: IF (ICZERO) 44830, 4841, 44830 05380036 ! 542: 44830 IF (IVCOMP +2) 24830,14830,24830 05390036 ! 543: 14830 IVPASS = IVPASS + 1 05400036 ! 544: WRITE (I02,80001) IVTNUM 05410036 ! 545: GO TO 4841 05420036 ! 546: 24830 IVFAIL = IVFAIL + 1 05430036 ! 547: IVCORR = -2 05440036 ! 548: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05450036 ! 549: 4841 CONTINUE 05460036 ! 550: IVTNUM = 484 05470036 ! 551: C 05480036 ! 552: C **** TEST 484 **** 05490036 ! 553: C 05500036 ! 554: IF (ICZERO) 34840, 4840, 34840 05510036 ! 555: 4840 CONTINUE 05520036 ! 556: IVCOMP = -2/3 05530036 ! 557: GO TO 44840 05540036 ! 558: 34840 IVDELE = IVDELE + 1 05550036 ! 559: WRITE (I02,80003) IVTNUM 05560036 ! 560: IF (ICZERO) 44840, 4851, 44840 05570036 ! 561: 44840 IF (IVCOMP) 24840,14840,24840 05580036 ! 562: 14840 IVPASS = IVPASS + 1 05590036 ! 563: WRITE (I02,80001) IVTNUM 05600036 ! 564: GO TO 4851 05610036 ! 565: 24840 IVFAIL = IVFAIL + 1 05620036 ! 566: IVCORR = 0 05630036 ! 567: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05640036 ! 568: 4851 CONTINUE 05650036 ! 569: IVTNUM = 485 05660036 ! 570: C 05670036 ! 571: C **** TEST 485 **** 05680036 ! 572: C 05690036 ! 573: IF (ICZERO) 34850, 4850, 34850 05700036 ! 574: 4850 CONTINUE 05710036 ! 575: IVCOMP = 80/(-15) 05720036 ! 576: GO TO 44850 05730036 ! 577: 34850 IVDELE = IVDELE + 1 05740036 ! 578: WRITE (I02,80003) IVTNUM 05750036 ! 579: IF (ICZERO) 44850, 4861, 44850 05760036 ! 580: 44850 IF (IVCOMP +5) 24850,14850,24850 05770036 ! 581: 14850 IVPASS = IVPASS + 1 05780036 ! 582: WRITE (I02,80001) IVTNUM 05790036 ! 583: GO TO 4861 05800036 ! 584: 24850 IVFAIL = IVFAIL + 1 05810036 ! 585: IVCORR = -5 05820036 ! 586: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05830036 ! 587: 4861 CONTINUE 05840036 ! 588: IVTNUM = 486 05850036 ! 589: C 05860036 ! 590: C **** TEST 486 **** 05870036 ! 591: C 05880036 ! 592: IF (ICZERO) 34860, 4860, 34860 05890036 ! 593: 4860 CONTINUE 05900036 ! 594: IVCOMP = -959/(-120) 05910036 ! 595: GO TO 44860 05920036 ! 596: 34860 IVDELE = IVDELE + 1 05930036 ! 597: WRITE (I02,80003) IVTNUM 05940036 ! 598: IF (ICZERO) 44860, 4871, 44860 05950036 ! 599: 44860 IF (IVCOMP - 7) 24860,14860,24860 05960036 ! 600: 14860 IVPASS = IVPASS + 1 05970036 ! 601: WRITE (I02,80001) IVTNUM 05980036 ! 602: GO TO 4871 05990036 ! 603: 24860 IVFAIL = IVFAIL + 1 06000036 ! 604: IVCORR = 7 06010036 ! 605: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06020036 ! 606: 4871 CONTINUE 06030036 ! 607: IVTNUM = 487 06040036 ! 608: C 06050036 ! 609: C **** TEST 487 **** 06060036 ! 610: C 06070036 ! 611: IF (ICZERO) 34870, 4870, 34870 06080036 ! 612: 4870 CONTINUE 06090036 ! 613: IVCOMP = -959/6 06100036 ! 614: GO TO 44870 06110036 ! 615: 34870 IVDELE = IVDELE + 1 06120036 ! 616: WRITE (I02,80003) IVTNUM 06130036 ! 617: IF (ICZERO) 44870, 4881, 44870 06140036 ! 618: 44870 IF (IVCOMP + 159) 24870,14870,24870 06150036 ! 619: 14870 IVPASS = IVPASS + 1 06160036 ! 620: WRITE (I02,80001) IVTNUM 06170036 ! 621: GO TO 4881 06180036 ! 622: 24870 IVFAIL = IVFAIL + 1 06190036 ! 623: IVCORR = -159 06200036 ! 624: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06210036 ! 625: 4881 CONTINUE 06220036 ! 626: IVTNUM = 488 06230036 ! 627: C 06240036 ! 628: C **** TEST 488 **** 06250036 ! 629: C 06260036 ! 630: IF (ICZERO) 34880, 4880, 34880 06270036 ! 631: 4880 CONTINUE 06280036 ! 632: IVCOMP = -28606/(-8) 06290036 ! 633: GO TO 44880 06300036 ! 634: 34880 IVDELE = IVDELE + 1 06310036 ! 635: WRITE (I02,80003) IVTNUM 06320036 ! 636: IF (ICZERO) 44880, 4891, 44880 06330036 ! 637: 44880 IF (IVCOMP - 3575) 24880,14880,24880 06340036 ! 638: 14880 IVPASS = IVPASS + 1 06350036 ! 639: WRITE (I02,80001) IVTNUM 06360036 ! 640: GO TO 4891 06370036 ! 641: 24880 IVFAIL = IVFAIL + 1 06380036 ! 642: IVCORR = 3575 06390036 ! 643: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06400036 ! 644: 4891 CONTINUE 06410036 ! 645: IVTNUM = 489 06420036 ! 646: C 06430036 ! 647: C **** TEST 489 **** 06440036 ! 648: C 06450036 ! 649: IF (ICZERO) 34890, 4890, 34890 06460036 ! 650: 4890 CONTINUE 06470036 ! 651: IVCOMP = -25603/2 06480036 ! 652: GO TO 44890 06490036 ! 653: 34890 IVDELE = IVDELE + 1 06500036 ! 654: WRITE (I02,80003) IVTNUM 06510036 ! 655: IF (ICZERO) 44890, 4901, 44890 06520036 ! 656: 44890 IF (IVCOMP + 12801) 24890,14890,24890 06530036 ! 657: 14890 IVPASS = IVPASS + 1 06540036 ! 658: WRITE (I02,80001) IVTNUM 06550036 ! 659: GO TO 4901 06560036 ! 660: 24890 IVFAIL = IVFAIL + 1 06570036 ! 661: IVCORR = -12801 06580036 ! 662: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06590036 ! 663: 4901 CONTINUE 06600036 ! 664: IVTNUM = 490 06610036 ! 665: C 06620036 ! 666: C **** TEST 490 **** 06630036 ! 667: C 06640036 ! 668: IF (ICZERO) 34900, 4900, 34900 06650036 ! 669: 4900 CONTINUE 06660036 ! 670: IVCOMP = -25603/(-10354) 06670036 ! 671: GO TO 44900 06680036 ! 672: 34900 IVDELE = IVDELE + 1 06690036 ! 673: WRITE (I02,80003) IVTNUM 06700036 ! 674: IF (ICZERO) 44900, 4911, 44900 06710036 ! 675: 44900 IF (IVCOMP - 2) 24900,14900,24900 06720036 ! 676: 14900 IVPASS = IVPASS + 1 06730036 ! 677: WRITE (I02,80001) IVTNUM 06740036 ! 678: GO TO 4911 06750036 ! 679: 24900 IVFAIL = IVFAIL + 1 06760036 ! 680: IVCORR = 2 06770036 ! 681: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06780036 ! 682: C 06790036 ! 683: C **** END OF TESTS **** 06800036 ! 684: 4911 CONTINUE 06810036 ! 685: C 06820036 ! 686: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 06830036 ! 687: 99999 CONTINUE 06840036 ! 688: WRITE (I02,90002) 06850036 ! 689: WRITE (I02,90006) 06860036 ! 690: WRITE (I02,90002) 06870036 ! 691: WRITE (I02,90002) 06880036 ! 692: WRITE (I02,90007) 06890036 ! 693: WRITE (I02,90002) 06900036 ! 694: WRITE (I02,90008) IVFAIL 06910036 ! 695: WRITE (I02,90009) IVPASS 06920036 ! 696: WRITE (I02,90010) IVDELE 06930036 ! 697: C 06940036 ! 698: C 06950036 ! 699: C TERMINATE ROUTINE EXECUTION 06960036 ! 700: STOP 06970036 ! 701: C 06980036 ! 702: C FORMAT STATEMENTS FOR PAGE HEADERS 06990036 ! 703: 90000 FORMAT (1H1) 07000036 ! 704: 90002 FORMAT (1H ) 07010036 ! 705: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 07020036 ! 706: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 07030036 ! 707: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 07040036 ! 708: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 07050036 ! 709: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 07060036 ! 710: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 07070036 ! 711: C 07080036 ! 712: C FORMAT STATEMENTS FOR RUN SUMMARIES 07090036 ! 713: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 07100036 ! 714: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 07110036 ! 715: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 07120036 ! 716: C 07130036 ! 717: C FORMAT STATEMENTS FOR TEST RESULTS 07140036 ! 718: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 07150036 ! 719: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 07160036 ! 720: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 07170036 ! 721: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 07180036 ! 722: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 07190036 ! 723: C 07200036 ! 724: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM036) 07210036 ! 725: END 07220036
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.