|
|
1.1 ! root 1: C COMMENT SECTION 00010031 ! 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 00020031 ! 6: C FM031 00030031 ! 7: C 00040031 ! 8: C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050031 ! 9: C FORM 00060031 ! 10: C INTEGER VARIABLE = ARITHMETIC EXPRESSION 00070031 ! 11: C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00080031 ! 12: C OPERATOR -, INTEGER CONSTANTS AND INTEGER VARIABLES. SOME OF THE 00090031 ! 13: C TESTS USE PARENTHESES TO GROUP ELEMENTS IN AN ARITHMETIC 00100031 ! 14: C EXPRESSION. 00110031 ! 15: C 00120031 ! 16: C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00130031 ! 17: C (1) INTEGER CONSTANT-INTEGER CONSTANT-INTEGER VARIABLE 00140031 ! 18: C INTEGER CONSTANT-INTEGER VARIABLE-INTEGER CONSTANT 00150031 ! 19: C INTEGER VARIABLE-INTEGER CONSTANT-INTEGER CONSTANT 00160031 ! 20: C (2) SAME AS (1) BUT WITH PARENTHESES TO GROUP ELEMENTS 00170031 ! 21: C IN ARITHMETIC EXPRESSION. 00180031 ! 22: C (3) INTEGER VARIABLE - INTEGER VARIABLE 00190031 ! 23: C 00200031 ! 24: C REFERENCES 00210031 ! 25: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00220031 ! 26: C X3.9-1978 00230031 ! 27: C 00240031 ! 28: C SECTION 4.3, INTEGER TYPE 00250031 ! 29: C SECTION 4.3.1, INTEGER CONSTANT 00260031 ! 30: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00270031 ! 31: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00280031 ! 32: C 00290031 ! 33: C ********************************************************** 00300031 ! 34: C 00310031 ! 35: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00320031 ! 36: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00330031 ! 37: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00340031 ! 38: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00350031 ! 39: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00360031 ! 40: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00370031 ! 41: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00380031 ! 42: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00390031 ! 43: C OF EXECUTING THESE TESTS. 00400031 ! 44: C 00410031 ! 45: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00420031 ! 46: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00430031 ! 47: C 00440031 ! 48: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00450031 ! 49: C 00460031 ! 50: C DEPARTMENT OF THE NAVY 00470031 ! 51: C FEDERAL COBOL COMPILER TESTING SERVICE 00480031 ! 52: C WASHINGTON, D.C. 20376 00490031 ! 53: C 00500031 ! 54: C ********************************************************** 00510031 ! 55: C 00520031 ! 56: C 00530031 ! 57: C 00540031 ! 58: C INITIALIZATION SECTION 00550031 ! 59: C 00560031 ! 60: C INITIALIZE CONSTANTS 00570031 ! 61: C ************** 00580031 ! 62: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00590031 ! 63: I01 = 5 00600031 ! 64: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00610031 ! 65: I02 = 6 00620031 ! 66: C SYSTEM ENVIRONMENT SECTION 00630031 ! 67: C 00640031 ! 68: I01 = 5 00650031 ! 69: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00660031 ! 70: C (UNIT NUMBER FOR CARD READER). 00670031 ! 71: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00680031 ! 72: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00690031 ! 73: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00700031 ! 74: C 00710031 ! 75: I02 = 6 00720031 ! 76: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00730031 ! 77: C (UNIT NUMBER FOR PRINTER). 00740031 ! 78: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00750031 ! 79: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00760031 ! 80: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00770031 ! 81: C 00780031 ! 82: IVPASS=0 00790031 ! 83: IVFAIL=0 00800031 ! 84: IVDELE=0 00810031 ! 85: ICZERO=0 00820031 ! 86: C 00830031 ! 87: C WRITE PAGE HEADERS 00840031 ! 88: WRITE (I02,90000) 00850031 ! 89: WRITE (I02,90001) 00860031 ! 90: WRITE (I02,90002) 00870031 ! 91: WRITE (I02, 90002) 00880031 ! 92: WRITE (I02,90003) 00890031 ! 93: WRITE (I02,90002) 00900031 ! 94: WRITE (I02,90004) 00910031 ! 95: WRITE (I02,90002) 00920031 ! 96: WRITE (I02,90011) 00930031 ! 97: WRITE (I02,90002) 00940031 ! 98: WRITE (I02,90002) 00950031 ! 99: WRITE (I02,90005) 00960031 ! 100: WRITE (I02,90006) 00970031 ! 101: WRITE (I02,90002) 00980031 ! 102: C 00990031 ! 103: C TEST SECTION 01000031 ! 104: C 01010031 ! 105: C TEST 300 THROUGH TEST 309 CONTAIN 2 INTEGER CONSTANTS, AN INTEGER 01020031 ! 106: C VARIABLE AND OPERATOR - IN AN ARITHMETIC EXPRESSION. 01030031 ! 107: C 01040031 ! 108: 3001 CONTINUE 01050031 ! 109: IVTNUM = 300 01060031 ! 110: C 01070031 ! 111: C **** TEST 300 **** 01080031 ! 112: C 01090031 ! 113: IF (ICZERO) 33000, 3000, 33000 01100031 ! 114: 3000 CONTINUE 01110031 ! 115: IVON01 = 9 01120031 ! 116: IVCOMP =IVON01 -3 -4 01130031 ! 117: GO TO 43000 01140031 ! 118: 33000 IVDELE = IVDELE + 1 01150031 ! 119: WRITE (I02,80003) IVTNUM 01160031 ! 120: IF (ICZERO) 43000, 3011, 43000 01170031 ! 121: 43000 IF (IVCOMP-2) 23000,13000,23000 01180031 ! 122: 13000 IVPASS = IVPASS + 1 01190031 ! 123: WRITE (I02,80001) IVTNUM 01200031 ! 124: GO TO 3011 01210031 ! 125: 23000 IVFAIL = IVFAIL + 1 01220031 ! 126: IVCORR =2 01230031 ! 127: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01240031 ! 128: 3011 CONTINUE 01250031 ! 129: IVTNUM = 301 01260031 ! 130: C 01270031 ! 131: C **** TEST 301 **** 01280031 ! 132: C 01290031 ! 133: IF (ICZERO) 33010, 3010, 33010 01300031 ! 134: 3010 CONTINUE 01310031 ! 135: IVON02 =3 01320031 ! 136: IVCOMP =9-IVON02-4 01330031 ! 137: GO TO 43010 01340031 ! 138: 33010 IVDELE = IVDELE + 1 01350031 ! 139: WRITE (I02,80003) IVTNUM 01360031 ! 140: IF (ICZERO) 43010, 3021, 43010 01370031 ! 141: 43010 IF (IVCOMP-2) 23010,13010,23010 01380031 ! 142: 13010 IVPASS = IVPASS + 1 01390031 ! 143: WRITE (I02,80001) IVTNUM 01400031 ! 144: GO TO 3021 01410031 ! 145: 23010 IVFAIL = IVFAIL + 1 01420031 ! 146: IVCORR =2 01430031 ! 147: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01440031 ! 148: 3021 CONTINUE 01450031 ! 149: IVTNUM = 302 01460031 ! 150: C 01470031 ! 151: C **** TEST 302 **** 01480031 ! 152: C 01490031 ! 153: IF (ICZERO) 33020, 3020, 33020 01500031 ! 154: 3020 CONTINUE 01510031 ! 155: IVON03 = 4 01520031 ! 156: IVCOMP = 9-3-IVON03 01530031 ! 157: GO TO 43020 01540031 ! 158: 33020 IVDELE = IVDELE + 1 01550031 ! 159: WRITE (I02,80003) IVTNUM 01560031 ! 160: IF (ICZERO) 43020, 3031, 43020 01570031 ! 161: 43020 IF (IVCOMP-2) 23020,13020,23020 01580031 ! 162: 13020 IVPASS = IVPASS + 1 01590031 ! 163: WRITE (I02,80001) IVTNUM 01600031 ! 164: GO TO 3031 01610031 ! 165: 23020 IVFAIL = IVFAIL + 1 01620031 ! 166: IVCORR =2 01630031 ! 167: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01640031 ! 168: 3031 CONTINUE 01650031 ! 169: IVTNUM = 303 01660031 ! 170: C 01670031 ! 171: C **** TEST 303 **** 01680031 ! 172: C 01690031 ! 173: IF (ICZERO) 33030, 3030, 33030 01700031 ! 174: 3030 CONTINUE 01710031 ! 175: IVON01 = 57 01720031 ! 176: IVCOMP = IVON01 -25-22 01730031 ! 177: GO TO 43030 01740031 ! 178: 33030 IVDELE = IVDELE + 1 01750031 ! 179: WRITE (I02,80003) IVTNUM 01760031 ! 180: IF (ICZERO) 43030, 3041, 43030 01770031 ! 181: 43030 IF (IVCOMP-10) 23030,13030,23030 01780031 ! 182: 13030 IVPASS = IVPASS + 1 01790031 ! 183: WRITE (I02,80001) IVTNUM 01800031 ! 184: GO TO 3041 01810031 ! 185: 23030 IVFAIL = IVFAIL + 1 01820031 ! 186: IVCORR = 10 01830031 ! 187: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01840031 ! 188: 3041 CONTINUE 01850031 ! 189: IVTNUM = 304 01860031 ! 190: C 01870031 ! 191: C **** TEST 304 **** 01880031 ! 192: C 01890031 ! 193: IF (ICZERO) 33040, 3040, 33040 01900031 ! 194: 3040 CONTINUE 01910031 ! 195: IVON02 =683 01920031 ! 196: IVCOMP = 101-IVON02-156 01930031 ! 197: GO TO 43040 01940031 ! 198: 33040 IVDELE = IVDELE + 1 01950031 ! 199: WRITE (I02,80003) IVTNUM 01960031 ! 200: IF (ICZERO) 43040, 3051, 43040 01970031 ! 201: 43040 IF (IVCOMP+738) 23040,13040,23040 01980031 ! 202: 13040 IVPASS = IVPASS + 1 01990031 ! 203: WRITE (I02,80001) IVTNUM 02000031 ! 204: GO TO 3051 02010031 ! 205: 23040 IVFAIL = IVFAIL + 1 02020031 ! 206: IVCORR = -738 02030031 ! 207: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02040031 ! 208: 3051 CONTINUE 02050031 ! 209: IVTNUM = 305 02060031 ! 210: C 02070031 ! 211: C **** TEST 305 **** 02080031 ! 212: C 02090031 ! 213: IF (ICZERO) 33050, 3050, 33050 02100031 ! 214: 3050 CONTINUE 02110031 ! 215: IVON03 = 1289 02120031 ! 216: IVCOMP = 8542-1122-IVON03 02130031 ! 217: GO TO 43050 02140031 ! 218: 33050 IVDELE = IVDELE + 1 02150031 ! 219: WRITE (I02,80003) IVTNUM 02160031 ! 220: IF (ICZERO) 43050, 3061, 43050 02170031 ! 221: 43050 IF (IVCOMP-6131) 23050,13050,23050 02180031 ! 222: 13050 IVPASS = IVPASS + 1 02190031 ! 223: WRITE (I02,80001) IVTNUM 02200031 ! 224: GO TO 3061 02210031 ! 225: 23050 IVFAIL = IVFAIL + 1 02220031 ! 226: IVCORR = 6131 02230031 ! 227: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02240031 ! 228: 3061 CONTINUE 02250031 ! 229: IVTNUM = 306 02260031 ! 230: C 02270031 ! 231: C **** TEST 306 **** 02280031 ! 232: C 02290031 ! 233: IF (ICZERO) 33060, 3060, 33060 02300031 ! 234: 3060 CONTINUE 02310031 ! 235: IVON03 = 11111 02320031 ! 236: IVCOMP = 32333-11111-IVON03 02330031 ! 237: GO TO 43060 02340031 ! 238: 33060 IVDELE = IVDELE + 1 02350031 ! 239: WRITE (I02,80003) IVTNUM 02360031 ! 240: IF (ICZERO) 43060, 3071, 43060 02370031 ! 241: 43060 IF (IVCOMP-10111) 23060,13060,23060 02380031 ! 242: 13060 IVPASS = IVPASS + 1 02390031 ! 243: WRITE (I02,80001) IVTNUM 02400031 ! 244: GO TO 3071 02410031 ! 245: 23060 IVFAIL = IVFAIL + 1 02420031 ! 246: IVCORR =10111 02430031 ! 247: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02440031 ! 248: 3071 CONTINUE 02450031 ! 249: IVTNUM = 307 02460031 ! 250: C 02470031 ! 251: C **** TEST 307 **** 02480031 ! 252: C 02490031 ! 253: IF (ICZERO) 33070, 3070, 33070 02500031 ! 254: 3070 CONTINUE 02510031 ! 255: IVON01 = -3 02520031 ! 256: IVCOMP = IVON01-2-4 02530031 ! 257: GO TO 43070 02540031 ! 258: 33070 IVDELE = IVDELE + 1 02550031 ! 259: WRITE (I02,80003) IVTNUM 02560031 ! 260: IF (ICZERO) 43070, 3081, 43070 02570031 ! 261: 43070 IF (IVCOMP +9) 23070,13070,23070 02580031 ! 262: 13070 IVPASS = IVPASS + 1 02590031 ! 263: WRITE (I02,80001) IVTNUM 02600031 ! 264: GO TO 3081 02610031 ! 265: 23070 IVFAIL = IVFAIL + 1 02620031 ! 266: IVCORR =-9 02630031 ! 267: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02640031 ! 268: 3081 CONTINUE 02650031 ! 269: IVTNUM = 308 02660031 ! 270: C 02670031 ! 271: C **** TEST 308 **** 02680031 ! 272: C 02690031 ! 273: IF (ICZERO) 33080, 3080, 33080 02700031 ! 274: 3080 CONTINUE 02710031 ! 275: IVON02 =-9 02720031 ! 276: IVCOMP =1-IVON02-4 02730031 ! 277: GO TO 43080 02740031 ! 278: 33080 IVDELE = IVDELE + 1 02750031 ! 279: WRITE (I02,80003) IVTNUM 02760031 ! 280: IF (ICZERO) 43080, 3091, 43080 02770031 ! 281: 43080 IF (IVCOMP-6) 23080,13080,23080 02780031 ! 282: 13080 IVPASS = IVPASS + 1 02790031 ! 283: WRITE (I02,80001) IVTNUM 02800031 ! 284: GO TO 3091 02810031 ! 285: 23080 IVFAIL = IVFAIL + 1 02820031 ! 286: IVCORR = 6 02830031 ! 287: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02840031 ! 288: 3091 CONTINUE 02850031 ! 289: IVTNUM = 309 02860031 ! 290: C 02870031 ! 291: C **** TEST 309 **** 02880031 ! 292: C 02890031 ! 293: IF (ICZERO) 33090, 3090, 33090 02900031 ! 294: 3090 CONTINUE 02910031 ! 295: IVON03 = -8542 02920031 ! 296: IVCOMP = 100-3-IVON03 02930031 ! 297: GO TO 43090 02940031 ! 298: 33090 IVDELE = IVDELE + 1 02950031 ! 299: WRITE (I02,80003) IVTNUM 02960031 ! 300: IF (ICZERO) 43090, 3101, 43090 02970031 ! 301: 43090 IF (IVCOMP-8639) 23090,13090,23090 02980031 ! 302: 13090 IVPASS = IVPASS + 1 02990031 ! 303: WRITE (I02,80001) IVTNUM 03000031 ! 304: GO TO 3101 03010031 ! 305: 23090 IVFAIL = IVFAIL + 1 03020031 ! 306: IVCORR = 8639 03030031 ! 307: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03040031 ! 308: C 03050031 ! 309: C TEST 310 THROUGH TEST 319 CONTAIN 2 INTEGER CONSTANTS, AN INTEGER 03060031 ! 310: C VARIABLE AND OPERATOR - IN AN ARITHMETIC EXPRESSION. PARENTHESES 03070031 ! 311: C ARE USED TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSION. 03080031 ! 312: C 03090031 ! 313: 3101 CONTINUE 03100031 ! 314: IVTNUM = 310 03110031 ! 315: C 03120031 ! 316: C **** TEST 310 **** 03130031 ! 317: C 03140031 ! 318: IF (ICZERO) 33100, 3100, 33100 03150031 ! 319: 3100 CONTINUE 03160031 ! 320: IVON01 =9 03170031 ! 321: IVCOMP = IVON01-(3-4) 03180031 ! 322: GO TO 43100 03190031 ! 323: 33100 IVDELE = IVDELE + 1 03200031 ! 324: WRITE (I02,80003) IVTNUM 03210031 ! 325: IF (ICZERO) 43100, 3111, 43100 03220031 ! 326: 43100 IF (IVCOMP-10) 23100,13100,23100 03230031 ! 327: 13100 IVPASS = IVPASS + 1 03240031 ! 328: WRITE (I02,80001) IVTNUM 03250031 ! 329: GO TO 3111 03260031 ! 330: 23100 IVFAIL = IVFAIL + 1 03270031 ! 331: IVCORR=10 03280031 ! 332: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03290031 ! 333: 3111 CONTINUE 03300031 ! 334: IVTNUM = 311 03310031 ! 335: C 03320031 ! 336: C **** TEST 311 **** 03330031 ! 337: C 03340031 ! 338: IF (ICZERO) 33110, 3110, 33110 03350031 ! 339: 3110 CONTINUE 03360031 ! 340: IVON01=9 03370031 ! 341: IVCOMP=(IVON01-3)-4 03380031 ! 342: GO TO 43110 03390031 ! 343: 33110 IVDELE = IVDELE + 1 03400031 ! 344: WRITE (I02,80003) IVTNUM 03410031 ! 345: IF (ICZERO) 43110, 3121, 43110 03420031 ! 346: 43110 IF (IVCOMP-2) 23110,13110,23110 03430031 ! 347: 13110 IVPASS = IVPASS + 1 03440031 ! 348: WRITE (I02,80001) IVTNUM 03450031 ! 349: GO TO 3121 03460031 ! 350: 23110 IVFAIL = IVFAIL + 1 03470031 ! 351: IVCORR =2 03480031 ! 352: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03490031 ! 353: 3121 CONTINUE 03500031 ! 354: IVTNUM = 312 03510031 ! 355: C 03520031 ! 356: C **** TEST 312 **** 03530031 ! 357: C 03540031 ! 358: IF (ICZERO) 33120, 3120, 33120 03550031 ! 359: 3120 CONTINUE 03560031 ! 360: IVON02 = 3 03570031 ! 361: IVCOMP = 9-(IVON02-4) 03580031 ! 362: GO TO 43120 03590031 ! 363: 33120 IVDELE = IVDELE + 1 03600031 ! 364: WRITE (I02,80003) IVTNUM 03610031 ! 365: IF (ICZERO) 43120, 3131, 43120 03620031 ! 366: 43120 IF (IVCOMP-10) 23120,13120,23120 03630031 ! 367: 13120 IVPASS = IVPASS + 1 03640031 ! 368: WRITE (I02,80001) IVTNUM 03650031 ! 369: GO TO 3131 03660031 ! 370: 23120 IVFAIL = IVFAIL + 1 03670031 ! 371: IVCORR = 10 03680031 ! 372: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03690031 ! 373: 3131 CONTINUE 03700031 ! 374: IVTNUM = 313 03710031 ! 375: C 03720031 ! 376: C **** TEST 313 **** 03730031 ! 377: C 03740031 ! 378: IF (ICZERO) 33130, 3130, 33130 03750031 ! 379: 3130 CONTINUE 03760031 ! 380: IVON02 = 3 03770031 ! 381: IVCOMP = (9-IVON02) -4 03780031 ! 382: GO TO 43130 03790031 ! 383: 33130 IVDELE = IVDELE + 1 03800031 ! 384: WRITE (I02,80003) IVTNUM 03810031 ! 385: IF (ICZERO) 43130, 3141, 43130 03820031 ! 386: 43130 IF (IVCOMP-2) 23130,13130,23130 03830031 ! 387: 13130 IVPASS = IVPASS + 1 03840031 ! 388: WRITE (I02,80001) IVTNUM 03850031 ! 389: GO TO 3141 03860031 ! 390: 23130 IVFAIL = IVFAIL + 1 03870031 ! 391: IVCORR = 2 03880031 ! 392: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03890031 ! 393: 3141 CONTINUE 03900031 ! 394: IVTNUM = 314 03910031 ! 395: C 03920031 ! 396: C **** TEST 314 **** 03930031 ! 397: C 03940031 ! 398: IF (ICZERO) 33140, 3140, 33140 03950031 ! 399: 3140 CONTINUE 03960031 ! 400: IVON03 = 4 03970031 ! 401: IVCOMP = 9 -(3-IVON03) 03980031 ! 402: GO TO 43140 03990031 ! 403: 33140 IVDELE = IVDELE + 1 04000031 ! 404: WRITE (I02,80003) IVTNUM 04010031 ! 405: IF (ICZERO) 43140, 3151, 43140 04020031 ! 406: 43140 IF (IVCOMP-10) 23140,13140,23140 04030031 ! 407: 13140 IVPASS = IVPASS + 1 04040031 ! 408: WRITE (I02,80001) IVTNUM 04050031 ! 409: GO TO 3151 04060031 ! 410: 23140 IVFAIL = IVFAIL + 1 04070031 ! 411: IVCORR = 10 04080031 ! 412: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04090031 ! 413: 3151 CONTINUE 04100031 ! 414: IVTNUM = 315 04110031 ! 415: C 04120031 ! 416: C **** TEST 315 **** 04130031 ! 417: C 04140031 ! 418: IF (ICZERO) 33150, 3150, 33150 04150031 ! 419: 3150 CONTINUE 04160031 ! 420: IVON03 = 4 04170031 ! 421: IVCOMP = (9-3)-IVON03 04180031 ! 422: GO TO 43150 04190031 ! 423: 33150 IVDELE = IVDELE + 1 04200031 ! 424: WRITE (I02,80003) IVTNUM 04210031 ! 425: IF (ICZERO) 43150, 3161, 43150 04220031 ! 426: 43150 IF (IVCOMP-2) 23150,13150,23150 04230031 ! 427: 13150 IVPASS = IVPASS + 1 04240031 ! 428: WRITE (I02,80001) IVTNUM 04250031 ! 429: GO TO 3161 04260031 ! 430: 23150 IVFAIL = IVFAIL + 1 04270031 ! 431: IVCORR = 2 04280031 ! 432: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04290031 ! 433: 3161 CONTINUE 04300031 ! 434: IVTNUM = 316 04310031 ! 435: C 04320031 ! 436: C **** TEST 316 **** 04330031 ! 437: C 04340031 ! 438: IF (ICZERO) 33160, 3160, 33160 04350031 ! 439: 3160 CONTINUE 04360031 ! 440: IVON01 = -9 04370031 ! 441: IVCOMP = (IVON01-3)-4 04380031 ! 442: GO TO 43160 04390031 ! 443: 33160 IVDELE = IVDELE + 1 04400031 ! 444: WRITE (I02,80003) IVTNUM 04410031 ! 445: IF (ICZERO) 43160, 3171, 43160 04420031 ! 446: 43160 IF (IVCOMP +16) 23160,13160,23160 04430031 ! 447: 13160 IVPASS = IVPASS + 1 04440031 ! 448: WRITE (I02,80001) IVTNUM 04450031 ! 449: GO TO 3171 04460031 ! 450: 23160 IVFAIL = IVFAIL + 1 04470031 ! 451: IVCORR = -16 04480031 ! 452: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04490031 ! 453: 3171 CONTINUE 04500031 ! 454: IVTNUM = 317 04510031 ! 455: C 04520031 ! 456: C **** TEST 317 **** 04530031 ! 457: C 04540031 ! 458: IF (ICZERO) 33170, 3170, 33170 04550031 ! 459: 3170 CONTINUE 04560031 ! 460: IVON02 = -3 04570031 ! 461: IVCOMP = 9-(IVON02-4) 04580031 ! 462: GO TO 43170 04590031 ! 463: 33170 IVDELE = IVDELE + 1 04600031 ! 464: WRITE (I02,80003) IVTNUM 04610031 ! 465: IF (ICZERO) 43170, 3181, 43170 04620031 ! 466: 43170 IF (IVCOMP-16) 23170,13170,23170 04630031 ! 467: 13170 IVPASS = IVPASS + 1 04640031 ! 468: WRITE (I02,80001) IVTNUM 04650031 ! 469: GO TO 3181 04660031 ! 470: 23170 IVFAIL = IVFAIL + 1 04670031 ! 471: IVCORR = 16 04680031 ! 472: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04690031 ! 473: 3181 CONTINUE 04700031 ! 474: IVTNUM = 318 04710031 ! 475: C 04720031 ! 476: C **** TEST 318 **** 04730031 ! 477: C 04740031 ! 478: IF (ICZERO) 33180, 3180, 33180 04750031 ! 479: 3180 CONTINUE 04760031 ! 480: IVON03 = +4 04770031 ! 481: IVCOMP = 9 - (3 - IVON03) 04780031 ! 482: GO TO 43180 04790031 ! 483: 33180 IVDELE = IVDELE + 1 04800031 ! 484: WRITE (I02,80003) IVTNUM 04810031 ! 485: IF (ICZERO) 43180, 3191, 43180 04820031 ! 486: 43180 IF (IVCOMP - 10) 23180,13180,23180 04830031 ! 487: 13180 IVPASS = IVPASS + 1 04840031 ! 488: WRITE (I02,80001) IVTNUM 04850031 ! 489: GO TO 3191 04860031 ! 490: 23180 IVFAIL = IVFAIL + 1 04870031 ! 491: IVCORR= 10 04880031 ! 492: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04890031 ! 493: 3191 CONTINUE 04900031 ! 494: IVTNUM = 319 04910031 ! 495: C 04920031 ! 496: C **** TEST 319 **** 04930031 ! 497: C 04940031 ! 498: IF (ICZERO) 33190, 3190, 33190 04950031 ! 499: 3190 CONTINUE 04960031 ! 500: IVON02 = 11111 04970031 ! 501: IVCOMP = (32333-IVON02) -11111 04980031 ! 502: GO TO 43190 04990031 ! 503: 33190 IVDELE = IVDELE + 1 05000031 ! 504: WRITE (I02,80003) IVTNUM 05010031 ! 505: IF (ICZERO) 43190, 3201, 43190 05020031 ! 506: 43190 IF (IVCOMP - 10111) 23190,13190,23190 05030031 ! 507: 13190 IVPASS = IVPASS + 1 05040031 ! 508: WRITE (I02,80001) IVTNUM 05050031 ! 509: GO TO 3201 05060031 ! 510: 23190 IVFAIL = IVFAIL + 1 05070031 ! 511: IVCORR = 10111 05080031 ! 512: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05090031 ! 513: C 05100031 ! 514: C TEST 320 THROUGH TEST 329 CONTAIN 2 INTEGER VARIABLES AND 05110031 ! 515: C OPERATOR - IN AN ARITHMETIC EXPRESSION. THE INTEGER VARIABLES 05120031 ! 516: C CONTAIN POSITIVE AND NEGATIVE VALUES. 05130031 ! 517: C 05140031 ! 518: 3201 CONTINUE 05150031 ! 519: IVTNUM = 320 05160031 ! 520: C 05170031 ! 521: C **** TEST 320 **** 05180031 ! 522: C 05190031 ! 523: IF (ICZERO) 33200, 3200, 33200 05200031 ! 524: 3200 CONTINUE 05210031 ! 525: IVON01 = 3 05220031 ! 526: IVON02 = 2 05230031 ! 527: IVCOMP = IVON01 - IVON02 05240031 ! 528: GO TO 43200 05250031 ! 529: 33200 IVDELE = IVDELE + 1 05260031 ! 530: WRITE (I02,80003) IVTNUM 05270031 ! 531: IF (ICZERO) 43200, 3211, 43200 05280031 ! 532: 43200 IF (IVCOMP - 1) 23200,13200,23200 05290031 ! 533: 13200 IVPASS = IVPASS + 1 05300031 ! 534: WRITE (I02,80001) IVTNUM 05310031 ! 535: GO TO 3211 05320031 ! 536: 23200 IVFAIL = IVFAIL + 1 05330031 ! 537: IVCORR = 1 05340031 ! 538: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05350031 ! 539: 3211 CONTINUE 05360031 ! 540: IVTNUM = 321 05370031 ! 541: C 05380031 ! 542: C **** TEST 321 **** 05390031 ! 543: C 05400031 ! 544: IF (ICZERO) 33210, 3210, 33210 05410031 ! 545: 3210 CONTINUE 05420031 ! 546: IVON01 =2 05430031 ! 547: IVON02 =3 05440031 ! 548: IVCOMP = IVON01 - IVON02 05450031 ! 549: GO TO 43210 05460031 ! 550: 33210 IVDELE = IVDELE + 1 05470031 ! 551: WRITE (I02,80003) IVTNUM 05480031 ! 552: IF (ICZERO) 43210, 3221, 43210 05490031 ! 553: 43210 IF (IVCOMP +1) 23210,13210,23210 05500031 ! 554: 13210 IVPASS = IVPASS + 1 05510031 ! 555: WRITE (I02,80001) IVTNUM 05520031 ! 556: GO TO 3221 05530031 ! 557: 23210 IVFAIL = IVFAIL + 1 05540031 ! 558: IVCORR = -1 05550031 ! 559: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05560031 ! 560: 3221 CONTINUE 05570031 ! 561: IVTNUM = 322 05580031 ! 562: C 05590031 ! 563: C **** TEST 322 **** 05600031 ! 564: C 05610031 ! 565: IF (ICZERO) 33220, 3220, 33220 05620031 ! 566: 3220 CONTINUE 05630031 ! 567: IVON01 = -2 05640031 ! 568: IVON02 = 3 05650031 ! 569: IVCOMP = IVON01 - IVON02 05660031 ! 570: GO TO 43220 05670031 ! 571: 33220 IVDELE = IVDELE + 1 05680031 ! 572: WRITE (I02,80003) IVTNUM 05690031 ! 573: IF (ICZERO) 43220, 3231, 43220 05700031 ! 574: 43220 IF (IVCOMP +5) 23220,13220,23220 05710031 ! 575: 13220 IVPASS = IVPASS + 1 05720031 ! 576: WRITE (I02,80001) IVTNUM 05730031 ! 577: GO TO 3231 05740031 ! 578: 23220 IVFAIL = IVFAIL + 1 05750031 ! 579: IVCORR =-5 05760031 ! 580: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05770031 ! 581: 3231 CONTINUE 05780031 ! 582: IVTNUM = 323 05790031 ! 583: C 05800031 ! 584: C **** TEST 323 **** 05810031 ! 585: C 05820031 ! 586: IF (ICZERO) 33230, 3230, 33230 05830031 ! 587: 3230 CONTINUE 05840031 ! 588: IVON01 = -2 05850031 ! 589: IVON02 = -3 05860031 ! 590: IVCOMP = IVON01 - IVON02 05870031 ! 591: GO TO 43230 05880031 ! 592: 33230 IVDELE = IVDELE + 1 05890031 ! 593: WRITE (I02,80003) IVTNUM 05900031 ! 594: IF (ICZERO) 43230, 3241, 43230 05910031 ! 595: 43230 IF (IVCOMP -1) 23230,13230,23230 05920031 ! 596: 13230 IVPASS = IVPASS + 1 05930031 ! 597: WRITE (I02,80001) IVTNUM 05940031 ! 598: GO TO 3241 05950031 ! 599: 23230 IVFAIL = IVFAIL + 1 05960031 ! 600: IVCORR = 1 05970031 ! 601: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05980031 ! 602: 3241 CONTINUE 05990031 ! 603: IVTNUM = 324 06000031 ! 604: C 06010031 ! 605: C **** TEST 324 **** 06020031 ! 606: C 06030031 ! 607: IF (ICZERO) 33240, 3240, 33240 06040031 ! 608: 3240 CONTINUE 06050031 ! 609: IVON01 = 51 06060031 ! 610: IVON02 = 52 06070031 ! 611: IVCOMP = IVON01 - IVON02 06080031 ! 612: GO TO 43240 06090031 ! 613: 33240 IVDELE = IVDELE + 1 06100031 ! 614: WRITE (I02,80003) IVTNUM 06110031 ! 615: IF (ICZERO) 43240, 3251, 43240 06120031 ! 616: 43240 IF (IVCOMP + 1) 23240,13240,23240 06130031 ! 617: 13240 IVPASS = IVPASS + 1 06140031 ! 618: WRITE (I02,80001) IVTNUM 06150031 ! 619: GO TO 3251 06160031 ! 620: 23240 IVFAIL = IVFAIL + 1 06170031 ! 621: IVCORR = -1 06180031 ! 622: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06190031 ! 623: 3251 CONTINUE 06200031 ! 624: IVTNUM = 325 06210031 ! 625: C 06220031 ! 626: C **** TEST 325 **** 06230031 ! 627: C 06240031 ! 628: IF (ICZERO) 33250, 3250, 33250 06250031 ! 629: 3250 CONTINUE 06260031 ! 630: IVON01 = 676 06270031 ! 631: IVON02 =-189 06280031 ! 632: IVCOMP = IVON01 - IVON02 06290031 ! 633: GO TO 43250 06300031 ! 634: 33250 IVDELE = IVDELE + 1 06310031 ! 635: WRITE (I02,80003) IVTNUM 06320031 ! 636: IF (ICZERO) 43250, 3261, 43250 06330031 ! 637: 43250 IF (IVCOMP - 865) 23250,13250,23250 06340031 ! 638: 13250 IVPASS = IVPASS + 1 06350031 ! 639: WRITE (I02,80001) IVTNUM 06360031 ! 640: GO TO 3261 06370031 ! 641: 23250 IVFAIL = IVFAIL + 1 06380031 ! 642: IVCORR = 865 06390031 ! 643: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06400031 ! 644: 3261 CONTINUE 06410031 ! 645: IVTNUM = 326 06420031 ! 646: C 06430031 ! 647: C **** TEST 326 **** 06440031 ! 648: C 06450031 ! 649: IF (ICZERO) 33260, 3260, 33260 06460031 ! 650: 3260 CONTINUE 06470031 ! 651: IVON01 = 1358 06480031 ! 652: IVON02 = -8001 06490031 ! 653: IVCOMP = IVON01 - IVON02 06500031 ! 654: GO TO 43260 06510031 ! 655: 33260 IVDELE = IVDELE + 1 06520031 ! 656: WRITE (I02,80003) IVTNUM 06530031 ! 657: IF (ICZERO) 43260, 3271, 43260 06540031 ! 658: 43260 IF (IVCOMP - 9359) 23260,13260,23260 06550031 ! 659: 13260 IVPASS = IVPASS + 1 06560031 ! 660: WRITE (I02,80001) IVTNUM 06570031 ! 661: GO TO 3271 06580031 ! 662: 23260 IVFAIL = IVFAIL + 1 06590031 ! 663: IVCORR = 9359 06600031 ! 664: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06610031 ! 665: 3271 CONTINUE 06620031 ! 666: IVTNUM = 327 06630031 ! 667: C 06640031 ! 668: C **** TEST 327 **** 06650031 ! 669: C 06660031 ! 670: IF (ICZERO) 33270, 3270, 33270 06670031 ! 671: 3270 CONTINUE 06680031 ! 672: IVON01 =-16383 06690031 ! 673: IVON02 = 16383 06700031 ! 674: IVCOMP = IVON01 - IVON02 06710031 ! 675: GO TO 43270 06720031 ! 676: 33270 IVDELE = IVDELE + 1 06730031 ! 677: WRITE (I02,80003) IVTNUM 06740031 ! 678: IF (ICZERO) 43270, 3281, 43270 06750031 ! 679: 43270 IF (IVCOMP + 32766) 23270,13270,23270 06760031 ! 680: 13270 IVPASS = IVPASS + 1 06770031 ! 681: WRITE (I02,80001) IVTNUM 06780031 ! 682: GO TO 3281 06790031 ! 683: 23270 IVFAIL = IVFAIL + 1 06800031 ! 684: IVCORR = -32766 06810031 ! 685: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06820031 ! 686: 3281 CONTINUE 06830031 ! 687: IVTNUM = 328 06840031 ! 688: C 06850031 ! 689: C **** TEST 328 **** 06860031 ! 690: C 06870031 ! 691: IF (ICZERO) 33280, 3280, 33280 06880031 ! 692: 3280 CONTINUE 06890031 ! 693: IVON01 = 9876 06900031 ! 694: IVON02 = 189 06910031 ! 695: IVCOMP = IVON01 - IVON02 06920031 ! 696: GO TO 43280 06930031 ! 697: 33280 IVDELE = IVDELE + 1 06940031 ! 698: WRITE (I02,80003) IVTNUM 06950031 ! 699: IF (ICZERO) 43280, 3291, 43280 06960031 ! 700: 43280 IF (IVCOMP - 9687) 23280,13280,23280 06970031 ! 701: 13280 IVPASS = IVPASS + 1 06980031 ! 702: WRITE (I02,80001) IVTNUM 06990031 ! 703: GO TO 3291 07000031 ! 704: 23280 IVFAIL = IVFAIL + 1 07010031 ! 705: IVCORR = 9687 07020031 ! 706: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07030031 ! 707: 3291 CONTINUE 07040031 ! 708: IVTNUM = 329 07050031 ! 709: C 07060031 ! 710: C **** TEST 329 **** 07070031 ! 711: C 07080031 ! 712: IF (ICZERO) 33290, 3290, 33290 07090031 ! 713: 3290 CONTINUE 07100031 ! 714: IVON01 = 11112 07110031 ! 715: IVON02 = 11112 07120031 ! 716: IVCOMP = IVON01 - IVON02 07130031 ! 717: GO TO 43290 07140031 ! 718: 33290 IVDELE = IVDELE + 1 07150031 ! 719: WRITE (I02,80003) IVTNUM 07160031 ! 720: IF (ICZERO) 43290, 3301, 43290 07170031 ! 721: 43290 IF (IVCOMP) 23290,13290,23290 07180031 ! 722: 13290 IVPASS = IVPASS + 1 07190031 ! 723: WRITE (I02,80001) IVTNUM 07200031 ! 724: GO TO 3301 07210031 ! 725: 23290 IVFAIL = IVFAIL + 1 07220031 ! 726: IVCORR = 0 07230031 ! 727: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07240031 ! 728: C 07250031 ! 729: C **** END OF TESTS **** 07260031 ! 730: 3301 CONTINUE 07270031 ! 731: C 07280031 ! 732: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 07290031 ! 733: 99999 CONTINUE 07300031 ! 734: WRITE (I02,90002) 07310031 ! 735: WRITE (I02,90006) 07320031 ! 736: WRITE (I02,90002) 07330031 ! 737: WRITE (I02,90002) 07340031 ! 738: WRITE (I02,90007) 07350031 ! 739: WRITE (I02,90002) 07360031 ! 740: WRITE (I02,90008) IVFAIL 07370031 ! 741: WRITE (I02,90009) IVPASS 07380031 ! 742: WRITE (I02,90010) IVDELE 07390031 ! 743: C 07400031 ! 744: C 07410031 ! 745: C TERMINATE ROUTINE EXECUTION 07420031 ! 746: STOP 07430031 ! 747: C 07440031 ! 748: C FORMAT STATEMENTS FOR PAGE HEADERS 07450031 ! 749: 90000 FORMAT (1H1) 07460031 ! 750: 90002 FORMAT (1H ) 07470031 ! 751: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 07480031 ! 752: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 07490031 ! 753: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 07500031 ! 754: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 07510031 ! 755: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 07520031 ! 756: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 07530031 ! 757: C 07540031 ! 758: C FORMAT STATEMENTS FOR RUN SUMMARIES 07550031 ! 759: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 07560031 ! 760: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 07570031 ! 761: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 07580031 ! 762: C 07590031 ! 763: C FORMAT STATEMENTS FOR TEST RESULTS 07600031 ! 764: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 07610031 ! 765: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 07620031 ! 766: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 07630031 ! 767: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 07640031 ! 768: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 07650031 ! 769: C 07660031 ! 770: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM031) 07670031 ! 771: END 07680031
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.