|
|
1.1 ! root 1: C COMMENT SECTION 00010038 ! 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 00020038 ! 6: C FM038 00030038 ! 7: C 00040038 ! 8: C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050038 ! 9: C FORM INTEGER VARIABLE = ARITHMETIC EXPRESSION 00060038 ! 10: C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00070038 ! 11: C OPERATOR /, INTEGER CONSTANTS AND AN INTEGER VARIABLE. BOTH 00080038 ! 12: C POSITIVE AND NEGATIVE VALUES ARE USED FOR THE INTEGER CONSTANTS 00090038 ! 13: C AND THE INTEGER VARIABLE. 00100038 ! 14: C 00110038 ! 15: C THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT 00120038 ! 16: C AND TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED 00130038 ! 17: C IN THE RESULTANT INTEGER VARIABLE. SOME OF THE TESTS USE PARENS 00140038 ! 18: C TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSION. 00150038 ! 19: C 00160038 ! 20: C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00170038 ! 21: C (1) (INTEGER CONSTANT/INTEGER CONSTANT)/INTEGER CONSTANT 00180038 ! 22: C (2) INTEGER CONSTANT/(INTEGER CONSTANT/INTEGER CONSTANT) 00190038 ! 23: C (3) INTEGER VARIABLE/INTEGER CONSTANT 00200038 ! 24: C (4) INTEGER CONSTANT/INTEGER VARIABLE 00210038 ! 25: C 00220038 ! 26: C REFERENCES 00230038 ! 27: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00240038 ! 28: C X3.9-1978 00250038 ! 29: C 00260038 ! 30: C SECTION 4.3, INTEGER TYPE 00270038 ! 31: C SECTION 4.3.1, INTEGER CONSTANT 00280038 ! 32: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00290038 ! 33: C SECTION 6.6, EVALUATION OF EXPRESSIONS 00300038 ! 34: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00310038 ! 35: C 00320038 ! 36: C ********************************************************** 00330038 ! 37: C 00340038 ! 38: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00350038 ! 39: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00360038 ! 40: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00370038 ! 41: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00380038 ! 42: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00390038 ! 43: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00400038 ! 44: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00410038 ! 45: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00420038 ! 46: C OF EXECUTING THESE TESTS. 00430038 ! 47: C 00440038 ! 48: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00450038 ! 49: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00460038 ! 50: C 00470038 ! 51: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00480038 ! 52: C 00490038 ! 53: C DEPARTMENT OF THE NAVY 00500038 ! 54: C FEDERAL COBOL COMPILER TESTING SERVICE 00510038 ! 55: C WASHINGTON, D.C. 20376 00520038 ! 56: C 00530038 ! 57: C ********************************************************** 00540038 ! 58: C 00550038 ! 59: C 00560038 ! 60: C 00570038 ! 61: C INITIALIZATION SECTION 00580038 ! 62: C 00590038 ! 63: C INITIALIZE CONSTANTS 00600038 ! 64: C ************** 00610038 ! 65: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00620038 ! 66: I01 = 5 00630038 ! 67: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00640038 ! 68: I02 = 6 00650038 ! 69: C SYSTEM ENVIRONMENT SECTION 00660038 ! 70: C 00670038 ! 71: I01 = 5 00680038 ! 72: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00690038 ! 73: C (UNIT NUMBER FOR CARD READER). 00700038 ! 74: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00710038 ! 75: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00720038 ! 76: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00730038 ! 77: C 00740038 ! 78: I02 = 6 00750038 ! 79: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00760038 ! 80: C (UNIT NUMBER FOR PRINTER). 00770038 ! 81: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00780038 ! 82: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00790038 ! 83: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00800038 ! 84: C 00810038 ! 85: IVPASS=0 00820038 ! 86: IVFAIL=0 00830038 ! 87: IVDELE=0 00840038 ! 88: ICZERO=0 00850038 ! 89: C 00860038 ! 90: C WRITE PAGE HEADERS 00870038 ! 91: WRITE (I02,90000) 00880038 ! 92: WRITE (I02,90001) 00890038 ! 93: WRITE (I02,90002) 00900038 ! 94: WRITE (I02, 90002) 00910038 ! 95: WRITE (I02,90003) 00920038 ! 96: WRITE (I02,90002) 00930038 ! 97: WRITE (I02,90004) 00940038 ! 98: WRITE (I02,90002) 00950038 ! 99: WRITE (I02,90011) 00960038 ! 100: WRITE (I02,90002) 00970038 ! 101: WRITE (I02,90002) 00980038 ! 102: WRITE (I02,90005) 00990038 ! 103: WRITE (I02,90006) 01000038 ! 104: WRITE (I02,90002) 01010038 ! 105: C 01020038 ! 106: C TEST SECTION 01030038 ! 107: C 01040038 ! 108: C ARITHMETIC ASSIGNMENT STATEMENT 01050038 ! 109: C 01060038 ! 110: C TEST 520 THROUGH TEST 525 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS01070038 ! 111: C OF THE FORM INTEGER VARIABLE = (INT.CON./INT.CON.)/INT.CON. 01080038 ! 112: C NO TRUNCATION OF THE RESULT IS REQUIRED. BOTH POSITIVE AND 01090038 ! 113: C NEGATIVE CONSTANTS ARE INCLUDED. 01100038 ! 114: C 01110038 ! 115: 5201 CONTINUE 01120038 ! 116: IVTNUM = 520 01130038 ! 117: C 01140038 ! 118: C **** TEST 520 **** 01150038 ! 119: C 01160038 ! 120: IF (ICZERO) 35200, 5200, 35200 01170038 ! 121: 5200 CONTINUE 01180038 ! 122: IVCOMP = (24/3)/4 01190038 ! 123: GO TO 45200 01200038 ! 124: 35200 IVDELE = IVDELE + 1 01210038 ! 125: WRITE (I02,80003) IVTNUM 01220038 ! 126: IF (ICZERO) 45200, 5211, 45200 01230038 ! 127: 45200 IF (IVCOMP - 2) 25200,15200,25200 01240038 ! 128: 15200 IVPASS = IVPASS + 1 01250038 ! 129: WRITE (I02,80001) IVTNUM 01260038 ! 130: GO TO 5211 01270038 ! 131: 25200 IVFAIL = IVFAIL + 1 01280038 ! 132: IVCORR = 2 01290038 ! 133: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01300038 ! 134: 5211 CONTINUE 01310038 ! 135: IVTNUM = 521 01320038 ! 136: C 01330038 ! 137: C **** TEST 521 **** 01340038 ! 138: C 01350038 ! 139: IF (ICZERO) 35210, 5210, 35210 01360038 ! 140: 5210 CONTINUE 01370038 ! 141: IVCOMP = (7150/2)/25 01380038 ! 142: GO TO 45210 01390038 ! 143: 35210 IVDELE = IVDELE + 1 01400038 ! 144: WRITE (I02,80003) IVTNUM 01410038 ! 145: IF (ICZERO) 45210, 5221, 45210 01420038 ! 146: 45210 IF (IVCOMP - 143) 25210,15210,25210 01430038 ! 147: 15210 IVPASS = IVPASS + 1 01440038 ! 148: WRITE (I02,80001) IVTNUM 01450038 ! 149: GO TO 5221 01460038 ! 150: 25210 IVFAIL = IVFAIL + 1 01470038 ! 151: IVCORR = 143 01480038 ! 152: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01490038 ! 153: 5221 CONTINUE 01500038 ! 154: IVTNUM = 522 01510038 ! 155: C 01520038 ! 156: C **** TEST 522 **** 01530038 ! 157: C 01540038 ! 158: IF (ICZERO) 35220, 5220, 35220 01550038 ! 159: 01560038 ! 160: 5220 CONTINUE 01570038 ! 161: IVCOMP = (-24/3)/4 01580038 ! 162: GO TO 45220 01590038 ! 163: 35220 IVDELE = IVDELE + 1 01600038 ! 164: WRITE (I02,80003) IVTNUM 01610038 ! 165: IF (ICZERO) 45220, 5231, 45220 01620038 ! 166: 45220 IF (IVCOMP + 2) 25220,15220,25220 01630038 ! 167: 15220 IVPASS = IVPASS + 1 01640038 ! 168: WRITE (I02,80001) IVTNUM 01650038 ! 169: GO TO 5231 01660038 ! 170: 25220 IVFAIL = IVFAIL + 1 01670038 ! 171: IVCORR = -2 01680038 ! 172: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01690038 ! 173: 5231 CONTINUE 01700038 ! 174: IVTNUM = 523 01710038 ! 175: C 01720038 ! 176: C **** TEST 523 **** 01730038 ! 177: C 01740038 ! 178: IF (ICZERO) 35230, 5230, 35230 01750038 ! 179: 5230 CONTINUE 01760038 ! 180: IVCOMP = (330/(-3))/2 01770038 ! 181: GO TO 45230 01780038 ! 182: 35230 IVDELE = IVDELE + 1 01790038 ! 183: WRITE (I02,80003) IVTNUM 01800038 ! 184: IF (ICZERO) 45230, 5241, 45230 01810038 ! 185: 45230 IF (IVCOMP + 55) 25230,15230,25230 01820038 ! 186: 15230 IVPASS = IVPASS + 1 01830038 ! 187: WRITE (I02,80001) IVTNUM 01840038 ! 188: GO TO 5241 01850038 ! 189: 25230 IVFAIL = IVFAIL + 1 01860038 ! 190: IVCORR = -55 01870038 ! 191: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01880038 ! 192: 5241 CONTINUE 01890038 ! 193: IVTNUM = 524 01900038 ! 194: C 01910038 ! 195: C **** TEST 524 **** 01920038 ! 196: C 01930038 ! 197: IF (ICZERO) 35240, 5240, 35240 01940038 ! 198: 5240 CONTINUE 01950038 ! 199: IVCOMP = ((-7150)/(-2))/(-25) 01960038 ! 200: GO TO 45240 01970038 ! 201: 35240 IVDELE = IVDELE + 1 01980038 ! 202: WRITE (I02,80003) IVTNUM 01990038 ! 203: IF (ICZERO) 45240, 5251, 45240 02000038 ! 204: 45240 IF (IVCOMP + 143) 25240,15240,25240 02010038 ! 205: 15240 IVPASS = IVPASS + 1 02020038 ! 206: WRITE (I02,80001) IVTNUM 02030038 ! 207: GO TO 5251 02040038 ! 208: 25240 IVFAIL = IVFAIL + 1 02050038 ! 209: IVCORR = -143 02060038 ! 210: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02070038 ! 211: 5251 CONTINUE 02080038 ! 212: IVTNUM = 525 02090038 ! 213: C 02100038 ! 214: C **** TEST 525 **** 02110038 ! 215: C 02120038 ! 216: IF (ICZERO) 35250, 5250, 35250 02130038 ! 217: 5250 CONTINUE 02140038 ! 218: IVCOMP = (15249/(-13))/(-51) 02150038 ! 219: GO TO 45250 02160038 ! 220: 35250 IVDELE = IVDELE + 1 02170038 ! 221: WRITE (I02,80003) IVTNUM 02180038 ! 222: IF (ICZERO) 45250, 5261, 45250 02190038 ! 223: 45250 IF (IVCOMP - 23) 25250,15250,25250 02200038 ! 224: 15250 IVPASS = IVPASS + 1 02210038 ! 225: WRITE (I02,80001) IVTNUM 02220038 ! 226: GO TO 5261 02230038 ! 227: 25250 IVFAIL = IVFAIL + 1 02240038 ! 228: IVCORR = 23 02250038 ! 229: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02260038 ! 230: C 02270038 ! 231: C TEST 526 THROUGH TEST 531 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS02280038 ! 232: C OF THE FORM IV = (IC/IC)/IC. 02290038 ! 233: C TRUNCATION OF THE RESULT IS REQUIRED. BOTH POSITIVE AND 02300038 ! 234: C NEGATIVE CONSTANTS ARE INCLUDED. 02310038 ! 235: C 02320038 ! 236: 5261 CONTINUE 02330038 ! 237: IVTNUM = 526 02340038 ! 238: C 02350038 ! 239: C **** TEST 526 **** 02360038 ! 240: C 02370038 ! 241: IF (ICZERO) 35260, 5260, 35260 02380038 ! 242: 5260 CONTINUE 02390038 ! 243: IVCOMP = (24/3)/3 02400038 ! 244: GO TO 45260 02410038 ! 245: 35260 IVDELE = IVDELE + 1 02420038 ! 246: WRITE (I02,80003) IVTNUM 02430038 ! 247: IF (ICZERO) 45260, 5271, 45260 02440038 ! 248: 45260 IF (IVCOMP - 2) 25260,15260,25260 02450038 ! 249: 15260 IVPASS = IVPASS + 1 02460038 ! 250: WRITE (I02,80001) IVTNUM 02470038 ! 251: GO TO 5271 02480038 ! 252: 25260 IVFAIL = IVFAIL + 1 02490038 ! 253: IVCORR = 2 02500038 ! 254: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02510038 ! 255: 5271 CONTINUE 02520038 ! 256: IVTNUM = 527 02530038 ! 257: C 02540038 ! 258: C **** TEST 527 **** 02550038 ! 259: C 02560038 ! 260: IF (ICZERO) 35270, 5270, 35270 02570038 ! 261: 5270 CONTINUE 02580038 ! 262: IVCOMP = (7151/3)/10 02590038 ! 263: GO TO 45270 02600038 ! 264: 35270 IVDELE = IVDELE + 1 02610038 ! 265: WRITE (I02,80003) IVTNUM 02620038 ! 266: IF (ICZERO) 45270, 5281, 45270 02630038 ! 267: 45270 IF (IVCOMP - 238) 25270,15270,25270 02640038 ! 268: 15270 IVPASS = IVPASS + 1 02650038 ! 269: WRITE (I02,80001) IVTNUM 02660038 ! 270: GO TO 5281 02670038 ! 271: 25270 IVFAIL = IVFAIL + 1 02680038 ! 272: IVCORR = 238 02690038 ! 273: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02700038 ! 274: 5281 CONTINUE 02710038 ! 275: IVTNUM = 528 02720038 ! 276: C 02730038 ! 277: C **** TEST 528 **** 02740038 ! 278: C 02750038 ! 279: IF (ICZERO) 35280, 5280, 35280 02760038 ! 280: 5280 CONTINUE 02770038 ! 281: IVCOMP = (-24/3)/3 02780038 ! 282: GO TO 45280 02790038 ! 283: 35280 IVDELE = IVDELE + 1 02800038 ! 284: WRITE (I02,80003) IVTNUM 02810038 ! 285: IF (ICZERO) 45280, 5291, 45280 02820038 ! 286: 45280 IF (IVCOMP + 2) 25280,15280,25280 02830038 ! 287: 15280 IVPASS = IVPASS + 1 02840038 ! 288: WRITE (I02,80001) IVTNUM 02850038 ! 289: GO TO 5291 02860038 ! 290: 25280 IVFAIL = IVFAIL + 1 02870038 ! 291: IVCORR = -2 02880038 ! 292: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02890038 ! 293: 5291 CONTINUE 02900038 ! 294: IVTNUM = 529 02910038 ! 295: C 02920038 ! 296: C **** TEST 529 **** 02930038 ! 297: C 02940038 ! 298: IF (ICZERO) 35290, 5290, 35290 02950038 ! 299: 5290 CONTINUE 02960038 ! 300: IVCOMP = (7151/(-3))/10 02970038 ! 301: GO TO 45290 02980038 ! 302: 35290 IVDELE = IVDELE + 1 02990038 ! 303: WRITE (I02,80003) IVTNUM 03000038 ! 304: IF (ICZERO) 45290, 5301, 45290 03010038 ! 305: 45290 IF (IVCOMP + 238) 25290,15290,25290 03020038 ! 306: 15290 IVPASS = IVPASS + 1 03030038 ! 307: WRITE (I02,80001) IVTNUM 03040038 ! 308: GO TO 5301 03050038 ! 309: 25290 IVFAIL = IVFAIL + 1 03060038 ! 310: IVCORR = -238 03070038 ! 311: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03080038 ! 312: 5301 CONTINUE 03090038 ! 313: IVTNUM = 530 03100038 ! 314: C 03110038 ! 315: C **** TEST 530 **** 03120038 ! 316: C 03130038 ! 317: IF (ICZERO) 35300, 5300, 35300 03140038 ! 318: 5300 CONTINUE 03150038 ! 319: IVCOMP = (15248/(-51))/(-23) 03160038 ! 320: GO TO 45300 03170038 ! 321: 35300 IVDELE = IVDELE + 1 03180038 ! 322: WRITE (I02,80003) IVTNUM 03190038 ! 323: IF (ICZERO) 45300, 5311, 45300 03200038 ! 324: 45300 IF (IVCOMP - 12) 25300,15300,25300 03210038 ! 325: 15300 IVPASS = IVPASS + 1 03220038 ! 326: WRITE (I02,80001) IVTNUM 03230038 ! 327: GO TO 5311 03240038 ! 328: 25300 IVFAIL = IVFAIL + 1 03250038 ! 329: IVCORR = 12 03260038 ! 330: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03270038 ! 331: 5311 CONTINUE 03280038 ! 332: IVTNUM = 531 03290038 ! 333: C 03300038 ! 334: C **** TEST 531 **** 03310038 ! 335: C 03320038 ! 336: IF (ICZERO) 35310, 5310, 35310 03330038 ! 337: 5310 CONTINUE 03340038 ! 338: IVCOMP = ((-27342)/(-4))/(-3) 03350038 ! 339: GO TO 45310 03360038 ! 340: 35310 IVDELE = IVDELE + 1 03370038 ! 341: WRITE (I02,80003) IVTNUM 03380038 ! 342: IF (ICZERO) 45310, 5321, 45310 03390038 ! 343: 45310 IF (IVCOMP + 2278) 25310,15310,25310 03400038 ! 344: 15310 IVPASS = IVPASS + 1 03410038 ! 345: WRITE (I02,80001) IVTNUM 03420038 ! 346: GO TO 5321 03430038 ! 347: 25310 IVFAIL = IVFAIL + 1 03440038 ! 348: IVCORR = -2278 03450038 ! 349: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03460038 ! 350: C 03470038 ! 351: C TEST 532 THROUGH TEST 537 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS03480038 ! 352: C OF THE FORM IV = IC/(IC/IC). 03490038 ! 353: C NO TRUNCATION OF THE RESULT IS REQUIRED. BOTH POSITIVE AND 03500038 ! 354: C NEGATIVE CONSTANTS ARE INCLUDED. 03510038 ! 355: C 03520038 ! 356: 5321 CONTINUE 03530038 ! 357: IVTNUM = 532 03540038 ! 358: C 03550038 ! 359: C **** TEST 532 **** 03560038 ! 360: C 03570038 ! 361: IF (ICZERO) 35320, 5320, 35320 03580038 ! 362: 5320 CONTINUE 03590038 ! 363: IVCOMP = 24/(8/4) 03600038 ! 364: GO TO 45320 03610038 ! 365: 35320 IVDELE = IVDELE + 1 03620038 ! 366: WRITE (I02,80003) IVTNUM 03630038 ! 367: IF (ICZERO) 45320, 5331, 45320 03640038 ! 368: 45320 IF (IVCOMP - 12) 25320,15320,25320 03650038 ! 369: 15320 IVPASS = IVPASS + 1 03660038 ! 370: WRITE (I02,80001) IVTNUM 03670038 ! 371: GO TO 5331 03680038 ! 372: 25320 IVFAIL = IVFAIL + 1 03690038 ! 373: IVCORR = 12 03700038 ! 374: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03710038 ! 375: 5331 CONTINUE 03720038 ! 376: IVTNUM = 533 03730038 ! 377: C 03740038 ! 378: C **** TEST 533 **** 03750038 ! 379: C 03760038 ! 380: IF (ICZERO) 35330, 5330, 35330 03770038 ! 381: 5330 CONTINUE 03780038 ! 382: IVCOMP = 7150/(25/5) 03790038 ! 383: GO TO 45330 03800038 ! 384: 35330 IVDELE = IVDELE + 1 03810038 ! 385: WRITE (I02,80003) IVTNUM 03820038 ! 386: IF (ICZERO) 45330, 5341, 45330 03830038 ! 387: 45330 IF (IVCOMP - 1430) 25330,15330,25330 03840038 ! 388: 15330 IVPASS = IVPASS + 1 03850038 ! 389: WRITE (I02,80001) IVTNUM 03860038 ! 390: GO TO 5341 03870038 ! 391: 25330 IVFAIL = IVFAIL + 1 03880038 ! 392: IVCORR = 1430 03890038 ! 393: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03900038 ! 394: 5341 CONTINUE 03910038 ! 395: IVTNUM = 534 03920038 ! 396: C 03930038 ! 397: C **** TEST 534 **** 03940038 ! 398: C 03950038 ! 399: IF (ICZERO) 35340, 5340, 35340 03960038 ! 400: 5340 CONTINUE 03970038 ! 401: IVCOMP = -24/(8/4) 03980038 ! 402: GO TO 45340 03990038 ! 403: 35340 IVDELE = IVDELE + 1 04000038 ! 404: WRITE (I02,80003) IVTNUM 04010038 ! 405: IF (ICZERO) 45340, 5351, 45340 04020038 ! 406: 45340 IF (IVCOMP + 12) 25340,15340,25340 04030038 ! 407: 15340 IVPASS = IVPASS + 1 04040038 ! 408: WRITE (I02,80001) IVTNUM 04050038 ! 409: GO TO 5351 04060038 ! 410: 25340 IVFAIL = IVFAIL + 1 04070038 ! 411: IVCORR = -12 04080038 ! 412: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04090038 ! 413: 5351 CONTINUE 04100038 ! 414: IVTNUM = 535 04110038 ! 415: C 04120038 ! 416: C **** TEST 535 **** 04130038 ! 417: C 04140038 ! 418: IF (ICZERO) 35350, 5350, 35350 04150038 ! 419: 5350 CONTINUE 04160038 ! 420: IVCOMP = 24/((-8)/4) 04170038 ! 421: GO TO 45350 04180038 ! 422: 35350 IVDELE = IVDELE + 1 04190038 ! 423: WRITE (I02,80003) IVTNUM 04200038 ! 424: IF (ICZERO) 45350, 5361, 45350 04210038 ! 425: 45350 IF (IVCOMP + 12) 25350,15350,25350 04220038 ! 426: 15350 IVPASS = IVPASS + 1 04230038 ! 427: WRITE (I02,80001) IVTNUM 04240038 ! 428: GO TO 5361 04250038 ! 429: 25350 IVFAIL = IVFAIL + 1 04260038 ! 430: IVCORR = -12 04270038 ! 431: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04280038 ! 432: 5361 CONTINUE 04290038 ! 433: IVTNUM = 536 04300038 ! 434: C 04310038 ! 435: C **** TEST 536 **** 04320038 ! 436: C 04330038 ! 437: IF (ICZERO) 35360, 5360, 35360 04340038 ! 438: 5360 CONTINUE 04350038 ! 439: IVCOMP = (-7150)/((-25)/(-5)) 04360038 ! 440: GO TO 45360 04370038 ! 441: 35360 IVDELE = IVDELE + 1 04380038 ! 442: WRITE (I02,80003) IVTNUM 04390038 ! 443: IF (ICZERO) 45360, 5371, 45360 04400038 ! 444: 45360 IF (IVCOMP + 1430) 25360,15360,25360 04410038 ! 445: 15360 IVPASS = IVPASS + 1 04420038 ! 446: WRITE (I02,80001) IVTNUM 04430038 ! 447: GO TO 5371 04440038 ! 448: 25360 IVFAIL = IVFAIL + 1 04450038 ! 449: IVCORR = -1430 04460038 ! 450: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04470038 ! 451: 5371 CONTINUE 04480038 ! 452: IVTNUM = 537 04490038 ! 453: C 04500038 ! 454: C **** TEST 537 **** 04510038 ! 455: C 04520038 ! 456: IF (ICZERO) 35370, 5370, 35370 04530038 ! 457: 5370 CONTINUE 04540038 ! 458: IVCOMP = -7150/(25/(-5)) 04550038 ! 459: GO TO 45370 04560038 ! 460: 35370 IVDELE = IVDELE + 1 04570038 ! 461: WRITE (I02,80003) IVTNUM 04580038 ! 462: IF (ICZERO) 45370, 5381, 45370 04590038 ! 463: 45370 IF (IVCOMP - 1430) 25370,15370,25370 04600038 ! 464: 15370 IVPASS = IVPASS + 1 04610038 ! 465: WRITE (I02,80001) IVTNUM 04620038 ! 466: GO TO 5381 04630038 ! 467: 25370 IVFAIL = IVFAIL + 1 04640038 ! 468: IVCORR = 1430 04650038 ! 469: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04660038 ! 470: C 04670038 ! 471: C TEST 538 THROUGH TEST 543 CONTAIN ARITHMETIC ASSIGMMENT STATEMENTS04680038 ! 472: C OF THE FORM IV = IC/(IC/IC). 04690038 ! 473: C TRUNCATION OF THE RESULT IS REQUIRED. BOTH POSITIVE AND 04700038 ! 474: C NEGATIVE CONSTANTS ARE INCLUDED. 04710038 ! 475: C 04720038 ! 476: 5381 CONTINUE 04730038 ! 477: IVTNUM = 538 04740038 ! 478: C 04750038 ! 479: C **** TEST 538 **** 04760038 ! 480: C 04770038 ! 481: IF (ICZERO) 35380, 5380, 35380 04780038 ! 482: 5380 CONTINUE 04790038 ! 483: IVCOMP = 29/(5/2) 04800038 ! 484: GO TO 45380 04810038 ! 485: 35380 IVDELE = IVDELE + 1 04820038 ! 486: WRITE (I02,80003) IVTNUM 04830038 ! 487: IF (ICZERO) 45380, 5391, 45380 04840038 ! 488: 45380 IF (IVCOMP - 14) 25380,15380,25380 04850038 ! 489: 15380 IVPASS = IVPASS + 1 04860038 ! 490: WRITE (I02,80001) IVTNUM 04870038 ! 491: GO TO 5391 04880038 ! 492: 25380 IVFAIL = IVFAIL + 1 04890038 ! 493: IVCORR = 14 04900038 ! 494: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04910038 ! 495: 5391 CONTINUE 04920038 ! 496: IVTNUM = 539 04930038 ! 497: C 04940038 ! 498: C **** TEST 539 **** 04950038 ! 499: C 04960038 ! 500: IF (ICZERO) 35390, 5390, 35390 04970038 ! 501: 5390 CONTINUE 04980038 ! 502: IVCOMP = 7154/(26/5) 04990038 ! 503: GO TO 45390 05000038 ! 504: 35390 IVDELE = IVDELE + 1 05010038 ! 505: WRITE (I02,80003) IVTNUM 05020038 ! 506: IF (ICZERO) 45390, 5401, 45390 05030038 ! 507: 45390 IF (IVCOMP - 1430) 25390,15390,25390 05040038 ! 508: 15390 IVPASS = IVPASS + 1 05050038 ! 509: WRITE (I02,80001) IVTNUM 05060038 ! 510: GO TO 5401 05070038 ! 511: 25390 IVFAIL = IVFAIL + 1 05080038 ! 512: IVCORR = 1430 05090038 ! 513: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05100038 ! 514: 5401 CONTINUE 05110038 ! 515: IVTNUM = 540 05120038 ! 516: C 05130038 ! 517: C **** TEST 540 **** 05140038 ! 518: C 05150038 ! 519: IF (ICZERO) 35400, 5400, 35400 05160038 ! 520: 5400 CONTINUE 05170038 ! 521: IVCOMP = -7154/(26/5) 05180038 ! 522: GO TO 45400 05190038 ! 523: 35400 IVDELE = IVDELE + 1 05200038 ! 524: WRITE (I02,80003) IVTNUM 05210038 ! 525: IF (ICZERO) 45400, 5411, 45400 05220038 ! 526: 45400 IF (IVCOMP + 1430) 25400,15400,25400 05230038 ! 527: 15400 IVPASS = IVPASS + 1 05240038 ! 528: WRITE (I02,80001) IVTNUM 05250038 ! 529: GO TO 5411 05260038 ! 530: 25400 IVFAIL = IVFAIL + 1 05270038 ! 531: IVCORR = -1430 05280038 ! 532: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05290038 ! 533: 5411 CONTINUE 05300038 ! 534: IVTNUM = 541 05310038 ! 535: C 05320038 ! 536: C **** TEST 541 **** 05330038 ! 537: C 05340038 ! 538: IF (ICZERO) 35410, 5410, 35410 05350038 ! 539: 5410 CONTINUE 05360038 ! 540: IVCOMP = (-7154)/((-26)/5) 05370038 ! 541: GO TO 45410 05380038 ! 542: 35410 IVDELE = IVDELE + 1 05390038 ! 543: WRITE (I02,80003) IVTNUM 05400038 ! 544: IF (ICZERO) 45410, 5421, 45410 05410038 ! 545: 45410 IF (IVCOMP - 1430) 25410,15410,25410 05420038 ! 546: 15410 IVPASS = IVPASS + 1 05430038 ! 547: WRITE (I02,80001) IVTNUM 05440038 ! 548: GO TO 5421 05450038 ! 549: 25410 IVFAIL = IVFAIL + 1 05460038 ! 550: IVCORR = 1430 05470038 ! 551: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05480038 ! 552: 5421 CONTINUE 05490038 ! 553: IVTNUM = 542 05500038 ! 554: C 05510038 ! 555: C **** TEST 542 **** 05520038 ! 556: C 05530038 ! 557: IF (ICZERO) 35420, 5420, 35420 05540038 ! 558: 5420 CONTINUE 05550038 ! 559: IVCOMP = 7154/((-26)/(-5)) 05560038 ! 560: GO TO 45420 05570038 ! 561: 35420 IVDELE = IVDELE + 1 05580038 ! 562: WRITE (I02,80003) IVTNUM 05590038 ! 563: IF (ICZERO) 45420, 5431, 45420 05600038 ! 564: 45420 IF (IVCOMP - 1430) 25420,15420,25420 05610038 ! 565: 15420 IVPASS = IVPASS + 1 05620038 ! 566: WRITE (I02,80001) IVTNUM 05630038 ! 567: GO TO 5431 05640038 ! 568: 25420 IVFAIL = IVFAIL + 1 05650038 ! 569: IVCORR = 1430 05660038 ! 570: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05670038 ! 571: 5431 CONTINUE 05680038 ! 572: IVTNUM = 543 05690038 ! 573: C 05700038 ! 574: C **** TEST 543 **** 05710038 ! 575: C 05720038 ! 576: IF (ICZERO) 35430, 5430, 35430 05730038 ! 577: 5430 CONTINUE 05740038 ! 578: IVCOMP = (-7154)/((-26)/(-5)) 05750038 ! 579: GO TO 45430 05760038 ! 580: 35430 IVDELE = IVDELE + 1 05770038 ! 581: WRITE (I02,80003) IVTNUM 05780038 ! 582: IF (ICZERO) 45430, 5441, 45430 05790038 ! 583: 45430 IF (IVCOMP + 1430) 25430,15430,25430 05800038 ! 584: 15430 IVPASS = IVPASS + 1 05810038 ! 585: WRITE (I02,80001) IVTNUM 05820038 ! 586: GO TO 5441 05830038 ! 587: 25430 IVFAIL = IVFAIL + 1 05840038 ! 588: IVCORR = -1430 05850038 ! 589: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05860038 ! 590: C 05870038 ! 591: C TEST 544 THROUGH TEST 547 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS05880038 ! 592: C OF THE FORM INTEGER VARIABLE = INTEGER VARIABLE/INTEGER CONSTANT05890038 ! 593: C 05900038 ! 594: 5441 CONTINUE 05910038 ! 595: IVTNUM = 544 05920038 ! 596: C 05930038 ! 597: C **** TEST 544 **** 05940038 ! 598: C 05950038 ! 599: IF (ICZERO) 35440, 5440, 35440 05960038 ! 600: 5440 CONTINUE 05970038 ! 601: IVON01 = 75 05980038 ! 602: IVCOMP = IVON01/25 05990038 ! 603: GO TO 45440 06000038 ! 604: 35440 IVDELE = IVDELE + 1 06010038 ! 605: WRITE (I02,80003) IVTNUM 06020038 ! 606: IF (ICZERO) 45440, 5451, 45440 06030038 ! 607: 45440 IF (IVCOMP - 3) 25440,15440,25440 06040038 ! 608: 15440 IVPASS = IVPASS + 1 06050038 ! 609: WRITE (I02,80001) IVTNUM 06060038 ! 610: GO TO 5451 06070038 ! 611: 25440 IVFAIL = IVFAIL + 1 06080038 ! 612: IVCORR = 3 06090038 ! 613: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06100038 ! 614: 5451 CONTINUE 06110038 ! 615: IVTNUM = 545 06120038 ! 616: C 06130038 ! 617: C **** TEST 545 **** 06140038 ! 618: C 06150038 ! 619: IF (ICZERO) 35450, 5450, 35450 06160038 ! 620: 5450 CONTINUE 06170038 ! 621: IVON01 = -3575 06180038 ! 622: IVCOMP = IVON01/25 06190038 ! 623: GO TO 45450 06200038 ! 624: 35450 IVDELE = IVDELE + 1 06210038 ! 625: WRITE (I02,80003) IVTNUM 06220038 ! 626: IF (ICZERO) 45450, 5461, 45450 06230038 ! 627: 45450 IF (IVCOMP + 143) 25450,15450,25450 06240038 ! 628: 15450 IVPASS = IVPASS + 1 06250038 ! 629: WRITE (I02,80001) IVTNUM 06260038 ! 630: GO TO 5461 06270038 ! 631: 25450 IVFAIL = IVFAIL + 1 06280038 ! 632: IVCORR = -143 06290038 ! 633: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06300038 ! 634: 5461 CONTINUE 06310038 ! 635: IVTNUM = 546 06320038 ! 636: C 06330038 ! 637: C **** TEST 546 **** 06340038 ! 638: C 06350038 ! 639: IF (ICZERO) 35460, 5460, 35460 06360038 ! 640: 5460 CONTINUE 06370038 ! 641: IVON01 = 3575 06380038 ! 642: IVCOMP = IVON01/(-143) 06390038 ! 643: GO TO 45460 06400038 ! 644: 35460 IVDELE = IVDELE + 1 06410038 ! 645: WRITE (I02,80003) IVTNUM 06420038 ! 646: IF (ICZERO) 45460, 5471, 45460 06430038 ! 647: 45460 IF (IVCOMP + 25) 25460,15460,25460 06440038 ! 648: 15460 IVPASS = IVPASS + 1 06450038 ! 649: WRITE (I02,80001) IVTNUM 06460038 ! 650: GO TO 5471 06470038 ! 651: 25460 IVFAIL = IVFAIL + 1 06480038 ! 652: IVCORR = -25 06490038 ! 653: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06500038 ! 654: 5471 CONTINUE 06510038 ! 655: IVTNUM = 547 06520038 ! 656: C 06530038 ! 657: C **** TEST 547 **** 06540038 ! 658: C 06550038 ! 659: IF (ICZERO) 35470, 5470, 35470 06560038 ! 660: 5470 CONTINUE 06570038 ! 661: IVON01 = 959 06580038 ! 662: IVCOMP = IVON01/120 06590038 ! 663: GO TO 45470 06600038 ! 664: 35470 IVDELE = IVDELE + 1 06610038 ! 665: WRITE (I02,80003) IVTNUM 06620038 ! 666: IF (ICZERO) 45470, 5481, 45470 06630038 ! 667: 45470 IF (IVCOMP -7) 25470,15470,25470 06640038 ! 668: 15470 IVPASS = IVPASS + 1 06650038 ! 669: WRITE (I02,80001) IVTNUM 06660038 ! 670: GO TO 5481 06670038 ! 671: 25470 IVFAIL = IVFAIL + 1 06680038 ! 672: IVCORR = 7 06690038 ! 673: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06700038 ! 674: C 06710038 ! 675: C TEST 548 THROUGH TEST 551 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS06720038 ! 676: C OF THE FORM INTEGER VARIABLE =INTEGER CONSTANT/INTEGER VARIABLE.06730038 ! 677: C 06740038 ! 678: 5481 CONTINUE 06750038 ! 679: IVTNUM = 548 06760038 ! 680: C 06770038 ! 681: C **** TEST 548 **** 06780038 ! 682: C 06790038 ! 683: IF (ICZERO) 35480, 5480, 35480 06800038 ! 684: 5480 CONTINUE 06810038 ! 685: IVON02 = 25 06820038 ! 686: IVCOMP = 75/IVON02 06830038 ! 687: GO TO 45480 06840038 ! 688: 35480 IVDELE = IVDELE + 1 06850038 ! 689: WRITE (I02,80003) IVTNUM 06860038 ! 690: IF (ICZERO) 45480, 5491, 45480 06870038 ! 691: 45480 IF (IVCOMP - 3) 25480,15480,25480 06880038 ! 692: 15480 IVPASS = IVPASS + 1 06890038 ! 693: WRITE (I02,80001) IVTNUM 06900038 ! 694: GO TO 5491 06910038 ! 695: 25480 IVFAIL = IVFAIL + 1 06920038 ! 696: IVCORR = 3 06930038 ! 697: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06940038 ! 698: 5491 CONTINUE 06950038 ! 699: IVTNUM = 549 06960038 ! 700: C 06970038 ! 701: C **** TEST 549 **** 06980038 ! 702: C 06990038 ! 703: IF (ICZERO) 35490, 5490, 35490 07000038 ! 704: 5490 CONTINUE 07010038 ! 705: IVON02 = -25 07020038 ! 706: IVCOMP = 3579/IVON02 07030038 ! 707: GO TO 45490 07040038 ! 708: 35490 IVDELE = IVDELE + 1 07050038 ! 709: WRITE (I02,80003) IVTNUM 07060038 ! 710: IF (ICZERO) 45490, 5501, 45490 07070038 ! 711: 45490 IF (IVCOMP + 143) 25490,15490,25490 07080038 ! 712: 15490 IVPASS = IVPASS + 1 07090038 ! 713: WRITE (I02,80001) IVTNUM 07100038 ! 714: GO TO 5501 07110038 ! 715: 25490 IVFAIL = IVFAIL + 1 07120038 ! 716: IVCORR = -143 07130038 ! 717: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07140038 ! 718: 5501 CONTINUE 07150038 ! 719: IVTNUM = 550 07160038 ! 720: C 07170038 ! 721: C **** TEST 550 **** 07180038 ! 722: C 07190038 ! 723: IF (ICZERO) 35500, 5500, 35500 07200038 ! 724: 5500 CONTINUE 07210038 ! 725: IVON02 = -143 07220038 ! 726: IVCOMP = (-3575)/IVON02 07230038 ! 727: GO TO 45500 07240038 ! 728: 35500 IVDELE = IVDELE + 1 07250038 ! 729: WRITE (I02,80003) IVTNUM 07260038 ! 730: IF (ICZERO) 45500, 5511, 45500 07270038 ! 731: 45500 IF (IVCOMP - 25) 25500,15500,25500 07280038 ! 732: 15500 IVPASS = IVPASS + 1 07290038 ! 733: WRITE (I02,80001) IVTNUM 07300038 ! 734: GO TO 5511 07310038 ! 735: 25500 IVFAIL = IVFAIL + 1 07320038 ! 736: IVCORR = 25 07330038 ! 737: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07340038 ! 738: 5511 CONTINUE 07350038 ! 739: IVTNUM = 551 07360038 ! 740: C 07370038 ! 741: C **** TEST 551 **** 07380038 ! 742: C 07390038 ! 743: IF (ICZERO) 35510, 5510, 35510 07400038 ! 744: 5510 CONTINUE 07410038 ! 745: IVON02 = 120 07420038 ! 746: IVCOMP = -959/IVON02 07430038 ! 747: GO TO 45510 07440038 ! 748: 35510 IVDELE = IVDELE + 1 07450038 ! 749: WRITE (I02,80003) IVTNUM 07460038 ! 750: IF (ICZERO) 45510, 5521, 45510 07470038 ! 751: 45510 IF (IVCOMP + 7) 25510,15510,25510 07480038 ! 752: 15510 IVPASS = IVPASS + 1 07490038 ! 753: WRITE (I02,80001) IVTNUM 07500038 ! 754: GO TO 5521 07510038 ! 755: 25510 IVFAIL = IVFAIL + 1 07520038 ! 756: IVCORR = -7 07530038 ! 757: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07540038 ! 758: C **** END OF TESTS **** 07550038 ! 759: 5521 CONTINUE 07560038 ! 760: C 07570038 ! 761: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 07580038 ! 762: 99999 CONTINUE 07590038 ! 763: WRITE (I02,90002) 07600038 ! 764: WRITE (I02,90006) 07610038 ! 765: WRITE (I02,90002) 07620038 ! 766: WRITE (I02,90002) 07630038 ! 767: WRITE (I02,90007) 07640038 ! 768: WRITE (I02,90002) 07650038 ! 769: WRITE (I02,90008) IVFAIL 07660038 ! 770: WRITE (I02,90009) IVPASS 07670038 ! 771: WRITE (I02,90010) IVDELE 07680038 ! 772: C 07690038 ! 773: C 07700038 ! 774: C TERMINATE ROUTINE EXECUTION 07710038 ! 775: STOP 07720038 ! 776: C 07730038 ! 777: C FORMAT STATEMENTS FOR PAGE HEADERS 07740038 ! 778: 90000 FORMAT (1H1) 07750038 ! 779: 90002 FORMAT (1H ) 07760038 ! 780: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 07770038 ! 781: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 07780038 ! 782: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 07790038 ! 783: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 07800038 ! 784: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 07810038 ! 785: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 07820038 ! 786: C 07830038 ! 787: C FORMAT STATEMENTS FOR RUN SUMMARIES 07840038 ! 788: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 07850038 ! 789: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 07860038 ! 790: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 07870038 ! 791: C 07880038 ! 792: C FORMAT STATEMENTS FOR TEST RESULTS 07890038 ! 793: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 07900038 ! 794: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 07910038 ! 795: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 07920038 ! 796: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 07930038 ! 797: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 07940038 ! 798: C 07950038 ! 799: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM038) 07960038 ! 800: END 07970038
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.