|
|
1.1 ! root 1: C COMMENT SECTION. 00010025 ! 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 00020025 ! 6: C FM025 00030025 ! 7: C 00040025 ! 8: C THIS ROUTINE TESTS ARRAYS WITH IF STATEMENTS, DO LOOPS, 00050025 ! 9: C ASSIGNED AND COMPUTED GO TO STATEMENTS IN CONJUNCTION WITH ARRAY 00060025 ! 10: C ELEMENTS IN COMMON OR DIMENSIONED. ONE, TWO, AND THREE 00070025 ! 11: C DIMENSIONED ARRAYS ARE USED. THE SUBSCRIPTS ARE INTEGER CONSTANTS00080025 ! 12: C OR SOMETIMES INTEGER VARIABLES WHEN THE ELEMENTS ARE IN LOOPS 00090025 ! 13: C AND ALL ARRAYS HAVE FIXED SIZE LIMITS. INTEGER, REAL, AND LOGICAL00100025 ! 14: C ARRAYS ARE USED WITH THE TYPE SOMETIMES SPECIFIED WITH THE 00110025 ! 15: C EXPLICIT TYPE STATEMENT. 00120025 ! 16: C 00130025 ! 17: C REFERENCES 00140025 ! 18: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00150025 ! 19: C X3.9-1978 00160025 ! 20: C 00170025 ! 21: C SECTION 8, SPECIFICATION STATEMENTS 00180025 ! 22: C SECTION 8.1, DIMENSION STATEMENT 00190025 ! 23: C SECTION 8.3, COMMON STATEMENT 00200025 ! 24: C SECTION 8.4, TYPE-STATEMENTS 00210025 ! 25: C SECTION 9, DATA STATEMENT 00220025 ! 26: C SECTION 11.2, COMPUTED GO TO STATEMENT 00230025 ! 27: C SECTION 11.3, ASSIGNED GO TO STATEMENT 00240025 ! 28: C SECTION 11.10, DO STATEMENT 00250025 ! 29: C 00260025 ! 30: COMMON IADN31(2,2,2), RADN31(2,2,2), LADN31(2,2,2) 00270025 ! 31: C 00280025 ! 32: DIMENSION IADN32(2,2,2), IADN21(2,2), IADN11(2) 00290025 ! 33: C 00300025 ! 34: LOGICAL LADN31 00310025 ! 35: INTEGER RADN33(2,2,2), RADN21(2,4), RADN11(8) 00320025 ! 36: REAL IADN33(2,2,2), IADN22(2,4), IADN12(8) 00330025 ! 37: C 00340025 ! 38: C 00350025 ! 39: C ********************************************************** 00360025 ! 40: C 00370025 ! 41: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00380025 ! 42: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00390025 ! 43: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00400025 ! 44: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00410025 ! 45: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00420025 ! 46: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00430025 ! 47: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00440025 ! 48: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00450025 ! 49: C OF EXECUTING THESE TESTS. 00460025 ! 50: C 00470025 ! 51: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00480025 ! 52: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00490025 ! 53: C 00500025 ! 54: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00510025 ! 55: C 00520025 ! 56: C DEPARTMENT OF THE NAVY 00530025 ! 57: C FEDERAL COBOL COMPILER TESTING SERVICE 00540025 ! 58: C WASHINGTON, D.C. 20376 00550025 ! 59: C 00560025 ! 60: C ********************************************************** 00570025 ! 61: C 00580025 ! 62: C 00590025 ! 63: C 00600025 ! 64: C INITIALIZATION SECTION 00610025 ! 65: C 00620025 ! 66: C INITIALIZE CONSTANTS 00630025 ! 67: C ************** 00640025 ! 68: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00650025 ! 69: I01 = 5 00660025 ! 70: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00670025 ! 71: I02 = 6 00680025 ! 72: C SYSTEM ENVIRONMENT SECTION 00690025 ! 73: C 00700025 ! 74: I01 = 5 00710025 ! 75: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00720025 ! 76: C (UNIT NUMBER FOR CARD READER). 00730025 ! 77: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00740025 ! 78: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00750025 ! 79: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00760025 ! 80: C 00770025 ! 81: I02 = 6 00780025 ! 82: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00790025 ! 83: C (UNIT NUMBER FOR PRINTER). 00800025 ! 84: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00810025 ! 85: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00820025 ! 86: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00830025 ! 87: C 00840025 ! 88: IVPASS=0 00850025 ! 89: IVFAIL=0 00860025 ! 90: IVDELE=0 00870025 ! 91: ICZERO=0 00880025 ! 92: C 00890025 ! 93: C WRITE PAGE HEADERS 00900025 ! 94: WRITE (I02,90000) 00910025 ! 95: WRITE (I02,90001) 00920025 ! 96: WRITE (I02,90002) 00930025 ! 97: WRITE (I02, 90002) 00940025 ! 98: WRITE (I02,90003) 00950025 ! 99: WRITE (I02,90002) 00960025 ! 100: WRITE (I02,90004) 00970025 ! 101: WRITE (I02,90002) 00980025 ! 102: WRITE (I02,90011) 00990025 ! 103: WRITE (I02,90002) 01000025 ! 104: WRITE (I02,90002) 01010025 ! 105: WRITE (I02,90005) 01020025 ! 106: WRITE (I02,90006) 01030025 ! 107: WRITE (I02,90002) 01040025 ! 108: IVTNUM = 653 01050025 ! 109: C 01060025 ! 110: C **** TEST 653 **** 01070025 ! 111: C TEST 653 - TEST OF SETTING ALL VALUES OF AN INTEGER ARRAY 01080025 ! 112: C BY THE INTEGER INDEX OF A DO LOOP. THE ARRAY HAS ONE DIMENSION. 01090025 ! 113: C 01100025 ! 114: IF (ICZERO) 36530, 6530, 36530 01110025 ! 115: 6530 CONTINUE 01120025 ! 116: DO 6532 I = 1,2,1 01130025 ! 117: IADN11(I) = I 01140025 ! 118: 6532 CONTINUE 01150025 ! 119: IVCOMP = IADN11(1) 01160025 ! 120: GO TO 46530 01170025 ! 121: 36530 IVDELE = IVDELE + 1 01180025 ! 122: WRITE (I02,80003) IVTNUM 01190025 ! 123: IF (ICZERO) 46530, 6541, 46530 01200025 ! 124: 46530 IF ( IVCOMP - 1 ) 26530, 16530, 26530 01210025 ! 125: 16530 IVPASS = IVPASS + 1 01220025 ! 126: WRITE (I02,80001) IVTNUM 01230025 ! 127: GO TO 6541 01240025 ! 128: 26530 IVFAIL = IVFAIL + 1 01250025 ! 129: IVCORR = 1 01260025 ! 130: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01270025 ! 131: 6541 CONTINUE 01280025 ! 132: IVTNUM = 654 01290025 ! 133: C 01300025 ! 134: C **** TEST 654 **** 01310025 ! 135: C TEST 654 - SEE TEST 653. THIS TEST CHECKS THE SECOND ELEMENT OF01320025 ! 136: C THE INTEGER ARRAY IADN11(2). 01330025 ! 137: C 01340025 ! 138: IF (ICZERO) 36540, 6540, 36540 01350025 ! 139: 6540 CONTINUE 01360025 ! 140: IVCOMP = IADN11(2) 01370025 ! 141: GO TO 46540 01380025 ! 142: 36540 IVDELE = IVDELE + 1 01390025 ! 143: WRITE (I02,80003) IVTNUM 01400025 ! 144: IF (ICZERO) 46540, 6551, 46540 01410025 ! 145: 46540 IF ( IVCOMP - 2 ) 26540, 16540, 26540 01420025 ! 146: 16540 IVPASS = IVPASS + 1 01430025 ! 147: WRITE (I02,80001) IVTNUM 01440025 ! 148: GO TO 6551 01450025 ! 149: 26540 IVFAIL = IVFAIL + 1 01460025 ! 150: IVCORR = 2 01470025 ! 151: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01480025 ! 152: 6551 CONTINUE 01490025 ! 153: IVTNUM = 655 01500025 ! 154: C 01510025 ! 155: C **** TEST 655 **** 01520025 ! 156: C TEST 655 - TEST OF SETTING THE VALUES OF THE COLUMN OF A TWO 01530025 ! 157: C DIMENSION INTEGER ARRAY BY A DO LOOP. THE VALUES FOR THE ELEMENTS01540025 ! 158: C IN A COLUMN IS THE NUMBER OF THE COLUMN AS SET BY THE DO LOOP 01550025 ! 159: C INDEX. ROW NUMBERS ARE INTEGER CONSTANTS. 01560025 ! 160: C THE VALUES FOR THE ELEMENTS ARE AS FOLLOWS 01570025 ! 161: C 1 2 01580025 ! 162: C 1 2 01590025 ! 163: C 01600025 ! 164: IF (ICZERO) 36550, 6550, 36550 01610025 ! 165: 6550 CONTINUE 01620025 ! 166: DO 6552 J = 1, 2 01630025 ! 167: IADN21(1,J) = J 01640025 ! 168: IADN21(2,J) = J 01650025 ! 169: 6552 CONTINUE 01660025 ! 170: IVCOMP = IADN21(1,1) 01670025 ! 171: GO TO 46550 01680025 ! 172: 36550 IVDELE = IVDELE + 1 01690025 ! 173: WRITE (I02,80003) IVTNUM 01700025 ! 174: IF (ICZERO) 46550, 6561, 46550 01710025 ! 175: 46550 IF ( IVCOMP - 1 ) 26550, 16550, 26550 01720025 ! 176: 16550 IVPASS = IVPASS + 1 01730025 ! 177: WRITE (I02,80001) IVTNUM 01740025 ! 178: GO TO 6561 01750025 ! 179: 26550 IVFAIL = IVFAIL + 1 01760025 ! 180: IVCORR = 1 01770025 ! 181: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01780025 ! 182: 6561 CONTINUE 01790025 ! 183: IVTNUM = 656 01800025 ! 184: C 01810025 ! 185: C **** TEST 656 **** 01820025 ! 186: C TEST 656 - SEE TEST 655. THIS TEST CHECKS THE VALUE OF THE 01830025 ! 187: C INTEGER ARRAY IADN21(2,2) 01840025 ! 188: C 01850025 ! 189: IF (ICZERO) 36560, 6560, 36560 01860025 ! 190: 6560 CONTINUE 01870025 ! 191: IVCOMP = IADN21(2,2) 01880025 ! 192: GO TO 46560 01890025 ! 193: 36560 IVDELE = IVDELE + 1 01900025 ! 194: WRITE (I02,80003) IVTNUM 01910025 ! 195: IF (ICZERO) 46560, 6571, 46560 01920025 ! 196: 46560 IF ( IVCOMP - 2 ) 26560, 16560, 26560 01930025 ! 197: 16560 IVPASS = IVPASS + 1 01940025 ! 198: WRITE (I02,80001) IVTNUM 01950025 ! 199: GO TO 6571 01960025 ! 200: 26560 IVFAIL = IVFAIL + 1 01970025 ! 201: IVCORR = 2 01980025 ! 202: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01990025 ! 203: 6571 CONTINUE 02000025 ! 204: IVTNUM = 657 02010025 ! 205: C 02020025 ! 206: C **** TEST 657 **** 02030025 ! 207: C TEST 657 - THIS TESTS SETTING BOTH THE ROW AND COLUMN SUBSCRIPTS02040025 ! 208: C IN A TWO DIMENSION INTEGER ARRAY WITH A DOUBLE NESTED DO LOOP. 02050025 ! 209: C THE ELEMENT VALUES ARE SET BY AN INTEGER COUNTER. ELEMENT VALUES 02060025 ! 210: C ARE AS FOLLOWS 1 2 02070025 ! 211: C 3 4 02080025 ! 212: C 02090025 ! 213: IF (ICZERO) 36570, 6570, 36570 02100025 ! 214: 6570 CONTINUE 02110025 ! 215: ICON01 = 0 02120025 ! 216: DO 6573 I = 1, 2 02130025 ! 217: DO 6572 J = 1, 2 02140025 ! 218: ICON01 = ICON01 + 1 02150025 ! 219: IADN21(I,J) = ICON01 02160025 ! 220: 6572 CONTINUE 02170025 ! 221: 6573 CONTINUE 02180025 ! 222: IVCOMP = IADN21(1,2) 02190025 ! 223: GO TO 46570 02200025 ! 224: 36570 IVDELE = IVDELE + 1 02210025 ! 225: WRITE (I02,80003) IVTNUM 02220025 ! 226: IF (ICZERO) 46570, 6581, 46570 02230025 ! 227: 46570 IF ( IVCOMP - 2 ) 26570, 16570, 26570 02240025 ! 228: 16570 IVPASS = IVPASS + 1 02250025 ! 229: WRITE (I02,80001) IVTNUM 02260025 ! 230: GO TO 6581 02270025 ! 231: 26570 IVFAIL = IVFAIL + 1 02280025 ! 232: IVCORR = 2 02290025 ! 233: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02300025 ! 234: 6581 CONTINUE 02310025 ! 235: IVTNUM = 658 02320025 ! 236: C 02330025 ! 237: C **** TEST 658 **** 02340025 ! 238: C TEST 658 - SEE TEST 657. THIS TEST CHECKS THE VALUE OF ARRAY 02350025 ! 239: C ELEMENT IADN21(2,1) = 3 02360025 ! 240: C 02370025 ! 241: IF (ICZERO) 36580, 6580, 36580 02380025 ! 242: 6580 CONTINUE 02390025 ! 243: IVCOMP = IADN21(2,1) 02400025 ! 244: GO TO 46580 02410025 ! 245: 36580 IVDELE = IVDELE + 1 02420025 ! 246: WRITE (I02,80003) IVTNUM 02430025 ! 247: IF (ICZERO) 46580, 6591, 46580 02440025 ! 248: 46580 IF ( IVCOMP - 3 ) 26580, 16580, 26580 02450025 ! 249: 16580 IVPASS = IVPASS + 1 02460025 ! 250: WRITE (I02,80001) IVTNUM 02470025 ! 251: GO TO 6591 02480025 ! 252: 26580 IVFAIL = IVFAIL + 1 02490025 ! 253: IVCORR = 3 02500025 ! 254: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02510025 ! 255: 6591 CONTINUE 02520025 ! 256: IVTNUM = 659 02530025 ! 257: C 02540025 ! 258: C **** TEST 659 **** 02550025 ! 259: C TEST 659 - THIS TEST USES A TRIPLE NESTED DO LOOP TO SET THE 02560025 ! 260: C ELEMENTS IN ALL THREE DIMENSIONS OF AN INTEGER ARRAY THAT IS 02570025 ! 261: C DIMENSIONED. THE VALUES FOR THE ELEMENTS ARE AS FOLLOWS 02580025 ! 262: C FOR ELEMENT (I,J,K) = I + J + K 02590025 ! 263: C SO FOR ELEMENT (1,1,2) = 1 + 1 + 2 = 4 02600025 ! 264: C 02610025 ! 265: IF (ICZERO) 36590, 6590, 36590 02620025 ! 266: 6590 CONTINUE 02630025 ! 267: DO 6594 I = 1, 2 02640025 ! 268: DO 6593 J = 1, 2 02650025 ! 269: DO 6592 K = 1, 2 02660025 ! 270: IADN32( I, J, K ) = I + J + K 02670025 ! 271: 6592 CONTINUE 02680025 ! 272: 6593 CONTINUE 02690025 ! 273: 6594 CONTINUE 02700025 ! 274: IVCOMP = IADN32(1,1,2) 02710025 ! 275: GO TO 46590 02720025 ! 276: 36590 IVDELE = IVDELE + 1 02730025 ! 277: WRITE (I02,80003) IVTNUM 02740025 ! 278: IF (ICZERO) 46590, 6601, 46590 02750025 ! 279: 46590 IF ( IVCOMP - 4 ) 26590, 16590, 26590 02760025 ! 280: 16590 IVPASS = IVPASS + 1 02770025 ! 281: WRITE (I02,80001) IVTNUM 02780025 ! 282: GO TO 6601 02790025 ! 283: 26590 IVFAIL = IVFAIL + 1 02800025 ! 284: IVCORR = 4 02810025 ! 285: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02820025 ! 286: 6601 CONTINUE 02830025 ! 287: IVTNUM = 660 02840025 ! 288: C 02850025 ! 289: C **** TEST 660 **** 02860025 ! 290: C TEST 660 - SEE TEST 659. THIS CHECKS FOR IADN32(2,2,2) = 6 02870025 ! 291: C 02880025 ! 292: IF (ICZERO) 36600, 6600, 36600 02890025 ! 293: 6600 CONTINUE 02900025 ! 294: IVCOMP = IADN32(2,2,2) 02910025 ! 295: GO TO 46600 02920025 ! 296: 36600 IVDELE = IVDELE + 1 02930025 ! 297: WRITE (I02,80003) IVTNUM 02940025 ! 298: IF (ICZERO) 46600, 6611, 46600 02950025 ! 299: 46600 IF ( IVCOMP - 6 ) 26600, 16600, 26600 02960025 ! 300: 16600 IVPASS = IVPASS + 1 02970025 ! 301: WRITE (I02,80001) IVTNUM 02980025 ! 302: GO TO 6611 02990025 ! 303: 26600 IVFAIL = IVFAIL + 1 03000025 ! 304: IVCORR = 6 03010025 ! 305: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03020025 ! 306: 6611 CONTINUE 03030025 ! 307: IVTNUM = 661 03040025 ! 308: C 03050025 ! 309: C **** TEST 661 **** 03060025 ! 310: C TEST 661 - THIS TEST SETS THE ELEMENTS OF AN INTEGER ARRAY IN 03070025 ! 311: C COMMON TO MINUS THE VALUE OF THE INTEGER ARRAY SET IN TEST 659. 03080025 ! 312: C ELEMENT IADN32(1,1,2) = 4 SO ELEMENT IADN31(1,1,2) = -4 03090025 ! 313: C THE SAME INTEGER ASSIGNMENT STATEMENT IS USED AS THE TERMINATING 03100025 ! 314: C STATEMENT FOR ALL THREE DO LOOPS USED TO SET THE ARRAY VALUES 03110025 ! 315: C OF INTEGER ARRAY IADN31. 03120025 ! 316: C IF TEST 659 FAILS, THEN THIS TEST SHOULD ALSO FAIL. HOWEVER, THE 03130025 ! 317: C COMPUTED VALUES SHOULD RELATE IN THAT THE COMPUTED VALUE FOR 03140025 ! 318: C TEST 661 SHOULD BE MINUS THE COMPUTED VALUE FOR TEST 659. 03150025 ! 319: C 03160025 ! 320: IF (ICZERO) 36610, 6610, 36610 03170025 ! 321: 6610 CONTINUE 03180025 ! 322: DO 6612 I = 1, 2 03190025 ! 323: DO 6612 J = 1, 2 03200025 ! 324: DO 6612 K = 1, 2 03210025 ! 325: 6612 IADN31(I,J,K) = - IADN32 ( I, J, K ) 03220025 ! 326: IVCOMP = IADN31(1,1,2) 03230025 ! 327: GO TO 46610 03240025 ! 328: 36610 IVDELE = IVDELE + 1 03250025 ! 329: WRITE (I02,80003) IVTNUM 03260025 ! 330: IF (ICZERO) 46610, 6621, 46610 03270025 ! 331: 46610 IF ( IVCOMP + 4 ) 26610, 16610, 26610 03280025 ! 332: 16610 IVPASS = IVPASS + 1 03290025 ! 333: WRITE (I02,80001) IVTNUM 03300025 ! 334: GO TO 6621 03310025 ! 335: 26610 IVFAIL = IVFAIL + 1 03320025 ! 336: IVCORR = -4 03330025 ! 337: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03340025 ! 338: 6621 CONTINUE 03350025 ! 339: IVTNUM = 662 03360025 ! 340: C 03370025 ! 341: C **** TEST 662 **** 03380025 ! 342: C TEST 662 - THIS IS A TEST OF A TRIPLE NESTED DO LOOP USED TO 03390025 ! 343: C SET THE VALUES OF A LOGICAL ARRAY LADN31. UNLIKE THE OTHER TESTS 03400025 ! 344: C THE THIRD DIMENSION IS SET LAST, THE FIRST DIMENSION IS SET SECOND03410025 ! 345: C AND THE SECOND DIMENSION IS SET FIRST. ALL ARRAY ELEMENTS ARE SET03420025 ! 346: C TO THE LOGICAL CONSTANT .FALSE. 03430025 ! 347: C 03440025 ! 348: IF (ICZERO) 36620, 6620, 36620 03450025 ! 349: 6620 CONTINUE 03460025 ! 350: DO 6622 K = 1, 2 03470025 ! 351: DO 6622 I = 1, 2 03480025 ! 352: DO 6622 J = 1, 2 03490025 ! 353: LADN31( I, J, K ) = .FALSE. 03500025 ! 354: 6622 CONTINUE 03510025 ! 355: ICON01 = 1 03520025 ! 356: IF ( LADN31(2,1,2) ) ICON01 = 0 03530025 ! 357: GO TO 46620 03540025 ! 358: 36620 IVDELE = IVDELE + 1 03550025 ! 359: WRITE (I02,80003) IVTNUM 03560025 ! 360: IF (ICZERO) 46620, 6631, 46620 03570025 ! 361: 46620 IF ( ICON01 - 1 ) 26620, 16620, 26620 03580025 ! 362: 16620 IVPASS = IVPASS + 1 03590025 ! 363: WRITE (I02,80001) IVTNUM 03600025 ! 364: GO TO 6631 03610025 ! 365: 26620 IVFAIL = IVFAIL + 1 03620025 ! 366: IVCOMP = ICON01 03630025 ! 367: IVCORR = 1 03640025 ! 368: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03650025 ! 369: 6631 CONTINUE 03660025 ! 370: IVTNUM = 663 03670025 ! 371: C 03680025 ! 372: C NOTE **** TEST 663 WAS DELETED BY FCCTS. 03690025 ! 373: C 03700025 ! 374: IF (ICZERO) 36630, 6630, 36630 03710025 ! 375: 6630 CONTINUE 03720025 ! 376: 36630 IVDELE = IVDELE + 1 03730025 ! 377: WRITE (I02,80003) IVTNUM 03740025 ! 378: IF (ICZERO) 46630, 6641, 46630 03750025 ! 379: 46630 IF ( ICON01 - 6633 ) 26630, 16630, 26630 03760025 ! 380: 16630 IVPASS = IVPASS + 1 03770025 ! 381: WRITE (I02,80001) IVTNUM 03780025 ! 382: GO TO 6641 03790025 ! 383: 26630 IVFAIL = IVFAIL + 1 03800025 ! 384: IVCOMP = ICON01 03810025 ! 385: IVCORR = 6633 03820025 ! 386: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03830025 ! 387: 6641 CONTINUE 03840025 ! 388: IVTNUM = 664 03850025 ! 389: C 03860025 ! 390: C NOTE **** TEST 664 WAS DELETED BY FCCTS. 03870025 ! 391: C 03880025 ! 392: IF (ICZERO) 36640, 6640, 36640 03890025 ! 393: 6640 CONTINUE 03900025 ! 394: 36640 IVDELE = IVDELE + 1 03910025 ! 395: WRITE (I02,80003) IVTNUM 03920025 ! 396: IF (ICZERO) 46640, 6651, 46640 03930025 ! 397: 46640 IF ( ICON01 - 6643 ) 26640, 16640, 26640 03940025 ! 398: 16640 IVPASS = IVPASS + 1 03950025 ! 399: WRITE (I02,80001) IVTNUM 03960025 ! 400: GO TO 6651 03970025 ! 401: 26640 IVFAIL = IVFAIL + 1 03980025 ! 402: IVCOMP = ICON01 03990025 ! 403: IVCORR = 6443 04000025 ! 404: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04010025 ! 405: 6651 CONTINUE 04020025 ! 406: IVTNUM = 665 04030025 ! 407: C 04040025 ! 408: C **** TEST 665 **** 04050025 ! 409: C TEST 665 - ARRAY ELEMENTS SET TO TYPE REAL BY THE EXPLICIT 04060025 ! 410: C REAL STATEMENT ARE SET TO THE VALUE 0.5 AND USED TO SET THE VALUE 04070025 ! 411: C OF AN ARRAY ELEMENT SET TO TYPE INTEGER BY THE INTEGER STATEMENT. 04080025 ! 412: C THIS LAST INTEGER ELEMENT IS USED IN A LOGICAL IF STATEMENT 04090025 ! 413: C THAT SHOULD COMPARE TRUE. ( .5 + .5 + .5 ) * 2. .EQ. 3 04100025 ! 414: C 04110025 ! 415: IF (ICZERO) 36650, 6650, 36650 04120025 ! 416: 6650 CONTINUE 04130025 ! 417: IADN33(2,2,2) = 0.5 04140025 ! 418: IADN22(2,4) = 0.5 04150025 ! 419: IADN12(8) = 0.5 04160025 ! 420: RADN11(8) = ( IADN33(2,2,2) + IADN22(2,4) + IADN12(8) ) * 2. 04170025 ! 421: ICON01 = 0 04180025 ! 422: IF ( RADN11(8) .EQ. 3 ) ICON01 = 1 04190025 ! 423: GO TO 46650 04200025 ! 424: 36650 IVDELE = IVDELE + 1 04210025 ! 425: WRITE (I02,80003) IVTNUM 04220025 ! 426: IF (ICZERO) 46650, 6661, 46650 04230025 ! 427: 46650 IF ( ICON01 - 1 ) 26650, 16650, 26650 04240025 ! 428: 16650 IVPASS = IVPASS + 1 04250025 ! 429: WRITE (I02,80001) IVTNUM 04260025 ! 430: GO TO 6661 04270025 ! 431: 26650 IVFAIL = IVFAIL + 1 04280025 ! 432: IVCOMP = ICON01 04290025 ! 433: IVCORR = 1 04300025 ! 434: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04310025 ! 435: 6661 CONTINUE 04320025 ! 436: C 04330025 ! 437: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 04340025 ! 438: 99999 CONTINUE 04350025 ! 439: WRITE (I02,90002) 04360025 ! 440: WRITE (I02,90006) 04370025 ! 441: WRITE (I02,90002) 04380025 ! 442: WRITE (I02,90002) 04390025 ! 443: WRITE (I02,90007) 04400025 ! 444: WRITE (I02,90002) 04410025 ! 445: WRITE (I02,90008) IVFAIL 04420025 ! 446: WRITE (I02,90009) IVPASS 04430025 ! 447: WRITE (I02,90010) IVDELE 04440025 ! 448: C 04450025 ! 449: C 04460025 ! 450: C TERMINATE ROUTINE EXECUTION 04470025 ! 451: STOP 04480025 ! 452: C 04490025 ! 453: C FORMAT STATEMENTS FOR PAGE HEADERS 04500025 ! 454: 90000 FORMAT (1H1) 04510025 ! 455: 90002 FORMAT (1H ) 04520025 ! 456: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 04530025 ! 457: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 04540025 ! 458: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 04550025 ! 459: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 04560025 ! 460: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 04570025 ! 461: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 04580025 ! 462: C 04590025 ! 463: C FORMAT STATEMENTS FOR RUN SUMMARIES 04600025 ! 464: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 04610025 ! 465: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 04620025 ! 466: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 04630025 ! 467: C 04640025 ! 468: C FORMAT STATEMENTS FOR TEST RESULTS 04650025 ! 469: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 04660025 ! 470: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 04670025 ! 471: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 04680025 ! 472: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 04690025 ! 473: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 04700025 ! 474: C 04710025 ! 475: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM025) 04720025 ! 476: END 04730025
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.