|
|
1.1 ! root 1: C COMMENT SECTION 00010006 ! 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 00020006 ! 6: C FM006 00030006 ! 7: C 00040006 ! 8: C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF 00050006 ! 9: C THE FORM 00060006 ! 10: C INTEGER VARIABLE = INTEGER CONSTANT 00070006 ! 11: C INTEGER VARIABLE = INTEGER VARIABLE 00080006 ! 12: C THE INTEGER CONSTANT MAY BE UNSIGNED, POSITIVE OR NEGATIVE. 00090006 ! 13: C 00100006 ! 14: C AN INTEGER DATUM IS ALWAYS AN EXACT REPRESENTATION OF AN 00110006 ! 15: C INTEGER VALUE. IT MAY ASSUME POSITIVE, NEGATIVE AND ZERO VALUES. 00120006 ! 16: C IT MAY ONLY ASSUME INTEGRAL VALUES. 00130006 ! 17: C 00140006 ! 18: C AN INTEGER CONSTANT IS WRITTEN AS A NONEMPTY STRING OF DIGITS.00150006 ! 19: C THE CONSTANT IS THE DIGIT STRING INTERPRETED AS A DECIMAL NUMBER. 00160006 ! 20: C 00170006 ! 21: C THIS ROUTINE ALSO CONTAINS TESTS WHICH CHECK ON THE USE OF 00180006 ! 22: C AT LEAST 16 BITS FOR REPRESENTING INTEGER DATA VALUES. THE 00190006 ! 23: C CONSTANT VALUES 32767 AND -32766 ARE USED IN THESE TESTS. 00200006 ! 24: C 00210006 ! 25: C REFERENCES 00220006 ! 26: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00230006 ! 27: C X3.9-1978 00240006 ! 28: C 00250006 ! 29: C SECTION 4.3, INTEGER TYPE 00260006 ! 30: C SECTION 4.3.1, INTEGER CONSTANT 00270006 ! 31: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENTS 00280006 ! 32: C 00290006 ! 33: C 00300006 ! 34: C ********************************************************** 00310006 ! 35: C 00320006 ! 36: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00330006 ! 37: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00340006 ! 38: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00350006 ! 39: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00360006 ! 40: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00370006 ! 41: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00380006 ! 42: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00390006 ! 43: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00400006 ! 44: C OF EXECUTING THESE TESTS. 00410006 ! 45: C 00420006 ! 46: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00430006 ! 47: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00440006 ! 48: C 00450006 ! 49: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00460006 ! 50: C 00470006 ! 51: C DEPARTMENT OF THE NAVY 00480006 ! 52: C FEDERAL COBOL COMPILER TESTING SERVICE 00490006 ! 53: C WASHINGTON, D.C. 20376 00500006 ! 54: C 00510006 ! 55: C ********************************************************** 00520006 ! 56: C 00530006 ! 57: C 00540006 ! 58: C 00550006 ! 59: C INITIALIZATION SECTION 00560006 ! 60: C 00570006 ! 61: C INITIALIZE CONSTANTS 00580006 ! 62: C ************** 00590006 ! 63: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00600006 ! 64: I01 = 5 00610006 ! 65: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00620006 ! 66: I02 = 6 00630006 ! 67: C SYSTEM ENVIRONMENT SECTION 00640006 ! 68: C 00650006 ! 69: I01 = 5 00660006 ! 70: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00670006 ! 71: C (UNIT NUMBER FOR CARD READER). 00680006 ! 72: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00690006 ! 73: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00700006 ! 74: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00710006 ! 75: C 00720006 ! 76: I02 = 6 00730006 ! 77: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00740006 ! 78: C (UNIT NUMBER FOR PRINTER). 00750006 ! 79: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00760006 ! 80: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00770006 ! 81: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00780006 ! 82: C 00790006 ! 83: IVPASS=0 00800006 ! 84: IVFAIL=0 00810006 ! 85: IVDELE=0 00820006 ! 86: ICZERO=0 00830006 ! 87: C 00840006 ! 88: C WRITE PAGE HEADERS 00850006 ! 89: WRITE (I02,90000) 00860006 ! 90: WRITE (I02,90001) 00870006 ! 91: WRITE (I02,90002) 00880006 ! 92: WRITE (I02, 90002) 00890006 ! 93: WRITE (I02,90003) 00900006 ! 94: WRITE (I02,90002) 00910006 ! 95: WRITE (I02,90004) 00920006 ! 96: WRITE (I02,90002) 00930006 ! 97: WRITE (I02,90011) 00940006 ! 98: WRITE (I02,90002) 00950006 ! 99: WRITE (I02,90002) 00960006 ! 100: WRITE (I02,90005) 00970006 ! 101: WRITE (I02,90006) 00980006 ! 102: WRITE (I02,90002) 00990006 ! 103: C TEST SECTION 01000006 ! 104: C 01010006 ! 105: C ARITHMETIC ASSIGNMENT STATEMENT 01020006 ! 106: C 01030006 ! 107: C TEST 50 THROUGH TEST 61 CONTAIN STATEMENT OF FORM 01040006 ! 108: C INTEGER VARIABLE = INTEGER CONSTANT 01050006 ! 109: C 01060006 ! 110: C TESTS 50 THROUGH 53 CONTAIN UNSIGNED INTEGER CONSTANT. 01070006 ! 111: C 01080006 ! 112: 501 CONTINUE 01090006 ! 113: IVTNUM = 50 01100006 ! 114: C 01110006 ! 115: C **** TEST 50 **** 01120006 ! 116: C 01130006 ! 117: IF (ICZERO) 30500, 500, 30500 01140006 ! 118: 500 CONTINUE 01150006 ! 119: IVCOMP=3 01160006 ! 120: GO TO 40500 01170006 ! 121: 30500 IVDELE = IVDELE + 1 01180006 ! 122: WRITE (I02,80003) IVTNUM 01190006 ! 123: IF (ICZERO) 40500, 511, 40500 01200006 ! 124: 40500 IF (IVCOMP - 3) 20500, 10500, 20500 01210006 ! 125: 10500 IVPASS = IVPASS + 1 01220006 ! 126: WRITE (I02,80001) IVTNUM 01230006 ! 127: GO TO 511 01240006 ! 128: 20500 IVFAIL = IVFAIL + 1 01250006 ! 129: IVCORR = 3 01260006 ! 130: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01270006 ! 131: 511 CONTINUE 01280006 ! 132: IVTNUM = 51 01290006 ! 133: C 01300006 ! 134: C **** TEST 51 **** 01310006 ! 135: C 01320006 ! 136: IF (ICZERO) 30510, 510, 30510 01330006 ! 137: 510 CONTINUE 01340006 ! 138: IVCOMP = 76 01350006 ! 139: GO TO 40510 01360006 ! 140: 30510 IVDELE = IVDELE + 1 01370006 ! 141: WRITE (I02,80003) IVTNUM 01380006 ! 142: IF (ICZERO) 40510, 521, 40510 01390006 ! 143: 40510 IF (IVCOMP - 76) 20510, 10510, 20510 01400006 ! 144: 10510 IVPASS = IVPASS + 1 01410006 ! 145: WRITE (I02,80001) IVTNUM 01420006 ! 146: GO TO 521 01430006 ! 147: 20510 IVFAIL = IVFAIL + 1 01440006 ! 148: IVCORR = 76 01450006 ! 149: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01460006 ! 150: 521 CONTINUE 01470006 ! 151: IVTNUM = 52 01480006 ! 152: C 01490006 ! 153: C **** TEST 52 **** 01500006 ! 154: C 01510006 ! 155: IF (ICZERO) 30520, 520, 30520 01520006 ! 156: 520 CONTINUE 01530006 ! 157: IVCOMP = 587 01540006 ! 158: GO TO 40520 01550006 ! 159: 30520 IVDELE = IVDELE + 1 01560006 ! 160: WRITE (I02,80003) IVTNUM 01570006 ! 161: IF (ICZERO) 40520, 531, 40520 01580006 ! 162: 40520 IF (IVCOMP - 587) 20520, 10520, 20520 01590006 ! 163: 10520 IVPASS = IVPASS + 1 01600006 ! 164: WRITE (I02,80001) IVTNUM 01610006 ! 165: GO TO 531 01620006 ! 166: 20520 IVFAIL = IVFAIL + 1 01630006 ! 167: IVCORR = 587 01640006 ! 168: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01650006 ! 169: 531 CONTINUE 01660006 ! 170: IVTNUM = 53 01670006 ! 171: C 01680006 ! 172: C **** TEST 53 **** 01690006 ! 173: C 01700006 ! 174: IF (ICZERO) 30530, 530, 30530 01710006 ! 175: 530 CONTINUE 01720006 ! 176: IVCOMP = 9999 01730006 ! 177: GO TO 40530 01740006 ! 178: 30530 IVDELE = IVDELE + 1 01750006 ! 179: WRITE (I02,80003) IVTNUM 01760006 ! 180: IF (ICZERO) 40530, 541, 40530 01770006 ! 181: 40530 IF (IVCOMP - 9999) 20530, 10530, 20530 01780006 ! 182: 10530 IVPASS = IVPASS + 1 01790006 ! 183: WRITE (I02,80001) IVTNUM 01800006 ! 184: GO TO 541 01810006 ! 185: 20530 IVFAIL = IVFAIL + 1 01820006 ! 186: IVCORR = 9999 01830006 ! 187: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01840006 ! 188: C 01850006 ! 189: C TESTS 54 THROUGH 57 CONTAIN POSITIVE SIGNED INTEGERS 01860006 ! 190: C 01870006 ! 191: 541 CONTINUE 01880006 ! 192: IVTNUM = 54 01890006 ! 193: C 01900006 ! 194: C **** TEST 54 **** 01910006 ! 195: C 01920006 ! 196: IF (ICZERO) 30540, 540, 30540 01930006 ! 197: 540 CONTINUE 01940006 ! 198: IVCOMP = +3 01950006 ! 199: GO TO 40540 01960006 ! 200: 30540 IVDELE = IVDELE + 1 01970006 ! 201: WRITE (I02,80003) IVTNUM 01980006 ! 202: IF (ICZERO) 40540, 551, 40540 01990006 ! 203: 40540 IF (IVCOMP - 3) 20540, 10540, 20540 02000006 ! 204: 10540 IVPASS = IVPASS + 1 02010006 ! 205: WRITE (I02,80001) IVTNUM 02020006 ! 206: GO TO 551 02030006 ! 207: 20540 IVFAIL = IVFAIL + 1 02040006 ! 208: IVCORR = 3 02050006 ! 209: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02060006 ! 210: 551 CONTINUE 02070006 ! 211: IVTNUM = 55 02080006 ! 212: C 02090006 ! 213: C **** TEST 55 **** 02100006 ! 214: C 02110006 ! 215: IF (ICZERO) 30550, 550, 30550 02120006 ! 216: 550 CONTINUE 02130006 ! 217: IVCOMP = +76 02140006 ! 218: GO TO 40550 02150006 ! 219: 30550 IVDELE = IVDELE + 1 02160006 ! 220: WRITE (I02,80003) IVTNUM 02170006 ! 221: IF (ICZERO) 40550, 561, 40550 02180006 ! 222: 40550 IF (IVCOMP - 76) 20550, 10550, 20550 02190006 ! 223: 10550 IVPASS = IVPASS + 1 02200006 ! 224: WRITE (I02,80001) IVTNUM 02210006 ! 225: GO TO 561 02220006 ! 226: 20550 IVFAIL = IVFAIL + 1 02230006 ! 227: IVCORR = 76 02240006 ! 228: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02250006 ! 229: 561 CONTINUE 02260006 ! 230: IVTNUM = 56 02270006 ! 231: C 02280006 ! 232: C **** TEST 56 **** 02290006 ! 233: C 02300006 ! 234: IF (ICZERO) 30560, 560, 30560 02310006 ! 235: 560 CONTINUE 02320006 ! 236: IVCOMP = +587 02330006 ! 237: GO TO 40560 02340006 ! 238: 30560 IVDELE = IVDELE + 1 02350006 ! 239: WRITE (I02,80003) IVTNUM 02360006 ! 240: IF (ICZERO) 40560, 571, 40560 02370006 ! 241: 40560 IF (IVCOMP - 587) 20560, 10560, 20560 02380006 ! 242: 10560 IVPASS = IVPASS + 1 02390006 ! 243: WRITE (I02,80001) IVTNUM 02400006 ! 244: GO TO 571 02410006 ! 245: 20560 IVFAIL = IVFAIL + 1 02420006 ! 246: IVCORR = 587 02430006 ! 247: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02440006 ! 248: 571 CONTINUE 02450006 ! 249: IVTNUM = 57 02460006 ! 250: C 02470006 ! 251: C **** TEST 57 **** 02480006 ! 252: C 02490006 ! 253: IF (ICZERO) 30570, 570, 30570 02500006 ! 254: 570 CONTINUE 02510006 ! 255: IVCOMP = +9999 02520006 ! 256: GO TO 40570 02530006 ! 257: 30570 IVDELE = IVDELE + 1 02540006 ! 258: WRITE (I02,80003) IVTNUM 02550006 ! 259: IF (ICZERO) 40570, 581, 40570 02560006 ! 260: 40570 IF (IVCOMP - 9999) 20570, 10570, 20570 02570006 ! 261: 10570 IVPASS = IVPASS + 1 02580006 ! 262: WRITE (I02,80001) IVTNUM 02590006 ! 263: GO TO 581 02600006 ! 264: 20570 IVFAIL = IVFAIL + 1 02610006 ! 265: IVCORR = 9999 02620006 ! 266: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02630006 ! 267: C 02640006 ! 268: C TESTS 58 THROUGH 61 CONTAIN SIGNED NEGATIVE INTEGERS 02650006 ! 269: C 02660006 ! 270: 581 CONTINUE 02670006 ! 271: IVTNUM = 58 02680006 ! 272: C 02690006 ! 273: C **** TEST 58 **** 02700006 ! 274: C 02710006 ! 275: IF (ICZERO) 30580, 580, 30580 02720006 ! 276: 580 CONTINUE 02730006 ! 277: IVCOMP = -3 02740006 ! 278: GO TO 40580 02750006 ! 279: 30580 IVDELE = IVDELE + 1 02760006 ! 280: WRITE (I02,80003) IVTNUM 02770006 ! 281: IF (ICZERO) 40580, 591, 40580 02780006 ! 282: 40580 IF (IVCOMP + 3) 20580, 10580, 20580 02790006 ! 283: 10580 IVPASS = IVPASS + 1 02800006 ! 284: WRITE (I02,80001) IVTNUM 02810006 ! 285: GO TO 591 02820006 ! 286: 20580 IVFAIL = IVFAIL + 1 02830006 ! 287: IVCORR = -3 02840006 ! 288: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02850006 ! 289: 591 CONTINUE 02860006 ! 290: IVTNUM = 59 02870006 ! 291: C 02880006 ! 292: C **** TEST 59 **** 02890006 ! 293: C 02900006 ! 294: IF (ICZERO) 30590, 590, 30590 02910006 ! 295: 590 CONTINUE 02920006 ! 296: IVCOMP = -76 02930006 ! 297: GO TO 40590 02940006 ! 298: 30590 IVDELE = IVDELE + 1 02950006 ! 299: WRITE (I02,80003) IVTNUM 02960006 ! 300: IF (ICZERO) 40590, 601, 40590 02970006 ! 301: 40590 IF (IVCOMP + 76) 20590, 10590, 20590 02980006 ! 302: 10590 IVPASS = IVPASS + 1 02990006 ! 303: WRITE (I02,80001) IVTNUM 03000006 ! 304: GO TO 601 03010006 ! 305: 20590 IVFAIL = IVFAIL + 1 03020006 ! 306: IVCORR = -76 03030006 ! 307: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03040006 ! 308: 601 CONTINUE 03050006 ! 309: IVTNUM = 60 03060006 ! 310: C 03070006 ! 311: C **** TEST 60 **** 03080006 ! 312: C 03090006 ! 313: IF (ICZERO) 30600, 600, 30600 03100006 ! 314: 600 CONTINUE 03110006 ! 315: IVCOMP = -587 03120006 ! 316: GO TO 40600 03130006 ! 317: 30600 IVDELE = IVDELE + 1 03140006 ! 318: WRITE (I02,80003) IVTNUM 03150006 ! 319: IF (ICZERO) 40600, 611, 40600 03160006 ! 320: 40600 IF (IVCOMP + 587) 20600,10600,20600 03170006 ! 321: 10600 IVPASS = IVPASS + 1 03180006 ! 322: WRITE (I02,80001) IVTNUM 03190006 ! 323: GO TO 611 03200006 ! 324: 20600 IVFAIL = IVFAIL + 1 03210006 ! 325: IVCORR = -587 03220006 ! 326: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03230006 ! 327: 611 CONTINUE 03240006 ! 328: IVTNUM = 61 03250006 ! 329: C 03260006 ! 330: C **** TEST 61 **** 03270006 ! 331: C 03280006 ! 332: IF (ICZERO) 30610, 610, 30610 03290006 ! 333: 610 CONTINUE 03300006 ! 334: IVCOMP = -9999 03310006 ! 335: GO TO 40610 03320006 ! 336: 30610 IVDELE = IVDELE + 1 03330006 ! 337: WRITE (I02,80003) IVTNUM 03340006 ! 338: IF (ICZERO) 40610, 621, 40610 03350006 ! 339: 40610 IF (IVCOMP + 9999) 20610, 10610, 20610 03360006 ! 340: 10610 IVPASS = IVPASS + 1 03370006 ! 341: WRITE (I02,80001) IVTNUM 03380006 ! 342: GO TO 621 03390006 ! 343: 20610 IVFAIL = IVFAIL + 1 03400006 ! 344: IVCORR = -9999 03410006 ! 345: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03420006 ! 346: C 03430006 ! 347: C TEST 62 THROUGH TEST 73 CONTAIN STATEMENT OF FORM 03440006 ! 348: C INTEGER VARIABLE = INTEGER VARIABLE 03450006 ! 349: C 03460006 ! 350: C TESTS 62 THROUGH 65 CONTAIN UNSIGNED VALUES. 03470006 ! 351: C 03480006 ! 352: 621 CONTINUE 03490006 ! 353: IVTNUM = 62 03500006 ! 354: C 03510006 ! 355: C **** TEST 62 **** 03520006 ! 356: C 03530006 ! 357: IF (ICZERO) 30620, 620, 30620 03540006 ! 358: 620 CONTINUE 03550006 ! 359: IVON01 = 3 03560006 ! 360: IVCOMP = IVON01 03570006 ! 361: GO TO 40620 03580006 ! 362: 30620 IVDELE = IVDELE + 1 03590006 ! 363: WRITE (I02,80003) IVTNUM 03600006 ! 364: IF (ICZERO) 40620, 631, 40620 03610006 ! 365: 40620 IF (IVCOMP - 3) 20620, 10620, 20620 03620006 ! 366: 10620 IVPASS = IVPASS + 1 03630006 ! 367: WRITE (I02,80001) IVTNUM 03640006 ! 368: GO TO 631 03650006 ! 369: 20620 IVFAIL = IVFAIL + 1 03660006 ! 370: IVCORR = 3 03670006 ! 371: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03680006 ! 372: 631 CONTINUE 03690006 ! 373: IVTNUM = 63 03700006 ! 374: C 03710006 ! 375: C **** TEST 63 **** 03720006 ! 376: C 03730006 ! 377: IF (ICZERO) 30630, 630, 30630 03740006 ! 378: 630 CONTINUE 03750006 ! 379: IVON01 = 76 03760006 ! 380: IVCOMP = IVON01 03770006 ! 381: GO TO 40630 03780006 ! 382: 30630 IVDELE = IVDELE + 1 03790006 ! 383: WRITE (I02,80003) IVTNUM 03800006 ! 384: IF (ICZERO) 40630, 641, 40630 03810006 ! 385: 40630 IF (IVCOMP - 76) 20630, 10630, 20630 03820006 ! 386: 10630 IVPASS = IVPASS + 1 03830006 ! 387: WRITE (I02,80001) IVTNUM 03840006 ! 388: GO TO 641 03850006 ! 389: 20630 IVFAIL = IVFAIL + 1 03860006 ! 390: IVCORR = 76 03870006 ! 391: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03880006 ! 392: 641 CONTINUE 03890006 ! 393: IVTNUM = 64 03900006 ! 394: C 03910006 ! 395: C **** TEST 64 **** 03920006 ! 396: C 03930006 ! 397: IF (ICZERO) 30640, 640, 30640 03940006 ! 398: 640 CONTINUE 03950006 ! 399: IVON01 = 587 03960006 ! 400: IVCOMP = IVON01 03970006 ! 401: GO TO 40640 03980006 ! 402: 30640 IVDELE = IVDELE + 1 03990006 ! 403: WRITE (I02,80003) IVTNUM 04000006 ! 404: IF (ICZERO) 40640, 651, 40640 04010006 ! 405: 40640 IF (IVCOMP - 587) 20640, 10640, 20640 04020006 ! 406: 10640 IVPASS = IVPASS + 1 04030006 ! 407: WRITE (I02,80001) IVTNUM 04040006 ! 408: GO TO 651 04050006 ! 409: 20640 IVFAIL = IVFAIL + 1 04060006 ! 410: IVCORR = 587 04070006 ! 411: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04080006 ! 412: 651 CONTINUE 04090006 ! 413: IVTNUM = 65 04100006 ! 414: C 04110006 ! 415: C **** TEST 65 **** 04120006 ! 416: C 04130006 ! 417: IF (ICZERO) 30650, 650, 30650 04140006 ! 418: 650 CONTINUE 04150006 ! 419: IVON01 = 9999 04160006 ! 420: IVCOMP = IVON01 04170006 ! 421: GO TO 40650 04180006 ! 422: 30650 IVDELE = IVDELE + 1 04190006 ! 423: WRITE (I02,80003) IVTNUM 04200006 ! 424: IF (ICZERO) 40650, 661, 40650 04210006 ! 425: 40650 IF (IVCOMP - 9999) 20650, 10650, 20650 04220006 ! 426: 10650 IVPASS = IVPASS + 1 04230006 ! 427: WRITE (I02,80001) IVTNUM 04240006 ! 428: GO TO 661 04250006 ! 429: 20650 IVFAIL = IVFAIL + 1 04260006 ! 430: IVCORR = 9999 04270006 ! 431: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04280006 ! 432: C 04290006 ! 433: C TESTS 66 THROUGH 69 CONTAIN POSITIVE VALUES. 04300006 ! 434: C 04310006 ! 435: 661 CONTINUE 04320006 ! 436: IVTNUM = 66 04330006 ! 437: C 04340006 ! 438: C **** TEST 66 **** 04350006 ! 439: C 04360006 ! 440: IF (ICZERO) 30660, 660, 30660 04370006 ! 441: 660 CONTINUE 04380006 ! 442: IVON01 = +3 04390006 ! 443: IVCOMP = IVON01 04400006 ! 444: GO TO 40660 04410006 ! 445: 30660 IVDELE = IVDELE + 1 04420006 ! 446: WRITE (I02,80003) IVTNUM 04430006 ! 447: IF (ICZERO) 40660, 671, 40660 04440006 ! 448: 40660 IF (IVCOMP - 3) 20660,10660,20660 04450006 ! 449: 10660 IVPASS = IVPASS + 1 04460006 ! 450: WRITE (I02,80001) IVTNUM 04470006 ! 451: GO TO 671 04480006 ! 452: 20660 IVFAIL = IVFAIL + 1 04490006 ! 453: IVCORR = 3 04500006 ! 454: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04510006 ! 455: 671 CONTINUE 04520006 ! 456: IVTNUM = 67 04530006 ! 457: C 04540006 ! 458: C **** TEST 67 **** 04550006 ! 459: C 04560006 ! 460: IF (ICZERO) 30670, 670, 30670 04570006 ! 461: 670 CONTINUE 04580006 ! 462: IVON01 = +76 04590006 ! 463: IVCOMP = IVON01 04600006 ! 464: GO TO 40670 04610006 ! 465: 30670 IVDELE = IVDELE + 1 04620006 ! 466: WRITE (I02,80003) IVTNUM 04630006 ! 467: IF (ICZERO) 40670, 681, 40670 04640006 ! 468: 40670 IF (IVCOMP - 76) 20670, 10670, 20670 04650006 ! 469: 10670 IVPASS = IVPASS + 1 04660006 ! 470: WRITE (I02,80001) IVTNUM 04670006 ! 471: GO TO 681 04680006 ! 472: 20670 IVFAIL = IVFAIL + 1 04690006 ! 473: IVCORR = 76 04700006 ! 474: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04710006 ! 475: 681 CONTINUE 04720006 ! 476: IVTNUM = 68 04730006 ! 477: C 04740006 ! 478: C **** TEST 68 **** 04750006 ! 479: C 04760006 ! 480: IF (ICZERO) 30680, 680, 30680 04770006 ! 481: 680 CONTINUE 04780006 ! 482: IVON01 = +587 04790006 ! 483: IVCOMP = IVON01 04800006 ! 484: GO TO 40680 04810006 ! 485: 30680 IVDELE = IVDELE + 1 04820006 ! 486: WRITE (I02,80003) IVTNUM 04830006 ! 487: IF (ICZERO) 40680, 691, 40680 04840006 ! 488: 40680 IF (IVCOMP - 587) 20680, 10680, 20680 04850006 ! 489: 10680 IVPASS = IVPASS + 1 04860006 ! 490: WRITE (I02,80001) IVTNUM 04870006 ! 491: GO TO 691 04880006 ! 492: 20680 IVFAIL = IVFAIL + 1 04890006 ! 493: IVCORR = 587 04900006 ! 494: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04910006 ! 495: 691 CONTINUE 04920006 ! 496: IVTNUM = 69 04930006 ! 497: C 04940006 ! 498: C **** TEST 69 **** 04950006 ! 499: C 04960006 ! 500: IF (ICZERO) 30690, 690, 30690 04970006 ! 501: 690 CONTINUE 04980006 ! 502: IVON01 = +9999 04990006 ! 503: IVCOMP = IVON01 05000006 ! 504: GO TO 40690 05010006 ! 505: 30690 IVDELE = IVDELE + 1 05020006 ! 506: WRITE (I02,80003) IVTNUM 05030006 ! 507: IF (ICZERO) 40690, 701, 40690 05040006 ! 508: 40690 IF (IVCOMP - 9999) 20690, 10690, 20690 05050006 ! 509: 10690 IVPASS = IVPASS + 1 05060006 ! 510: WRITE (I02,80001) IVTNUM 05070006 ! 511: GO TO 701 05080006 ! 512: 20690 IVFAIL = IVFAIL + 1 05090006 ! 513: IVCORR = 9999 05100006 ! 514: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05110006 ! 515: C 05120006 ! 516: C TESTS 70 THROUGH 73 CONTAIN NEGATIVE VALUES. 05130006 ! 517: C 05140006 ! 518: 701 CONTINUE 05150006 ! 519: IVTNUM = 70 05160006 ! 520: C 05170006 ! 521: C **** TEST 70 **** 05180006 ! 522: C 05190006 ! 523: IF (ICZERO) 30700, 700, 30700 05200006 ! 524: 700 CONTINUE 05210006 ! 525: IVON01 = -3 05220006 ! 526: IVCOMP = IVON01 05230006 ! 527: GO TO 40700 05240006 ! 528: 30700 IVDELE = IVDELE + 1 05250006 ! 529: WRITE (I02,80003) IVTNUM 05260006 ! 530: IF (ICZERO) 40700, 711, 40700 05270006 ! 531: 40700 IF (IVCOMP + 3) 20700, 10700, 20700 05280006 ! 532: 10700 IVPASS = IVPASS + 1 05290006 ! 533: WRITE (I02,80001) IVTNUM 05300006 ! 534: GO TO 711 05310006 ! 535: 20700 IVFAIL = IVFAIL + 1 05320006 ! 536: IVCORR = -3 05330006 ! 537: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05340006 ! 538: 711 CONTINUE 05350006 ! 539: IVTNUM = 71 05360006 ! 540: C 05370006 ! 541: C **** TEST 71 **** 05380006 ! 542: C 05390006 ! 543: IF (ICZERO) 30710, 710, 30710 05400006 ! 544: 710 CONTINUE 05410006 ! 545: IVON01 = -76 05420006 ! 546: IVCOMP = IVON01 05430006 ! 547: GO TO 40710 05440006 ! 548: 30710 IVDELE = IVDELE + 1 05450006 ! 549: WRITE (I02,80003) IVTNUM 05460006 ! 550: IF (ICZERO) 40710, 721, 40710 05470006 ! 551: 40710 IF (IVCOMP + 76) 20710, 10710, 20710 05480006 ! 552: 10710 IVPASS = IVPASS + 1 05490006 ! 553: WRITE (I02,80001) IVTNUM 05500006 ! 554: GO TO 721 05510006 ! 555: 20710 IVFAIL = IVFAIL + 1 05520006 ! 556: IVCORR = -76 05530006 ! 557: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05540006 ! 558: 721 CONTINUE 05550006 ! 559: IVTNUM = 72 05560006 ! 560: C 05570006 ! 561: C **** TEST 72 **** 05580006 ! 562: C 05590006 ! 563: IF (ICZERO) 30720, 720, 30720 05600006 ! 564: 720 CONTINUE 05610006 ! 565: IVON01 = -587 05620006 ! 566: IVCOMP = IVON01 05630006 ! 567: GO TO 40720 05640006 ! 568: 30720 IVDELE = IVDELE + 1 05650006 ! 569: WRITE (I02,80003) IVTNUM 05660006 ! 570: IF (ICZERO) 40720, 731, 40720 05670006 ! 571: 40720 IF (IVCOMP + 587) 20720, 10720, 20720 05680006 ! 572: 10720 IVPASS = IVPASS + 1 05690006 ! 573: WRITE (I02,80001) IVTNUM 05700006 ! 574: GO TO 731 05710006 ! 575: 20720 IVFAIL = IVFAIL + 1 05720006 ! 576: IVCORR = -587 05730006 ! 577: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05740006 ! 578: 731 CONTINUE 05750006 ! 579: IVTNUM = 73 05760006 ! 580: C 05770006 ! 581: C **** TEST 73 **** 05780006 ! 582: C 05790006 ! 583: IF (ICZERO) 30730, 730, 30730 05800006 ! 584: 730 CONTINUE 05810006 ! 585: IVON01 = -9999 05820006 ! 586: IVCOMP = IVON01 05830006 ! 587: GO TO 40730 05840006 ! 588: 30730 IVDELE = IVDELE + 1 05850006 ! 589: WRITE (I02,80003) IVTNUM 05860006 ! 590: IF (ICZERO) 40730, 741, 40730 05870006 ! 591: 40730 IF (IVCOMP + 9999) 20730, 10730, 20730 05880006 ! 592: 10730 IVPASS = IVPASS + 1 05890006 ! 593: WRITE (I02,80001) IVTNUM 05900006 ! 594: GO TO 741 05910006 ! 595: 20730 IVFAIL = IVFAIL + 1 05920006 ! 596: IVCORR = -9999 05930006 ! 597: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05940006 ! 598: C 05950006 ! 599: C TESTS 74 THROUGH 79 CHECK THAT AT LEAST 16 BITS ARE USED IN THE 05960006 ! 600: C INTERNAL REPRESENTATION OF AN INTEGER DATUM. THIS INCLUDES ONE 05970006 ! 601: C BIT FOR THE SIGN. THE LARGEST INTEGER USED IS 32767 =2**15 - 1, 05980006 ! 602: C AND THE SMALLEST INTEGER USED IS -32766. 05990006 ! 603: C 06000006 ! 604: 741 CONTINUE 06010006 ! 605: IVTNUM = 74 06020006 ! 606: C 06030006 ! 607: C **** TEST 74 **** 06040006 ! 608: C UNSIGNED CONSTANT 32767 06050006 ! 609: C 06060006 ! 610: IF (ICZERO) 30740, 740, 30740 06070006 ! 611: 740 CONTINUE 06080006 ! 612: IVCOMP = 32767 06090006 ! 613: GO TO 40740 06100006 ! 614: 30740 IVDELE = IVDELE + 1 06110006 ! 615: WRITE (I02,80003) IVTNUM 06120006 ! 616: IF (ICZERO) 40740, 751, 40740 06130006 ! 617: 40740 IF (IVCOMP - 32767) 20740, 10740, 20740 06140006 ! 618: 10740 IVPASS = IVPASS + 1 06150006 ! 619: WRITE (I02,80001) IVTNUM 06160006 ! 620: GO TO 751 06170006 ! 621: 20740 IVFAIL = IVFAIL + 1 06180006 ! 622: IVCORR = 32767 06190006 ! 623: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06200006 ! 624: 751 CONTINUE 06210006 ! 625: IVTNUM = 75 06220006 ! 626: C 06230006 ! 627: C **** TEST 75 **** 06240006 ! 628: C SIGNED POSITIVE CONSTANT +32767 06250006 ! 629: C 06260006 ! 630: IF (ICZERO) 30750, 750, 30750 06270006 ! 631: 750 CONTINUE 06280006 ! 632: IVCOMP = +32767 06290006 ! 633: GO TO 40750 06300006 ! 634: 30750 IVDELE = IVDELE + 1 06310006 ! 635: WRITE (I02,80003) IVTNUM 06320006 ! 636: IF (ICZERO) 40750, 761, 40750 06330006 ! 637: 40750 IF (IVCOMP - 32767) 20750, 10750, 20750 06340006 ! 638: 10750 IVPASS = IVPASS + 1 06350006 ! 639: WRITE (I02,80001) IVTNUM 06360006 ! 640: GO TO 761 06370006 ! 641: 20750 IVFAIL = IVFAIL + 1 06380006 ! 642: IVCORR = 32767 06390006 ! 643: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06400006 ! 644: 761 CONTINUE 06410006 ! 645: IVTNUM = 76 06420006 ! 646: C 06430006 ! 647: C **** TEST 76 **** 06440006 ! 648: C SIGNED NEGATIVE CONSTANT -32766 06450006 ! 649: C 06460006 ! 650: IF (ICZERO) 30760, 760, 30760 06470006 ! 651: 760 CONTINUE 06480006 ! 652: IVCOMP = - 32766 06490006 ! 653: GO TO 40760 06500006 ! 654: 30760 IVDELE = IVDELE + 1 06510006 ! 655: WRITE (I02,80003) IVTNUM 06520006 ! 656: IF (ICZERO) 40760, 771, 40760 06530006 ! 657: 40760 IF (IVCOMP + 32766) 20760, 10760, 20760 06540006 ! 658: 10760 IVPASS = IVPASS + 1 06550006 ! 659: WRITE (I02,80001) IVTNUM 06560006 ! 660: GO TO 771 06570006 ! 661: 20760 IVFAIL = IVFAIL + 1 06580006 ! 662: IVCORR = -32766 06590006 ! 663: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06600006 ! 664: 771 CONTINUE 06610006 ! 665: IVTNUM = 77 06620006 ! 666: C 06630006 ! 667: C **** TEST 77 **** 06640006 ! 668: C 06650006 ! 669: IF (ICZERO) 30770, 770, 30770 06660006 ! 670: 770 CONTINUE 06670006 ! 671: IVON01 = 32767 06680006 ! 672: IVCOMP = IVON01 06690006 ! 673: GO TO 40770 06700006 ! 674: 30770 IVDELE = IVDELE + 1 06710006 ! 675: WRITE (I02,80003) IVTNUM 06720006 ! 676: IF (ICZERO) 40770, 781, 40770 06730006 ! 677: 40770 IF (IVCOMP - 32767) 20770, 10770, 20770 06740006 ! 678: 10770 IVPASS = IVPASS + 1 06750006 ! 679: WRITE (I02,80001) IVTNUM 06760006 ! 680: GO TO 781 06770006 ! 681: 20770 IVFAIL = IVFAIL + 1 06780006 ! 682: IVCORR = 32767 06790006 ! 683: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06800006 ! 684: 781 CONTINUE 06810006 ! 685: IVTNUM = 78 06820006 ! 686: C 06830006 ! 687: C **** TEST 78 **** 06840006 ! 688: C 06850006 ! 689: IF (ICZERO) 30780, 780, 30780 06860006 ! 690: 780 CONTINUE 06870006 ! 691: IVON01 = +32767 06880006 ! 692: IVCOMP = IVON01 06890006 ! 693: GO TO 40780 06900006 ! 694: 30780 IVDELE = IVDELE + 1 06910006 ! 695: WRITE (I02,80003) IVTNUM 06920006 ! 696: IF (ICZERO) 40780, 791, 40780 06930006 ! 697: 40780 IF (IVCOMP - 32767) 20780, 10780, 20780 06940006 ! 698: 10780 IVPASS = IVPASS + 1 06950006 ! 699: WRITE (I02,80001) IVTNUM 06960006 ! 700: GO TO 791 06970006 ! 701: 20780 IVFAIL = IVFAIL + 1 06980006 ! 702: IVCORR = 32767 06990006 ! 703: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07000006 ! 704: 791 CONTINUE 07010006 ! 705: IVTNUM = 79 07020006 ! 706: C 07030006 ! 707: C **** TEST 79 **** 07040006 ! 708: C 07050006 ! 709: IF (ICZERO) 30790, 790, 30790 07060006 ! 710: 790 CONTINUE 07070006 ! 711: IVON01 = -32766 07080006 ! 712: IVCOMP=IVON01 07090006 ! 713: GO TO 40790 07100006 ! 714: 30790 IVDELE = IVDELE + 1 07110006 ! 715: WRITE (I02,80003) IVTNUM 07120006 ! 716: IF (ICZERO) 40790, 801, 40790 07130006 ! 717: 40790 IF (IVCOMP + 32766) 20790, 10790, 20790 07140006 ! 718: 10790 IVPASS = IVPASS + 1 07150006 ! 719: WRITE (I02,80001) IVTNUM 07160006 ! 720: GO TO 801 07170006 ! 721: 20790 IVFAIL = IVFAIL + 1 07180006 ! 722: IVCORR = -32766 07190006 ! 723: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07200006 ! 724: 801 CONTINUE 07210006 ! 725: C 07220006 ! 726: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 07230006 ! 727: 99999 CONTINUE 07240006 ! 728: WRITE (I02,90002) 07250006 ! 729: WRITE (I02,90006) 07260006 ! 730: WRITE (I02,90002) 07270006 ! 731: WRITE (I02,90002) 07280006 ! 732: WRITE (I02,90007) 07290006 ! 733: WRITE (I02,90002) 07300006 ! 734: WRITE (I02,90008) IVFAIL 07310006 ! 735: WRITE (I02,90009) IVPASS 07320006 ! 736: WRITE (I02,90010) IVDELE 07330006 ! 737: C 07340006 ! 738: C 07350006 ! 739: C TERMINATE ROUTINE EXECUTION 07360006 ! 740: STOP 07370006 ! 741: C 07380006 ! 742: C FORMAT STATEMENTS FOR PAGE HEADERS 07390006 ! 743: 90000 FORMAT (1H1) 07400006 ! 744: 90002 FORMAT (1H ) 07410006 ! 745: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 07420006 ! 746: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 07430006 ! 747: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 07440006 ! 748: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 07450006 ! 749: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 07460006 ! 750: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 07470006 ! 751: C 07480006 ! 752: C FORMAT STATEMENTS FOR RUN SUMMARIES 07490006 ! 753: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 07500006 ! 754: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 07510006 ! 755: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 07520006 ! 756: C 07530006 ! 757: C FORMAT STATEMENTS FOR TEST RESULTS 07540006 ! 758: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 07550006 ! 759: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 07560006 ! 760: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 07570006 ! 761: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 07580006 ! 762: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 07590006 ! 763: C 07600006 ! 764: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM006) 07610006 ! 765: END 07620006
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.