|
|
1.1 ! root 1: PROGRAM FM255 00010255 ! 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 00020255 ! 6: C 00030255 ! 7: C 00040255 ! 8: C THIS ROUTINE IS A TEST OF THE ELSE STATEMENT. TESTS WITHIN 00050255 ! 9: C THIS ROUTINE ARE FOR THE SYNTAX OF THE BASIC ELSE STATEMENT AND 00060255 ! 10: C ELSE BLOCK STRUCTURES. THE END IF STATEMENT IS USED IN ALL BLOCK 00070255 ! 11: C IF STRUCTURES FOR THE ROUTINES FM253, FM254, AND FM255. FOR EACH 00080255 ! 12: C BLOCK IF STATEMENT, THERE MUST BE A CORRESPONDING END IF STATEMENT00090255 ! 13: C IN THE SAME PROGRAM UNIT. 00100255 ! 14: C 00110255 ! 15: C REFERENCES 00120255 ! 16: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00130255 ! 17: C X3.9-1977 00140255 ! 18: C SECTION 11.8, ELSE STATEMENT 00150255 ! 19: C SECTION 11.8.1, ELSE BLOCK 00160255 ! 20: C SECTION 11.8.2, EXECUTION OF AN ELSE STATEMENT 00170255 ! 21: C SECTION 11.9, END IF STATEMENT 00180255 ! 22: C 00190255 ! 23: C 00200255 ! 24: C 00210255 ! 25: C 00220255 ! 26: C ******************************************************************00230255 ! 27: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00240255 ! 28: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00250255 ! 29: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00260255 ! 30: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00270255 ! 31: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00280255 ! 32: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00290255 ! 33: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00300255 ! 34: C THE RESULT OF EXECUTING THESE TESTS. 00310255 ! 35: C 00320255 ! 36: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00330255 ! 37: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00340255 ! 38: C 00350255 ! 39: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00360255 ! 40: C DEPARTMENT OF THE NAVY 00370255 ! 41: C FEDERAL COBOL COMPILER TESTING SERVICE 00380255 ! 42: C WASHINGTON, D.C. 20376 00390255 ! 43: C 00400255 ! 44: C ******************************************************************00410255 ! 45: C 00420255 ! 46: C 00430255 ! 47: IMPLICIT LOGICAL (L) 00440255 ! 48: IMPLICIT CHARACTER*14 (C) 00450255 ! 49: C 00460255 ! 50: C 00470255 ! 51: C 00480255 ! 52: C INITIALIZATION SECTION. 00490255 ! 53: C 00500255 ! 54: C INITIALIZE CONSTANTS 00510255 ! 55: C ******************** 00520255 ! 56: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00530255 ! 57: I01 = 5 00540255 ! 58: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00550255 ! 59: I02 = 6 00560255 ! 60: C SYSTEM ENVIRONMENT SECTION 00570255 ! 61: C 00580255 ! 62: I01 = 5 00590255 ! 63: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00600255 ! 64: C (UNIT NUMBER FOR CARD READER). 00610255 ! 65: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00620255 ! 66: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00630255 ! 67: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00640255 ! 68: C 00650255 ! 69: I02 = 6 00660255 ! 70: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00670255 ! 71: C (UNIT NUMBER FOR PRINTER). 00680255 ! 72: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00690255 ! 73: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00700255 ! 74: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00710255 ! 75: C 00720255 ! 76: IVPASS = 0 00730255 ! 77: IVFAIL = 0 00740255 ! 78: IVDELE = 0 00750255 ! 79: ICZERO = 0 00760255 ! 80: C 00770255 ! 81: C WRITE OUT PAGE HEADERS 00780255 ! 82: C 00790255 ! 83: WRITE (I02,90002) 00800255 ! 84: WRITE (I02,90006) 00810255 ! 85: WRITE (I02,90008) 00820255 ! 86: WRITE (I02,90004) 00830255 ! 87: WRITE (I02,90010) 00840255 ! 88: WRITE (I02,90004) 00850255 ! 89: WRITE (I02,90016) 00860255 ! 90: WRITE (I02,90001) 00870255 ! 91: WRITE (I02,90004) 00880255 ! 92: WRITE (I02,90012) 00890255 ! 93: WRITE (I02,90014) 00900255 ! 94: WRITE (I02,90004) 00910255 ! 95: C 00920255 ! 96: C 00930255 ! 97: C 00940255 ! 98: C THE SYNTAX OF THE ELSE STATEMENTS IN THE TESTS TO FOLLOW IS 00950255 ! 99: C 00960255 ! 100: C IF ( E1 ) THEN 00970255 ! 101: C IF-BLOCK 00980255 ! 102: C ELSE 00990255 ! 103: C ELSE-BLOCK 01000255 ! 104: C END IF 01010255 ! 105: C 01020255 ! 106: C THE NEXT TWO TESTS WILL USE THE FOLLOWING COMBINATIONS OF TRUE 01030255 ! 107: C AND FALSE FOR E1 AS SHOWN BELOW - 01040255 ! 108: C TEST NUMBER 1 2 01050255 ! 109: C E1 T F 01060255 ! 110: C 01070255 ! 111: C 01080255 ! 112: C 01090255 ! 113: C **** FCVS PROGRAM 255 - TEST 001 **** 01100255 ! 114: C 01110255 ! 115: C TEST 001 USES A VALUE OF .TRUE. FOR E1. THE IF-BLOCK SHOULD BE01120255 ! 116: C EXECUTED. THE ELSE-BLOCK SHOULD NOT BE EXECUTED. 01130255 ! 117: C 01140255 ! 118: C 01150255 ! 119: IVTNUM = 1 01160255 ! 120: IF (ICZERO) 30010, 0010, 30010 01170255 ! 121: 0010 CONTINUE 01180255 ! 122: IVCOMP = 1 01190255 ! 123: IF ( .TRUE. ) THEN 01200255 ! 124: IVCOMP = IVCOMP * 2 01210255 ! 125: ELSE 01220255 ! 126: IVCOMP = IVCOMP * 3 01230255 ! 127: END IF 01240255 ! 128: C 01250255 ! 129: C **** IVCOMP IS DETERMINED BY IVCOMP = 2 = 1 * 2 ****01260255 ! 130: C 01270255 ! 131: IVCORR = 2 01280255 ! 132: 40010 IF ( IVCOMP - 2 ) 20010, 10010, 20010 01290255 ! 133: 30010 IVDELE = IVDELE + 1 01300255 ! 134: WRITE (I02,80000) IVTNUM 01310255 ! 135: IF (ICZERO) 10010, 0021, 20010 01320255 ! 136: 10010 IVPASS = IVPASS + 1 01330255 ! 137: WRITE (I02,80002) IVTNUM 01340255 ! 138: GO TO 0021 01350255 ! 139: 20010 IVFAIL = IVFAIL + 1 01360255 ! 140: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01370255 ! 141: 0021 CONTINUE 01380255 ! 142: C 01390255 ! 143: C **** FCVS PROGRAM 255 - TEST 002 **** 01400255 ! 144: C 01410255 ! 145: C TEST 002 HAS E1 AS FALSE. THE IF-BLOCK SHOULD NOT BE EXECUTED.01420255 ! 146: C THE ELSE-BLOCK SHOULD EXECUTE. 01430255 ! 147: C 01440255 ! 148: C 01450255 ! 149: IVTNUM = 2 01460255 ! 150: IF (ICZERO) 30020, 0020, 30020 01470255 ! 151: 0020 CONTINUE 01480255 ! 152: IVCOMP = 1 01490255 ! 153: LVON01 = .FALSE. 01500255 ! 154: IF ( LVON01 ) THEN 01510255 ! 155: IVCOMP = IVCOMP * 2 01520255 ! 156: ELSE 01530255 ! 157: IVCOMP = IVCOMP * 3 01540255 ! 158: END IF 01550255 ! 159: C 01560255 ! 160: C **** IVCOMP IS DETERMINED BY IVCOMP = 3 = 1 * 3 ****01570255 ! 161: C 01580255 ! 162: IVCORR = 3 01590255 ! 163: 40020 IF ( IVCOMP - 3 ) 20020, 10020, 20020 01600255 ! 164: 30020 IVDELE = IVDELE + 1 01610255 ! 165: WRITE (I02,80000) IVTNUM 01620255 ! 166: IF (ICZERO) 10020, 0031, 20020 01630255 ! 167: 10020 IVPASS = IVPASS + 1 01640255 ! 168: WRITE (I02,80002) IVTNUM 01650255 ! 169: GO TO 0031 01660255 ! 170: 20020 IVFAIL = IVFAIL + 1 01670255 ! 171: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01680255 ! 172: 0031 CONTINUE 01690255 ! 173: C 01700255 ! 174: C **** FCVS PROGRAM 255 - TEST 003 **** 01710255 ! 175: C 01720255 ! 176: C TEST 003 HAS AN EMPTY ELSE-BLOCK. SECTION 11.8.1 STATES THAT 01730255 ! 177: C AN ELSE-BLOCK MAY BE EMPTY. IN THIS TEST THE VALUE OF E1 IS TRUE.01740255 ! 178: C THE IF-BLOCK SHOULD BE EXECUTED. 01750255 ! 179: C 01760255 ! 180: C 01770255 ! 181: IVTNUM = 3 01780255 ! 182: IF (ICZERO) 30030, 0030, 30030 01790255 ! 183: 0030 CONTINUE 01800255 ! 184: IVCOMP = 1 01810255 ! 185: LVON01 = .TRUE. 01820255 ! 186: IF ( LVON01 ) THEN 01830255 ! 187: IVCOMP = IVCOMP * 2 01840255 ! 188: ELSE 01850255 ! 189: END IF 01860255 ! 190: C 01870255 ! 191: C **** IVCOMP IS DETERMINED BY IVCOMP = 2 = 1 * 2 ****01880255 ! 192: C 01890255 ! 193: IVCORR = 2 01900255 ! 194: 40030 IF ( IVCOMP - 2 ) 20030, 10030, 20030 01910255 ! 195: 30030 IVDELE = IVDELE + 1 01920255 ! 196: WRITE (I02,80000) IVTNUM 01930255 ! 197: IF (ICZERO) 10030, 0041, 20030 01940255 ! 198: 10030 IVPASS = IVPASS + 1 01950255 ! 199: WRITE (I02,80002) IVTNUM 01960255 ! 200: GO TO 0041 01970255 ! 201: 20030 IVFAIL = IVFAIL + 1 01980255 ! 202: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01990255 ! 203: 0041 CONTINUE 02000255 ! 204: C 02010255 ! 205: C **** FCVS PROGRAM 255 - TEST 004 **** 02020255 ! 206: C 02030255 ! 207: C TEST 004 IS SIMILAR TO THE PREVIOUS TEST EXCEPT THAT THE VALUE 02040255 ! 208: C OF E1 IS FALSE. THE IF-BLOCK SHOULD NOT BE EXECUTED. 02050255 ! 209: C 02060255 ! 210: C 02070255 ! 211: IVTNUM = 4 02080255 ! 212: IF (ICZERO) 30040, 0040, 30040 02090255 ! 213: 0040 CONTINUE 02100255 ! 214: IVCOMP = 1 02110255 ! 215: LVON01 = .FALSE. 02120255 ! 216: IF ( LVON01 ) THEN 02130255 ! 217: IVCOMP = IVCOMP * 2 02140255 ! 218: ELSE 02150255 ! 219: END IF 02160255 ! 220: IVCORR = 1 02170255 ! 221: 40040 IF ( IVCOMP - 1 ) 20040, 10040, 20040 02180255 ! 222: 30040 IVDELE = IVDELE + 1 02190255 ! 223: WRITE (I02,80000) IVTNUM 02200255 ! 224: IF (ICZERO) 10040, 0051, 20040 02210255 ! 225: 10040 IVPASS = IVPASS + 1 02220255 ! 226: WRITE (I02,80002) IVTNUM 02230255 ! 227: GO TO 0051 02240255 ! 228: 20040 IVFAIL = IVFAIL + 1 02250255 ! 229: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02260255 ! 230: 0051 CONTINUE 02270255 ! 231: C 02280255 ! 232: C **** FCVS PROGRAM 255 - TEST 005 **** 02290255 ! 233: C 02300255 ! 234: C TEST 005 USES AN ELSE STATEMENT IN AN IF-LEVEL OF 2. THE 02310255 ! 235: C SYNTAX FOR THIS STRUCTURE IS SHOWN BELOW - 02320255 ! 236: C 02330255 ! 237: C IF ( E1 ) THEN 02340255 ! 238: C IF-BLOCK 1 02350255 ! 239: C IF ( E2 ) THEN 02360255 ! 240: C IF-BLOCK 2 02370255 ! 241: C ELSE 02380255 ! 242: C ELSE-BLOCK 1 02390255 ! 243: C END IF 02400255 ! 244: C ELSE 02410255 ! 245: C ELSE-BLOCK 2 02420255 ! 246: C END IF 02430255 ! 247: C 02440255 ! 248: C IN THIS TEST THE VALUES FOR E1 AND E2 ARE BOTH TRUE. IF-BLOCK 02450255 ! 249: C 1 AND IF-BLOCK 2 SHOULD BE EXECUTED. ELSE-BLOCKS 1 AND 2 SHOULD 02460255 ! 250: C NOT BE EXECUTED. 02470255 ! 251: C 02480255 ! 252: C 02490255 ! 253: IVTNUM = 5 02500255 ! 254: IF (ICZERO) 30050, 0050, 30050 02510255 ! 255: 0050 CONTINUE 02520255 ! 256: IVCOMP = 1 02530255 ! 257: LVON01 = .TRUE. 02540255 ! 258: LVON02 = .TRUE. 02550255 ! 259: IF ( LVON01 ) THEN 02560255 ! 260: IVCOMP = IVCOMP * 2 02570255 ! 261: IF ( LVON02 ) THEN 02580255 ! 262: IVCOMP = IVCOMP * 3 02590255 ! 263: ELSE 02600255 ! 264: IVCOMP = IVCOMP * 5 02610255 ! 265: END IF 02620255 ! 266: ELSE 02630255 ! 267: IVCOMP = IVCOMP * 7 02640255 ! 268: END IF 02650255 ! 269: C 02660255 ! 270: C **** IVCOMP IS DETERMINED BY IVCOMP = 6 = 1 * 2 * 3 02670255 ! 271: C 02680255 ! 272: IVCORR = 6 02690255 ! 273: 40050 IF ( IVCOMP - 6 ) 20050, 10050, 20050 02700255 ! 274: 30050 IVDELE = IVDELE + 1 02710255 ! 275: WRITE (I02,80000) IVTNUM 02720255 ! 276: IF (ICZERO) 10050, 0061, 20050 02730255 ! 277: 10050 IVPASS = IVPASS + 1 02740255 ! 278: WRITE (I02,80002) IVTNUM 02750255 ! 279: GO TO 0061 02760255 ! 280: 20050 IVFAIL = IVFAIL + 1 02770255 ! 281: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02780255 ! 282: 0061 CONTINUE 02790255 ! 283: C 02800255 ! 284: C **** FCVS PROGRAM 255 - TEST 006 **** 02810255 ! 285: C 02820255 ! 286: C TEST 006 IS SIMILAR TO THE PREVIOUS TEST EXCEPT THAT E1 IS TRUE02830255 ! 287: C AND E2 IS FALSE. IF-BLOCK 1 AND ELSE-BLOCK 1 SHOULD BE EXECUTED. 02840255 ! 288: C 02850255 ! 289: C 02860255 ! 290: IVTNUM = 6 02870255 ! 291: IF (ICZERO) 30060, 0060, 30060 02880255 ! 292: 0060 CONTINUE 02890255 ! 293: IVCOMP = 1 02900255 ! 294: LVON01 = .TRUE. 02910255 ! 295: LVON02 = .FALSE. 02920255 ! 296: IF ( LVON01 ) THEN 02930255 ! 297: IVCOMP = IVCOMP * 2 02940255 ! 298: IF ( LVON02 ) THEN 02950255 ! 299: IVCOMP = IVCOMP * 3 02960255 ! 300: ELSE 02970255 ! 301: IVCOMP = IVCOMP * 5 02980255 ! 302: END IF 02990255 ! 303: ELSE 03000255 ! 304: IVCOMP = IVCOMP * 7 03010255 ! 305: END IF 03020255 ! 306: C 03030255 ! 307: C **** IVCOMP IS DETERMINED BY IVCOMP = 10 = 1 * 2 * 5 ****03040255 ! 308: C 03050255 ! 309: IVCORR = 10 03060255 ! 310: 40060 IF ( IVCOMP - 10 ) 20060, 10060, 20060 03070255 ! 311: 30060 IVDELE = IVDELE + 1 03080255 ! 312: WRITE (I02,80000) IVTNUM 03090255 ! 313: IF (ICZERO) 10060, 0071, 20060 03100255 ! 314: 10060 IVPASS = IVPASS + 1 03110255 ! 315: WRITE (I02,80002) IVTNUM 03120255 ! 316: GO TO 0071 03130255 ! 317: 20060 IVFAIL = IVFAIL + 1 03140255 ! 318: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03150255 ! 319: 0071 CONTINUE 03160255 ! 320: C 03170255 ! 321: C **** FCVS PROGRAM 255 - TEST 007 **** 03180255 ! 322: C 03190255 ! 323: C TEST 007 AGAIN USES THE SAME STRUCTURE AS THE PREVIOUS TWO 03200255 ! 324: C TESTS. IN THIS TEST E1 IS FALSE AND E2 IS TRUE. ONLY ELSE-BLOCK 03210255 ! 325: C 2 SHOULD BE EXECUTED. 03220255 ! 326: C 03230255 ! 327: C 03240255 ! 328: IVTNUM = 7 03250255 ! 329: IF (ICZERO) 30070, 0070, 30070 03260255 ! 330: 0070 CONTINUE 03270255 ! 331: IVCOMP = 1 03280255 ! 332: LVON01 = .FALSE. 03290255 ! 333: LVON02 = .TRUE. 03300255 ! 334: IF ( LVON01 ) THEN 03310255 ! 335: IVCOMP = IVCOMP * 2 03320255 ! 336: IF ( LVON02 ) THEN 03330255 ! 337: IVCOMP = IVCOMP * 3 03340255 ! 338: ELSE 03350255 ! 339: IVCOMP = IVCOMP * 5 03360255 ! 340: END IF 03370255 ! 341: ELSE 03380255 ! 342: IVCOMP = IVCOMP * 7 03390255 ! 343: END IF 03400255 ! 344: C 03410255 ! 345: C **** IVCOMP IS DETERMINED BY IVCOMP = 7 = 1 * 7 ****03420255 ! 346: C 03430255 ! 347: IVCORR = 7 03440255 ! 348: 40070 IF ( IVCOMP - 7 ) 20070, 10070, 20070 03450255 ! 349: 30070 IVDELE = IVDELE + 1 03460255 ! 350: WRITE (I02,80000) IVTNUM 03470255 ! 351: IF (ICZERO) 10070, 0081, 20070 03480255 ! 352: 10070 IVPASS = IVPASS + 1 03490255 ! 353: WRITE (I02,80002) IVTNUM 03500255 ! 354: GO TO 0081 03510255 ! 355: 20070 IVFAIL = IVFAIL + 1 03520255 ! 356: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03530255 ! 357: 0081 CONTINUE 03540255 ! 358: C 03550255 ! 359: C 03560255 ! 360: C THE FOLLOWING TESTS USE A BLOCK IF STRUCTURE OF IF-LEVEL 3. 03570255 ! 361: C THE STRUCTURE AS SHOWN BELOW CONTAINS THE IF-THEN, ELSE IF-THEN, 03580255 ! 362: C AND ELSE STRUCTURES. 03590255 ! 363: C 03600255 ! 364: C IF ( E1 ) THEN 03610255 ! 365: C IF-BLOCK 1 03620255 ! 366: C IF ( E2 ) THEN 03630255 ! 367: C IF-BLOCK 2 03640255 ! 368: C IF ( E3 ) THEN 03650255 ! 369: C IF-BLOCK 3 03660255 ! 370: C ELSE IF ( E4 ) THEN 03670255 ! 371: C ELSE IF-BLOCK 1 03680255 ! 372: C ELSE IF ( E5 ) THEN 03690255 ! 373: C ELSE IF-BLOCK 2 03700255 ! 374: C ELSE 03710255 ! 375: C ELSE-BLOCK 1 03720255 ! 376: C END IF 03730255 ! 377: C MORE IF-BLOCK 2 03740255 ! 378: C ELSE IF ( E6 ) THEN 03750255 ! 379: C ELSE IF-BLOCK 3 03760255 ! 380: C ELSE 03770255 ! 381: C ELSE-BLOCK 2 03780255 ! 382: C END IF 03790255 ! 383: C MORE IF-BLOCK 1 03800255 ! 384: C ELSE IF ( E7 ) THEN 03810255 ! 385: C ELSE IF-BLOCK 4 03820255 ! 386: C ELSE 03830255 ! 387: C ELSE-BLOCK 3 03840255 ! 388: C END IF 03850255 ! 389: C 03860255 ! 390: C THE TRUE AND FALSE VALUES FOR THE VARIOUS LOGICAL EXPRESSIONS 03870255 ! 391: C USED IN THE TESTS TO FOLLOW ARE SHOWN BELOW - 03880255 ! 392: C 03890255 ! 393: C TEST NUMBER 8 9 10 11 12 13 14 15 03900255 ! 394: C E1 T T T T T T F F 03910255 ! 395: C E2 T T T T F F F F 03920255 ! 396: C E3 T F F F F F F F 03930255 ! 397: C E4 T F F T F F F F 03940255 ! 398: C E5 T F T F F F F F 03950255 ! 399: C E6 T F F F T F F F 03960255 ! 400: C E7 T F F F F F T F 03970255 ! 401: C 03980255 ! 402: C 03990255 ! 403: C 04000255 ! 404: C **** FCVS PROGRAM 255 - TEST 008 **** 04010255 ! 405: C 04020255 ! 406: C TEST 008 SHOULD EXECUTE IF-BLOCKS 1, 2, AND 3. IT SHOULD ALSO 04030255 ! 407: C EXECUTE MORE IF-BLOCKS 2 AND 1. 04040255 ! 408: C 04050255 ! 409: C 04060255 ! 410: IVTNUM = 8 04070255 ! 411: IF (ICZERO) 30080, 0080, 30080 04080255 ! 412: 0080 CONTINUE 04090255 ! 413: IVCOMP = 1 04100255 ! 414: LVON01 = .TRUE. 04110255 ! 415: LVON02 = .TRUE. 04120255 ! 416: LVON03 = .TRUE. 04130255 ! 417: LVON04 = .TRUE. 04140255 ! 418: LVON05 = .TRUE. 04150255 ! 419: LVON06 = .TRUE. 04160255 ! 420: LVON07 = .TRUE. 04170255 ! 421: IF ( LVON01 ) THEN 04180255 ! 422: IVCOMP = IVCOMP * 2 04190255 ! 423: IF ( LVON02 ) THEN 04200255 ! 424: IVCOMP = IVCOMP * 3 04210255 ! 425: IF ( LVON03 ) THEN 04220255 ! 426: IVCOMP = IVCOMP * 5 04230255 ! 427: ELSE IF ( LVON04 ) THEN 04240255 ! 428: IVCOMP = IVCOMP * 7 04250255 ! 429: ELSE IF ( LVON05 ) THEN 04260255 ! 430: IVCOMP = IVCOMP * 11 04270255 ! 431: ELSE 04280255 ! 432: IVCOMP = IVCOMP * 13 04290255 ! 433: END IF 04300255 ! 434: IVCOMP = IVCOMP * 17 04310255 ! 435: ELSE IF ( LVON06 ) THEN 04320255 ! 436: IVCOMP = IVCOMP * 19 04330255 ! 437: ELSE 04340255 ! 438: IVCOMP = IVCOMP * 23 04350255 ! 439: END IF 04360255 ! 440: IVCOMP = IVCOMP * 29 04370255 ! 441: ELSE IF ( LVON07 ) THEN 04380255 ! 442: IVCOMP = IVCOMP * 31 04390255 ! 443: ELSE 04400255 ! 444: GO TO 0082 04410255 ! 445: END IF 04420255 ! 446: GO TO 0083 04430255 ! 447: 0082 IVCOMP = IVCOMP * 37 04440255 ! 448: 0083 CONTINUE 04450255 ! 449: C 04460255 ! 450: C **** IVCOMP IS DETERMINED BY IVCOMP = 14790 = 1 * 2 * 3 * 5 * 04470255 ! 451: C 17 * 29 ****04480255 ! 452: C 04490255 ! 453: IVCORR = 14790 04500255 ! 454: 40080 IF ( IVCOMP - 14790 ) 20080, 10080, 20080 04510255 ! 455: 30080 IVDELE = IVDELE + 1 04520255 ! 456: WRITE (I02,80000) IVTNUM 04530255 ! 457: IF (ICZERO) 10080, 0091, 20080 04540255 ! 458: 10080 IVPASS = IVPASS + 1 04550255 ! 459: WRITE (I02,80002) IVTNUM 04560255 ! 460: GO TO 0091 04570255 ! 461: 20080 IVFAIL = IVFAIL + 1 04580255 ! 462: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04590255 ! 463: 0091 CONTINUE 04600255 ! 464: C 04610255 ! 465: C **** FCVS PROGRAM 255 - TEST 009 **** 04620255 ! 466: C 04630255 ! 467: C TEST 009 SHOULD EXECUTE IF-BLOCKS 1 AND 2. IT SHOULD ALSO 04640255 ! 468: C EXECUTE ELSE-BLOCK 1, PLUS MORE IF-BLOCKS 2 AND 1. 04650255 ! 469: C 04660255 ! 470: C 04670255 ! 471: IVTNUM = 9 04680255 ! 472: IF (ICZERO) 30090, 0090, 30090 04690255 ! 473: 0090 CONTINUE 04700255 ! 474: IVCOMP = 1 04710255 ! 475: LVON01 = .TRUE. 04720255 ! 476: LVON02 = .TRUE. 04730255 ! 477: LVON03 = .FALSE. 04740255 ! 478: LVON04 = .FALSE. 04750255 ! 479: LVON05 = .FALSE. 04760255 ! 480: LVON06 = .FALSE. 04770255 ! 481: LVON07 = .FALSE. 04780255 ! 482: IF ( LVON01 ) THEN 04790255 ! 483: IVCOMP = IVCOMP * 2 04800255 ! 484: IF ( LVON02 ) THEN 04810255 ! 485: IVCOMP = IVCOMP * 3 04820255 ! 486: IF ( LVON03 ) THEN 04830255 ! 487: IVCOMP = IVCOMP * 13 04840255 ! 488: ELSE IF ( LVON04 ) THEN 04850255 ! 489: IVCOMP = IVCOMP * 17 04860255 ! 490: ELSE IF ( LVON05 ) THEN 04870255 ! 491: IVCOMP = IVCOMP * 11 04880255 ! 492: ELSE 04890255 ! 493: IVCOMP = IVCOMP * 5 04900255 ! 494: END IF 04910255 ! 495: IVCOMP = IVCOMP * 7 04920255 ! 496: ELSE IF ( LVON06 ) THEN 04930255 ! 497: IVCOMP = IVCOMP * 19 04940255 ! 498: ELSE 04950255 ! 499: IVCOMP = IVCOMP * 23 04960255 ! 500: END IF 04970255 ! 501: IVCOMP = IVCOMP * 29 04980255 ! 502: ELSE IF ( LVON07 ) THEN 04990255 ! 503: IVCOMP = IVCOMP * 31 05000255 ! 504: ELSE 05010255 ! 505: IF ( .TRUE. ) GO TO 0092 05020255 ! 506: END IF 05030255 ! 507: GO TO 0093 05040255 ! 508: 0092 IVCOMP = IVCOMP * 37 05050255 ! 509: 0093 CONTINUE 05060255 ! 510: C 05070255 ! 511: C **** THE ORDER OF THE PRIME INTEGER MULTIPLIERS HAS BEEN 05080255 ! 512: C CHANGED TO KEEP THE IVCOMP RESULT SMALLER THAN 32767 ****05090255 ! 513: C 05100255 ! 514: C 05110255 ! 515: C **** IVCOMP IS DETERMINED BY IVCOMP = 6090 = 1 * 2 * 3 * 5 * 7 05120255 ! 516: C * 29 ****05130255 ! 517: C 05140255 ! 518: IVCORR = 6090 05150255 ! 519: 40090 IF ( IVCOMP - 6090 ) 20090, 10090, 20090 05160255 ! 520: 30090 IVDELE = IVDELE + 1 05170255 ! 521: WRITE (I02,80000) IVTNUM 05180255 ! 522: IF (ICZERO) 10090, 0101, 20090 05190255 ! 523: 10090 IVPASS = IVPASS + 1 05200255 ! 524: WRITE (I02,80002) IVTNUM 05210255 ! 525: GO TO 0101 05220255 ! 526: 20090 IVFAIL = IVFAIL + 1 05230255 ! 527: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05240255 ! 528: 0101 CONTINUE 05250255 ! 529: C 05260255 ! 530: C **** FCVS PROGRAM 255 - TEST 010 **** 05270255 ! 531: C 05280255 ! 532: C TEST 010 SHOULD EXECUTE IF-BLOCKS 1 AND 2. IT SHOULD ALSO 05290255 ! 533: C EXECUTE ELSE IF-BLOCK 2, PLUS MORE IF-BLOCKS 2 AND 1. 05300255 ! 534: C 05310255 ! 535: C 05320255 ! 536: IVTNUM = 10 05330255 ! 537: IF (ICZERO) 30100, 0100, 30100 05340255 ! 538: 0100 CONTINUE 05350255 ! 539: IVCOMP = 1 05360255 ! 540: LVON01 = .TRUE. 05370255 ! 541: LVON02 = .TRUE. 05380255 ! 542: LVON03 = .FALSE. 05390255 ! 543: LVON04 = .FALSE. 05400255 ! 544: LVON05 = .TRUE. 05410255 ! 545: LVON06 = .FALSE. 05420255 ! 546: LVON07 = .FALSE. 05430255 ! 547: IF ( LVON01 ) THEN 05440255 ! 548: IVCOMP = IVCOMP * 2 05450255 ! 549: IF ( LVON02 ) THEN 05460255 ! 550: IVCOMP = IVCOMP * 3 05470255 ! 551: IF ( LVON03 ) THEN 05480255 ! 552: IVCOMP = IVCOMP * 5 05490255 ! 553: ELSE IF ( LVON04 ) THEN 05500255 ! 554: IVCOMP = IVCOMP * 7 05510255 ! 555: ELSE IF ( LVON05 ) THEN 05520255 ! 556: IVCOMP = IVCOMP * 11 05530255 ! 557: ELSE 05540255 ! 558: IVCOMP = IVCOMP * 13 05550255 ! 559: END IF 05560255 ! 560: IVCOMP = IVCOMP * 17 05570255 ! 561: ELSE IF ( LVON06 ) THEN 05580255 ! 562: IVCOMP = IVCOMP * 19 05590255 ! 563: ELSE 05600255 ! 564: IVCOMP = IVCOMP * 23 05610255 ! 565: END IF 05620255 ! 566: IVCOMP = IVCOMP * 29 05630255 ! 567: ELSE IF ( LVON07 ) THEN 05640255 ! 568: IVCOMP = IVCOMP * 31 05650255 ! 569: ELSE 05660255 ! 570: ICON01 = 1 05670255 ! 571: IF ( ICON01 ) 0103, 0102, 0103 05680255 ! 572: END IF 05690255 ! 573: GO TO 0103 05700255 ! 574: 0102 IVCOMP = IVCOMP * 37 05710255 ! 575: 0103 CONTINUE 05720255 ! 576: C 05730255 ! 577: C **** IVCOMP IS DETERMINED BY IVCOMP = 32538 = 1 * 2 * 3 * 11 * 05740255 ! 578: C 17 * 29 ****05750255 ! 579: C 05760255 ! 580: IVCORR = 32538 05770255 ! 581: 40100 IF ( IVCOMP - 32538 ) 20100, 10100, 20100 05780255 ! 582: 30100 IVDELE = IVDELE + 1 05790255 ! 583: WRITE (I02,80000) IVTNUM 05800255 ! 584: IF (ICZERO) 10100, 0111, 20100 05810255 ! 585: 10100 IVPASS = IVPASS + 1 05820255 ! 586: WRITE (I02,80002) IVTNUM 05830255 ! 587: GO TO 0111 05840255 ! 588: 20100 IVFAIL = IVFAIL + 1 05850255 ! 589: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05860255 ! 590: 0111 CONTINUE 05870255 ! 591: C 05880255 ! 592: C **** FCVS PROGRAM 255 - TEST 011 **** 05890255 ! 593: C 05900255 ! 594: C TEST 011 SHOULD EXECUTE IF-BLOCKS 1 AND 2. IT SHOULD ALSO 05910255 ! 595: C EXECUTE ELSE IF-BLOCK 1, PLUS MORE IF-BLOCKS 2 AND 1. 05920255 ! 596: C 05930255 ! 597: C 05940255 ! 598: IVTNUM = 11 05950255 ! 599: IF (ICZERO) 30110, 0110, 30110 05960255 ! 600: 0110 CONTINUE 05970255 ! 601: IVCOMP = 1 05980255 ! 602: LVON01 = .TRUE. 05990255 ! 603: LVON02 = .TRUE. 06000255 ! 604: LVON03 = .FALSE. 06010255 ! 605: LVON04 = .TRUE. 06020255 ! 606: LVON05 = .FALSE. 06030255 ! 607: LVON06 = .FALSE. 06040255 ! 608: LVON07 = .FALSE. 06050255 ! 609: IF ( LVON01 ) THEN 06060255 ! 610: IVCOMP = IVCOMP * 2 06070255 ! 611: IF ( LVON02 ) THEN 06080255 ! 612: IVCOMP = IVCOMP * 3 06090255 ! 613: IF ( LVON03 ) THEN 06100255 ! 614: IVCOMP = IVCOMP * 5 06110255 ! 615: ELSE IF ( LVON04 ) THEN 06120255 ! 616: IVCOMP = IVCOMP * 7 06130255 ! 617: ELSE IF ( LVON05 ) THEN 06140255 ! 618: IVCOMP = IVCOMP * 11 06150255 ! 619: ELSE 06160255 ! 620: IVCOMP = IVCOMP * 13 06170255 ! 621: END IF 06180255 ! 622: IVCOMP = IVCOMP * 17 06190255 ! 623: ELSE IF ( LVON06 ) THEN 06200255 ! 624: IVCOMP = IVCOMP * 19 06210255 ! 625: ELSE 06220255 ! 626: IVCOMP = IVCOMP * 23 06230255 ! 627: END IF 06240255 ! 628: IVCOMP = IVCOMP * 29 06250255 ! 629: ELSE IF ( LVON07 ) THEN 06260255 ! 630: IVCOMP = IVCOMP * 31 06270255 ! 631: ELSE 06280255 ! 632: ASSIGN 0112 TO I 06290255 ! 633: GO TO I, ( 0113, 0112) 06300255 ! 634: END IF 06310255 ! 635: GO TO 0113 06320255 ! 636: 0112 IVCOMP = IVCOMP * 37 06330255 ! 637: 0113 CONTINUE 06340255 ! 638: C 06350255 ! 639: C **** IVCOMP IS DETERMINED BY IVCOMP = 20706 = 1 * 2 * 3 * 7 * 06360255 ! 640: C 17 * 29 ****06370255 ! 641: C 06380255 ! 642: IVCORR = 20706 06390255 ! 643: 40110 IF ( IVCOMP - 20706 ) 20110, 10110, 20110 06400255 ! 644: 30110 IVDELE = IVDELE + 1 06410255 ! 645: WRITE (I02,80000) IVTNUM 06420255 ! 646: IF (ICZERO) 10110, 0121, 20110 06430255 ! 647: 10110 IVPASS = IVPASS + 1 06440255 ! 648: WRITE (I02,80002) IVTNUM 06450255 ! 649: GO TO 0121 06460255 ! 650: 20110 IVFAIL = IVFAIL + 1 06470255 ! 651: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06480255 ! 652: 0121 CONTINUE 06490255 ! 653: C 06500255 ! 654: C **** FCVS PROGRAM 255 - TEST 012 **** 06510255 ! 655: C 06520255 ! 656: C TEST 012 SHOULD EXECUTE IF-BLOCK 1, ELSE IF-BLOCK 3, AND MORE 06530255 ! 657: C IF-BLOCK 1. 06540255 ! 658: C 06550255 ! 659: C 06560255 ! 660: IVTNUM = 12 06570255 ! 661: IF (ICZERO) 30120, 0120, 30120 06580255 ! 662: 0120 CONTINUE 06590255 ! 663: IVCOMP = 1 06600255 ! 664: LVON01 = .TRUE. 06610255 ! 665: LVON02 = .FALSE. 06620255 ! 666: LVON03 = .FALSE. 06630255 ! 667: LVON04 = .FALSE. 06640255 ! 668: LVON05 = .FALSE. 06650255 ! 669: LVON06 = .TRUE. 06660255 ! 670: LVON07 = .FALSE. 06670255 ! 671: IF ( LVON01 ) THEN 06680255 ! 672: IVCOMP = IVCOMP * 2 06690255 ! 673: IF ( LVON02 ) THEN 06700255 ! 674: IVCOMP = IVCOMP * 3 06710255 ! 675: IF ( LVON03 ) THEN 06720255 ! 676: IVCOMP = IVCOMP * 5 06730255 ! 677: ELSE IF ( LVON04 ) THEN 06740255 ! 678: IVCOMP = IVCOMP * 7 06750255 ! 679: ELSE IF ( LVON05 ) THEN 06760255 ! 680: IVCOMP = IVCOMP * 11 06770255 ! 681: ELSE 06780255 ! 682: IVCOMP = IVCOMP * 13 06790255 ! 683: END IF 06800255 ! 684: IVCOMP = IVCOMP * 17 06810255 ! 685: ELSE IF ( LVON06 ) THEN 06820255 ! 686: IVCOMP = IVCOMP * 19 06830255 ! 687: ELSE 06840255 ! 688: IVCOMP = IVCOMP * 23 06850255 ! 689: END IF 06860255 ! 690: IVCOMP = IVCOMP * 29 06870255 ! 691: ELSE IF ( LVON07 ) THEN 06880255 ! 692: IVCOMP = IVCOMP * 31 06890255 ! 693: ELSE 06900255 ! 694: I = 2 06910255 ! 695: GO TO ( 0123, 0122 ), I 06920255 ! 696: END IF 06930255 ! 697: GO TO 0123 06940255 ! 698: 0122 IVCOMP = IVCOMP * 37 06950255 ! 699: 0123 CONTINUE 06960255 ! 700: C 06970255 ! 701: C **** IVCOMP IS DETERMINED BY IVCOMP = 1102 = 1 * 2 * 19 * 29 06980255 ! 702: C 06990255 ! 703: IVCORR = 1102 07000255 ! 704: 40120 IF ( IVCOMP - 1102 ) 20120, 10120, 20120 07010255 ! 705: 30120 IVDELE = IVDELE + 1 07020255 ! 706: WRITE (I02,80000) IVTNUM 07030255 ! 707: IF (ICZERO) 10120, 0131, 20120 07040255 ! 708: 10120 IVPASS = IVPASS + 1 07050255 ! 709: WRITE (I02,80002) IVTNUM 07060255 ! 710: GO TO 0131 07070255 ! 711: 20120 IVFAIL = IVFAIL + 1 07080255 ! 712: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07090255 ! 713: 0131 CONTINUE 07100255 ! 714: C 07110255 ! 715: C **** FCVS PROGRAM 255 - TEST 013 **** 07120255 ! 716: C 07130255 ! 717: C TEST 013 SHOULD EXECUTE IF-BLOCK 1, ELSE-BLOCK 2, AND MORE 07140255 ! 718: C IF-BLOCK 1. 07150255 ! 719: C 07160255 ! 720: C 07170255 ! 721: IVTNUM = 13 07180255 ! 722: IF (ICZERO) 30130, 0130, 30130 07190255 ! 723: 0130 CONTINUE 07200255 ! 724: IVCOMP = 1 07210255 ! 725: LVON01 = .TRUE. 07220255 ! 726: LVON02 = .FALSE. 07230255 ! 727: LVON03 = .FALSE. 07240255 ! 728: LVON04 = .FALSE. 07250255 ! 729: LVON05 = .FALSE. 07260255 ! 730: LVON06 = .FALSE. 07270255 ! 731: LVON07 = .FALSE. 07280255 ! 732: IF ( LVON01 ) THEN 07290255 ! 733: IVCOMP = IVCOMP * 2 07300255 ! 734: IF ( LVON02 ) THEN 07310255 ! 735: IVCOMP = IVCOMP * 3 07320255 ! 736: IF ( LVON03 ) THEN 07330255 ! 737: IVCOMP = IVCOMP * 5 07340255 ! 738: ELSE IF ( LVON04 ) THEN 07350255 ! 739: IVCOMP = IVCOMP * 7 07360255 ! 740: ELSE IF ( LVON05 ) THEN 07370255 ! 741: IVCOMP = IVCOMP * 11 07380255 ! 742: ELSE 07390255 ! 743: IVCOMP = IVCOMP * 13 07400255 ! 744: END IF 07410255 ! 745: IVCOMP = IVCOMP * 17 07420255 ! 746: ELSE IF ( LVON06 ) THEN 07430255 ! 747: IVCOMP = IVCOMP * 19 07440255 ! 748: ELSE 07450255 ! 749: IVCOMP = IVCOMP * 23 07460255 ! 750: END IF 07470255 ! 751: IVCOMP = IVCOMP * 29 07480255 ! 752: ELSE IF ( LVON07 ) THEN 07490255 ! 753: IVCOMP = IVCOMP * 31 07500255 ! 754: ELSE 07510255 ! 755: GO TO 0132 07520255 ! 756: END IF 07530255 ! 757: GO TO 0133 07540255 ! 758: 0132 IVCOMP = IVCOMP * 37 07550255 ! 759: 0133 CONTINUE 07560255 ! 760: C 07570255 ! 761: C **** IVCOMP IS DETERMINED BY IVCOMP = 1334 = 1 * 2 * 23 * 29 07580255 ! 762: C 07590255 ! 763: IVCORR = 1334 07600255 ! 764: 40130 IF ( IVCOMP - 1334 ) 20130, 10130, 20130 07610255 ! 765: 30130 IVDELE = IVDELE + 1 07620255 ! 766: WRITE (I02,80000) IVTNUM 07630255 ! 767: IF (ICZERO) 10130, 0141, 20130 07640255 ! 768: 10130 IVPASS = IVPASS + 1 07650255 ! 769: WRITE (I02,80002) IVTNUM 07660255 ! 770: GO TO 0141 07670255 ! 771: 20130 IVFAIL = IVFAIL + 1 07680255 ! 772: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07690255 ! 773: 0141 CONTINUE 07700255 ! 774: C 07710255 ! 775: C **** FCVS PROGRAM 255 - TEST 014 **** 07720255 ! 776: C 07730255 ! 777: C TEST 014 SHOULD ONLY EXECUTE ELSE IF-BLOCK 4. 07740255 ! 778: C 07750255 ! 779: C 07760255 ! 780: IVTNUM = 14 07770255 ! 781: IF (ICZERO) 30140, 0140, 30140 07780255 ! 782: 0140 CONTINUE 07790255 ! 783: IVCOMP = 1 07800255 ! 784: LVON01 = .FALSE. 07810255 ! 785: LVON02 = .FALSE. 07820255 ! 786: LVON03 = .FALSE. 07830255 ! 787: LVON04 = .FALSE. 07840255 ! 788: LVON05 = .FALSE. 07850255 ! 789: LVON06 = .FALSE. 07860255 ! 790: LVON07 = .TRUE. 07870255 ! 791: IF ( LVON01 ) THEN 07880255 ! 792: IVCOMP = IVCOMP * 2 07890255 ! 793: IF ( LVON02 ) THEN 07900255 ! 794: IVCOMP = IVCOMP * 3 07910255 ! 795: IF ( LVON03 ) THEN 07920255 ! 796: IVCOMP = IVCOMP * 5 07930255 ! 797: ELSE IF ( LVON04 ) THEN 07940255 ! 798: IVCOMP = IVCOMP * 7 07950255 ! 799: ELSE IF ( LVON05 ) THEN 07960255 ! 800: IVCOMP = IVCOMP * 11 07970255 ! 801: ELSE 07980255 ! 802: IVCOMP = IVCOMP * 13 07990255 ! 803: END IF 08000255 ! 804: IVCOMP = IVCOMP * 17 08010255 ! 805: ELSE IF ( LVON06 ) THEN 08020255 ! 806: IVCOMP = IVCOMP * 19 08030255 ! 807: ELSE 08040255 ! 808: IVCOMP = IVCOMP * 23 08050255 ! 809: END IF 08060255 ! 810: IVCOMP = IVCOMP * 29 08070255 ! 811: ELSE IF ( LVON07 ) THEN 08080255 ! 812: IVCOMP = IVCOMP * 31 08090255 ! 813: ELSE 08100255 ! 814: IF ( .NOT. .FALSE. ) GO TO 0142 08110255 ! 815: END IF 08120255 ! 816: GO TO 0143 08130255 ! 817: 0142 IVCOMP = IVCOMP * 37 08140255 ! 818: 0143 CONTINUE 08150255 ! 819: C 08160255 ! 820: C **** IVCOMP IS DETERMINED BY IVCOMP = 31 = 1 * 31 ****08170255 ! 821: C 08180255 ! 822: IVCORR = 31 08190255 ! 823: 40140 IF ( IVCOMP - 31 ) 20140, 10140, 20140 08200255 ! 824: 30140 IVDELE = IVDELE + 1 08210255 ! 825: WRITE (I02,80000) IVTNUM 08220255 ! 826: IF (ICZERO) 10140, 0151, 20140 08230255 ! 827: 10140 IVPASS = IVPASS + 1 08240255 ! 828: WRITE (I02,80002) IVTNUM 08250255 ! 829: GO TO 0151 08260255 ! 830: 20140 IVFAIL = IVFAIL + 1 08270255 ! 831: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08280255 ! 832: 0151 CONTINUE 08290255 ! 833: C 08300255 ! 834: C **** FCVS PROGRAM 255 - TEST 015 **** 08310255 ! 835: C 08320255 ! 836: C TEST 015 SHOULD ONLY EXECUTE THE LOGIC IN ELSE-BLOCK 3. THIS 08330255 ! 837: C LOGIC CONSISTS OF AN ARITHMETIC IF STATEMENT WHICH SHOULD TAKE 08340255 ! 838: C THE EXPRESSION EQUAL TO ZERO BRANCH TO STATEMENT 0152. 08350255 ! 839: C 08360255 ! 840: C 08370255 ! 841: IVTNUM = 15 08380255 ! 842: IF (ICZERO) 30150, 0150, 30150 08390255 ! 843: 0150 CONTINUE 08400255 ! 844: IVCOMP = 1 08410255 ! 845: LVON01 = .FALSE. 08420255 ! 846: LVON02 = .FALSE. 08430255 ! 847: LVON03 = .FALSE. 08440255 ! 848: LVON04 = .FALSE. 08450255 ! 849: LVON05 = .FALSE. 08460255 ! 850: LVON06 = .FALSE. 08470255 ! 851: LVON07 = .FALSE. 08480255 ! 852: IF ( LVON01 ) THEN 08490255 ! 853: IVCOMP = IVCOMP * 2 08500255 ! 854: IF ( LVON02 ) THEN 08510255 ! 855: IVCOMP = IVCOMP * 3 08520255 ! 856: IF ( LVON03 ) THEN 08530255 ! 857: IVCOMP = IVCOMP * 5 08540255 ! 858: ELSE IF ( LVON04 ) THEN 08550255 ! 859: IVCOMP = IVCOMP * 7 08560255 ! 860: ELSE IF ( LVON05 ) THEN 08570255 ! 861: IVCOMP = IVCOMP * 11 08580255 ! 862: ELSE 08590255 ! 863: IVCOMP = IVCOMP * 13 08600255 ! 864: END IF 08610255 ! 865: IVCOMP = IVCOMP * 17 08620255 ! 866: ELSE IF ( LVON06 ) THEN 08630255 ! 867: IVCOMP = IVCOMP * 19 08640255 ! 868: ELSE 08650255 ! 869: IVCOMP = IVCOMP * 23 08660255 ! 870: END IF 08670255 ! 871: IVCOMP = IVCOMP * 29 08680255 ! 872: ELSE IF ( LVON07 ) THEN 08690255 ! 873: IVCOMP = IVCOMP * 31 08700255 ! 874: ELSE 08710255 ! 875: ICON01 = 1 08720255 ! 876: IF ( ICON01 - 1 ) 0153, 0152, 0153 08730255 ! 877: END IF 08740255 ! 878: GO TO 0153 08750255 ! 879: 0152 IVCOMP = IVCOMP * 37 08760255 ! 880: 0153 CONTINUE 08770255 ! 881: C 08780255 ! 882: C **** IVCOMP IS DETERMINED BY IVCOMP = 37 = 1 * 37 ****08790255 ! 883: C 08800255 ! 884: IVCORR = 37 08810255 ! 885: 40150 IF ( IVCOMP - 37 ) 20150, 10150, 20150 08820255 ! 886: 30150 IVDELE = IVDELE + 1 08830255 ! 887: WRITE (I02,80000) IVTNUM 08840255 ! 888: IF (ICZERO) 10150, 0161, 20150 08850255 ! 889: 10150 IVPASS = IVPASS + 1 08860255 ! 890: WRITE (I02,80002) IVTNUM 08870255 ! 891: GO TO 0161 08880255 ! 892: 20150 IVFAIL = IVFAIL + 1 08890255 ! 893: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08900255 ! 894: 0161 CONTINUE 08910255 ! 895: C 08920255 ! 896: C **** FCVS PROGRAM 255 - TEST 016 **** 08930255 ! 897: C 08940255 ! 898: C TEST 016 IS A TEST OF THE END IF STATEMENT. SECTION 11.9 08950255 ! 899: C PERMITS TRANSFER OF CONTROL FROM ANYWHERE TO AN END IF STATEMENT. 08960255 ! 900: C ALSO ACCORDING TO SECTION 11.9 - EXECUTION OF AN END IF STATEMENT 08970255 ! 901: C HAS NO EFFECT. 08980255 ! 902: C 08990255 ! 903: C 09000255 ! 904: IVTNUM = 16 09010255 ! 905: IF (ICZERO) 30160, 0160, 30160 09020255 ! 906: 0160 CONTINUE 09030255 ! 907: IVCOMP = 1 09040255 ! 908: LVON01 = .TRUE. 09050255 ! 909: IF ( ICZERO ) 0163, 0162, 0163 09060255 ! 910: 0162 GO TO 0164 09070255 ! 911: 0163 IF ( LVON01 ) THEN 09080255 ! 912: IVCOMP = IVCOMP * 2 09090255 ! 913: ELSE 09100255 ! 914: IVCOMP = IVCOMP * 3 09110255 ! 915: 0164 END IF 09120255 ! 916: C 09130255 ! 917: C **** IVCOMP SHOULD REMAIN SET TO ONE (1). ****09140255 ! 918: C 09150255 ! 919: IVCORR = 1 09160255 ! 920: 40160 IF ( IVCOMP - 1 ) 20160, 10160, 20160 09170255 ! 921: 30160 IVDELE = IVDELE + 1 09180255 ! 922: WRITE (I02,80000) IVTNUM 09190255 ! 923: IF (ICZERO) 10160, 0171, 20160 09200255 ! 924: 10160 IVPASS = IVPASS + 1 09210255 ! 925: WRITE (I02,80002) IVTNUM 09220255 ! 926: GO TO 0171 09230255 ! 927: 20160 IVFAIL = IVFAIL + 1 09240255 ! 928: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 09250255 ! 929: 0171 CONTINUE 09260255 ! 930: C 09270255 ! 931: C 09280255 ! 932: C WRITE OUT TEST SUMMARY 09290255 ! 933: C 09300255 ! 934: WRITE (I02,90004) 09310255 ! 935: WRITE (I02,90014) 09320255 ! 936: WRITE (I02,90004) 09330255 ! 937: WRITE (I02,90000) 09340255 ! 938: WRITE (I02,90004) 09350255 ! 939: WRITE (I02,90020) IVFAIL 09360255 ! 940: WRITE (I02,90022) IVPASS 09370255 ! 941: WRITE (I02,90024) IVDELE 09380255 ! 942: STOP 09390255 ! 943: 90001 FORMAT (1H ,24X,5HFM255) 09400255 ! 944: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM255) 09410255 ! 945: C 09420255 ! 946: C FORMATS FOR TEST DETAIL LINES 09430255 ! 947: C 09440255 ! 948: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 09450255 ! 949: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 09460255 ! 950: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 09470255 ! 951: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 09480255 ! 952: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 09490255 ! 953: C 09500255 ! 954: C FORMAT STATEMENTS FOR PAGE HEADERS 09510255 ! 955: C 09520255 ! 956: 90002 FORMAT (1H1) 09530255 ! 957: 90004 FORMAT (1H ) 09540255 ! 958: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 09550255 ! 959: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 09560255 ! 960: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 09570255 ! 961: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 09580255 ! 962: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 09590255 ! 963: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 09600255 ! 964: C 09610255 ! 965: C FORMAT STATEMENTS FOR RUN SUMMARY 09620255 ! 966: C 09630255 ! 967: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 09640255 ! 968: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 09650255 ! 969: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 09660255 ! 970: END 09670255
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.