|
|
1.1 ! root 1: PROGRAM FM252 00010252 ! 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 00020252 ! 6: C 00030252 ! 7: C 00040252 ! 8: C 00050252 ! 9: C THIS PROGRAM TESTS REDEFINITION OF STATEMENT LABELS WITH THE 00060252 ! 10: C ASSIGN STATEMENT IN CONJUNCTION WITH THE ASSIGNED GO TO STATEMENT.00070252 ! 11: C THE OPTIONAL COMMA IN THE SYNTAX OF THE ASSIGNED GO TO IS TESTED. 00080252 ! 12: C THE RANGE OF STATEMENT LABELS ( FROM 00001 TO 99999 ) IS TESTED 00090252 ! 13: C USING THE ASSIGN STATEMENT AND THE ASSIGNED GO TO STATEMENT. 00100252 ! 14: C IT ALSO TESTS THE OPTIONAL COMMA IN THE SYNTAX OF THE COMPUTED 00110252 ! 15: C GO TO STATEMENT AND HAS TESTS ON THE RANGE OF THE INDEX IN THE 00120252 ! 16: C COMPUTED GO TO. 00130252 ! 17: C 00140252 ! 18: C 00150252 ! 19: C REFERENCES 00160252 ! 20: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00170252 ! 21: C X3.9-1978 00180252 ! 22: C SECTION 10.3, STATEMENT LABEL ASSIGNMENT (ASSIGN) 00190252 ! 23: C SECTION 11.2, COMPUTED GO TO STATEMENT 00200252 ! 24: C SECTION 11.3, ASSIGNED GO TO STATEMENT 00210252 ! 25: C 00220252 ! 26: C 00230252 ! 27: C FM013 - SUBSET LEVEL TESTS OF THE ASSIGN STATEMENT AND THE 00240252 ! 28: C ASSIGNED GO TO STATEMENT. 00250252 ! 29: C 00260252 ! 30: C FM014, FM052, AND FM053 - SUBSET LEVEL TESTS OF THE COMPUTED 00270252 ! 31: C GO TO STATEMENT. 00280252 ! 32: C 00290252 ! 33: C 00300252 ! 34: C 00310252 ! 35: C 00320252 ! 36: C ******************************************************************00330252 ! 37: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00340252 ! 38: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00350252 ! 39: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00360252 ! 40: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00370252 ! 41: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00380252 ! 42: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00390252 ! 43: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00400252 ! 44: C THE RESULT OF EXECUTING THESE TESTS. 00410252 ! 45: C 00420252 ! 46: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00430252 ! 47: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00440252 ! 48: C 00450252 ! 49: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00460252 ! 50: C DEPARTMENT OF THE NAVY 00470252 ! 51: C FEDERAL COBOL COMPILER TESTING SERVICE 00480252 ! 52: C WASHINGTON, D.C. 20376 00490252 ! 53: C 00500252 ! 54: C ******************************************************************00510252 ! 55: C 00520252 ! 56: C 00530252 ! 57: IMPLICIT LOGICAL (L) 00540252 ! 58: IMPLICIT CHARACTER*14 (C) 00550252 ! 59: C 00560252 ! 60: C 00570252 ! 61: C 00580252 ! 62: C INITIALIZATION SECTION. 00590252 ! 63: C 00600252 ! 64: C INITIALIZE CONSTANTS 00610252 ! 65: C ******************** 00620252 ! 66: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00630252 ! 67: I01 = 5 00640252 ! 68: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00650252 ! 69: I02 = 6 00660252 ! 70: C SYSTEM ENVIRONMENT SECTION 00670252 ! 71: C 00680252 ! 72: I01 = 5 00690252 ! 73: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00700252 ! 74: C (UNIT NUMBER FOR CARD READER). 00710252 ! 75: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00720252 ! 76: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00730252 ! 77: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00740252 ! 78: C 00750252 ! 79: I02 = 6 00760252 ! 80: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00770252 ! 81: C (UNIT NUMBER FOR PRINTER). 00780252 ! 82: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00790252 ! 83: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00800252 ! 84: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00810252 ! 85: C 00820252 ! 86: IVPASS = 0 00830252 ! 87: IVFAIL = 0 00840252 ! 88: IVDELE = 0 00850252 ! 89: ICZERO = 0 00860252 ! 90: C 00870252 ! 91: C WRITE OUT PAGE HEADERS 00880252 ! 92: C 00890252 ! 93: WRITE (I02,90002) 00900252 ! 94: WRITE (I02,90006) 00910252 ! 95: WRITE (I02,90008) 00920252 ! 96: WRITE (I02,90004) 00930252 ! 97: WRITE (I02,90010) 00940252 ! 98: WRITE (I02,90004) 00950252 ! 99: WRITE (I02,90016) 00960252 ! 100: WRITE (I02,90001) 00970252 ! 101: WRITE (I02,90004) 00980252 ! 102: WRITE (I02,90012) 00990252 ! 103: WRITE (I02,90014) 01000252 ! 104: WRITE (I02,90004) 01010252 ! 105: C 01020252 ! 106: C 01030252 ! 107: C **** FCVS PROGRAM 252 - TEST 001 **** 01040252 ! 108: C 01050252 ! 109: C TEST 001 IS AN ASSIGN STATEMENT IN WHICH THE STATEMENT 01060252 ! 110: C LABEL IS ACTUALLY FOR A FORMAT STATEMENT. IN 10.3 - THE STATEMENT01070252 ! 111: C LABEL MUST BE THE LABEL OF AN EXECUTABLE STATEMENT OR A FORMAT 01080252 ! 112: C STATEMENT. THE ASSIGN STATEMENT IS FOLLOWED BY A SIMPLE WRITE 01090252 ! 113: C TO THE PRINTER. 01100252 ! 114: C 01110252 ! 115: C 01120252 ! 116: IVTNUM = 1 01130252 ! 117: IF (ICZERO) 30010, 0010, 30010 01140252 ! 118: 0010 CONTINUE 01150252 ! 119: ASSIGN 0012 TO I 01160252 ! 120: 0012 FORMAT (51H **** ASSIGN FORMAT NUMBER TO INTEGER VARIABLE ****) 01170252 ! 121: WRITE (I02, I) 01180252 ! 122: C ***** VISUALLY CHECK THE OUTPUT PRINTER LISTING ***** 01190252 ! 123: IVCOMP = 0 01200252 ! 124: IVCORR = 0 01210252 ! 125: 40010 IF ( IVCOMP ) 20010, 10010, 20010 01220252 ! 126: 30010 IVDELE = IVDELE + 1 01230252 ! 127: WRITE (I02,80000) IVTNUM 01240252 ! 128: IF (ICZERO) 10010, 0021, 20010 01250252 ! 129: 10010 IVPASS = IVPASS + 1 01260252 ! 130: WRITE (I02,80002) IVTNUM 01270252 ! 131: GO TO 0021 01280252 ! 132: 20010 IVFAIL = IVFAIL + 1 01290252 ! 133: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01300252 ! 134: 0021 CONTINUE 01310252 ! 135: C 01320252 ! 136: C **** FCVS PROGRAM 252 - TEST 002 **** 01330252 ! 137: C 01340252 ! 138: C TEST 002 IS A TEST OF THE ASSIGNED GO TO STATEMENT WITH THE 01350252 ! 139: C OPTIONAL COMMA INTENTIONALLY DELETED FROM THE SYNTAX. 01360252 ! 140: C GO TO I (S1, S2, S3) 01370252 ! 141: C 01380252 ! 142: C 01390252 ! 143: IVTNUM = 2 01400252 ! 144: IF (ICZERO) 30020, 0020, 30020 01410252 ! 145: 0020 CONTINUE 01420252 ! 146: IVCOMP = 0 01430252 ! 147: IVCORR = 1 01440252 ! 148: ASSIGN 0023 TO J 01450252 ! 149: GO TO 0025 01460252 ! 150: 0022 IVCOMP = 0 01470252 ! 151: GO TO 40020 01480252 ! 152: 0023 IVCOMP = 1 01490252 ! 153: GO TO 40020 01500252 ! 154: 0024 IVCOMP = 0 01510252 ! 155: GO TO 40020 01520252 ! 156: 0025 GO TO J (0022, 0023, 0024) 01530252 ! 157: C NOTE THAT THE OPTIONAL COMMA IS NOT PRESENT AFTER THE J IN 01540252 ! 158: C PREVIOUS ASSIGNED GO TO STATEMENT. 01550252 ! 159: 40020 IF ( IVCOMP - 1 ) 20020, 10020, 20020 01560252 ! 160: 30020 IVDELE = IVDELE + 1 01570252 ! 161: WRITE (I02,80000) IVTNUM 01580252 ! 162: IF (ICZERO) 10020, 0031, 20020 01590252 ! 163: 10020 IVPASS = IVPASS + 1 01600252 ! 164: WRITE (I02,80002) IVTNUM 01610252 ! 165: GO TO 0031 01620252 ! 166: 20020 IVFAIL = IVFAIL + 1 01630252 ! 167: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01640252 ! 168: 0031 CONTINUE 01650252 ! 169: C 01660252 ! 170: C **** FCVS PROGRAM 252 - TEST 003 **** 01670252 ! 171: C 01680252 ! 172: C TEST 003 USES A SERIES OF ASSIGN STATEMENTS TO TEST THAT THE 01690252 ! 173: C SAME STATEMENT LABEL AND INTEGER VARIABLE CAN BE USED IN A 01700252 ! 174: C MULTIPLE REDEFINITION TO THE SAME VALUES. A SIMPLE ASSIGNED 01710252 ! 175: C GO TO IS USED TO TEST THE VALUE OF THE INTEGER VARIABLE M. 01720252 ! 176: C 01730252 ! 177: C 01740252 ! 178: IVTNUM = 3 01750252 ! 179: IF (ICZERO) 30030, 0030, 30030 01760252 ! 180: 0030 CONTINUE 01770252 ! 181: IVCOMP = 0 01780252 ! 182: IVCORR = 1 01790252 ! 183: ASSIGN 0033 TO M 01800252 ! 184: ASSIGN 0033 TO M 01810252 ! 185: ASSIGN 0033 TO M 01820252 ! 186: GO TO 0035 01830252 ! 187: 0032 IVCOMP = 0 01840252 ! 188: GO TO 40030 01850252 ! 189: 0033 IVCOMP = 1 01860252 ! 190: GO TO 40030 01870252 ! 191: 0034 IVCOMP = 0 01880252 ! 192: GO TO 40030 01890252 ! 193: 0035 GO TO M, (0032, 0033, 0034) 01900252 ! 194: 40030 IF ( IVCOMP - 1 ) 20030, 10030, 20030 01910252 ! 195: 30030 IVDELE = IVDELE + 1 01920252 ! 196: WRITE (I02,80000) IVTNUM 01930252 ! 197: IF (ICZERO) 10030, 0041, 20030 01940252 ! 198: 10030 IVPASS = IVPASS + 1 01950252 ! 199: WRITE (I02,80002) IVTNUM 01960252 ! 200: GO TO 0041 01970252 ! 201: 20030 IVFAIL = IVFAIL + 1 01980252 ! 202: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01990252 ! 203: 0041 CONTINUE 02000252 ! 204: C 02010252 ! 205: C **** FCVS PROGRAM 252 - TEST 004 **** 02020252 ! 206: C 02030252 ! 207: C TEST 004 USES A SERIES OF ASSIGN STATEMENTS TO SET THE INTEGER 02040252 ! 208: C VARIABLE K TO A STATEMENT LABEL IN THE PARENTHESIZED LIST OF 02050252 ! 209: C STATEMENT LABELS FOR THE ASSIGNED GO TO STATEMENT, THEN TO A 02060252 ! 210: C STATEMENT LABEL NOT IN THE LIST AND FINALLY BACK TO A PROPER 02070252 ! 211: C STATEMENT LABEL WITHIN THE PARENTHESIZED LIST. SECTION 11.3 02080252 ! 212: C REQUIRES - IF THE PARENTHESIZED LIST IS PRESENT, THE STATEMENT 02090252 ! 213: C LABEL ASSIGNED TO I MUST BE ONE OF THE STATEMENT LABELS IN 02100252 ! 214: C THE LIST. AN ASSIGNED GO TO STATEMENT IS USED TO TEST THE FINAL 02110252 ! 215: C ASSIGNMENT OF STATEMENT LABELS TO THE INTEGER VARIABLE K. 02120252 ! 216: C 02130252 ! 217: C 02140252 ! 218: IVTNUM = 4 02150252 ! 219: IF (ICZERO) 30040, 0040, 30040 02160252 ! 220: 0040 CONTINUE 02170252 ! 221: IVCOMP = 0 02180252 ! 222: IVCORR = 1 02190252 ! 223: ASSIGN 0043 TO K 02200252 ! 224: ASSIGN 0042 TO K 02210252 ! 225: 0042 ASSIGN 0043 TO K 02220252 ! 226: GO TO 0045 02230252 ! 227: 0043 IVCOMP = 1 02240252 ! 228: GO TO 40040 02250252 ! 229: 0044 IVCOMP = 0 02260252 ! 230: GO TO 40040 02270252 ! 231: 0045 GO TO K, (0044, 0043) 02280252 ! 232: 40040 IF ( IVCOMP - 1 ) 20040, 10040, 20040 02290252 ! 233: 30040 IVDELE = IVDELE + 1 02300252 ! 234: WRITE (I02,80000) IVTNUM 02310252 ! 235: IF (ICZERO) 10040, 0051, 20040 02320252 ! 236: 10040 IVPASS = IVPASS + 1 02330252 ! 237: WRITE (I02,80002) IVTNUM 02340252 ! 238: GO TO 0051 02350252 ! 239: 20040 IVFAIL = IVFAIL + 1 02360252 ! 240: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02370252 ! 241: 0051 CONTINUE 02380252 ! 242: C 02390252 ! 243: C 02400252 ! 244: C THE FOLLOWING TWO TESTS CHECK THE POSSIBLE RANGE OF STATEMENT 02410252 ! 245: C LABELS ( FROM 00001 TO 99999 ) BY USING THEM IN ASSIGN STATEMENTS 02420252 ! 246: C AND ASSIGNED GO TO STATEMENTS. 02430252 ! 247: C 02440252 ! 248: C 02450252 ! 249: C 02460252 ! 250: C **** FCVS PROGRAM 252 - TEST 005 **** 02470252 ! 251: C 02480252 ! 252: C TEST 005 USES A STATEMENT LABEL OF 00001 WHICH IS THE SMALLEST 02490252 ! 253: C ALLOWABLE STATEMENT LABEL. 02500252 ! 254: C 02510252 ! 255: C 02520252 ! 256: IVTNUM = 5 02530252 ! 257: IF (ICZERO) 30050, 0050, 30050 02540252 ! 258: 0050 CONTINUE 02550252 ! 259: IVCOMP = 0 02560252 ! 260: IVCORR = 1 02570252 ! 261: ASSIGN 00001 TO I 02580252 ! 262: GO TO 0054 02590252 ! 263: 0052 IVCOMP = 0 02600252 ! 264: GO TO 40050 02610252 ! 265: 00001 IVCOMP = 1 02620252 ! 266: GO TO 40050 02630252 ! 267: 0053 IVCOMP = 0 02640252 ! 268: GO TO 40050 02650252 ! 269: 0054 GO TO I, ( 0052, 00001, 0053 ) 02660252 ! 270: 40050 IF ( IVCOMP - 1 ) 20050, 10050, 20050 02670252 ! 271: 30050 IVDELE = IVDELE + 1 02680252 ! 272: WRITE (I02,80000) IVTNUM 02690252 ! 273: IF (ICZERO) 10050, 0061, 20050 02700252 ! 274: 10050 IVPASS = IVPASS + 1 02710252 ! 275: WRITE (I02,80002) IVTNUM 02720252 ! 276: GO TO 0061 02730252 ! 277: 20050 IVFAIL = IVFAIL + 1 02740252 ! 278: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02750252 ! 279: 0061 CONTINUE 02760252 ! 280: C 02770252 ! 281: C **** FCVS PROGRAM 252 - TEST 006 **** 02780252 ! 282: C 02790252 ! 283: C TEST 006 USES A STATEMENT LABEL OF 99999 WHICH IS THE LARGEST 02800252 ! 284: C ALLOWABLE STATEMENT LABEL. 02810252 ! 285: C 02820252 ! 286: C 02830252 ! 287: IVTNUM = 6 02840252 ! 288: IF (ICZERO) 30060, 0060, 30060 02850252 ! 289: 0060 CONTINUE 02860252 ! 290: IVCOMP = 0 02870252 ! 291: IVCORR = 1 02880252 ! 292: ASSIGN 99999 TO J 02890252 ! 293: GO TO 0064 02900252 ! 294: 0062 IVCOMP = 0 02910252 ! 295: GO TO 40060 02920252 ! 296: 99999 IVCOMP = 1 02930252 ! 297: GO TO 40060 02940252 ! 298: 0063 IVCOMP = 0 02950252 ! 299: GO TO 40060 02960252 ! 300: 0064 GO TO J, ( 0062, 99999, 0063 ) 02970252 ! 301: 40060 IF ( IVCOMP - 1 ) 20060, 10060, 20060 02980252 ! 302: 30060 IVDELE = IVDELE + 1 02990252 ! 303: WRITE (I02,80000) IVTNUM 03000252 ! 304: IF (ICZERO) 10060, 0071, 20060 03010252 ! 305: 10060 IVPASS = IVPASS + 1 03020252 ! 306: WRITE (I02,80002) IVTNUM 03030252 ! 307: GO TO 0071 03040252 ! 308: 20060 IVFAIL = IVFAIL + 1 03050252 ! 309: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03060252 ! 310: 0071 CONTINUE 03070252 ! 311: C 03080252 ! 312: C **** FCVS PROGRAM 252 - TEST 007 **** 03090252 ! 313: C 03100252 ! 314: C TEST 007 IS A SYNTAX CHECK ON THE OPTIONAL COMMA IN THE 03110252 ! 315: C COMPUTED GO TO STATEMENT. THE COMMA FOLLOWING THE PARENTHESIZED 03120252 ! 316: C LIST OF STATEMENT LABELS IS INTENTIONALLY OMITTED. 03130252 ! 317: C GO TO ( S1, S2, S3 ) I 03140252 ! 318: C 03150252 ! 319: C 03160252 ! 320: IVTNUM = 7 03170252 ! 321: IF (ICZERO) 30070, 0070, 30070 03180252 ! 322: 0070 CONTINUE 03190252 ! 323: IVCOMP = 0 03200252 ! 324: IVCORR = 1 03210252 ! 325: I = 3 03220252 ! 326: GO TO 0075 03230252 ! 327: 0072 IVCOMP = 0 03240252 ! 328: I = 1 03250252 ! 329: GO TO 0075 03260252 ! 330: 0073 IVCOMP = 1 03270252 ! 331: GO TO 40070 03280252 ! 332: 0074 IVCOMP = 0 03290252 ! 333: I = 2 03300252 ! 334: GO TO 0075 03310252 ! 335: 0075 GO TO ( 0074, 0073, 0072 ) I 03320252 ! 336: 40070 IF ( I - 2 ) 20070, 40071, 20070 03330252 ! 337: 40071 IF ( IVCOMP - 1 ) 20070, 10070, 20070 03340252 ! 338: 30070 IVDELE = IVDELE + 1 03350252 ! 339: WRITE (I02,80000) IVTNUM 03360252 ! 340: IF (ICZERO) 10070, 0081, 20070 03370252 ! 341: 10070 IVPASS = IVPASS + 1 03380252 ! 342: WRITE (I02,80002) IVTNUM 03390252 ! 343: GO TO 0081 03400252 ! 344: 20070 IVFAIL = IVFAIL + 1 03410252 ! 345: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03420252 ! 346: 0081 CONTINUE 03430252 ! 347: C 03440252 ! 348: C **** FCVS PROGRAM 252 - TEST 008 **** 03450252 ! 349: C 03460252 ! 350: C TEST 008 USES THE COMPUTED GO TO WITHOUT THE OPTIONAL COMMA 03470252 ! 351: C AND HAS A SINGLE STATEMENT LABEL IN THE PARENTHESIZED LIST OF 03480252 ! 352: C STATEMENT LABELS. 03490252 ! 353: C GO TO ( S1 ) I 03500252 ! 354: C 03510252 ! 355: C 03520252 ! 356: IVTNUM = 8 03530252 ! 357: IF (ICZERO) 30080, 0080, 30080 03540252 ! 358: 0080 CONTINUE 03550252 ! 359: IVCOMP = 0 03560252 ! 360: IVCORR = 1 03570252 ! 361: J = 1 03580252 ! 362: GO TO 0083 03590252 ! 363: 0082 IVCOMP = 1 03600252 ! 364: GO TO 40080 03610252 ! 365: 0083 GO TO ( 0082 ) J 03620252 ! 366: 40080 IF ( IVCOMP - 1 ) 20080, 10080, 20080 03630252 ! 367: 30080 IVDELE = IVDELE + 1 03640252 ! 368: WRITE (I02,80000) IVTNUM 03650252 ! 369: IF (ICZERO) 10080, 0091, 20080 03660252 ! 370: 10080 IVPASS = IVPASS + 1 03670252 ! 371: WRITE (I02,80002) IVTNUM 03680252 ! 372: GO TO 0091 03690252 ! 373: 20080 IVFAIL = IVFAIL + 1 03700252 ! 374: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03710252 ! 375: 0091 CONTINUE 03720252 ! 376: C 03730252 ! 377: C 03740252 ! 378: C THE NEXT THREE TESTS OF THE COMPUTED GO TO TEST THE RANGE OF 03750252 ! 379: C THE INDEX. 03760252 ! 380: C 03770252 ! 381: C FORTRAN 77 HAS THE REQUIREMENT IN SECTION 11.2 - IF THE INDEX 03780252 ! 382: C IS LESS THAN ONE OR GREATER THAN THE NUMBER OF STATEMENT LABELS IN03790252 ! 383: C THE PARENTHESIZED LIST, THE EXECUTION SEQUENCE CONTINUES AS THOUGH03800252 ! 384: C A CONTINUE STATEMENT WERE EXECUTED. 03810252 ! 385: C 03820252 ! 386: C 03830252 ! 387: C 03840252 ! 388: C **** FCVS PROGRAM 252 - TEST 009 **** 03850252 ! 389: C 03860252 ! 390: C 03870252 ! 391: C TEST 009 USES A VALUE OF THE INDEX OF THE COMPUTED GO TO 03880252 ! 392: C STATEMENT GREATER THAN THE NUMBER OF STATEMENT LABELS IN THE 03890252 ! 393: C PARENTHESIZED LIST. 03900252 ! 394: C 03910252 ! 395: C 03920252 ! 396: IVTNUM = 9 03930252 ! 397: IF (ICZERO) 30090, 0090, 30090 03940252 ! 398: 0090 CONTINUE 03950252 ! 399: IVCOMP = 0 03960252 ! 400: IVCORR = 1 03970252 ! 401: K = 3 03980252 ! 402: GO TO 0094 03990252 ! 403: 0092 IVCOMP = 0 04000252 ! 404: GO TO 40090 04010252 ! 405: 0093 IVCOMP = 0 04020252 ! 406: GO TO 40090 04030252 ! 407: 0094 GO TO ( 0092, 0093 ) K 04040252 ! 408: C 04050252 ! 409: C TO REACH THIS STATEMENT THE COMPUTED GO TO WILL HAVE TO BE 04060252 ! 410: C EXECUTED AS IF IT WERE A CONTINUE STATEMENT. 04070252 ! 411: C 04080252 ! 412: IVCOMP = 1 04090252 ! 413: 40090 IF ( IVCOMP - 1 ) 20090, 10090, 20090 04100252 ! 414: 30090 IVDELE = IVDELE + 1 04110252 ! 415: WRITE (I02,80000) IVTNUM 04120252 ! 416: IF (ICZERO) 10090, 0101, 20090 04130252 ! 417: 10090 IVPASS = IVPASS + 1 04140252 ! 418: WRITE (I02,80002) IVTNUM 04150252 ! 419: GO TO 0101 04160252 ! 420: 20090 IVFAIL = IVFAIL + 1 04170252 ! 421: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04180252 ! 422: 0101 CONTINUE 04190252 ! 423: C 04200252 ! 424: C **** FCVS PROGRAM 252 - TEST 010 **** 04210252 ! 425: C 04220252 ! 426: C TEST 010 USES A VALUE OF THE INDEX OF THE COMPUTED GO TO 04230252 ! 427: C STATEMENT EQUAL TO ZERO. 04240252 ! 428: C 04250252 ! 429: C 04260252 ! 430: IVTNUM = 10 04270252 ! 431: IF (ICZERO) 30100, 0100, 30100 04280252 ! 432: 0100 CONTINUE 04290252 ! 433: IVCOMP = 0 04300252 ! 434: IVCORR = 1 04310252 ! 435: I = 0 04320252 ! 436: GO TO 0104 04330252 ! 437: 0102 IVCOMP = 0 04340252 ! 438: GO TO 40100 04350252 ! 439: 0103 IVCOMP = 0 04360252 ! 440: GO TO 40100 04370252 ! 441: 0104 GO TO ( 0103, 0102 ), I 04380252 ! 442: C 04390252 ! 443: C THIS STATEMENT CAN ONLY BE REACHED IF THE COMPUTED GO TO 04400252 ! 444: C IS EXECUTED AS IF IT WERE A CONTINUE STATEMENT. 04410252 ! 445: C 04420252 ! 446: IVCOMP = 1 04430252 ! 447: 40100 IF ( IVCOMP - 1 ) 20100, 10100, 20100 04440252 ! 448: 30100 IVDELE = IVDELE + 1 04450252 ! 449: WRITE (I02,80000) IVTNUM 04460252 ! 450: IF (ICZERO) 10100, 0111, 20100 04470252 ! 451: 10100 IVPASS = IVPASS + 1 04480252 ! 452: WRITE (I02,80002) IVTNUM 04490252 ! 453: GO TO 0111 04500252 ! 454: 20100 IVFAIL = IVFAIL + 1 04510252 ! 455: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04520252 ! 456: 0111 CONTINUE 04530252 ! 457: C 04540252 ! 458: C **** FCVS PROGRAM 252 - TEST 011 **** 04550252 ! 459: C 04560252 ! 460: C TEST 011 USES A VALUE OF THE INDEX OF THE COMPUTED GO TO 04570252 ! 461: C EQUAL TO -1. 04580252 ! 462: C 04590252 ! 463: IVTNUM = 11 04600252 ! 464: IF (ICZERO) 30110, 0110, 30110 04610252 ! 465: 0110 CONTINUE 04620252 ! 466: IVCOMP = 0 04630252 ! 467: IVCORR = 1 04640252 ! 468: J = -1 04650252 ! 469: GO TO 0114 04660252 ! 470: 0112 IVCOMP = 0 04670252 ! 471: GO TO 40110 04680252 ! 472: 0113 IVCOMP = 0 04690252 ! 473: GO TO 40110 04700252 ! 474: 0114 GO TO (0112,0113),J 04710252 ! 475: C 04720252 ! 476: C THIS STATEMENT CAN ONLY BE REACHED IF THE COMPUTED GO TO 04730252 ! 477: C IS EXECUTED AS IF IT WERE A CONTINUE STATEMENT. 04740252 ! 478: C 04750252 ! 479: IVCOMP = 1 04760252 ! 480: 40110 IF ( IVCOMP - 1 ) 20110, 10110, 20110 04770252 ! 481: 30110 IVDELE = IVDELE + 1 04780252 ! 482: WRITE (I02,80000) IVTNUM 04790252 ! 483: IF (ICZERO) 10110, 0121, 20110 04800252 ! 484: 10110 IVPASS = IVPASS + 1 04810252 ! 485: WRITE (I02,80002) IVTNUM 04820252 ! 486: GO TO 0121 04830252 ! 487: 20110 IVFAIL = IVFAIL + 1 04840252 ! 488: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04850252 ! 489: 0121 CONTINUE 04860252 ! 490: C 04870252 ! 491: C 04880252 ! 492: C WRITE OUT TEST SUMMARY 04890252 ! 493: C 04900252 ! 494: WRITE (I02,90004) 04910252 ! 495: WRITE (I02,90014) 04920252 ! 496: WRITE (I02,90004) 04930252 ! 497: WRITE (I02,90000) 04940252 ! 498: WRITE (I02,90004) 04950252 ! 499: WRITE (I02,90020) IVFAIL 04960252 ! 500: WRITE (I02,90022) IVPASS 04970252 ! 501: WRITE (I02,90024) IVDELE 04980252 ! 502: STOP 04990252 ! 503: 90001 FORMAT (1H ,24X,5HFM252) 05000252 ! 504: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM252) 05010252 ! 505: C 05020252 ! 506: C FORMATS FOR TEST DETAIL LINES 05030252 ! 507: C 05040252 ! 508: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 05050252 ! 509: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 05060252 ! 510: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 05070252 ! 511: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 05080252 ! 512: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 05090252 ! 513: C 05100252 ! 514: C FORMAT STATEMENTS FOR PAGE HEADERS 05110252 ! 515: C 05120252 ! 516: 90002 FORMAT (1H1) 05130252 ! 517: 90004 FORMAT (1H ) 05140252 ! 518: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 05150252 ! 519: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 05160252 ! 520: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 05170252 ! 521: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 05180252 ! 522: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 05190252 ! 523: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 05200252 ! 524: C 05210252 ! 525: C FORMAT STATEMENTS FOR RUN SUMMARY 05220252 ! 526: C 05230252 ! 527: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 05240252 ! 528: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 05250252 ! 529: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 05260252 ! 530: END 05270252
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.