|
|
1.1 ! root 1: PROGRAM FM256 00010256 ! 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 00020256 ! 6: C 00030256 ! 7: C 00040256 ! 8: C THIS ROUTINE IS A TEST OF THE DO STATEMENT. THE DO IS TESTED 00050256 ! 9: C BOTH OUTSIDE AND INSIDE THE BLOCK-IF STRUCTURE. TESTS ARE MADE OF00060256 ! 10: C THE DO-VARIABLE WHEN THE DO BECOMES INACTIVE. OTHER TESTS CHECK 00070256 ! 11: C LOOP AND INCREMENTATION PROCESSING. THE DO-LOOP EXECUTION 00080256 ! 12: C IS TESTED FOR THOSE CONDITIONS WHICH MAKE THE DO-LOOP INACTIVE. 00090256 ! 13: C 00100256 ! 14: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00110256 ! 15: C X3.9-1978 00120256 ! 16: C SECTION 11.10, DO STATEMENT 00130256 ! 17: C SECTION 11.10.1, RANGE OF A DO-LOOP 00140256 ! 18: C SECTION 11.10.2, ACTIVE AND INACTIVE DO-LOOPS 00150256 ! 19: C SECTION 11.10.3, EXECUTING A DO STATEMENT 00160256 ! 20: C SECTION 11.10.4, LOOP CONTROL PROCESSING 00170256 ! 21: C SECTION 11.10.5, EXECUTION OF THE RANGE 00180256 ! 22: C SECTION 11.10.6, TERMINAL STATEMENT EXECUTION 00190256 ! 23: C SECTION 11.10.7, INCREMENTATION PROCESSING 00200256 ! 24: C 00210256 ! 25: C FM012 - TESTS THE DO STATEMENT WITH THE FORTRAN 66 CONCEPTS OF 00220256 ! 26: C EXTENDED RANGE OF A DO STATEMENT. 00230256 ! 27: C 00240256 ! 28: C 00250256 ! 29: C 00260256 ! 30: C ******************************************************************00270256 ! 31: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00280256 ! 32: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00290256 ! 33: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00300256 ! 34: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00310256 ! 35: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00320256 ! 36: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00330256 ! 37: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00340256 ! 38: C THE RESULT OF EXECUTING THESE TESTS. 00350256 ! 39: C 00360256 ! 40: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00370256 ! 41: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00380256 ! 42: C 00390256 ! 43: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00400256 ! 44: C DEPARTMENT OF THE NAVY 00410256 ! 45: C FEDERAL COBOL COMPILER TESTING SERVICE 00420256 ! 46: C WASHINGTON, D.C. 20376 00430256 ! 47: C 00440256 ! 48: C ******************************************************************00450256 ! 49: C 00460256 ! 50: C 00470256 ! 51: IMPLICIT LOGICAL (L) 00480256 ! 52: IMPLICIT CHARACTER*14 (C) 00490256 ! 53: C 00500256 ! 54: C 00510256 ! 55: C 00520256 ! 56: C INITIALIZATION SECTION. 00530256 ! 57: C 00540256 ! 58: C INITIALIZE CONSTANTS 00550256 ! 59: C ******************** 00560256 ! 60: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00570256 ! 61: I01 = 5 00580256 ! 62: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00590256 ! 63: I02 = 6 00600256 ! 64: C SYSTEM ENVIRONMENT SECTION 00610256 ! 65: C 00620256 ! 66: I01 = 5 00630256 ! 67: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00640256 ! 68: C (UNIT NUMBER FOR CARD READER). 00650256 ! 69: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00660256 ! 70: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00670256 ! 71: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00680256 ! 72: C 00690256 ! 73: I02 = 6 00700256 ! 74: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00710256 ! 75: C (UNIT NUMBER FOR PRINTER). 00720256 ! 76: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00730256 ! 77: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00740256 ! 78: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00750256 ! 79: C 00760256 ! 80: IVPASS = 0 00770256 ! 81: IVFAIL = 0 00780256 ! 82: IVDELE = 0 00790256 ! 83: ICZERO = 0 00800256 ! 84: C 00810256 ! 85: C WRITE OUT PAGE HEADERS 00820256 ! 86: C 00830256 ! 87: WRITE (I02,90002) 00840256 ! 88: WRITE (I02,90006) 00850256 ! 89: WRITE (I02,90008) 00860256 ! 90: WRITE (I02,90004) 00870256 ! 91: WRITE (I02,90010) 00880256 ! 92: WRITE (I02,90004) 00890256 ! 93: WRITE (I02,90016) 00900256 ! 94: WRITE (I02,90001) 00910256 ! 95: WRITE (I02,90004) 00920256 ! 96: WRITE (I02,90012) 00930256 ! 97: WRITE (I02,90014) 00940256 ! 98: WRITE (I02,90004) 00950256 ! 99: C 00960256 ! 100: C 00970256 ! 101: C **** FCVS PROGRAM 256 - TEST 001 **** 00980256 ! 102: C 00990256 ! 103: C TEST 001 CHECKS THE SIMPLE DO STATEMENT WITH THE OPTIONAL 01000256 ! 104: C COMMAS AND ALL DO PARAMETERS SPECIFIED. THE LOOP IS ACTIVE FOR 01010256 ! 105: C TEN COUNTS. THE FINAL VALUE OF THE INTEGER COUNTER SHOULD BE 01020256 ! 106: C EQUAL TO TEN (10). THE FORM OF THE DO STATEMENT USED IN THIS TEST01030256 ! 107: C IS SHOWN BELOW - 01040256 ! 108: C 01050256 ! 109: C DO S, I = E1, E2, E3 01060256 ! 110: C 01070256 ! 111: C 01080256 ! 112: IVTNUM = 1 01090256 ! 113: IF (ICZERO) 30010, 0010, 30010 01100256 ! 114: 0010 CONTINUE 01110256 ! 115: IVCOMP = 0 01120256 ! 116: DO 0012, IVON01 = 1, 10, 1 01130256 ! 117: IVCOMP = IVCOMP + 1 01140256 ! 118: 0012 CONTINUE 01150256 ! 119: IVCORR = 10 01160256 ! 120: 40010 IF ( IVCOMP - 10 ) 20010, 10010, 20010 01170256 ! 121: 30010 IVDELE = IVDELE + 1 01180256 ! 122: WRITE (I02,80000) IVTNUM 01190256 ! 123: IF (ICZERO) 10010, 0021, 20010 01200256 ! 124: 10010 IVPASS = IVPASS + 1 01210256 ! 125: WRITE (I02,80002) IVTNUM 01220256 ! 126: GO TO 0021 01230256 ! 127: 20010 IVFAIL = IVFAIL + 1 01240256 ! 128: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01250256 ! 129: 0021 CONTINUE 01260256 ! 130: C 01270256 ! 131: C **** FCVS PROGRAM 256 - TEST 002 **** 01280256 ! 132: C 01290256 ! 133: C TEST 002 IS SIMILAR TO THE PREVIOUS TEST EXCEPT THAT THE COMMAS01300256 ! 134: C THAT ARE OPTIONAL HAVE BEEN DELETED AS A SYNTAX CHECK. 01310256 ! 135: C 01320256 ! 136: C THE INCREMENTATION PARAMETER IS OPTIONAL AND NOT PRESENT IN 01330256 ! 137: C THIS TEST. ACCORDING TO SECTION 11.10.3, IF E3 DOES NOT APPEAR01340256 ! 138: C THEN M3 HAS A VALUE OF ONE. THE DO STATEMENT FOR THIS TEST IS OF 01350256 ! 139: C THE FORM SHOWN BELOW - 01360256 ! 140: C 01370256 ! 141: C DO S I = E1, E2 01380256 ! 142: C 01390256 ! 143: C 01400256 ! 144: IVTNUM = 2 01410256 ! 145: IF (ICZERO) 30020, 0020, 30020 01420256 ! 146: 0020 CONTINUE 01430256 ! 147: IVCOMP = 0 01440256 ! 148: DO 0022 IVON01 = 1, 10 01450256 ! 149: IVCOMP = IVCOMP + 1 01460256 ! 150: 0022 CONTINUE 01470256 ! 151: IVCORR = 10 01480256 ! 152: 40020 IF ( IVCOMP - 10 ) 20020, 10020, 20020 01490256 ! 153: 30020 IVDELE = IVDELE + 1 01500256 ! 154: WRITE (I02,80000) IVTNUM 01510256 ! 155: IF (ICZERO) 10020, 0031, 20020 01520256 ! 156: 10020 IVPASS = IVPASS + 1 01530256 ! 157: WRITE (I02,80002) IVTNUM 01540256 ! 158: GO TO 0031 01550256 ! 159: 20020 IVFAIL = IVFAIL + 1 01560256 ! 160: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01570256 ! 161: 0031 CONTINUE 01580256 ! 162: C 01590256 ! 163: C **** FCVS PROGRAM 256 - TEST 003 **** 01600256 ! 164: C 01610256 ! 165: C TEST 003 HAS A DO STATEMENT INSIDE A BLOCKED IF STRUCTURE. 01620256 ! 166: C THE LOGICAL EXPRESSION IS TRUE SO THE DO-LOOP SHOULD BE EXECUTED 01630256 ! 167: C A TOTAL OF TEN TIMES. 01640256 ! 168: C 01650256 ! 169: C 01660256 ! 170: IVTNUM = 3 01670256 ! 171: IF (ICZERO) 30030, 0030, 30030 01680256 ! 172: 0030 CONTINUE 01690256 ! 173: IVCOMP = 0 01700256 ! 174: LVON01 = .TRUE. 01710256 ! 175: IF ( LVON01 ) THEN 01720256 ! 176: DO 0032, IVON01 = 1, 10, 1 01730256 ! 177: IVCOMP = IVCOMP + 1 01740256 ! 178: 0032 CONTINUE 01750256 ! 179: END IF 01760256 ! 180: IVCORR = 10 01770256 ! 181: 40030 IF ( IVCOMP - 10 ) 20030, 10030, 20030 01780256 ! 182: 30030 IVDELE = IVDELE + 1 01790256 ! 183: WRITE (I02,80000) IVTNUM 01800256 ! 184: IF (ICZERO) 10030, 0041, 20030 01810256 ! 185: 10030 IVPASS = IVPASS + 1 01820256 ! 186: WRITE (I02,80002) IVTNUM 01830256 ! 187: GO TO 0041 01840256 ! 188: 20030 IVFAIL = IVFAIL + 1 01850256 ! 189: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01860256 ! 190: 0041 CONTINUE 01870256 ! 191: C 01880256 ! 192: C **** FCVS PROGRAM 256 - TEST 004 **** 01890256 ! 193: C 01900256 ! 194: C TEST 004 IS SIMILAR TO THE PREVIOUS TEST EXCEPT THAT THE DO 01910256 ! 195: C STATEMENT IS LOCATED IN AN ELSE IF-BLOCK. THE DO-LOOP SHOULD BE 01920256 ! 196: C EXECUTED FIVE (5) TIMES. 01930256 ! 197: C 01940256 ! 198: C 01950256 ! 199: IVTNUM = 4 01960256 ! 200: IF (ICZERO) 30040, 0040, 30040 01970256 ! 201: 0040 CONTINUE 01980256 ! 202: IVCOMP = 0 01990256 ! 203: LVON01 = .FALSE. 02000256 ! 204: LVON02 = .TRUE. 02010256 ! 205: IF ( LVON01 ) THEN 02020256 ! 206: IVCOMP = 32000 02030256 ! 207: ELSE IF ( LVON02 ) THEN 02040256 ! 208: DO 0042 IVON01 = 1, 5 02050256 ! 209: IVCOMP = IVCOMP + 1 02060256 ! 210: 0042 CONTINUE 02070256 ! 211: END IF 02080256 ! 212: IVCORR = 5 02090256 ! 213: 40040 IF ( IVCOMP - 5 ) 20040, 10040, 20040 02100256 ! 214: 30040 IVDELE = IVDELE + 1 02110256 ! 215: WRITE (I02,80000) IVTNUM 02120256 ! 216: IF (ICZERO) 10040, 0051, 20040 02130256 ! 217: 10040 IVPASS = IVPASS + 1 02140256 ! 218: WRITE (I02,80002) IVTNUM 02150256 ! 219: GO TO 0051 02160256 ! 220: 20040 IVFAIL = IVFAIL + 1 02170256 ! 221: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02180256 ! 222: 0051 CONTINUE 02190256 ! 223: C 02200256 ! 224: C **** FCVS PROGRAM 256 - TEST 005 **** 02210256 ! 225: C 02220256 ! 226: C TEST 005 IS SIMILAR TO THE PREVIOUS TWO TESTS EXCEPT THAT THE 02230256 ! 227: C DO STATEMENT IS CONTAINED IN AN ELSE-BLOCK. THE DO-LOOP SHOULD BE02240256 ! 228: C EXECUTED A TOTAL OF 3 TIMES. 02250256 ! 229: C 02260256 ! 230: C 02270256 ! 231: IVTNUM = 5 02280256 ! 232: IF (ICZERO) 30050, 0050, 30050 02290256 ! 233: 0050 CONTINUE 02300256 ! 234: IVCOMP = 0 02310256 ! 235: LVON01 = .FALSE. 02320256 ! 236: LVON02 = .FALSE. 02330256 ! 237: IF ( LVON01 ) THEN 02340256 ! 238: IVCOMP = 100 02350256 ! 239: ELSE IF ( LVON02 ) THEN 02360256 ! 240: IVCOMP = 1000 02370256 ! 241: ELSE 02380256 ! 242: DO 0052, IVON01 = 1, 3 02390256 ! 243: IVCOMP = IVCOMP + 1 02400256 ! 244: 0052 CONTINUE 02410256 ! 245: END IF 02420256 ! 246: IVCORR = 3 02430256 ! 247: 40050 IF ( IVCOMP - 3 ) 20050, 10050, 20050 02440256 ! 248: 30050 IVDELE = IVDELE + 1 02450256 ! 249: WRITE (I02,80000) IVTNUM 02460256 ! 250: IF (ICZERO) 10050, 0061, 20050 02470256 ! 251: 10050 IVPASS = IVPASS + 1 02480256 ! 252: WRITE (I02,80002) IVTNUM 02490256 ! 253: GO TO 0061 02500256 ! 254: 20050 IVFAIL = IVFAIL + 1 02510256 ! 255: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02520256 ! 256: 0061 CONTINUE 02530256 ! 257: C 02540256 ! 258: C **** FCVS PROGRAM 256 - TEST 006 **** 02550256 ! 259: C 02560256 ! 260: C TEST 006 HAS A BLOCKED IF STRUCTURE INSIDE A DO-LOOP. 02570256 ! 261: C THE LOOP IS EXECUTED THREE (3) TIMES. ALL THREE PARTS OF THE 02580256 ! 262: C BLOCK-IF STRUCTURE SHOULD BE EXECUTED. 02590256 ! 263: C 02600256 ! 264: C 02610256 ! 265: IVTNUM = 6 02620256 ! 266: IF (ICZERO) 30060, 0060, 30060 02630256 ! 267: 0060 CONTINUE 02640256 ! 268: IVCOMP = 1 02650256 ! 269: DO 0062, IVON01 = 3, 5, 1 02660256 ! 270: IF ( IVON01 .LE. 3 ) THEN 02670256 ! 271: IVCOMP = IVCOMP * 2 02680256 ! 272: ELSE IF ( IVON01 .GT. 3 .AND. IVON01 .LT. 5 ) THEN 02690256 ! 273: IVCOMP = IVCOMP * 3 02700256 ! 274: ELSE 02710256 ! 275: IVCOMP = IVCOMP * 5 02720256 ! 276: END IF 02730256 ! 277: 0062 CONTINUE 02740256 ! 278: C 02750256 ! 279: C **** IVCOMP IS DETERMINED BY IVCOMP = 30 = 1 * 2 * 3 * 5 ****02760256 ! 280: C 02770256 ! 281: IVCORR = 30 02780256 ! 282: 40060 IF ( IVCOMP - 30 ) 20060, 10060, 20060 02790256 ! 283: 30060 IVDELE = IVDELE + 1 02800256 ! 284: WRITE (I02,80000) IVTNUM 02810256 ! 285: IF (ICZERO) 10060, 0071, 20060 02820256 ! 286: 10060 IVPASS = IVPASS + 1 02830256 ! 287: WRITE (I02,80002) IVTNUM 02840256 ! 288: GO TO 0071 02850256 ! 289: 20060 IVFAIL = IVFAIL + 1 02860256 ! 290: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02870256 ! 291: 0071 CONTINUE 02880256 ! 292: C 02890256 ! 293: C 02900256 ! 294: C THE FOLLOWING SERIES OF TESTS CHECK THE DO-VARIABLE WHEN THE 02910256 ! 295: C DO-LOOP BECOMES INACTIVE. ACCORDING TO SECTION 11.10.2, WHEN A 02920256 ! 296: C DO-LOOP BECOMES INACTIVE, THE DO-VARIABLE OF THE DO-LOOP RETAINS 02930256 ! 297: C ITS LAST DEFINED VALUE. 02940256 ! 298: C 02950256 ! 299: C 02960256 ! 300: C 02970256 ! 301: C **** FCVS PROGRAM 256 - TEST 007 **** 02980256 ! 302: C 02990256 ! 303: C TEST 007 CHECKS THAT THE DO-VARIABLE CONTAINS ITS LAST DEFINED 03000256 ! 304: C VALUE WHEN THE ITERATION COUNT IS ZERO. 03010256 ! 305: C 03020256 ! 306: C 03030256 ! 307: IVTNUM = 7 03040256 ! 308: IF (ICZERO) 30070, 0070, 30070 03050256 ! 309: 0070 CONTINUE 03060256 ! 310: IVCOMP = 0 03070256 ! 311: IVON02 = 0 03080256 ! 312: DO 0072 IVON01 = 100, 105, 2 03090256 ! 313: IVON02 = IVON02 + 1 03100256 ! 314: 0072 CONTINUE 03110256 ! 315: IVCOMP = IVON01 03120256 ! 316: IVCORR = 106 03130256 ! 317: 40070 IF ( IVCOMP - 106 ) 20070, 10070, 20070 03140256 ! 318: 30070 IVDELE = IVDELE + 1 03150256 ! 319: WRITE (I02,80000) IVTNUM 03160256 ! 320: IF (ICZERO) 10070, 0081, 20070 03170256 ! 321: 10070 IVPASS = IVPASS + 1 03180256 ! 322: WRITE (I02,80002) IVTNUM 03190256 ! 323: GO TO 0081 03200256 ! 324: 20070 IVFAIL = IVFAIL + 1 03210256 ! 325: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03220256 ! 326: 0081 CONTINUE 03230256 ! 327: C 03240256 ! 328: C **** FCVS PROGRAM 256 - TEST 008 **** 03250256 ! 329: C 03260256 ! 330: C TEST 008 CHECKS THAT THE LOOP COUNTER IN THE PREVIOUS TEST HAD 03270256 ! 331: C A VALUE OF THREE TO SHOW THAT THE DO-LOOP WAS EXECUTED THREE TIMES03280256 ! 332: C BEFORE TERMINATING ( BECOMMING INACTIVE ). 03290256 ! 333: C 03300256 ! 334: C 03310256 ! 335: IVTNUM = 8 03320256 ! 336: IF (ICZERO) 30080, 0080, 30080 03330256 ! 337: 0080 CONTINUE 03340256 ! 338: IVCOMP = 0 03350256 ! 339: IVCOMP = IVON02 03360256 ! 340: IVCORR = 3 03370256 ! 341: 40080 IF ( IVCOMP - 3 ) 20080, 10080, 20080 03380256 ! 342: 30080 IVDELE = IVDELE + 1 03390256 ! 343: WRITE (I02,80000) IVTNUM 03400256 ! 344: IF (ICZERO) 10080, 0091, 20080 03410256 ! 345: 10080 IVPASS = IVPASS + 1 03420256 ! 346: WRITE (I02,80002) IVTNUM 03430256 ! 347: GO TO 0091 03440256 ! 348: 20080 IVFAIL = IVFAIL + 1 03450256 ! 349: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03460256 ! 350: 0091 CONTINUE 03470256 ! 351: C 03480256 ! 352: C **** FCVS PROGRAM 256 - TEST 009 **** 03490256 ! 353: C 03500256 ! 354: C TEST 009 CHECKS THAT A DO-LOOP BECOMES INACTIVE IF THERE IS A 03510256 ! 355: C TRANSFER OF CONTROL OUTSIDE THE RANGE OF THE DO-LOOP. THE TRANS- 03520256 ! 356: C FER MUST BE INSIDE OF THE SAME PROGRAM UNIT - NOT A CALL OR 03530256 ! 357: C FUNCTION REFERENCE TO A SUBPROGRAM. 03540256 ! 358: C 03550256 ! 359: C THIS IS A SIGNIFICANT DIFFERENCE BETWEEN FORTRAN 66 AND FORTRAN03560256 ! 360: C 77. FORTRAN 66 HAD AN EXTENDED RANGE OF THE DO FEATURE WHICH 03570256 ! 361: C ALLOWED FOR A TRANSFER OUTSIDE THE RANGE OF A DO-LOOP WITHOUT 03580256 ! 362: C MAKING THE DO-LOOP INACTIVE. 03590256 ! 363: C 03600256 ! 364: C 03610256 ! 365: IVTNUM = 9 03620256 ! 366: IF (ICZERO) 30090, 0090, 30090 03630256 ! 367: 0090 CONTINUE 03640256 ! 368: IVCOMP = 0 03650256 ! 369: DO 0092 IVON01 = 1, 7 03660256 ! 370: IF ( IVON01 .GE. 3 ) GO TO 0093 03670256 ! 371: 0092 CONTINUE 03680256 ! 372: 0093 IVCOMP = IVON01 03690256 ! 373: IVCORR = 3 03700256 ! 374: 40090 IF ( IVCOMP - 3 ) 20090, 10090, 20090 03710256 ! 375: 30090 IVDELE = IVDELE + 1 03720256 ! 376: WRITE (I02,80000) IVTNUM 03730256 ! 377: IF (ICZERO) 10090, 0101, 20090 03740256 ! 378: 10090 IVPASS = IVPASS + 1 03750256 ! 379: WRITE (I02,80002) IVTNUM 03760256 ! 380: GO TO 0101 03770256 ! 381: 20090 IVFAIL = IVFAIL + 1 03780256 ! 382: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03790256 ! 383: 0101 CONTINUE 03800256 ! 384: C 03810256 ! 385: C **** FCVS PROGRAM 256 - TEST 010 **** 03820256 ! 386: C 03830256 ! 387: C TEST 010 CHECKS FOR AN INITIAL COUNT EQUAL TO ZERO BECAUSE 03840256 ! 388: C M1 IS GREATER THAN M2 AND M3 IS GREATER THAN ZERO - SEE SECTION 03850256 ! 389: C 11.10.3 FOR CONDITIONS WHICH MAKE THE ITERATION COUNT ZERO. 03860256 ! 390: C THE LOOP SHOULD NOT BE EXECUTED AT ALL. 03870256 ! 391: C 03880256 ! 392: C 03890256 ! 393: IVTNUM = 10 03900256 ! 394: IF (ICZERO) 30100, 0100, 30100 03910256 ! 395: 0100 CONTINUE 03920256 ! 396: IVCOMP = 0 03930256 ! 397: DO 0102, IVON01 = 100, 10, 3 03940256 ! 398: IVCOMP = IVCOMP + 1 03950256 ! 399: 0102 CONTINUE 03960256 ! 400: IVCORR = 0 03970256 ! 401: 40100 IF ( IVCOMP ) 20100, 10100, 20100 03980256 ! 402: 30100 IVDELE = IVDELE + 1 03990256 ! 403: WRITE (I02,80000) IVTNUM 04000256 ! 404: IF (ICZERO) 10100, 0111, 20100 04010256 ! 405: 10100 IVPASS = IVPASS + 1 04020256 ! 406: WRITE (I02,80002) IVTNUM 04030256 ! 407: GO TO 0111 04040256 ! 408: 20100 IVFAIL = IVFAIL + 1 04050256 ! 409: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04060256 ! 410: 0111 CONTINUE 04070256 ! 411: C 04080256 ! 412: C **** FCVS PROGRAM 256 - TEST 011 **** 04090256 ! 413: C 04100256 ! 414: C TEST 011 CHECKS FOR THE PROPER EXECUTION OF THE STEPS AS SHOWN 04110256 ! 415: C IN SECTION 11.10.3 - EXECUTING A DO STATEMENT. THE VARIABLE IVON004120256 ! 416: C SHOULD HAVE BEEN SET TO 100. THE ITERATION COUNT IS ZERO BY THE 04130256 ! 417: C FORMULA IN 11.10.3(3). AS DESCRIBED IN SECTION 11.10.4 - THE 04140256 ! 418: C ITERATION COUNT IS TESTED. IF IT IS NOT ZERO, EXECUTION OF THE 04150256 ! 419: C FIRST STATEMENT IN THE RANGE OF THE DO-LOOP BEGINS. IF THE 04160256 ! 420: C ITERATION COUNT IS ZERO, THE DO-LOOP BECOMES INACTIVE. 04170256 ! 421: C 04180256 ! 422: C 04190256 ! 423: IVTNUM = 11 04200256 ! 424: IF (ICZERO) 30110, 0110, 30110 04210256 ! 425: 0110 CONTINUE 04220256 ! 426: IVCOMP = 0 04230256 ! 427: IVCOMP = IVON01 04240256 ! 428: IVCORR = 100 04250256 ! 429: 40110 IF ( IVCOMP - 100 ) 20110, 10110, 20110 04260256 ! 430: 30110 IVDELE = IVDELE + 1 04270256 ! 431: WRITE (I02,80000) IVTNUM 04280256 ! 432: IF (ICZERO) 10110, 0121, 20110 04290256 ! 433: 10110 IVPASS = IVPASS + 1 04300256 ! 434: WRITE (I02,80002) IVTNUM 04310256 ! 435: GO TO 0121 04320256 ! 436: 20110 IVFAIL = IVFAIL + 1 04330256 ! 437: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04340256 ! 438: 0121 CONTINUE 04350256 ! 439: C 04360256 ! 440: C 04370256 ! 441: C THE FOLLOWING TWO TESTS ARE SIMILAR TO THE PREVIOUS TWO TESTS 04380256 ! 442: C IN THAT THE PARAMETERS OF THE DO STATEMENT MAKE THE ITERATION 04390256 ! 443: C COUNT ZERO WHEN THE DO STATEMENT IS EXECUTED. 04400256 ! 444: C 04410256 ! 445: C 04420256 ! 446: C 04430256 ! 447: C **** FCVS PROGRAM 256 - TEST 012 **** 04440256 ! 448: C 04450256 ! 449: C TEST 012 HAS M1 LESS THAN M2, BUT M3 IS NEGATIVE. THE LOOP 04460256 ! 450: C SHOULD NOT BE EXECUTED AT ALL. 04470256 ! 451: C 04480256 ! 452: C 04490256 ! 453: IVTNUM = 12 04500256 ! 454: IF (ICZERO) 30120, 0120, 30120 04510256 ! 455: 0120 CONTINUE 04520256 ! 456: IVCOMP = 0 04530256 ! 457: DO 0122 IVON01 = 10, 100, -3 04540256 ! 458: IVCOMP = IVCOMP + 1 04550256 ! 459: 0122 CONTINUE 04560256 ! 460: IVCORR = 0 04570256 ! 461: 40120 IF ( IVCOMP ) 20120, 10120, 20120 04580256 ! 462: 30120 IVDELE = IVDELE + 1 04590256 ! 463: WRITE (I02,80000) IVTNUM 04600256 ! 464: IF (ICZERO) 10120, 0131, 20120 04610256 ! 465: 10120 IVPASS = IVPASS + 1 04620256 ! 466: WRITE (I02,80002) IVTNUM 04630256 ! 467: GO TO 0131 04640256 ! 468: 20120 IVFAIL = IVFAIL + 1 04650256 ! 469: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04660256 ! 470: 0131 CONTINUE 04670256 ! 471: C 04680256 ! 472: C **** FCVS PROGRAM 256 - TEST 013 **** 04690256 ! 473: C 04700256 ! 474: C TEST 013 CHECKS THAT THE VALUE RETAINED FOR THE DO-VARIABLE 04710256 ! 475: C IN THE PREVIOUS TEST IS EQUAL TO THE INITIAL PARAMETER VALUE - M3.04720256 ! 476: C 04730256 ! 477: C 04740256 ! 478: IVTNUM = 13 04750256 ! 479: IF (ICZERO) 30130, 0130, 30130 04760256 ! 480: 0130 CONTINUE 04770256 ! 481: IVCOMP = 0 04780256 ! 482: IVCOMP = IVON01 04790256 ! 483: IVCORR = 10 04800256 ! 484: 40130 IF ( IVCOMP - 10 ) 20130, 10130, 20130 04810256 ! 485: 30130 IVDELE = IVDELE + 1 04820256 ! 486: WRITE (I02,80000) IVTNUM 04830256 ! 487: IF (ICZERO) 10130, 0141, 20130 04840256 ! 488: 10130 IVPASS = IVPASS + 1 04850256 ! 489: WRITE (I02,80002) IVTNUM 04860256 ! 490: GO TO 0141 04870256 ! 491: 20130 IVFAIL = IVFAIL + 1 04880256 ! 492: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04890256 ! 493: 0141 CONTINUE 04900256 ! 494: C 04910256 ! 495: C **** FCVS PROGRAM 256 - TEST 014 **** 04920256 ! 496: C 04930256 ! 497: C TEST 014 CHECKS FOR ONE EXECUTION OF THE RANGE OF A DO-LOOP 04940256 ! 498: C ACCORDING TO THE FORMULA SHOWN IN 11.10.3(3) WITH M1 = M2. 04950256 ! 499: C 04960256 ! 500: C THE DO-LOOPS IN THIS TEST ARE A NEST OF THREE EACH WITH ITS 04970256 ! 501: C OWN TERMINAL STATEMENT. 04980256 ! 502: C 04990256 ! 503: C 05000256 ! 504: IVTNUM = 14 05010256 ! 505: IF (ICZERO) 30140, 0140, 30140 05020256 ! 506: 0140 CONTINUE 05030256 ! 507: IVCOMP = 1 05040256 ! 508: DO 0144 IVON01 = 1, 1, 1 05050256 ! 509: IVCOMP = IVCOMP * 2 05060256 ! 510: DO 0143 IVON02 = 10,10,10 05070256 ! 511: IVCOMP = IVCOMP * 3 05080256 ! 512: DO 0142, IVON03 = 100, 100, -2 05090256 ! 513: IVCOMP = IVCOMP * 5 05100256 ! 514: 0142 CONTINUE 05110256 ! 515: 0143 CONTINUE 05120256 ! 516: 0144 CONTINUE 05130256 ! 517: C 05140256 ! 518: C **** IVCOMP IS DETERMINED BY IVCOMP = 30 = 1 * 2 * 3 * 5 ***05150256 ! 519: C 05160256 ! 520: IVCORR = 30 05170256 ! 521: 40140 IF ( IVCOMP - 30 ) 20140, 10140, 20140 05180256 ! 522: 30140 IVDELE = IVDELE + 1 05190256 ! 523: WRITE (I02,80000) IVTNUM 05200256 ! 524: IF (ICZERO) 10140, 0151, 20140 05210256 ! 525: 10140 IVPASS = IVPASS + 1 05220256 ! 526: WRITE (I02,80002) IVTNUM 05230256 ! 527: GO TO 0151 05240256 ! 528: 20140 IVFAIL = IVFAIL + 1 05250256 ! 529: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05260256 ! 530: 0151 CONTINUE 05270256 ! 531: C 05280256 ! 532: C **** FCVS PROGRAM 256 - TEST 015 **** 05290256 ! 533: C 05300256 ! 534: C TEST 015 IS A CHECK ON THE FIRST EXAMPLE SHOWN IN SECTION 05310256 ! 535: C 11.10.7. THIS IS A TEST OF INCREMENTATION PROCESSING OF TWO NEST 05320256 ! 536: C DO-LOOPS HAVING THE SAME TERMINAL STATEMENT. 05330256 ! 537: C 05340256 ! 538: C THIS IS A TEST OF A DO-LOOP THAT BECOMES ACTIVE INSIDE AN 05350256 ! 539: C ALREADY ACTIVE DO-LOOP. 05360256 ! 540: C 05370256 ! 541: C 05380256 ! 542: IVTNUM = 15 05390256 ! 543: IF (ICZERO) 30150, 0150, 30150 05400256 ! 544: 0150 CONTINUE 05410256 ! 545: IVCOMP = 0 05420256 ! 546: IVON01 = 0 05430256 ! 547: DO 0152 IVON02 = 1, 10 05440256 ! 548: IVON03 = IVON02 05450256 ! 549: DO 0152 IVON04 = 1, 5 05460256 ! 550: IVON05 = IVON04 05470256 ! 551: 0152 IVON01 = IVON01 + 1 05480256 ! 552: 0153 CONTINUE 05490256 ! 553: IVCOMP = IVON02 05500256 ! 554: C THIS IS THE VALUE FOR I IN THE EXAMPLE. 05510256 ! 555: IVCORR = 11 05520256 ! 556: 40150 IF ( IVCOMP - 11 ) 20150, 10150, 20150 05530256 ! 557: 30150 IVDELE = IVDELE + 1 05540256 ! 558: WRITE (I02,80000) IVTNUM 05550256 ! 559: IF (ICZERO) 10150, 0161, 20150 05560256 ! 560: 10150 IVPASS = IVPASS + 1 05570256 ! 561: WRITE (I02,80002) IVTNUM 05580256 ! 562: GO TO 0161 05590256 ! 563: 20150 IVFAIL = IVFAIL + 1 05600256 ! 564: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05610256 ! 565: 0161 CONTINUE 05620256 ! 566: C 05630256 ! 567: C **** FCVS PROGRAM 256 - TEST 016 **** 05640256 ! 568: C 05650256 ! 569: C TEST 016 CHECKS THE VALUE OF J (IVON03) IN THE FIRST EXAMPLE. 05660256 ! 570: C 05670256 ! 571: C 05680256 ! 572: IVTNUM = 16 05690256 ! 573: IF (ICZERO) 30160, 0160, 30160 05700256 ! 574: 0160 CONTINUE 05710256 ! 575: IVCOMP = 0 05720256 ! 576: IVCOMP = IVON03 05730256 ! 577: IVCORR = 10 05740256 ! 578: 40160 IF ( IVCOMP - 10 ) 20160, 10160, 20160 05750256 ! 579: 30160 IVDELE = IVDELE + 1 05760256 ! 580: WRITE (I02,80000) IVTNUM 05770256 ! 581: IF (ICZERO) 10160, 0171, 20160 05780256 ! 582: 10160 IVPASS = IVPASS + 1 05790256 ! 583: WRITE (I02,80002) IVTNUM 05800256 ! 584: GO TO 0171 05810256 ! 585: 20160 IVFAIL = IVFAIL + 1 05820256 ! 586: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05830256 ! 587: 0171 CONTINUE 05840256 ! 588: C 05850256 ! 589: C **** FCVS PROGRAM 256 - TEST 017 **** 05860256 ! 590: C 05870256 ! 591: C TEST 017 CHECKS THE VALUE OF K (IVON04) IN THE FIRST EXAMPLE. 05880256 ! 592: C 05890256 ! 593: C 05900256 ! 594: IVTNUM = 17 05910256 ! 595: IF (ICZERO) 30170, 0170, 30170 05920256 ! 596: 0170 CONTINUE 05930256 ! 597: IVCOMP = 0 05940256 ! 598: IVCOMP = IVON04 05950256 ! 599: IVCORR = 6 05960256 ! 600: 40170 IF ( IVCOMP - 6 ) 20170, 10170, 20170 05970256 ! 601: 30170 IVDELE = IVDELE + 1 05980256 ! 602: WRITE (I02,80000) IVTNUM 05990256 ! 603: IF (ICZERO) 10170, 0181, 20170 06000256 ! 604: 10170 IVPASS = IVPASS + 1 06010256 ! 605: WRITE (I02,80002) IVTNUM 06020256 ! 606: GO TO 0181 06030256 ! 607: 20170 IVFAIL = IVFAIL + 1 06040256 ! 608: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06050256 ! 609: 0181 CONTINUE 06060256 ! 610: C 06070256 ! 611: C **** FCVS PROGRAM 256 - TEST 018 **** 06080256 ! 612: C 06090256 ! 613: C TEST 018 CHECKS THE VALUE OF L (IVON05) IN THE FIRST EXAMPLE. 06100256 ! 614: C 06110256 ! 615: C 06120256 ! 616: IVTNUM = 18 06130256 ! 617: IF (ICZERO) 30180, 0180, 30180 06140256 ! 618: 0180 CONTINUE 06150256 ! 619: IVCOMP = 0 06160256 ! 620: IVCOMP = IVON05 06170256 ! 621: IVCORR = 5 06180256 ! 622: 40180 IF ( IVCOMP - 5 ) 20180, 10180, 20180 06190256 ! 623: 30180 IVDELE = IVDELE + 1 06200256 ! 624: WRITE (I02,80000) IVTNUM 06210256 ! 625: IF (ICZERO) 10180, 0191, 20180 06220256 ! 626: 10180 IVPASS = IVPASS + 1 06230256 ! 627: WRITE (I02,80002) IVTNUM 06240256 ! 628: GO TO 0191 06250256 ! 629: 20180 IVFAIL = IVFAIL + 1 06260256 ! 630: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06270256 ! 631: 0191 CONTINUE 06280256 ! 632: C 06290256 ! 633: C **** FCVS PROGRAM 256 - TEST 019 **** 06300256 ! 634: C 06310256 ! 635: C TEST 019 CHECKS THE VALUE OF N (IVON01) IN THE FIRST EXAMPLE. 06320256 ! 636: C 06330256 ! 637: C 06340256 ! 638: IVTNUM = 19 06350256 ! 639: IF (ICZERO) 30190, 0190, 30190 06360256 ! 640: 0190 CONTINUE 06370256 ! 641: IVCOMP = 0 06380256 ! 642: IVCOMP = IVON01 06390256 ! 643: IVCORR = 50 06400256 ! 644: 40190 IF ( IVCOMP - 50 ) 20190, 10190, 20190 06410256 ! 645: 30190 IVDELE = IVDELE + 1 06420256 ! 646: WRITE (I02,80000) IVTNUM 06430256 ! 647: IF (ICZERO) 10190, 0201, 20190 06440256 ! 648: 10190 IVPASS = IVPASS + 1 06450256 ! 649: WRITE (I02,80002) IVTNUM 06460256 ! 650: GO TO 0201 06470256 ! 651: 20190 IVFAIL = IVFAIL + 1 06480256 ! 652: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06490256 ! 653: 0201 CONTINUE 06500256 ! 654: C 06510256 ! 655: C **** FCVS PROGRAM 256 - TEST 020 **** 06520256 ! 656: C 06530256 ! 657: C TEST 020 IS A CHECK ON THE SECOND EXAMPLE IN SECTION 11.10.7. 06540256 ! 658: C IN THIS EXAMPLE, THE INNER DO-LOOP BECOMES ACTIVE AND THEN 06550256 ! 659: C IMMEDIATELY INACTIVE INSIDE AN ALREADY ACTIVE OUTER DO-LOOP. 06560256 ! 660: C 06570256 ! 661: C ALTHOUGH IN SOME WAYS SIMILAR TO THE FIRST EXAMPLE, THE SECOND 06580256 ! 662: C EXAMPLE SHOULD HAVE DIFFERENT FINAL VALUES ON THE INTEGER COUNTERS06590256 ! 663: C AND THE VALUE OF L (IVON10) WILL NOT BE TESTED BECAUSE IT IS NOT 06600256 ! 664: C DEFINED DURING THE RANGE OF THE DO-LOOP INVOLVED. 06610256 ! 665: C 06620256 ! 666: C 06630256 ! 667: IVTNUM = 20 06640256 ! 668: IF (ICZERO) 30200, 0200, 30200 06650256 ! 669: 0200 CONTINUE 06660256 ! 670: IVCOMP = 0 06670256 ! 671: IVON06 = 0 06680256 ! 672: DO 0202 IVON07 = 1, 10 06690256 ! 673: IVON08 = IVON07 06700256 ! 674: DO 0202 IVON09 = 5, 1 06710256 ! 675: IVON10 = IVON09 06720256 ! 676: 0202 IVON06 = IVON06 + 1 06730256 ! 677: 0203 CONTINUE 06740256 ! 678: IVCOMP = IVON07 06750256 ! 679: C THIS IS THE VALUE FOR I IN THE SECOND EXAMPLE. 06760256 ! 680: IVCORR = 11 06770256 ! 681: 40200 IF ( IVCOMP - 11 ) 20200, 10200, 20200 06780256 ! 682: 30200 IVDELE = IVDELE + 1 06790256 ! 683: WRITE (I02,80000) IVTNUM 06800256 ! 684: IF (ICZERO) 10200, 0211, 20200 06810256 ! 685: 10200 IVPASS = IVPASS + 1 06820256 ! 686: WRITE (I02,80002) IVTNUM 06830256 ! 687: GO TO 0211 06840256 ! 688: 20200 IVFAIL = IVFAIL + 1 06850256 ! 689: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06860256 ! 690: 0211 CONTINUE 06870256 ! 691: C 06880256 ! 692: C **** FCVS PROGRAM 256 - TEST 021 **** 06890256 ! 693: C 06900256 ! 694: C TEST 021 CHECKS THE VALUE OF J (IVON08) IN THE SECOND EXAMPLE. 06910256 ! 695: C 06920256 ! 696: C 06930256 ! 697: IVTNUM = 21 06940256 ! 698: IF (ICZERO) 30210, 0210, 30210 06950256 ! 699: 0210 CONTINUE 06960256 ! 700: IVCOMP = 0 06970256 ! 701: IVCOMP = IVON08 06980256 ! 702: IVCORR = 10 06990256 ! 703: 40210 IF ( IVCOMP - 10 ) 20210, 10210, 20210 07000256 ! 704: 30210 IVDELE = IVDELE + 1 07010256 ! 705: WRITE (I02,80000) IVTNUM 07020256 ! 706: IF (ICZERO) 10210, 0221, 20210 07030256 ! 707: 10210 IVPASS = IVPASS + 1 07040256 ! 708: WRITE (I02,80002) IVTNUM 07050256 ! 709: GO TO 0221 07060256 ! 710: 20210 IVFAIL = IVFAIL + 1 07070256 ! 711: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07080256 ! 712: 0221 CONTINUE 07090256 ! 713: C 07100256 ! 714: C **** FCVS PROGRAM 256 - TEST 022 **** 07110256 ! 715: C 07120256 ! 716: C TEST 022 CHECKS THE VALUE OF K (IVON09) IN THE SECOND EXAMPLE. 07130256 ! 717: C 07140256 ! 718: C 07150256 ! 719: IVTNUM = 22 07160256 ! 720: IF (ICZERO) 30220, 0220, 30220 07170256 ! 721: 0220 CONTINUE 07180256 ! 722: IVCOMP = 0 07190256 ! 723: IVCOMP = IVON09 07200256 ! 724: IVCORR = 5 07210256 ! 725: 40220 IF ( IVCOMP - 5 ) 20220, 10220, 20220 07220256 ! 726: 30220 IVDELE = IVDELE + 1 07230256 ! 727: WRITE (I02,80000) IVTNUM 07240256 ! 728: IF (ICZERO) 10220, 0231, 20220 07250256 ! 729: 10220 IVPASS = IVPASS + 1 07260256 ! 730: WRITE (I02,80002) IVTNUM 07270256 ! 731: GO TO 0231 07280256 ! 732: 20220 IVFAIL = IVFAIL + 1 07290256 ! 733: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07300256 ! 734: 0231 CONTINUE 07310256 ! 735: C 07320256 ! 736: C **** FCVS PROGRAM 256 - TEST 023 **** 07330256 ! 737: C 07340256 ! 738: C TEST 023 CHECKS THE VALUE OF N (IVON06) IN THE SECOND EXAMPLE. 07350256 ! 739: C 07360256 ! 740: C 07370256 ! 741: IVTNUM = 23 07380256 ! 742: IF (ICZERO) 30230, 0230, 30230 07390256 ! 743: 0230 CONTINUE 07400256 ! 744: IVCOMP = 0 07410256 ! 745: IVCOMP = IVON06 07420256 ! 746: IVCORR = 0 07430256 ! 747: 40230 IF ( IVCOMP - 0 ) 20230, 10230, 20230 07440256 ! 748: 30230 IVDELE = IVDELE + 1 07450256 ! 749: WRITE (I02,80000) IVTNUM 07460256 ! 750: IF (ICZERO) 10230, 0241, 20230 07470256 ! 751: 10230 IVPASS = IVPASS + 1 07480256 ! 752: WRITE (I02,80002) IVTNUM 07490256 ! 753: GO TO 0241 07500256 ! 754: 20230 IVFAIL = IVFAIL + 1 07510256 ! 755: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07520256 ! 756: 0241 CONTINUE 07530256 ! 757: C 07540256 ! 758: C **** FCVS PROGRAM 256 - TEST 024 **** 07550256 ! 759: C 07560256 ! 760: C TEST 024 IS A CHECK ON USING A LOGICAL IF STATEMENT AS THE 07570256 ! 761: C TERMINAL STATEMENT IN THE RANGE OF A DO-LOOP. THE LOGICAL IF 07580256 ! 762: C STATEMENT HAS AN UNCONDITIONAL GO TO STATEMENT AS ITS EXECUTABLE 07590256 ! 763: C STATEMENT AS ALLOWED IN SECTION 11.10. 07600256 ! 764: C 07610256 ! 765: C 07620256 ! 766: IVTNUM = 24 07630256 ! 767: IF (ICZERO) 30240, 0240, 30240 07640256 ! 768: 0240 CONTINUE 07650256 ! 769: IVCOMP = 0 07660256 ! 770: DO 0242 IVON01 = 1, 10 07670256 ! 771: IVCOMP = IVCOMP + 1 07680256 ! 772: 0242 IF ( IVON01 .GE. 5 ) GO TO 0243 07690256 ! 773: C 07700256 ! 774: C 07710256 ! 775: C IF THE LOGIC DOES NOT BRANCH OUT OF THE RANGE OF THE DO-LOOP WHEN 07720256 ! 776: C THE DO-VARIABLE (IVON01) IS EQUAL TO FIVE (5), THEN IVCOMP WILL BE07730256 ! 777: C SET BACK TO THE VALUE OF ZERO. 07740256 ! 778: C 07750256 ! 779: IVCOMP = 0 07760256 ! 780: C 07770256 ! 781: C 07780256 ! 782: 0243 IVCORR = 5 07790256 ! 783: 40240 IF ( IVCOMP - 5 ) 20240, 10240, 20240 07800256 ! 784: 30240 IVDELE = IVDELE + 1 07810256 ! 785: WRITE (I02,80000) IVTNUM 07820256 ! 786: IF (ICZERO) 10240, 0251, 20240 07830256 ! 787: 10240 IVPASS = IVPASS + 1 07840256 ! 788: WRITE (I02,80002) IVTNUM 07850256 ! 789: GO TO 0251 07860256 ! 790: 20240 IVFAIL = IVFAIL + 1 07870256 ! 791: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07880256 ! 792: 0251 CONTINUE 07890256 ! 793: C 07900256 ! 794: C 07910256 ! 795: C WRITE OUT TEST SUMMARY 07920256 ! 796: C 07930256 ! 797: WRITE (I02,90004) 07940256 ! 798: WRITE (I02,90014) 07950256 ! 799: WRITE (I02,90004) 07960256 ! 800: WRITE (I02,90000) 07970256 ! 801: WRITE (I02,90004) 07980256 ! 802: WRITE (I02,90020) IVFAIL 07990256 ! 803: WRITE (I02,90022) IVPASS 08000256 ! 804: WRITE (I02,90024) IVDELE 08010256 ! 805: STOP 08020256 ! 806: 90001 FORMAT (1H ,24X,5HFM256) 08030256 ! 807: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM256) 08040256 ! 808: C 08050256 ! 809: C FORMATS FOR TEST DETAIL LINES 08060256 ! 810: C 08070256 ! 811: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 08080256 ! 812: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 08090256 ! 813: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 08100256 ! 814: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 08110256 ! 815: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 08120256 ! 816: C 08130256 ! 817: C FORMAT STATEMENTS FOR PAGE HEADERS 08140256 ! 818: C 08150256 ! 819: 90002 FORMAT (1H1) 08160256 ! 820: 90004 FORMAT (1H ) 08170256 ! 821: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 08180256 ! 822: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 08190256 ! 823: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 08200256 ! 824: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 08210256 ! 825: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 08220256 ! 826: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 08230256 ! 827: C 08240256 ! 828: C FORMAT STATEMENTS FOR RUN SUMMARY 08250256 ! 829: C 08260256 ! 830: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 08270256 ! 831: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 08280256 ! 832: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 08290256 ! 833: END 08300256
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.