|
|
1.1 ! root 1: C COMMENT SECTION 00010032 ! 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 00020032 ! 6: C FM032 00030032 ! 7: C 00040032 ! 8: C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050032 ! 9: C FORM 00060032 ! 10: C INTEGER VARIABLE = ARITHMETIC EXPRESSION 00070032 ! 11: C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00080032 ! 12: C OPERATOR -, INTEGER CONSTANTS AND INTEGER VARIABLES. SOME OF THE 00090032 ! 13: C TESTS USE PARENTHESES TO GROUP ELEMENTS IN AN ARITHMETIC 00100032 ! 14: C EXPRESSION. 00110032 ! 15: C 00120032 ! 16: C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00130032 ! 17: C (1) INTEGER VAR.= INT. VAR. - INT.VAR.-INT.CON 00140032 ! 18: C = INT. VAR. - INT.CON.-INT.VAR 00150032 ! 19: C = INT. CON. - INT.VAR -INT.VAR. 00160032 ! 20: C (2) SAME FORMS AS (1) BUT WITH PARENTHESES TO GROUP ELEMENTS 00170032 ! 21: C IN ARITHMETIC EXPRESSION. 00180032 ! 22: C 00190032 ! 23: C REFERENCES 00200032 ! 24: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00210032 ! 25: C X3.9-1978 00220032 ! 26: C 00230032 ! 27: C SECTION 4.3, INTEGER TYPE 00240032 ! 28: C SECTION 4.3.1, INTEGER CONSTANT 00250032 ! 29: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00260032 ! 30: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00270032 ! 31: C 00280032 ! 32: C 00290032 ! 33: C ********************************************************** 00300032 ! 34: C 00310032 ! 35: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00320032 ! 36: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00330032 ! 37: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00340032 ! 38: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00350032 ! 39: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00360032 ! 40: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00370032 ! 41: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00380032 ! 42: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00390032 ! 43: C OF EXECUTING THESE TESTS. 00400032 ! 44: C 00410032 ! 45: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00420032 ! 46: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00430032 ! 47: C 00440032 ! 48: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00450032 ! 49: C 00460032 ! 50: C DEPARTMENT OF THE NAVY 00470032 ! 51: C FEDERAL COBOL COMPILER TESTING SERVICE 00480032 ! 52: C WASHINGTON, D.C. 20376 00490032 ! 53: C 00500032 ! 54: C ********************************************************** 00510032 ! 55: C 00520032 ! 56: C 00530032 ! 57: C 00540032 ! 58: C INITIALIZATION SECTION 00550032 ! 59: C 00560032 ! 60: C INITIALIZE CONSTANTS 00570032 ! 61: C ************** 00580032 ! 62: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00590032 ! 63: I01 = 5 00600032 ! 64: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00610032 ! 65: I02 = 6 00620032 ! 66: C SYSTEM ENVIRONMENT SECTION 00630032 ! 67: C 00640032 ! 68: I01 = 5 00650032 ! 69: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00660032 ! 70: C (UNIT NUMBER FOR CARD READER). 00670032 ! 71: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00680032 ! 72: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00690032 ! 73: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00700032 ! 74: C 00710032 ! 75: I02 = 6 00720032 ! 76: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00730032 ! 77: C (UNIT NUMBER FOR PRINTER). 00740032 ! 78: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00750032 ! 79: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00760032 ! 80: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00770032 ! 81: C 00780032 ! 82: IVPASS=0 00790032 ! 83: IVFAIL=0 00800032 ! 84: IVDELE=0 00810032 ! 85: ICZERO=0 00820032 ! 86: C 00830032 ! 87: C WRITE PAGE HEADERS 00840032 ! 88: WRITE (I02,90000) 00850032 ! 89: WRITE (I02,90001) 00860032 ! 90: WRITE (I02,90002) 00870032 ! 91: WRITE (I02, 90002) 00880032 ! 92: WRITE (I02,90003) 00890032 ! 93: WRITE (I02,90002) 00900032 ! 94: WRITE (I02,90004) 00910032 ! 95: WRITE (I02,90002) 00920032 ! 96: WRITE (I02,90011) 00930032 ! 97: WRITE (I02,90002) 00940032 ! 98: WRITE (I02,90002) 00950032 ! 99: WRITE (I02,90005) 00960032 ! 100: WRITE (I02,90006) 00970032 ! 101: WRITE (I02,90002) 00980032 ! 102: C TEST SECTION 00990032 ! 103: C 01000032 ! 104: C ARITHMETIC ASSIGNMENT STATEMENT 01010032 ! 105: C 01020032 ! 106: C TEST 330 THROUGH TEST 347 CONTAIN TWO INTEGER VARIABLES, AN 01030032 ! 107: C INTEGER CONSTANT AND OPERATOR - IN AN ARITHMETIC EXPRESSION. THE 01040032 ! 108: C INTEGER VARIABLES CONTAIN POSITIVE AND NEGATIVE VALUES. 01050032 ! 109: C 01060032 ! 110: C TEST 330 THROUGH TEST 337 IV = IV -IV -IC 01070032 ! 111: C 01080032 ! 112: 3301 CONTINUE 01090032 ! 113: IVTNUM = 330 01100032 ! 114: C 01110032 ! 115: C **** TEST 330 **** 01120032 ! 116: C 01130032 ! 117: IF (ICZERO) 33300, 3300, 33300 01140032 ! 118: 3300 CONTINUE 01150032 ! 119: IVON01 =9 01160032 ! 120: IVON02 =4 01170032 ! 121: IVCOMP = IVON01-IVON02-2 01180032 ! 122: GO TO 43300 01190032 ! 123: 33300 IVDELE = IVDELE + 1 01200032 ! 124: WRITE (I02,80003) IVTNUM 01210032 ! 125: IF (ICZERO) 43300, 3311, 43300 01220032 ! 126: 43300 IF (IVCOMP-3) 23300,13300,23300 01230032 ! 127: 13300 IVPASS = IVPASS + 1 01240032 ! 128: WRITE (I02,80001) IVTNUM 01250032 ! 129: GO TO 3311 01260032 ! 130: 23300 IVFAIL = IVFAIL + 1 01270032 ! 131: IVCORR= 3 01280032 ! 132: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01290032 ! 133: 3311 CONTINUE 01300032 ! 134: IVTNUM = 331 01310032 ! 135: C 01320032 ! 136: C **** TEST 331 **** 01330032 ! 137: C 01340032 ! 138: IF (ICZERO) 33310, 3310, 33310 01350032 ! 139: 3310 CONTINUE 01360032 ! 140: IVON01 =-9 01370032 ! 141: IVON02 = 4 01380032 ! 142: IVCOMP = IVON01-IVON02-2 01390032 ! 143: GO TO 43310 01400032 ! 144: 33310 IVDELE = IVDELE + 1 01410032 ! 145: WRITE (I02,80003) IVTNUM 01420032 ! 146: IF (ICZERO) 43310, 3321, 43310 01430032 ! 147: 43310 IF (IVCOMP +15) 23310,13310,23310 01440032 ! 148: 13310 IVPASS = IVPASS + 1 01450032 ! 149: WRITE (I02,80001) IVTNUM 01460032 ! 150: GO TO 3321 01470032 ! 151: 23310 IVFAIL = IVFAIL + 1 01480032 ! 152: IVCORR = -15 01490032 ! 153: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01500032 ! 154: 3321 CONTINUE 01510032 ! 155: IVTNUM = 332 01520032 ! 156: C 01530032 ! 157: C **** TEST 332 **** 01540032 ! 158: C 01550032 ! 159: IF (ICZERO) 33320, 3320, 33320 01560032 ! 160: 3320 CONTINUE 01570032 ! 161: IVON01 =9 01580032 ! 162: IVON02 =-4 01590032 ! 163: IVCOMP =IVON01-IVON02-2 01600032 ! 164: GO TO 43320 01610032 ! 165: 33320 IVDELE = IVDELE + 1 01620032 ! 166: WRITE (I02,80003) IVTNUM 01630032 ! 167: IF (ICZERO) 43320, 3331, 43320 01640032 ! 168: 43320 IF (IVCOMP-11) 23320,13320,23320 01650032 ! 169: 13320 IVPASS = IVPASS + 1 01660032 ! 170: WRITE (I02,80001) IVTNUM 01670032 ! 171: GO TO 3331 01680032 ! 172: 23320 IVFAIL = IVFAIL + 1 01690032 ! 173: IVCORR = 11 01700032 ! 174: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01710032 ! 175: 3331 CONTINUE 01720032 ! 176: IVTNUM = 333 01730032 ! 177: C 01740032 ! 178: C **** TEST 333 **** 01750032 ! 179: C 01760032 ! 180: IF (ICZERO) 33330, 3330, 33330 01770032 ! 181: 3330 CONTINUE 01780032 ! 182: IVON01 =57 01790032 ! 183: IVON02 =25 01800032 ! 184: IVCOMP=IVON01-IVON02-22 01810032 ! 185: GO TO 43330 01820032 ! 186: 33330 IVDELE = IVDELE + 1 01830032 ! 187: WRITE (I02,80003) IVTNUM 01840032 ! 188: IF (ICZERO) 43330, 3341, 43330 01850032 ! 189: 43330 IF (IVCOMP -10) 23330,13330,23330 01860032 ! 190: 13330 IVPASS = IVPASS + 1 01870032 ! 191: WRITE (I02,80001) IVTNUM 01880032 ! 192: GO TO 3341 01890032 ! 193: 23330 IVFAIL = IVFAIL + 1 01900032 ! 194: IVCORR = 10 01910032 ! 195: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01920032 ! 196: 3341 CONTINUE 01930032 ! 197: IVTNUM = 334 01940032 ! 198: C 01950032 ! 199: C **** TEST 334 **** 01960032 ! 200: C 01970032 ! 201: IF (ICZERO) 33340, 3340, 33340 01980032 ! 202: 3340 CONTINUE 01990032 ! 203: IVON01 = 101 02000032 ! 204: IVON02 = 683 02010032 ! 205: IVCOMP = IVON01 - IVON02 - 156 02020032 ! 206: GO TO 43340 02030032 ! 207: 33340 IVDELE = IVDELE + 1 02040032 ! 208: WRITE (I02,80003) IVTNUM 02050032 ! 209: IF (ICZERO) 43340, 3351, 43340 02060032 ! 210: 43340 IF (IVCOMP +738) 23340,13340,23340 02070032 ! 211: 13340 IVPASS = IVPASS + 1 02080032 ! 212: WRITE (I02,80001) IVTNUM 02090032 ! 213: GO TO 3351 02100032 ! 214: 23340 IVFAIL = IVFAIL + 1 02110032 ! 215: IVCORR = -738 02120032 ! 216: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02130032 ! 217: 3351 CONTINUE 02140032 ! 218: IVTNUM = 335 02150032 ! 219: C 02160032 ! 220: C **** TEST 335 **** 02170032 ! 221: C 02180032 ! 222: IF (ICZERO) 33350, 3350, 33350 02190032 ! 223: 3350 CONTINUE 02200032 ! 224: IVON01=8542 02210032 ! 225: IVON02=1122 02220032 ! 226: IVCOMP=IVON01-IVON02-1289 02230032 ! 227: GO TO 43350 02240032 ! 228: 33350 IVDELE = IVDELE + 1 02250032 ! 229: WRITE (I02,80003) IVTNUM 02260032 ! 230: IF (ICZERO) 43350, 3361, 43350 02270032 ! 231: 43350 IF (IVCOMP -6131) 23350,13350,23350 02280032 ! 232: 13350 IVPASS = IVPASS + 1 02290032 ! 233: WRITE (I02,80001) IVTNUM 02300032 ! 234: GO TO 3361 02310032 ! 235: 23350 IVFAIL = IVFAIL + 1 02320032 ! 236: IVCORR = 6131 02330032 ! 237: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02340032 ! 238: 3361 CONTINUE 02350032 ! 239: IVTNUM = 336 02360032 ! 240: C 02370032 ! 241: C **** TEST 336 **** 02380032 ! 242: C 02390032 ! 243: IF (ICZERO) 33360, 3360, 33360 02400032 ! 244: 3360 CONTINUE 02410032 ! 245: IVON01 = 31333 02420032 ! 246: IVON02 = 11111 02430032 ! 247: IVCOMP = IVON01-IVON02-10111 02440032 ! 248: GO TO 43360 02450032 ! 249: 33360 IVDELE = IVDELE + 1 02460032 ! 250: WRITE (I02,80003) IVTNUM 02470032 ! 251: IF (ICZERO) 43360, 3371, 43360 02480032 ! 252: 43360 IF (IVCOMP -10111) 23360,13360,23360 02490032 ! 253: 13360 IVPASS = IVPASS + 1 02500032 ! 254: WRITE (I02,80001) IVTNUM 02510032 ! 255: GO TO 3371 02520032 ! 256: 23360 IVFAIL = IVFAIL + 1 02530032 ! 257: IVCORR = 10111 02540032 ! 258: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02550032 ! 259: 3371 CONTINUE 02560032 ! 260: IVTNUM = 337 02570032 ! 261: C 02580032 ! 262: C **** TEST 337 **** 02590032 ! 263: C 02600032 ! 264: IF (ICZERO) 33370, 3370, 33370 02610032 ! 265: 3370 CONTINUE 02620032 ! 266: IVON01 = -31444 02630032 ! 267: IVON02 = +1001 02640032 ! 268: IVCOMP = IVON01-IVON02-300 02650032 ! 269: GO TO 43370 02660032 ! 270: 33370 IVDELE = IVDELE + 1 02670032 ! 271: WRITE (I02,80003) IVTNUM 02680032 ! 272: IF (ICZERO) 43370, 3381, 43370 02690032 ! 273: 43370 IF (IVCOMP +32745) 23370,13370,23370 02700032 ! 274: 13370 IVPASS = IVPASS + 1 02710032 ! 275: WRITE (I02,80001) IVTNUM 02720032 ! 276: GO TO 3381 02730032 ! 277: 23370 IVFAIL = IVFAIL + 1 02740032 ! 278: IVCORR = -32745 02750032 ! 279: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02760032 ! 280: C 02770032 ! 281: C TEST 338 THROUGH TEST 343 IV=IV-IC-IV 02780032 ! 282: C 02790032 ! 283: 3381 CONTINUE 02800032 ! 284: IVTNUM = 338 02810032 ! 285: C 02820032 ! 286: C **** TEST 338 **** 02830032 ! 287: C 02840032 ! 288: IF (ICZERO) 33380, 3380, 33380 02850032 ! 289: 3380 CONTINUE 02860032 ! 290: IVON01 =9 02870032 ! 291: IVON03 =2 02880032 ! 292: IVCOMP = IVON01-4-IVON03 02890032 ! 293: GO TO 43380 02900032 ! 294: 33380 IVDELE = IVDELE + 1 02910032 ! 295: WRITE (I02,80003) IVTNUM 02920032 ! 296: IF (ICZERO) 43380, 3391, 43380 02930032 ! 297: 43380 IF (IVCOMP -3) 23380,13380,23380 02940032 ! 298: 13380 IVPASS = IVPASS + 1 02950032 ! 299: WRITE (I02,80001) IVTNUM 02960032 ! 300: GO TO 3391 02970032 ! 301: 23380 IVFAIL = IVFAIL + 1 02980032 ! 302: IVCORR = 3 02990032 ! 303: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03000032 ! 304: 3391 CONTINUE 03010032 ! 305: IVTNUM = 339 03020032 ! 306: C 03030032 ! 307: C **** TEST 339 **** 03040032 ! 308: C 03050032 ! 309: IF (ICZERO) 33390, 3390, 33390 03060032 ! 310: 3390 CONTINUE 03070032 ! 311: IVON01 = -9 03080032 ! 312: IVON03 = 2 03090032 ! 313: IVCOMP = IVON01-4-IVON03 03100032 ! 314: GO TO 43390 03110032 ! 315: 33390 IVDELE = IVDELE + 1 03120032 ! 316: WRITE (I02,80003) IVTNUM 03130032 ! 317: IF (ICZERO) 43390, 3401, 43390 03140032 ! 318: 43390 IF (IVCOMP+15) 23390,13390,23390 03150032 ! 319: 13390 IVPASS = IVPASS + 1 03160032 ! 320: WRITE (I02,80001) IVTNUM 03170032 ! 321: GO TO 3401 03180032 ! 322: 23390 IVFAIL = IVFAIL + 1 03190032 ! 323: IVCORR = -15 03200032 ! 324: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03210032 ! 325: 3401 CONTINUE 03220032 ! 326: IVTNUM = 340 03230032 ! 327: C 03240032 ! 328: C **** TEST 340 **** 03250032 ! 329: C 03260032 ! 330: IF (ICZERO) 33400, 3400, 33400 03270032 ! 331: 3400 CONTINUE 03280032 ! 332: IVON01 = 9 03290032 ! 333: IVON03 =-2 03300032 ! 334: IVCOMP =IVON01-4-IVON03 03310032 ! 335: GO TO 43400 03320032 ! 336: 33400 IVDELE = IVDELE + 1 03330032 ! 337: WRITE (I02,80003) IVTNUM 03340032 ! 338: IF (ICZERO) 43400, 3411, 43400 03350032 ! 339: 43400 IF (IVCOMP-7) 23400,13400,23400 03360032 ! 340: 13400 IVPASS = IVPASS + 1 03370032 ! 341: WRITE (I02,80001) IVTNUM 03380032 ! 342: GO TO 3411 03390032 ! 343: 23400 IVFAIL = IVFAIL + 1 03400032 ! 344: IVCORR=7 03410032 ! 345: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03420032 ! 346: 3411 CONTINUE 03430032 ! 347: IVTNUM = 341 03440032 ! 348: C 03450032 ! 349: C **** TEST 341 **** 03460032 ! 350: C 03470032 ! 351: IF (ICZERO) 33410, 3410, 33410 03480032 ! 352: 3410 CONTINUE 03490032 ! 353: IVON01=-57 03500032 ! 354: IVON03=22 03510032 ! 355: IVCOMP=IVON01-25-IVON03 03520032 ! 356: GO TO 43410 03530032 ! 357: 33410 IVDELE = IVDELE + 1 03540032 ! 358: WRITE (I02,80003) IVTNUM 03550032 ! 359: IF (ICZERO) 43410, 3421, 43410 03560032 ! 360: 43410 IF (IVCOMP+104) 23410,13410,23410 03570032 ! 361: 13410 IVPASS = IVPASS + 1 03580032 ! 362: WRITE (I02,80001) IVTNUM 03590032 ! 363: GO TO 3421 03600032 ! 364: 23410 IVFAIL = IVFAIL + 1 03610032 ! 365: IVCORR = -104 03620032 ! 366: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03630032 ! 367: 3421 CONTINUE 03640032 ! 368: IVTNUM = 342 03650032 ! 369: C 03660032 ! 370: C **** TEST 342 **** 03670032 ! 371: C 03680032 ! 372: IF (ICZERO) 33420, 3420, 33420 03690032 ! 373: 3420 CONTINUE 03700032 ! 374: IVON01=8542 03710032 ! 375: IVON03=3 03720032 ! 376: IVCOMP=IVON01-125-IVON03 03730032 ! 377: GO TO 43420 03740032 ! 378: 33420 IVDELE = IVDELE + 1 03750032 ! 379: WRITE (I02,80003) IVTNUM 03760032 ! 380: IF (ICZERO) 43420, 3431, 43420 03770032 ! 381: 43420 IF (IVCOMP-8414) 23420,13420,23420 03780032 ! 382: 13420 IVPASS = IVPASS + 1 03790032 ! 383: WRITE (I02,80001) IVTNUM 03800032 ! 384: GO TO 3431 03810032 ! 385: 23420 IVFAIL = IVFAIL + 1 03820032 ! 386: IVCORR = 8414 03830032 ! 387: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03840032 ! 388: 3431 CONTINUE 03850032 ! 389: IVTNUM = 343 03860032 ! 390: C 03870032 ! 391: C **** TEST 343 **** 03880032 ! 392: C 03890032 ! 393: IF (ICZERO) 33430, 3430, 33430 03900032 ! 394: 3430 CONTINUE 03910032 ! 395: IVON01 = -32111 03920032 ! 396: IVON03 = -111 03930032 ! 397: IVCOMP = IVON01-111-IVON03 03940032 ! 398: GO TO 43430 03950032 ! 399: 33430 IVDELE = IVDELE + 1 03960032 ! 400: WRITE (I02,80003) IVTNUM 03970032 ! 401: IF (ICZERO) 43430, 3441, 43430 03980032 ! 402: 43430 IF (IVCOMP + 32111) 23430,13430,23430 03990032 ! 403: 13430 IVPASS = IVPASS + 1 04000032 ! 404: WRITE (I02,80001) IVTNUM 04010032 ! 405: GO TO 3441 04020032 ! 406: 23430 IVFAIL = IVFAIL + 1 04030032 ! 407: IVCORR = -32111 04040032 ! 408: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04050032 ! 409: C 04060032 ! 410: C TEST 344 THROUGH TEST 347 IV=IC-IV-IV 04070032 ! 411: C 04080032 ! 412: 3441 CONTINUE 04090032 ! 413: IVTNUM = 344 04100032 ! 414: C 04110032 ! 415: C **** TEST 344 **** 04120032 ! 416: C 04130032 ! 417: IF (ICZERO) 33440, 3440, 33440 04140032 ! 418: 3440 CONTINUE 04150032 ! 419: IVON02=4 04160032 ! 420: IVON03=2 04170032 ! 421: IVCOMP=9-IVON02-IVON03 04180032 ! 422: GO TO 43440 04190032 ! 423: 33440 IVDELE = IVDELE + 1 04200032 ! 424: WRITE (I02,80003) IVTNUM 04210032 ! 425: IF (ICZERO) 43440, 3451, 43440 04220032 ! 426: 43440 IF (IVCOMP -3) 23440,13440,23440 04230032 ! 427: 13440 IVPASS = IVPASS + 1 04240032 ! 428: WRITE (I02,80001) IVTNUM 04250032 ! 429: GO TO 3451 04260032 ! 430: 23440 IVFAIL = IVFAIL + 1 04270032 ! 431: IVCORR = 3 04280032 ! 432: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04290032 ! 433: 3451 CONTINUE 04300032 ! 434: IVTNUM = 345 04310032 ! 435: C 04320032 ! 436: C **** TEST 345 **** 04330032 ! 437: C 04340032 ! 438: IF (ICZERO) 33450, 3450, 33450 04350032 ! 439: 3450 CONTINUE 04360032 ! 440: IVON02=-4 04370032 ! 441: IVON03= 2 04380032 ! 442: IVCOMP= 9-IVON02-IVON03 04390032 ! 443: GO TO 43450 04400032 ! 444: 33450 IVDELE = IVDELE + 1 04410032 ! 445: WRITE (I02,80003) IVTNUM 04420032 ! 446: IF (ICZERO) 43450, 3461, 43450 04430032 ! 447: 43450 IF (IVCOMP -11) 23450,13450,23450 04440032 ! 448: 13450 IVPASS = IVPASS + 1 04450032 ! 449: WRITE (I02,80001) IVTNUM 04460032 ! 450: GO TO 3461 04470032 ! 451: 23450 IVFAIL = IVFAIL + 1 04480032 ! 452: IVCORR =11 04490032 ! 453: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04500032 ! 454: 3461 CONTINUE 04510032 ! 455: IVTNUM = 346 04520032 ! 456: C 04530032 ! 457: C **** TEST 346 **** 04540032 ! 458: C 04550032 ! 459: IF (ICZERO) 33460, 3460, 33460 04560032 ! 460: 3460 CONTINUE 04570032 ! 461: IVON02 = 683 04580032 ! 462: IVON03 = 156 04590032 ! 463: IVCOMP = 101 -IVON02-IVON03 04600032 ! 464: GO TO 43460 04610032 ! 465: 33460 IVDELE = IVDELE + 1 04620032 ! 466: WRITE (I02,80003) IVTNUM 04630032 ! 467: IF (ICZERO) 43460, 3471, 43460 04640032 ! 468: 43460 IF (IVCOMP +738) 23460,13460,23460 04650032 ! 469: 13460 IVPASS = IVPASS + 1 04660032 ! 470: WRITE (I02,80001) IVTNUM 04670032 ! 471: GO TO 3471 04680032 ! 472: 23460 IVFAIL = IVFAIL + 1 04690032 ! 473: IVCORR = -738 04700032 ! 474: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04710032 ! 475: 3471 CONTINUE 04720032 ! 476: IVTNUM = 347 04730032 ! 477: C 04740032 ! 478: C **** TEST 347 **** 04750032 ! 479: C 04760032 ! 480: IF (ICZERO) 33470, 3470, 33470 04770032 ! 481: 3470 CONTINUE 04780032 ! 482: IVON02 = 15687 04790032 ! 483: IVON03 = 387 04800032 ! 484: IVCOMP = 8542-IVON02-IVON03 04810032 ! 485: GO TO 43470 04820032 ! 486: 33470 IVDELE = IVDELE + 1 04830032 ! 487: WRITE (I02,80003) IVTNUM 04840032 ! 488: IF (ICZERO) 43470, 3481, 43470 04850032 ! 489: 43470 IF (IVCOMP + 7532) 23470,13470,23470 04860032 ! 490: 13470 IVPASS = IVPASS + 1 04870032 ! 491: WRITE (I02,80001) IVTNUM 04880032 ! 492: GO TO 3481 04890032 ! 493: 23470 IVFAIL = IVFAIL + 1 04900032 ! 494: IVCORR = -7532 04910032 ! 495: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04920032 ! 496: C 04930032 ! 497: C TEST 348 THROUGH TEST 359 CONTAIN TWO INTEGER VARIABLES, AN 04940032 ! 498: C INTEGER CONSTANT AND OPERATOR - IN AN ARITHMETIC EXPRESSION. 04950032 ! 499: C PARENTHESES ARE USED TO GROUP THE ELEMENTS IN THE ARITHMETIC 04960032 ! 500: C EXPRESSION. THE INTEGER VARIABLES CONTAIN POSITIVE AND NEGATIVE 04970032 ! 501: C VALUES. 04980032 ! 502: C 04990032 ! 503: 3481 CONTINUE 05000032 ! 504: IVTNUM = 348 05010032 ! 505: C 05020032 ! 506: C **** TEST 348 **** 05030032 ! 507: C 05040032 ! 508: IF (ICZERO) 33480, 3480, 33480 05050032 ! 509: 3480 CONTINUE 05060032 ! 510: IVON01= 9 05070032 ! 511: IVON02= 4 05080032 ! 512: IVCOMP=(IVON01-IVON02)-2 05090032 ! 513: GO TO 43480 05100032 ! 514: 33480 IVDELE = IVDELE + 1 05110032 ! 515: WRITE (I02,80003) IVTNUM 05120032 ! 516: IF (ICZERO) 43480, 3491, 43480 05130032 ! 517: 43480 IF (IVCOMP - 3) 23480,13480,23480 05140032 ! 518: 13480 IVPASS = IVPASS + 1 05150032 ! 519: WRITE (I02,80001) IVTNUM 05160032 ! 520: GO TO 3491 05170032 ! 521: 23480 IVFAIL = IVFAIL + 1 05180032 ! 522: IVCORR = 3 05190032 ! 523: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05200032 ! 524: 3491 CONTINUE 05210032 ! 525: IVTNUM = 349 05220032 ! 526: C 05230032 ! 527: C **** TEST 349 **** 05240032 ! 528: C 05250032 ! 529: IF (ICZERO) 33490, 3490, 33490 05260032 ! 530: 3490 CONTINUE 05270032 ! 531: IVON01=9 05280032 ! 532: IVON02=4 05290032 ! 533: IVCOMP=IVON01-(IVON02-2) 05300032 ! 534: GO TO 43490 05310032 ! 535: 33490 IVDELE = IVDELE + 1 05320032 ! 536: WRITE (I02,80003) IVTNUM 05330032 ! 537: IF (ICZERO) 43490, 3501, 43490 05340032 ! 538: 43490 IF (IVCOMP -7) 23490,13490,23490 05350032 ! 539: 13490 IVPASS = IVPASS + 1 05360032 ! 540: WRITE (I02,80001) IVTNUM 05370032 ! 541: GO TO 3501 05380032 ! 542: 23490 IVFAIL = IVFAIL + 1 05390032 ! 543: IVCORR=7 05400032 ! 544: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05410032 ! 545: 3501 CONTINUE 05420032 ! 546: IVTNUM = 350 05430032 ! 547: C 05440032 ! 548: C **** TEST 350 **** 05450032 ! 549: C 05460032 ! 550: IF (ICZERO) 33500, 3500, 33500 05470032 ! 551: 3500 CONTINUE 05480032 ! 552: IVON01 = 9 05490032 ! 553: IVON02 = -4 05500032 ! 554: IVCOMP = (IVON01-IVON02) -2 05510032 ! 555: GO TO 43500 05520032 ! 556: 33500 IVDELE = IVDELE + 1 05530032 ! 557: WRITE (I02,80003) IVTNUM 05540032 ! 558: IF (ICZERO) 43500, 3511, 43500 05550032 ! 559: 43500 IF (IVCOMP -11) 23500,13500,23500 05560032 ! 560: 13500 IVPASS = IVPASS + 1 05570032 ! 561: WRITE (I02,80001) IVTNUM 05580032 ! 562: GO TO 3511 05590032 ! 563: 23500 IVFAIL = IVFAIL + 1 05600032 ! 564: IVCORR = 11 05610032 ! 565: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05620032 ! 566: 3511 CONTINUE 05630032 ! 567: IVTNUM = 351 05640032 ! 568: C 05650032 ! 569: C **** TEST 351 **** 05660032 ! 570: C 05670032 ! 571: IF (ICZERO) 33510, 3510, 33510 05680032 ! 572: 3510 CONTINUE 05690032 ! 573: IVON01 = 9 05700032 ! 574: IVON02 = -4 05710032 ! 575: IVCOMP = IVON01-(IVON02-2) 05720032 ! 576: GO TO 43510 05730032 ! 577: 33510 IVDELE = IVDELE + 1 05740032 ! 578: WRITE (I02,80003) IVTNUM 05750032 ! 579: IF (ICZERO) 43510, 3521, 43510 05760032 ! 580: 43510 IF (IVCOMP - 15) 23510,13510,23510 05770032 ! 581: 13510 IVPASS = IVPASS + 1 05780032 ! 582: WRITE (I02,80001) IVTNUM 05790032 ! 583: GO TO 3521 05800032 ! 584: 23510 IVFAIL = IVFAIL + 1 05810032 ! 585: IVCORR = 15 05820032 ! 586: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05830032 ! 587: 3521 CONTINUE 05840032 ! 588: IVTNUM = 352 05850032 ! 589: C 05860032 ! 590: C **** TEST 352 **** 05870032 ! 591: C 05880032 ! 592: IF (ICZERO) 33520, 3520, 33520 05890032 ! 593: 3520 CONTINUE 05900032 ! 594: IVON01 = 683 05910032 ! 595: IVON03 = 156 05920032 ! 596: IVCOMP = (IVON01-101)-IVON03 05930032 ! 597: GO TO 43520 05940032 ! 598: 33520 IVDELE = IVDELE + 1 05950032 ! 599: WRITE (I02,80003) IVTNUM 05960032 ! 600: IF (ICZERO) 43520, 3531, 43520 05970032 ! 601: 43520 IF (IVCOMP - 426) 23520,13520,23520 05980032 ! 602: 13520 IVPASS = IVPASS + 1 05990032 ! 603: WRITE (I02,80001) IVTNUM 06000032 ! 604: GO TO 3531 06010032 ! 605: 23520 IVFAIL = IVFAIL + 1 06020032 ! 606: IVCORR = 426 06030032 ! 607: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06040032 ! 608: 3531 CONTINUE 06050032 ! 609: IVTNUM = 353 06060032 ! 610: C 06070032 ! 611: C **** TEST 353 **** 06080032 ! 612: C 06090032 ! 613: IF (ICZERO) 33530, 3530, 33530 06100032 ! 614: 3530 CONTINUE 06110032 ! 615: IVON01 = 683 06120032 ! 616: IVON03 = 156 06130032 ! 617: IVCOMP = IVON01 -(101-IVON03) 06140032 ! 618: GO TO 43530 06150032 ! 619: 33530 IVDELE = IVDELE + 1 06160032 ! 620: WRITE (I02,80003) IVTNUM 06170032 ! 621: IF (ICZERO) 43530, 3541, 43530 06180032 ! 622: 43530 IF (IVCOMP -738) 23530,13530,23530 06190032 ! 623: 13530 IVPASS = IVPASS + 1 06200032 ! 624: WRITE (I02,80001) IVTNUM 06210032 ! 625: GO TO 3541 06220032 ! 626: 23530 IVFAIL = IVFAIL + 1 06230032 ! 627: IVCORR = 738 06240032 ! 628: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06250032 ! 629: 3541 CONTINUE 06260032 ! 630: IVTNUM = 354 06270032 ! 631: C 06280032 ! 632: C **** TEST 354 **** 06290032 ! 633: C 06300032 ! 634: IF (ICZERO) 33540, 3540, 33540 06310032 ! 635: 3540 CONTINUE 06320032 ! 636: IVON01 = 683 06330032 ! 637: IVON03 =-156 06340032 ! 638: IVCOMP = IVON01 -(101-IVON03) 06350032 ! 639: GO TO 43540 06360032 ! 640: 33540 IVDELE = IVDELE + 1 06370032 ! 641: WRITE (I02,80003) IVTNUM 06380032 ! 642: IF (ICZERO) 43540, 3551, 43540 06390032 ! 643: 43540 IF (IVCOMP -426) 23540,13540,23540 06400032 ! 644: 13540 IVPASS = IVPASS + 1 06410032 ! 645: WRITE (I02,80001) IVTNUM 06420032 ! 646: GO TO 3551 06430032 ! 647: 23540 IVFAIL = IVFAIL + 1 06440032 ! 648: IVCORR = 426 06450032 ! 649: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06460032 ! 650: 3551 CONTINUE 06470032 ! 651: IVTNUM = 355 06480032 ! 652: C 06490032 ! 653: C **** TEST 355 **** 06500032 ! 654: C 06510032 ! 655: IF (ICZERO) 33550, 3550, 33550 06520032 ! 656: 3550 CONTINUE 06530032 ! 657: IVON01 = -683 06540032 ! 658: IVON03 = -156 06550032 ! 659: IVCOMP = (IVON01-101)-IVON03 06560032 ! 660: GO TO 43550 06570032 ! 661: 33550 IVDELE = IVDELE + 1 06580032 ! 662: WRITE (I02,80003) IVTNUM 06590032 ! 663: IF (ICZERO) 43550, 3561, 43550 06600032 ! 664: 43550 IF (IVCOMP +628) 23550,13550,23550 06610032 ! 665: 13550 IVPASS = IVPASS + 1 06620032 ! 666: WRITE (I02,80001) IVTNUM 06630032 ! 667: GO TO 3561 06640032 ! 668: 23550 IVFAIL = IVFAIL + 1 06650032 ! 669: IVCORR = -628 06660032 ! 670: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06670032 ! 671: 3561 CONTINUE 06680032 ! 672: IVTNUM = 356 06690032 ! 673: C 06700032 ! 674: C **** TEST 356 **** 06710032 ! 675: C 06720032 ! 676: IF (ICZERO) 33560, 3560, 33560 06730032 ! 677: 3560 CONTINUE 06740032 ! 678: IVON02 = 15687 06750032 ! 679: IVON03 = 387 06760032 ! 680: IVCOMP = (8542-IVON02)-IVON03 06770032 ! 681: GO TO 43560 06780032 ! 682: 33560 IVDELE = IVDELE + 1 06790032 ! 683: WRITE (I02,80003) IVTNUM 06800032 ! 684: IF (ICZERO) 43560, 3571, 43560 06810032 ! 685: 43560 IF (IVCOMP +7532) 23560,13560,23560 06820032 ! 686: 13560 IVPASS = IVPASS + 1 06830032 ! 687: WRITE (I02,80001) IVTNUM 06840032 ! 688: GO TO 3571 06850032 ! 689: 23560 IVFAIL = IVFAIL + 1 06860032 ! 690: IVCORR = -7532 06870032 ! 691: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06880032 ! 692: 3571 CONTINUE 06890032 ! 693: IVTNUM = 357 06900032 ! 694: C 06910032 ! 695: C **** TEST 357 **** 06920032 ! 696: C 06930032 ! 697: IF (ICZERO) 33570, 3570, 33570 06940032 ! 698: 3570 CONTINUE 06950032 ! 699: IVON02= 15687 06960032 ! 700: IVON03= 387 06970032 ! 701: IVCOMP= 8542-(IVON02-IVON03) 06980032 ! 702: GO TO 43570 06990032 ! 703: 33570 IVDELE = IVDELE + 1 07000032 ! 704: WRITE (I02,80003) IVTNUM 07010032 ! 705: IF (ICZERO) 43570, 3581, 43570 07020032 ! 706: 43570 IF (IVCOMP + 6758) 23570,13570,23570 07030032 ! 707: 13570 IVPASS = IVPASS + 1 07040032 ! 708: WRITE (I02,80001) IVTNUM 07050032 ! 709: GO TO 3581 07060032 ! 710: 23570 IVFAIL = IVFAIL + 1 07070032 ! 711: IVCORR = -6758 07080032 ! 712: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07090032 ! 713: 3581 CONTINUE 07100032 ! 714: IVTNUM = 358 07110032 ! 715: C 07120032 ! 716: C **** TEST 358 **** 07130032 ! 717: C 07140032 ! 718: IF (ICZERO) 33580, 3580, 33580 07150032 ! 719: 3580 CONTINUE 07160032 ! 720: IVON02 = -15687 07170032 ! 721: IVON03 = 387 07180032 ! 722: IVCOMP =(8542-IVON02)-IVON03 07190032 ! 723: GO TO 43580 07200032 ! 724: 33580 IVDELE = IVDELE + 1 07210032 ! 725: WRITE (I02,80003) IVTNUM 07220032 ! 726: IF (ICZERO) 43580, 3591, 43580 07230032 ! 727: 43580 IF (IVCOMP - 23842) 23580,13580,23580 07240032 ! 728: 13580 IVPASS = IVPASS + 1 07250032 ! 729: WRITE (I02,80001) IVTNUM 07260032 ! 730: GO TO 3591 07270032 ! 731: 23580 IVFAIL = IVFAIL + 1 07280032 ! 732: IVCORR =23842 07290032 ! 733: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07300032 ! 734: 3591 CONTINUE 07310032 ! 735: IVTNUM = 359 07320032 ! 736: C 07330032 ! 737: C **** TEST 359 **** 07340032 ! 738: C 07350032 ! 739: IF (ICZERO) 33590, 3590, 33590 07360032 ! 740: 3590 CONTINUE 07370032 ! 741: IVON02 = -15687 07380032 ! 742: IVON03 = 387 07390032 ! 743: IVCOMP = 8542-(IVON02-IVON03) 07400032 ! 744: GO TO 43590 07410032 ! 745: 33590 IVDELE = IVDELE + 1 07420032 ! 746: WRITE (I02,80003) IVTNUM 07430032 ! 747: IF (ICZERO) 43590, 3601, 43590 07440032 ! 748: 43590 IF (IVCOMP - 24616) 23590,13590,23590 07450032 ! 749: 13590 IVPASS = IVPASS + 1 07460032 ! 750: WRITE (I02,80001) IVTNUM 07470032 ! 751: GO TO 3601 07480032 ! 752: 23590 IVFAIL = IVFAIL + 1 07490032 ! 753: IVCORR = 24616 07500032 ! 754: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07510032 ! 755: C **** END OF TESTS **** 07520032 ! 756: 3601 CONTINUE 07530032 ! 757: C 07540032 ! 758: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 07550032 ! 759: 99999 CONTINUE 07560032 ! 760: WRITE (I02,90002) 07570032 ! 761: WRITE (I02,90006) 07580032 ! 762: WRITE (I02,90002) 07590032 ! 763: WRITE (I02,90002) 07600032 ! 764: WRITE (I02,90007) 07610032 ! 765: WRITE (I02,90002) 07620032 ! 766: WRITE (I02,90008) IVFAIL 07630032 ! 767: WRITE (I02,90009) IVPASS 07640032 ! 768: WRITE (I02,90010) IVDELE 07650032 ! 769: C 07660032 ! 770: C 07670032 ! 771: C TERMINATE ROUTINE EXECUTION 07680032 ! 772: STOP 07690032 ! 773: C 07700032 ! 774: C FORMAT STATEMENTS FOR PAGE HEADERS 07710032 ! 775: 90000 FORMAT (1H1) 07720032 ! 776: 90002 FORMAT (1H ) 07730032 ! 777: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 07740032 ! 778: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 07750032 ! 779: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 07760032 ! 780: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 07770032 ! 781: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 07780032 ! 782: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 07790032 ! 783: C 07800032 ! 784: C FORMAT STATEMENTS FOR RUN SUMMARIES 07810032 ! 785: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 07820032 ! 786: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 07830032 ! 787: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 07840032 ! 788: C 07850032 ! 789: C FORMAT STATEMENTS FOR TEST RESULTS 07860032 ! 790: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 07870032 ! 791: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 07880032 ! 792: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 07890032 ! 793: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 07900032 ! 794: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 07910032 ! 795: C 07920032 ! 796: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM032) 07930032 ! 797: END 07940032
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.