|
|
1.1 ! root 1: PROGRAM FM411 00010411 ! 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 00020411 ! 6: C 00030411 ! 7: C 00040411 ! 8: C THIS ROUTINE TESTS FOR PROPER PROCESSING OF UNFORMATTED RECORDS00050411 ! 9: C WITH A FILE CONNECTED FOR SEQUENTIAL ACCESS. UNFORMATTED RECORDS00060411 ! 10: C MAY BE READ OR WRITTEN ONLY BY UNFORMATTED INPUT/OUTPUT STATE- 00070411 ! 11: C MENTS. THIS ROUTINE TESTS SEVERAL SYNTACTICAL VARIATIONS OF THE 00080411 ! 12: C UNFORMATTED READ AND WRITE STATEMENTS AS WELL AS THE FILE 00090411 ! 13: C POSITIONING STATEMENTS BACKSPACE, ENDFILE AND REWIND. IN 00100411 ! 14: C ADDITION UNFORMATTED RECORDS MAY HAVE BOTH CHARACTER AND 00110411 ! 15: C NONCHARACTER DATA. THIS DATA IS TRANSFERRED WITHOUT EDITING 00120411 ! 16: C BETWEEN THE CURRENT RECORD AND ENTITIES SPECIFIED BY THE INPUT/ 00130411 ! 17: C OUTPUT LIST ITEMS. THIS ROUTINE BOTH READS AND WRITES 00140411 ! 18: C RECORDS CONTAINING DATA OF LOGICAL, REAL AND INTEGER TYPE WITH 00150411 ! 19: C I/O LIST ITEMS REPRESENTED AS VARIABLE NAMES, ARRAY ELEMENT 00160411 ! 20: C NAMES AND ARRAY NAMES. THIS ROUTINE DOES NOT TEST DATA OF TYPE 00170411 ! 21: C CHARACTER. 00180411 ! 22: C ROUTINE FM413 TESTS USE OF UNFORMATTED RECORDS WITH A FILE 00190411 ! 23: C CONNECTED FOR DIRECT ACCESS. 00200411 ! 24: C 00210411 ! 25: C THIS ROUTINE TESTS 00220411 ! 26: C 00230411 ! 27: C (1) THE STATEMENT CONSTRUCTS 00240411 ! 28: C 00250411 ! 29: C A. WRITE (U) VARIABLE-NAME,... 00260411 ! 30: C B. WRITE (U) ARRAY-ELEMENT-NAME,... 00270411 ! 31: C C. WRITE (U) ARRAY-NAME,... 00280411 ! 32: C D. WRITE (U) - NO OUTPUT LIST 00290411 ! 33: C E. WRITE (U) IMPLIED-DO-LIST 00300411 ! 34: C F. READ (U) VARIABLE-NAME,... 00310411 ! 35: C G. READ (U) ARRAY-ELEMENT-NAME,... 00320411 ! 36: C H. READ (U) ARRAY-NAME,... 00330411 ! 37: C I. READ (U,END=S) - NO INPUT LIST 00340411 ! 38: C J. READ (U,END=S) VARIABLE-NAME 00350411 ! 39: C K. READ (U) IMPLIED-DO-LIST 00360411 ! 40: C 00370411 ! 41: C (2) USE OF A READ STATEMENT WHERE THE NUMBER OF VALUES 00380411 ! 42: C IN THE INPUT LIST IS LESS THAN OR EQUAL TO THE 00390411 ! 43: C NUMBER OF VALUES IN THE RECORD. 00400411 ! 44: C 00410411 ! 45: C (3) USE OF THE BACKSPACE, REWIND AND ENDFILE STATEMENT 00420411 ! 46: C ON A FILE CONTAINING UNFORMATTED RECORDS. 00430411 ! 47: C 00440411 ! 48: C (4) USE OF A REWIND STATEMENT ON A FILE THAT IS CONNECTED 00450411 ! 49: C BUT DOES NOT EXIST. 00460411 ! 50: C 00470411 ! 51: C (5) USE OF AN ENDFILE STATEMENT TO CREATE A FILE THAT 00480411 ! 52: C DOES NOT EXIST 00490411 ! 53: C 00500411 ! 54: C REFERENCES - 00510411 ! 55: C 00520411 ! 56: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00530411 ! 57: C X3.9-1977 00540411 ! 58: C 00550411 ! 59: C SECTION 4.1, DATA TYPES 00560411 ! 60: C SECTION 12.1.2, UNFORMATTED RECORDS 00570411 ! 61: C SECTION 12.2.1, FILE EXISTENCE 00580411 ! 62: C SECTION 12.2.4, FILE ACCESS 00590411 ! 63: C SECTION 12.2.4.1, SEQUENTIAL ACCESS 00600411 ! 64: C SECTION 12.3.3, UNIT SPECIFIER AND IDENTIFIER 00610411 ! 65: C SECTION 12.7.2, END-OF-FILE SPECIFIER 00620411 ! 66: C SECTION 12.8, READ, WRITE AND PRINT STATEMENTS 00630411 ! 67: C SECTION 12.8.1, CONTROL INFORMATION LIST 00640411 ! 68: C SECTION 12.8.2, INPUT/OUTPUT LIST 00650411 ! 69: C SECTION 12.8.2.1, INPUT LIST ITEMS 00660411 ! 70: C SECTION 12.8.2.2, OUTPUT LIST ITEMS 00670411 ! 71: C SECTION 12.8.2.3, IMPLIED-DO LIST 00680411 ! 72: C SECTION 12.9.5.1, UNFORMATTED DATA TRANSFER 00690411 ! 73: C SECTION 12.10.4, FILE POSITIONING STATEMENTS 00700411 ! 74: C SECTION 12.10.4.1 BACKSPACE STATEMENT 00710411 ! 75: C SECTION 12.10.4.2, ENDFILE STATEMENT 00720411 ! 76: C SECTION 12.10.4.3, REWIND STATEMENT 00730411 ! 77: C 00740411 ! 78: C 00750411 ! 79: C 00760411 ! 80: C ******************************************************************00770411 ! 81: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00780411 ! 82: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00790411 ! 83: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00800411 ! 84: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00810411 ! 85: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00820411 ! 86: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00830411 ! 87: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00840411 ! 88: C THE RESULT OF EXECUTING THESE TESTS. 00850411 ! 89: C 00860411 ! 90: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00870411 ! 91: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00880411 ! 92: C 00890411 ! 93: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00900411 ! 94: C DEPARTMENT OF THE NAVY 00910411 ! 95: C FEDERAL COBOL COMPILER TESTING SERVICE 00920411 ! 96: C WASHINGTON, D.C. 20376 00930411 ! 97: C 00940411 ! 98: C ******************************************************************00950411 ! 99: C 00960411 ! 100: C 00970411 ! 101: IMPLICIT LOGICAL (L) 00980411 ! 102: IMPLICIT CHARACTER*14 (C) 00990411 ! 103: C 01000411 ! 104: LOGICAL LAON11, LAON21, LAON31, LCONT1, LCONF2, LVONT1, LVONF2 01010411 ! 105: LOGICAL LAON12, LAON22, LAON32, LCONT3, LCONF4, LVONT3, LVONF4 01020411 ! 106: LOGICAL LCONT5, LCONF6, LCONT7, LCONF8, LVONT5, LVONF6, LVONT7 01030411 ! 107: LOGICAL LVONF8 01040411 ! 108: DIMENSION IDUMP(80) 01050411 ! 109: DIMENSION IAON11(8), IAON21(2,4), IAON31(2,2,2) 01060411 ! 110: DIMENSION IAON12(8), IAON22(2,4), IAON32(2,2,2) 01070411 ! 111: DIMENSION RAON11(8), RAON21(2,4), RAON31(2,2,2) 01080411 ! 112: DIMENSION RAON12(8), RAON22(2,4), RAON32(2,2,2) 01090411 ! 113: DIMENSION LAON11(8), LAON21(2,4), LAON31(2,2,2) 01100411 ! 114: DIMENSION LAON12(8), LAON22(2,4), LAON32(2,2,2) 01110411 ! 115: DATA IAON11 /11, -11, 777, -777, 512, -512, -32767, 32767/ 01120411 ! 116: DATA IAON21 /11, -11, 777, -777, 512, -512, -32767, 32767/ 01130411 ! 117: DATA IAON31 /11, -11, 777, -777, 512, -512, -32767, 32767/ 01140411 ! 118: DATA LAON11 /.TRUE., .FALSE., .TRUE., .FALSE., .TRUE., .FALSE., 01150411 ! 119: 1 .TRUE., .FALSE./ 01160411 ! 120: DATA LAON21 /.TRUE., .FALSE., .TRUE., .FALSE., .TRUE., .FALSE., 01170411 ! 121: 1 .TRUE., .FALSE./ 01180411 ! 122: DATA LAON31 /.TRUE., .FALSE., .TRUE., .FALSE., .TRUE., .FALSE., 01190411 ! 123: 1 .TRUE., .FALSE./ 01200411 ! 124: DATA RAON11 /11., -11., 7.77, -7.77,.512, -.512, -32767., 32767./01210411 ! 125: DATA RAON21 /11., -11., 7.77, -7.77,.512, -.512, -32767., 32767./01220411 ! 126: DATA RAON31 /11., -11., 7.77, -7.77,.512, -.512, -32767., 32767./01230411 ! 127: ICON21 = 11 01240411 ! 128: ICON22 = -11 01250411 ! 129: ICON31 = +777 01260411 ! 130: ICON32 = -777 01270411 ! 131: ICON33 = 512 01280411 ! 132: ICON34 = -512 01290411 ! 133: ICON55 = -32767 01300411 ! 134: ICON56 = 32767 01310411 ! 135: RCON21 = 11. 01320411 ! 136: RCON22 = -11. 01330411 ! 137: RCON31 = +7.77 01340411 ! 138: RCON32 = -7.77 01350411 ! 139: RCON33 = .512 01360411 ! 140: RCON34 = -.512 01370411 ! 141: RCON55 = -32767. 01380411 ! 142: RCON56 = 32767. 01390411 ! 143: LCONT1 = .TRUE. 01400411 ! 144: LCONF2 = .FALSE. 01410411 ! 145: LCONT3 = .TRUE. 01420411 ! 146: LCONF4 = .FALSE. 01430411 ! 147: LCONT5 = .TRUE. 01440411 ! 148: LCONF6 = .FALSE. 01450411 ! 149: LCONT7 = .TRUE. 01460411 ! 150: LCONF8 = .FALSE. 01470411 ! 151: C 01480411 ! 152: C THE FILE USED IN THIS ROUTINE HAS THE FOLLOWING PROPERTIES 01490411 ! 153: C 01500411 ! 154: C FILE IDENTIFIER - I04 (X-NUMBER 04) 01510411 ! 155: C RECORD SIZE - 80 01520411 ! 156: C ACCESS METHOD - SEQUENTIAL 01530411 ! 157: C RECORD TYPE - UNFORMATTED 01540411 ! 158: C DESIGNATED DEVICE - DISK 01550411 ! 159: C TYPE OF DATA - INTEGER, REAL AND LOGICAL 01560411 ! 160: C RECORDS IN FILE - 142 PLUS ENDFILE RECORD 01570411 ! 161: C 01580411 ! 162: C THE FIRST 6 FIELDS OF EACH RECORD IN THE FILE UNIQUELY IDENT-01590411 ! 163: C IFIES THAT RECORD. THE REMAINING FIELDS OF THE RECORD CONTAIN 01600411 ! 164: C DATA WHICH ARE USED IN TESTING. A DESCRIPTION OF EACH FIELD 01610411 ! 165: C OF THE PREAMBLE FOLLOWS. 01620411 ! 166: C 01630411 ! 167: C VARIABLE NAME IN PROGRAM FIELD NUMBER 01640411 ! 168: C ------------------------ ------------ 01650411 ! 169: C 01660411 ! 170: C IPROG (ROUTINE NAME) - 1 01670411 ! 171: C IFILE (LOGICAL/X-NUMBER) - 2 01680411 ! 172: C ITOTR (RECORDS IN FILE) - 3 01690411 ! 173: C IRLGN (LENGTH OF RECORD) - 4 01700411 ! 174: C IRECN (RECORD NUMBER) - 5 01710411 ! 175: C IEOF (9999 IF LAST RECORD) - 6 01720411 ! 176: C 01730411 ! 177: C 01740411 ! 178: C 01750411 ! 179: C 01760411 ! 180: C INITIALIZATION SECTION. 01770411 ! 181: C 01780411 ! 182: C INITIALIZE CONSTANTS 01790411 ! 183: C ******************** 01800411 ! 184: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 01810411 ! 185: I01 = 5 01820411 ! 186: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 01830411 ! 187: I02 = 6 01840411 ! 188: C SYSTEM ENVIRONMENT SECTION 01850411 ! 189: C 01860411 ! 190: I01 = 5 01870411 ! 191: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 01880411 ! 192: C (UNIT NUMBER FOR CARD READER). 01890411 ! 193: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD01900411 ! 194: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01910411 ! 195: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 01920411 ! 196: C 01930411 ! 197: I02 = 6 01940411 ! 198: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 01950411 ! 199: C (UNIT NUMBER FOR PRINTER). 01960411 ! 200: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.01970411 ! 201: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01980411 ! 202: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 01990411 ! 203: C 02000411 ! 204: IVPASS = 0 02010411 ! 205: IVFAIL = 0 02020411 ! 206: IVDELE = 0 02030411 ! 207: ICZERO = 0 02040411 ! 208: C 02050411 ! 209: C WRITE OUT PAGE HEADERS 02060411 ! 210: C 02070411 ! 211: WRITE (I02,90002) 02080411 ! 212: WRITE (I02,90006) 02090411 ! 213: WRITE (I02,90008) 02100411 ! 214: WRITE (I02,90004) 02110411 ! 215: WRITE (I02,90010) 02120411 ! 216: WRITE (I02,90004) 02130411 ! 217: WRITE (I02,90016) 02140411 ! 218: WRITE (I02,90001) 02150411 ! 219: WRITE (I02,90004) 02160411 ! 220: WRITE (I02,90012) 02170411 ! 221: WRITE (I02,90014) 02180411 ! 222: WRITE (I02,90004) 02190411 ! 223: C 02200411 ! 224: I04 = 8 02210411 ! 225: C I04 CONTAINS THE LOGICAL UNIT NUMBER FOR A SEQUENTIAL ACCESS FILE02220411 ! 226: OPEN(UNIT=I04,ACCESS='SEQUENTIAL',FORM='UNFORMATTED') 02230411 ! 227: CX041 THIS CARD IS REPLACED BY CONTENTS OF X-041 CARD 02240411 ! 228: IPROG = 411 02250411 ! 229: IFILE = I04 02260411 ! 230: ITOTR = 142 02270411 ! 231: IRLGN = 80 02280411 ! 232: IRECN = 0 02290411 ! 233: IEOF = 0 02300411 ! 234: C 02310411 ! 235: C **** FCVS PROGRAM 411 - TEST 001 **** 02320411 ! 236: C 02330411 ! 237: C 02340411 ! 238: C TEST 001 USES THE REWIND STATEMENT ON A FILE THAT IS CONNECTED 02350411 ! 239: C BUT DOES NOT EXIST. THERE SHOULD BE NO EFFECT ON THE FILE WHEN 02360411 ! 240: C THIS STATEMENT IS EXECUTED. CONNECTION OF THE FILE TO A UNIT 02370411 ! 241: C IS ASSUMED TO BE DONE BY PRECONNECTION. 02380411 ! 242: C 02390411 ! 243: C SEE SECTION 12.10.4.3, REWIND STATEMENT 02400411 ! 244: C 02410411 ! 245: C 02420411 ! 246: IVTNUM = 1 02430411 ! 247: IF (ICZERO) 30010, 0010, 30010 02440411 ! 248: 0010 CONTINUE 02450411 ! 249: IVCORR = 1 02460411 ! 250: IVCOMP = 0 02470411 ! 251: REWIND I04 02480411 ! 252: IVCOMP = 1 02490411 ! 253: 40010 IF (IVCOMP - 1) 20010, 10010, 20010 02500411 ! 254: 30010 IVDELE = IVDELE + 1 02510411 ! 255: WRITE (I02,80000) IVTNUM 02520411 ! 256: IF (ICZERO) 10010, 0021, 20010 02530411 ! 257: 10010 IVPASS = IVPASS + 1 02540411 ! 258: WRITE (I02,80002) IVTNUM 02550411 ! 259: GO TO 0021 02560411 ! 260: 20010 IVFAIL = IVFAIL + 1 02570411 ! 261: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02580411 ! 262: 0021 CONTINUE 02590411 ! 263: C 02600411 ! 264: C **** FCVS PROGRAM 411 - TEST 002 **** 02610411 ! 265: C 02620411 ! 266: C 02630411 ! 267: C TEST 002 USES THE ENDFILE STATEMENT TO CREATE A FILE THAT IS 02640411 ! 268: C CONNECTED BUT DOES NOT EXIST. NO RECORDS HAVE BEEN WRITTEN TO 02650411 ! 269: C THE FILE BEFORE THE ENDFILE STATEMENT IS EXECUTED. AS IN THE 02660411 ! 270: C PRECEDING TEST, IT IS ASSUMED THAT CONNECTION OF THE FILE TO A 02670411 ! 271: C UNIT IS DONE BY PRECONNECTION. 02680411 ! 272: C 02690411 ! 273: C SEE SECTIONS 12.2.1, FILE EXISTENCE 02700411 ! 274: C 12.10.4.2, ENDFILE STATEMENT 02710411 ! 275: C 02720411 ! 276: C 02730411 ! 277: IVTNUM = 2 02740411 ! 278: IF (ICZERO) 30020, 0020, 30020 02750411 ! 279: 0020 CONTINUE 02760411 ! 280: IVCORR = 1 02770411 ! 281: IVCOMP = 0 02780411 ! 282: ENDFILE I04 02790411 ! 283: REWIND I04 02800411 ! 284: READ (I04, END = 0023) IVON01 02810411 ! 285: C 02820411 ! 286: C TO TEST CREATION OF A FILE VIA A ENDFILE STATEMENT THE FILE 02830411 ! 287: C IS REWOUND AND READ. AN END-OF-FILE CONDITION IS EXPECTED TO 02840411 ! 288: C OCCUR ON THE FIRST READ SINCE THE ONLY RECORD WRITTEN TO THE 02850411 ! 289: C FILE WAS THE ENDFILE RECORD. 02860411 ! 290: C 02870411 ! 291: IVCOMP = 0 02880411 ! 292: GO TO 40020 02890411 ! 293: 0023 IVCOMP = 1 02900411 ! 294: 40020 IF (IVCOMP - 1) 20020, 10020, 20020 02910411 ! 295: 30020 IVDELE = IVDELE + 1 02920411 ! 296: WRITE (I02,80000) IVTNUM 02930411 ! 297: IF (ICZERO) 10020, 0031, 20020 02940411 ! 298: 10020 IVPASS = IVPASS + 1 02950411 ! 299: WRITE (I02,80002) IVTNUM 02960411 ! 300: GO TO 0031 02970411 ! 301: 20020 IVFAIL = IVFAIL + 1 02980411 ! 302: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02990411 ! 303: 0031 CONTINUE 03000411 ! 304: C 03010411 ! 305: C 03020411 ! 306: C TESTS 003 THROUGH 019 USE A PRECONNECTED FILE FOR SEQUENTIAL 03030411 ! 307: C ACCESS TO WRITE 141 RECORDS TO THE FILE. THESE TESTS TEST USE OF 03040411 ! 308: C THE ALLOWABLE FORMS OF THE WRITE STATEMENT ON A FILE CONNECTED 03050411 ! 309: C FOR SEQUENTIAL ACCESS. THE WRITE STATEMENT IS USED WITH 03060411 ! 310: C THE I/O LIST ITEM AS A VARIABLE, ARRAY ELEMENT AND AN ARRAY. 03070411 ! 311: C THE PURPOSE OF TESTS 003 THROUGH 019 IS TO CHECK THE COMPILER'S03080411 ! 312: C ABILITY TO HANDLE THE VARIOUS STATEMENT CONSTRUCTS OF THE 03090411 ! 313: C WRITE STATEMENT. LATER TESTS WITHIN THIS ROUINE READ AND 03100411 ! 314: C CHECK THE RECORDS WHICH ARE CREATED. 03110411 ! 315: C THE VALUE IN IVCORR FOR TESTS 002 THROUGH 013 IS THE RECORD 03120411 ! 316: C NUMBER FOR THE RECORD. 03130411 ! 317: C 03140411 ! 318: C 03150411 ! 319: C 03160411 ! 320: C **** FCVS PROGRAM 411 - TEST 003 **** 03170411 ! 321: C 03180411 ! 322: C 03190411 ! 323: IVTNUM = 3 03200411 ! 324: IF (ICZERO) 30030, 0030, 30030 03210411 ! 325: 0030 CONTINUE 03220411 ! 326: REWIND I04 03230411 ! 327: C REPOSITION TO BEGINNING OF FILE 03240411 ! 328: C 03250411 ! 329: C TEST 003 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 03260411 ! 330: C IS A VARIABLE OF INTEGER TYPE. 03270411 ! 331: C 03280411 ! 332: IRECN = 01 03290411 ! 333: IVCORR = 01 03300411 ! 334: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 03310411 ! 335: 1 ICON21, ICON22, ICON31, ICON32, ICON33, ICON34, ICON55, ICON56 03320411 ! 336: IVCOMP = IRECN 03330411 ! 337: 40030 IF (IVCOMP - 01) 20030, 10030, 20030 03340411 ! 338: 30030 IVDELE = IVDELE + 1 03350411 ! 339: WRITE (I02,80000) IVTNUM 03360411 ! 340: IF (ICZERO) 10030, 0041, 20030 03370411 ! 341: 10030 IVPASS = IVPASS + 1 03380411 ! 342: WRITE (I02,80002) IVTNUM 03390411 ! 343: GO TO 0041 03400411 ! 344: 20030 IVFAIL = IVFAIL + 1 03410411 ! 345: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03420411 ! 346: 0041 CONTINUE 03430411 ! 347: C 03440411 ! 348: C **** FCVS PROGRAM 411 - TEST 004 **** 03450411 ! 349: C 03460411 ! 350: C 03470411 ! 351: C TEST 004 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 03480411 ! 352: C IS A VARIABLE OF REAL TYPE. 03490411 ! 353: C 03500411 ! 354: C 03510411 ! 355: IVTNUM = 4 03520411 ! 356: IF (ICZERO) 30040, 0040, 30040 03530411 ! 357: 0040 CONTINUE 03540411 ! 358: IRECN = 02 03550411 ! 359: IVCORR = 02 03560411 ! 360: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 03570411 ! 361: 1 RCON21, RCON22, RCON31, RCON32, RCON33, RCON34, RCON55, RCON56 03580411 ! 362: IVCOMP = IRECN 03590411 ! 363: 40040 IF (IVCOMP - 02) 20040, 10040, 20040 03600411 ! 364: 30040 IVDELE = IVDELE + 1 03610411 ! 365: WRITE (I02,80000) IVTNUM 03620411 ! 366: IF (ICZERO) 10040, 0051, 20040 03630411 ! 367: 10040 IVPASS = IVPASS + 1 03640411 ! 368: WRITE (I02,80002) IVTNUM 03650411 ! 369: GO TO 0051 03660411 ! 370: 20040 IVFAIL = IVFAIL + 1 03670411 ! 371: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03680411 ! 372: 0051 CONTINUE 03690411 ! 373: C 03700411 ! 374: C **** FCVS PROGRAM 411 - TEST 005 **** 03710411 ! 375: C 03720411 ! 376: C 03730411 ! 377: C TEST 005 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 03740411 ! 378: C IS A VARIABLE OF LOGICAL TYPE. 03750411 ! 379: C 03760411 ! 380: C 03770411 ! 381: IVTNUM = 5 03780411 ! 382: IF (ICZERO) 30050, 0050, 30050 03790411 ! 383: 0050 CONTINUE 03800411 ! 384: IRECN = 03 03810411 ! 385: IVCORR = 03 03820411 ! 386: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 03830411 ! 387: 1 LCONT1, LCONF2, LCONT3, LCONF4, LCONT5, LCONF6, LCONT7, LCONF803840411 ! 388: IVCOMP = IRECN 03850411 ! 389: 40050 IF (IVCOMP - 03) 20050, 10050, 20050 03860411 ! 390: 30050 IVDELE = IVDELE + 1 03870411 ! 391: WRITE (I02,80000) IVTNUM 03880411 ! 392: IF (ICZERO) 10050, 0061, 20050 03890411 ! 393: 10050 IVPASS = IVPASS + 1 03900411 ! 394: WRITE (I02,80002) IVTNUM 03910411 ! 395: GO TO 0061 03920411 ! 396: 20050 IVFAIL = IVFAIL + 1 03930411 ! 397: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03940411 ! 398: 0061 CONTINUE 03950411 ! 399: C 03960411 ! 400: C **** FCVS PROGRAM 411 - TEST 006 **** 03970411 ! 401: C 03980411 ! 402: C 03990411 ! 403: C TEST 006 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 04000411 ! 404: C IS AN ARRAY ELEMENT OF INTEGER TYPE. ONE, TWO AND THREE 04010411 ! 405: C DIMENSION ARRAYS ARE USED. 04020411 ! 406: C 04030411 ! 407: C 04040411 ! 408: IVTNUM = 6 04050411 ! 409: IF (ICZERO) 30060, 0060, 30060 04060411 ! 410: 0060 CONTINUE 04070411 ! 411: IRECN = 04 04080411 ! 412: IVCORR = 04 04090411 ! 413: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 04100411 ! 414: 1 IAON11(1), IAON11(2), IAON21(1,2), IAON21(2,2), IAON31(1,1,2), 04110411 ! 415: 2 IAON31(2,1,2), IAON11(7), IAON11(8) 04120411 ! 416: IVCOMP = IRECN 04130411 ! 417: 40060 IF (IVCOMP - 04) 20060, 10060, 20060 04140411 ! 418: 30060 IVDELE = IVDELE + 1 04150411 ! 419: WRITE (I02,80000) IVTNUM 04160411 ! 420: IF (ICZERO) 10060, 0071, 20060 04170411 ! 421: 10060 IVPASS = IVPASS + 1 04180411 ! 422: WRITE (I02,80002) IVTNUM 04190411 ! 423: GO TO 0071 04200411 ! 424: 20060 IVFAIL = IVFAIL + 1 04210411 ! 425: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04220411 ! 426: 0071 CONTINUE 04230411 ! 427: C 04240411 ! 428: C **** FCVS PROGRAM 411 - TEST 007 **** 04250411 ! 429: C 04260411 ! 430: C 04270411 ! 431: C TEST 007 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 04280411 ! 432: C IS AN ARRAY ELEMENT OF REAL TYPE. ONE, TWO AND THREE 04290411 ! 433: C DIMENSION ARRAYS ARE USED. 04300411 ! 434: C 04310411 ! 435: C 04320411 ! 436: IVTNUM = 7 04330411 ! 437: IF (ICZERO) 30070, 0070, 30070 04340411 ! 438: 0070 CONTINUE 04350411 ! 439: IRECN = 05 04360411 ! 440: IVCORR = 05 04370411 ! 441: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 04380411 ! 442: 1 RAON11(1), RAON11(2), RAON21(1,2), RAON21(2,2), RAON31(1,1,2), 04390411 ! 443: 2RAON31(2,1,2), RAON11(7), RAON11 (8) 04400411 ! 444: IVCOMP = IRECN 04410411 ! 445: 40070 IF (IVCOMP - 05) 20070, 10070, 20070 04420411 ! 446: 30070 IVDELE = IVDELE + 1 04430411 ! 447: WRITE (I02,80000) IVTNUM 04440411 ! 448: IF (ICZERO) 10070, 0081, 20070 04450411 ! 449: 10070 IVPASS = IVPASS + 1 04460411 ! 450: WRITE (I02,80002) IVTNUM 04470411 ! 451: GO TO 0081 04480411 ! 452: 20070 IVFAIL = IVFAIL + 1 04490411 ! 453: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04500411 ! 454: 0081 CONTINUE 04510411 ! 455: C 04520411 ! 456: C **** FCVS PROGRAM 411 - TEST 008 **** 04530411 ! 457: C 04540411 ! 458: C 04550411 ! 459: C 04560411 ! 460: IVTNUM = 8 04570411 ! 461: IF (ICZERO) 30080, 0080, 30080 04580411 ! 462: 0080 CONTINUE 04590411 ! 463: IRECN = 06 04600411 ! 464: IVCORR = 06 04610411 ! 465: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 04620411 ! 466: 1 LAON11(1), LAON11(2), LAON21(1,2), LAON21(2,2), LAON31(1,1,2), 04630411 ! 467: 2 LAON31(2,1,2), LAON11(7), LAON11(8) 04640411 ! 468: IVCOMP = IRECN 04650411 ! 469: 40080 IF (IVCOMP - 06) 20080, 10080, 20080 04660411 ! 470: 30080 IVDELE = IVDELE + 1 04670411 ! 471: WRITE (I02,80000) IVTNUM 04680411 ! 472: IF (ICZERO) 10080, 0091, 20080 04690411 ! 473: 10080 IVPASS = IVPASS + 1 04700411 ! 474: WRITE (I02,80002) IVTNUM 04710411 ! 475: GO TO 0091 04720411 ! 476: 20080 IVFAIL = IVFAIL + 1 04730411 ! 477: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04740411 ! 478: 0091 CONTINUE 04750411 ! 479: C 04760411 ! 480: C **** FCVS PROGRAM 411 - TEST 009 **** 04770411 ! 481: C 04780411 ! 482: C 04790411 ! 483: C TEST 009 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 04800411 ! 484: C IS AN ARRAY OF INTEGER TYPE. 04810411 ! 485: C 04820411 ! 486: C 04830411 ! 487: IVTNUM = 9 04840411 ! 488: IF (ICZERO) 30090, 0090, 30090 04850411 ! 489: 0090 CONTINUE 04860411 ! 490: IRECN = 07 04870411 ! 491: IVCORR = 07 04880411 ! 492: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 04890411 ! 493: 1 IAON31 04900411 ! 494: IVCOMP = IRECN 04910411 ! 495: 40090 IF (IVCOMP - 07) 20090, 10090, 20090 04920411 ! 496: 30090 IVDELE = IVDELE + 1 04930411 ! 497: WRITE (I02,80000) IVTNUM 04940411 ! 498: IF (ICZERO) 10090, 0101, 20090 04950411 ! 499: 10090 IVPASS = IVPASS + 1 04960411 ! 500: WRITE (I02,80002) IVTNUM 04970411 ! 501: GO TO 0101 04980411 ! 502: 20090 IVFAIL = IVFAIL + 1 04990411 ! 503: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05000411 ! 504: 0101 CONTINUE 05010411 ! 505: C 05020411 ! 506: C **** FCVS PROGRAM 411 - TEST 010 **** 05030411 ! 507: C 05040411 ! 508: C 05050411 ! 509: C TEST 010 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 05060411 ! 510: C IS AN ARRAY OF REAL TYPE. 05070411 ! 511: C 05080411 ! 512: C 05090411 ! 513: IVTNUM = 10 05100411 ! 514: IF (ICZERO) 30100, 0100, 30100 05110411 ! 515: 0100 CONTINUE 05120411 ! 516: IRECN = 08 05130411 ! 517: IVCORR = 08 05140411 ! 518: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 05150411 ! 519: 1 RAON31 05160411 ! 520: IVCOMP = IRECN 05170411 ! 521: 40100 IF (IVCOMP - 08) 20100, 10100, 20100 05180411 ! 522: 30100 IVDELE = IVDELE + 1 05190411 ! 523: WRITE (I02,80000) IVTNUM 05200411 ! 524: IF (ICZERO) 10100, 0111, 20100 05210411 ! 525: 10100 IVPASS = IVPASS + 1 05220411 ! 526: WRITE (I02,80002) IVTNUM 05230411 ! 527: GO TO 0111 05240411 ! 528: 20100 IVFAIL = IVFAIL + 1 05250411 ! 529: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05260411 ! 530: 0111 CONTINUE 05270411 ! 531: C 05280411 ! 532: C **** FCVS PROGRAM 411 - TEST 011 **** 05290411 ! 533: C 05300411 ! 534: C 05310411 ! 535: C TEST 011 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 05320411 ! 536: C IS AN ARRAY OF LOGICAL TYPE. 05330411 ! 537: C 05340411 ! 538: C 05350411 ! 539: IVTNUM = 11 05360411 ! 540: IF (ICZERO) 30110, 0110, 30110 05370411 ! 541: 0110 CONTINUE 05380411 ! 542: IRECN = 09 05390411 ! 543: IVCORR = 09 05400411 ! 544: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 05410411 ! 545: 1 LAON31 05420411 ! 546: IVCOMP = IRECN 05430411 ! 547: 40110 IF (IVCOMP - 09) 20110, 10110, 20110 05440411 ! 548: 30110 IVDELE = IVDELE + 1 05450411 ! 549: WRITE (I02,80000) IVTNUM 05460411 ! 550: IF (ICZERO) 10110, 0121, 20110 05470411 ! 551: 10110 IVPASS = IVPASS + 1 05480411 ! 552: WRITE (I02,80002) IVTNUM 05490411 ! 553: GO TO 0121 05500411 ! 554: 20110 IVFAIL = IVFAIL + 1 05510411 ! 555: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05520411 ! 556: 0121 CONTINUE 05530411 ! 557: C 05540411 ! 558: C **** FCVS PROGRAM 411 - TEST 012 **** 05550411 ! 559: C 05560411 ! 560: C 05570411 ! 561: C TEST 012 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 05580411 ! 562: C IS AN IMPLIED-DO WITH AN ITEM OF INTEGER TYPE. 05590411 ! 563: C THE FIELD VALUES ARE WRITTEN IN MIXED ORDER VIS-A-VIS THE 05600411 ! 564: C ELEMENT SEQUENCE OF ARRAY IAON31. THE SEQUENCE OF VALUES WRITTEN 05610411 ! 565: C IN THE RECORD ARE 11, 512, 777, -32767, -11, -512, -777, 32767. 05620411 ! 566: C 05630411 ! 567: C 05640411 ! 568: IVTNUM = 12 05650411 ! 569: IF (ICZERO) 30120, 0120, 30120 05660411 ! 570: 0120 CONTINUE 05670411 ! 571: IRECN = 10 05680411 ! 572: IVCORR = 10 05690411 ! 573: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 05700411 ! 574: 1 (((IAON31 (J,K,I), I=1,2), K=1,2), J=1,2) 05710411 ! 575: IVCOMP = IRECN 05720411 ! 576: 40120 IF (IVCOMP - 10) 20120, 10120, 20120 05730411 ! 577: 30120 IVDELE = IVDELE + 1 05740411 ! 578: WRITE (I02,80000) IVTNUM 05750411 ! 579: IF (ICZERO) 10120, 0131, 20120 05760411 ! 580: 10120 IVPASS = IVPASS + 1 05770411 ! 581: WRITE (I02,80002) IVTNUM 05780411 ! 582: GO TO 0131 05790411 ! 583: 20120 IVFAIL = IVFAIL + 1 05800411 ! 584: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05810411 ! 585: 0131 CONTINUE 05820411 ! 586: C 05830411 ! 587: C **** FCVS PROGRAM 411 - TEST 013 **** 05840411 ! 588: C 05850411 ! 589: C 05860411 ! 590: C TEST 013 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 05870411 ! 591: C IS AN IMPLIED-DO WITH AN ITEM OF REAL TYPE. THE FIELD VALUES 05880411 ! 592: C (IN FIELD POSITION ORDER) WRITTEN IN THE RECORD ARE 11., -11., 05890411 ! 593: C 7.77, -7.77, .512, -.512, -32767., 32767. 05900411 ! 594: C 05910411 ! 595: C 05920411 ! 596: IVTNUM = 13 05930411 ! 597: IF (ICZERO) 30130, 0130, 30130 05940411 ! 598: 0130 CONTINUE 05950411 ! 599: IRECN = 11 05960411 ! 600: IVCORR = 11 05970411 ! 601: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 05980411 ! 602: 1 (((RAON31 (J,K,I), J=1,2), K=1,2), I=1,2) 05990411 ! 603: IVCOMP = IRECN 06000411 ! 604: 40130 IF (IVCOMP - 11) 20130, 10130, 20130 06010411 ! 605: 30130 IVDELE = IVDELE + 1 06020411 ! 606: WRITE (I02,80000) IVTNUM 06030411 ! 607: IF (ICZERO) 10130, 0141, 20130 06040411 ! 608: 10130 IVPASS = IVPASS + 1 06050411 ! 609: WRITE (I02,80002) IVTNUM 06060411 ! 610: GO TO 0141 06070411 ! 611: 20130 IVFAIL = IVFAIL + 1 06080411 ! 612: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06090411 ! 613: 0141 CONTINUE 06100411 ! 614: C 06110411 ! 615: C **** FCVS PROGRAM 411 - TEST 014 **** 06120411 ! 616: C 06130411 ! 617: C 06140411 ! 618: C TEST 014 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 06150411 ! 619: C IS AN IMPLIED-DO WITH AN ITEM OF LOGICAL TYPE. 06160411 ! 620: C THE FIELD VALUES ARE WRITTEN IN MIXED ORDER (AN ORDER 06170411 ! 621: C DIFFERENT THAN TEST 012 ABOVE) VIS-A-VIS THE 06180411 ! 622: C ELEMENT SEQUENCE OF ARRAY LAON31. THE SEQUENCE OF VALUES WRITTEN 06190411 ! 623: C IN THE RECORD ARE .TRUE., .TRUE., .FALSE., .FALSE., .TRUE., .TRUE.06200411 ! 624: C .FALSE, .FALSE. 06210411 ! 625: C 06220411 ! 626: C 06230411 ! 627: IVTNUM = 14 06240411 ! 628: IF (ICZERO) 30140, 0140, 30140 06250411 ! 629: 0140 CONTINUE 06260411 ! 630: IRECN = 12 06270411 ! 631: IVCORR = 12 06280411 ! 632: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 06290411 ! 633: 1 (((LAON31 (J,K,I), K=1,2), J=1,2), I=1,2) 06300411 ! 634: IVCOMP = IRECN 06310411 ! 635: 40140 IF (IVCOMP - 12) 20140, 10140, 20140 06320411 ! 636: 30140 IVDELE = IVDELE + 1 06330411 ! 637: WRITE (I02,80000) IVTNUM 06340411 ! 638: IF (ICZERO) 10140, 0151, 20140 06350411 ! 639: 10140 IVPASS = IVPASS + 1 06360411 ! 640: WRITE (I02,80002) IVTNUM 06370411 ! 641: GO TO 0151 06380411 ! 642: 20140 IVFAIL = IVFAIL + 1 06390411 ! 643: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06400411 ! 644: 0151 CONTINUE 06410411 ! 645: C 06420411 ! 646: C **** FCVS PROGRAM 411 - TEST 015 **** 06430411 ! 647: C 06440411 ! 648: C 06450411 ! 649: C TEST 015 USES A WRITE STATEMENT WITHOUT ANY OUTPUT LIST ITEMS. 06460411 ! 650: C THE OUTPUT LIST ITEMS ARE OPTIONAL. 06470411 ! 651: C ALSO THE LENGTH OF AN UNFORMATTED RECORD MAY BE ZERO. 06480411 ! 652: C 06490411 ! 653: C SEE SECTIONS 12.1.2, UNFORMATTED RECORDS 06500411 ! 654: C 12.8, READ, WRITE AND PRINT STATEMENTS 06510411 ! 655: C 06520411 ! 656: C 06530411 ! 657: IVTNUM = 15 06540411 ! 658: IF (ICZERO) 30150, 0150, 30150 06550411 ! 659: 0150 CONTINUE 06560411 ! 660: IRECN = 13 06570411 ! 661: IVCORR = 13 06580411 ! 662: WRITE (I04) 06590411 ! 663: IVCOMP = IRECN 06600411 ! 664: 40150 IF (IVCOMP - 13) 20150, 10150, 20150 06610411 ! 665: 30150 IVDELE = IVDELE + 1 06620411 ! 666: WRITE (I02,80000) IVTNUM 06630411 ! 667: IF (ICZERO) 10150, 0161, 20150 06640411 ! 668: 10150 IVPASS = IVPASS + 1 06650411 ! 669: WRITE (I02,80002) IVTNUM 06660411 ! 670: GO TO 0161 06670411 ! 671: 20150 IVFAIL = IVFAIL + 1 06680411 ! 672: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06690411 ! 673: 0161 CONTINUE 06700411 ! 674: C 06710411 ! 675: C **** FCVS PROGRAM 411 - TEST 016 **** 06720411 ! 676: C 06730411 ! 677: C 06740411 ! 678: C TEST 016 IS SIMILAR TO THE PREVIOUS TEST EXCEPT THE WRITE 06750411 ! 679: C STATEMENT CONTAINS OUTPUT LIST ITEMS. ONE HUNDRED RECORDS ARE 06760411 ! 680: C WRITTEN. 06770411 ! 681: C 06780411 ! 682: C 06790411 ! 683: IVTNUM = 16 06800411 ! 684: IF (ICZERO) 30160, 0160, 30160 06810411 ! 685: 0160 CONTINUE 06820411 ! 686: IRECN = 13 06830411 ! 687: DO 4132 I = 1,100 06840411 ! 688: IRECN = IRECN + 1 06850411 ! 689: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 06860411 ! 690: 1 ICON21, ICON22, ICON31, ICON32, ICON33, ICON34, ICON55, ICON56 06870411 ! 691: 4132 CONTINUE 06880411 ! 692: IVCORR = 100 06890411 ! 693: IVCOMP = IRECN - 13 06900411 ! 694: 40160 IF (IVCOMP - 100) 20160, 10160, 20160 06910411 ! 695: 30160 IVDELE = IVDELE + 1 06920411 ! 696: WRITE (I02,80000) IVTNUM 06930411 ! 697: IF (ICZERO) 10160, 0171, 20160 06940411 ! 698: 10160 IVPASS = IVPASS + 1 06950411 ! 699: WRITE (I02,80002) IVTNUM 06960411 ! 700: GO TO 0171 06970411 ! 701: 20160 IVFAIL = IVFAIL + 1 06980411 ! 702: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06990411 ! 703: 0171 CONTINUE 07000411 ! 704: C 07010411 ! 705: C 07020411 ! 706: C THE NEXT THREE TESTS TEST USE OF THE BACKSPACE AND ENDFILE 07030411 ! 707: C STATEMENTS 07040411 ! 708: C 07050411 ! 709: C 07060411 ! 710: C 07070411 ! 711: C **** FCVS PROGRAM 411 - TEST 017 **** 07080411 ! 712: C 07090411 ! 713: C TEST 017 USES AN ENDFILE STATEMENT TO WRITE AN ENDFILE 07100411 ! 714: C RECORD TO A FILE WITH UNFORMATTED RECORDS. AFTER EXECUTION 07110411 ! 715: C OF THIS STATEMENT THE FILE SHOULD BE POSITION AFTER THE ENDFILE 07120411 ! 716: C RECORD. 07130411 ! 717: C 07140411 ! 718: C 07150411 ! 719: IVTNUM = 17 07160411 ! 720: IF (ICZERO) 30170, 0170, 30170 07170411 ! 721: 0170 CONTINUE 07180411 ! 722: IVCORR = 1 07190411 ! 723: IVCOMP = 0 07200411 ! 724: 0172 ENDFILE I04 07210411 ! 725: IVCOMP = 1 07220411 ! 726: 40170 IF (IVCOMP - 1) 20170, 10170, 20170 07230411 ! 727: C 07240411 ! 728: 30170 IVDELE = IVDELE + 1 07250411 ! 729: WRITE (I02,80000) IVTNUM 07260411 ! 730: IF (ICZERO) 10170, 0181, 20170 07270411 ! 731: 10170 IVPASS = IVPASS + 1 07280411 ! 732: WRITE (I02,80002) IVTNUM 07290411 ! 733: GO TO 0181 07300411 ! 734: 20170 IVFAIL = IVFAIL + 1 07310411 ! 735: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07320411 ! 736: 0181 CONTINUE 07330411 ! 737: C 07340411 ! 738: C **** FCVS PROGRAM 411 - TEST 018 **** 07350411 ! 739: C 07360411 ! 740: C 07370411 ! 741: C TEST 018 USES THE BACKSPACE STATEMENT TO REPOSITION THE FILE 07380411 ! 742: C BEFORE THE ENDFILE RECORD. 07390411 ! 743: C 07400411 ! 744: C SEE SECTIONS 12.10.4.1, BACKSPACE STATEMENT 07410411 ! 745: C 12.10.4.2, ENDFILE STATEMENT 07420411 ! 746: C 07430411 ! 747: C 07440411 ! 748: IVTNUM = 18 07450411 ! 749: IF (ICZERO) 30180, 0180, 30180 07460411 ! 750: 0180 CONTINUE 07470411 ! 751: IVCORR = 1 07480411 ! 752: IVCOMP = 0 07490411 ! 753: BACKSPACE I04 07500411 ! 754: IVCOMP = 1 07510411 ! 755: 40180 IF (IVCOMP - 1) 20180, 10180, 20180 07520411 ! 756: 30180 IVDELE = IVDELE + 1 07530411 ! 757: WRITE (I02,80000) IVTNUM 07540411 ! 758: IF (ICZERO) 10180, 0191, 20180 07550411 ! 759: 10180 IVPASS = IVPASS + 1 07560411 ! 760: WRITE (I02,80002) IVTNUM 07570411 ! 761: GO TO 0191 07580411 ! 762: 20180 IVFAIL = IVFAIL + 1 07590411 ! 763: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07600411 ! 764: 0191 CONTINUE 07610411 ! 765: C 07620411 ! 766: C **** FCVS PROGRAM 411 - TEST 019 **** 07630411 ! 767: C 07640411 ! 768: C 07650411 ! 769: C TEST 019 IS A CONTINUATION OF THE ENDFILE AND BACKSPACE TESTS 07660411 ! 770: C (TWO PREVIOUS TESTS). THIS TEST CONTINUES WRITTING RECORDS TO THE07670411 ! 771: C FILE OVER THE ENDFILE RECORD PREVIOUSLY WRITTEN IN TEST 017. 07680411 ! 772: C TWENTY EIGHT RECORDS ARE WRITTEN TO THE FILE FOLLOWED BY AN 07690411 ! 773: C ENDFILE. 07700411 ! 774: C 07710411 ! 775: C 07720411 ! 776: IVTNUM = 19 07730411 ! 777: IF (ICZERO) 30190, 0190, 30190 07740411 ! 778: 0190 CONTINUE 07750411 ! 779: IVCOMP = 0 07760411 ! 780: IRECN = 113 07770411 ! 781: DO 4112 I = 1,28 07780411 ! 782: IRECN = IRECN + 1 07790411 ! 783: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 07800411 ! 784: 1 ICON21, ICON22, ICON31, ICON32, ICON33, ICON34, ICON55, ICON56 07810411 ! 785: IVCOMP = IVCOMP + 1 07820411 ! 786: 4112 CONTINUE 07830411 ! 787: IVCORR = 29 07840411 ! 788: IEOF = 9999 07850411 ! 789: IRECN = IRECN + 1 07860411 ! 790: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF 07870411 ! 791: IVCOMP = IVCOMP + 1 07880411 ! 792: ENDFILE I04 07890411 ! 793: C 07900411 ! 794: C THERE SHOULD BE A TOTAL OF 142 RECORDS PLUS AN ENDFILE RECORD 07910411 ! 795: C IN THE FILE AFTER EXECUTION OF THIS TEST. 07920411 ! 796: C 07930411 ! 797: 40190 IF (IVCOMP - 29) 20190, 10190, 20190 07940411 ! 798: 30190 IVDELE = IVDELE + 1 07950411 ! 799: WRITE (I02,80000) IVTNUM 07960411 ! 800: IF (ICZERO) 10190, 0201, 20190 07970411 ! 801: 10190 IVPASS = IVPASS + 1 07980411 ! 802: WRITE (I02,80002) IVTNUM 07990411 ! 803: GO TO 0201 08000411 ! 804: 20190 IVFAIL = IVFAIL + 1 08010411 ! 805: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08020411 ! 806: 0201 CONTINUE 08030411 ! 807: C 08040411 ! 808: C 08050411 ! 809: C THE NEXT SERIES OF TESTS READ AND CHECK THE RECORDS CREATED IN 08060411 ! 810: C TESTS 03 THROUGH 019. EACH OF THE TESTS IN THIS SET IS CHECKING 08070411 ! 811: C TWO THINGS. FIRST, THAT THE READ STATEMENT CONSTRUCT IS ACCEPTED 08080411 ! 812: C BY THE COMPILER AND SECOND THAT THE RECORDS CREATED IN TESTS 003 08090411 ! 813: C THROUGH 019 AND READ IN THESE TESTS CAN GIVE PREDICTIBLE VALUES. 08100411 ! 814: C THE READ STATEMENT IS USED WITH THE I/O LIST ITEMS AS A VARIABLE, 08110411 ! 815: C AN ARRAY ELEMENT AND AN ARRAY. 08120411 ! 816: C 08130411 ! 817: C 08140411 ! 818: C 08150411 ! 819: C **** FCVS PROGRAM 411 - TEST 020 **** 08160411 ! 820: C 08170411 ! 821: C 08180411 ! 822: C TEST 020 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 08190411 ! 823: C VARIABLE OF INTEGER TYPE. 08200411 ! 824: C 08210411 ! 825: C 08220411 ! 826: IVTNUM = 20 08230411 ! 827: IF (ICZERO) 30200, 0200, 30200 08240411 ! 828: 0200 CONTINUE 08250411 ! 829: REWIND I04 08260411 ! 830: C REPOSITION THE FILE TO THE FIRST RECORD 08270411 ! 831: IVON22 = 0 08280411 ! 832: IVON56 = 0 08290411 ! 833: IVCORR = 30 08300411 ! 834: IVCOMP = 1 08310411 ! 835: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 08320411 ! 836: 1 IVON21, IVON22, IVON31, IVON32, IVON33, IVON34, IVON55, IVON56 08330411 ! 837: IF (IRECN .EQ. 01) IVCOMP = IVCOMP * 2 08340411 ! 838: IF (IVON22 .EQ. -11) IVCOMP = IVCOMP * 3 08350411 ! 839: IF (IVON56 .EQ. 32767) IVCOMP = IVCOMP * 5 08360411 ! 840: 40200 IF (IVCOMP - 30) 20200, 10200, 20200 08370411 ! 841: 30200 IVDELE = IVDELE + 1 08380411 ! 842: WRITE (I02,80000) IVTNUM 08390411 ! 843: IF (ICZERO) 10200, 0211, 20200 08400411 ! 844: 10200 IVPASS = IVPASS + 1 08410411 ! 845: WRITE (I02,80002) IVTNUM 08420411 ! 846: GO TO 0211 08430411 ! 847: 20200 IVFAIL = IVFAIL + 1 08440411 ! 848: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08450411 ! 849: 0211 CONTINUE 08460411 ! 850: C 08470411 ! 851: C **** FCVS PROGRAM 411 - TEST 021 **** 08480411 ! 852: C 08490411 ! 853: C 08500411 ! 854: C TEST 021 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 08510411 ! 855: C VARIABLE OF REAL TYPE. 08520411 ! 856: C 08530411 ! 857: C 08540411 ! 858: IVTNUM = 21 08550411 ! 859: IF (ICZERO) 30210, 0210, 30210 08560411 ! 860: 0210 CONTINUE 08570411 ! 861: RVON22 = 0.0 08580411 ! 862: RVON31 = 0.0 08590411 ! 863: IVCORR = 30 08600411 ! 864: IVCOMP = 1 08610411 ! 865: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 08620411 ! 866: 1 RVON21, RVON22, RVON31, RVON32, RVON33, RVON34, RVON55, RVON56 08630411 ! 867: IF (IRECN .EQ. 02) IVCOMP = IVCOMP * 2 08640411 ! 868: IF (RVON22 .EQ. -11.) IVCOMP = IVCOMP * 3 08650411 ! 869: IF (RVON31 .EQ. 7.77) IVCOMP = IVCOMP * 5 08660411 ! 870: 40210 IF (IVCOMP - 30) 20210, 10210, 20210 08670411 ! 871: 30210 IVDELE = IVDELE + 1 08680411 ! 872: WRITE (I02,80000) IVTNUM 08690411 ! 873: IF (ICZERO) 10210, 0221, 20210 08700411 ! 874: 10210 IVPASS = IVPASS + 1 08710411 ! 875: WRITE (I02,80002) IVTNUM 08720411 ! 876: GO TO 0221 08730411 ! 877: 20210 IVFAIL = IVFAIL + 1 08740411 ! 878: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08750411 ! 879: 0221 CONTINUE 08760411 ! 880: C 08770411 ! 881: C **** FCVS PROGRAM 411 - TEST 022 **** 08780411 ! 882: C 08790411 ! 883: C 08800411 ! 884: C TEST 022 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 08810411 ! 885: C VARIABLE OF LOGICAL TYPE. 08820411 ! 886: C 08830411 ! 887: C 08840411 ! 888: IVTNUM = 22 08850411 ! 889: IF (ICZERO) 30220, 0220, 30220 08860411 ! 890: 0220 CONTINUE 08870411 ! 891: LVONT1 = .FALSE. 08880411 ! 892: LVONF6 = .TRUE. 08890411 ! 893: IVCORR = 30 08900411 ! 894: IVCOMP = 1 08910411 ! 895: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 08920411 ! 896: 1 LVONT1, LVONF2, LVONT3, LVONF4, LVONT5, LVONF6, LVONT7, LVONF808930411 ! 897: IF (IRECN .EQ. 03) IVCOMP = IVCOMP * 2 08940411 ! 898: IF (.NOT. LVONF6) IVCOMP = IVCOMP * 3 08950411 ! 899: IF (LVONT1) IVCOMP = IVCOMP * 5 08960411 ! 900: 40220 IF (IVCOMP - 30) 20220, 10220, 20220 08970411 ! 901: 30220 IVDELE = IVDELE + 1 08980411 ! 902: WRITE (I02,80000) IVTNUM 08990411 ! 903: IF (ICZERO) 10220, 0231, 20220 09000411 ! 904: 10220 IVPASS = IVPASS + 1 09010411 ! 905: WRITE (I02,80002) IVTNUM 09020411 ! 906: GO TO 0231 09030411 ! 907: 20220 IVFAIL = IVFAIL + 1 09040411 ! 908: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 09050411 ! 909: 0231 CONTINUE 09060411 ! 910: C 09070411 ! 911: C **** FCVS PROGRAM 411 - TEST 023 **** 09080411 ! 912: C 09090411 ! 913: C 09100411 ! 914: C TEST 023 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 09110411 ! 915: C ARRAY ELEMENT OF INTEGER TYPE. ONE, TWO, AND THREE 09120411 ! 916: C DIMENSION ARRAYS ARE USED. 09130411 ! 917: C 09140411 ! 918: C 09150411 ! 919: IVTNUM = 23 09160411 ! 920: IF (ICZERO) 30230, 0230, 30230 09170411 ! 921: 0230 CONTINUE 09180411 ! 922: IAON12(2) = 0 09190411 ! 923: IAON12(8) = 0 09200411 ! 924: IVCORR = 30 09210411 ! 925: IVCOMP = 1 09220411 ! 926: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 09230411 ! 927: 1 IAON12(1), IAON12(2), IAON22(1,2), IAON22(2,2), IAON32(1,1,2), 09240411 ! 928: 2 IAON32(2,1,2), IAON12(7), IAON12(8) 09250411 ! 929: IF (IRECN .EQ. 04) IVCOMP = IVCOMP * 2 09260411 ! 930: IF (IAON12(2) .EQ. -11) IVCOMP = IVCOMP * 3 09270411 ! 931: IF (IAON12(8) .EQ. 32767) IVCOMP = IVCOMP * 5 09280411 ! 932: C 09290411 ! 933: C THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER, A NEGATIVE 09300411 ! 934: C FIELD VALUE AND A POSITIVE FIELD VALUE. 09310411 ! 935: C 09320411 ! 936: 40230 IF (IVCOMP - 30) 20230, 10230, 20230 09330411 ! 937: 30230 IVDELE = IVDELE + 1 09340411 ! 938: WRITE (I02,80000) IVTNUM 09350411 ! 939: IF (ICZERO) 10230, 0241, 20230 09360411 ! 940: 10230 IVPASS = IVPASS + 1 09370411 ! 941: WRITE (I02,80002) IVTNUM 09380411 ! 942: GO TO 0241 09390411 ! 943: 20230 IVFAIL = IVFAIL + 1 09400411 ! 944: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 09410411 ! 945: 0241 CONTINUE 09420411 ! 946: C 09430411 ! 947: C **** FCVS PROGRAM 411 - TEST 024 **** 09440411 ! 948: C 09450411 ! 949: C 09460411 ! 950: C TEST 024 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 09470411 ! 951: C ARRAY ELEMENT OF REAL TYPE. ONE, TWO, AND THREE 09480411 ! 952: C DIMENSION ARRAYS ARE USED. 09490411 ! 953: C 09500411 ! 954: C 09510411 ! 955: IVTNUM = 24 09520411 ! 956: IF (ICZERO) 30240, 0240, 30240 09530411 ! 957: 0240 CONTINUE 09540411 ! 958: RAON22(2,2) = 0.0 09550411 ! 959: RAON32(1,1,2) = 0.0 09560411 ! 960: IVCORR = 30 09570411 ! 961: IVCOMP = 1 09580411 ! 962: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 09590411 ! 963: 1 RAON12(1), RAON12(2), RAON22(1,2), RAON22(2,2), RAON32(1,1,2), 09600411 ! 964: 2 RAON32(2,1,2), RAON12(7), RAON12(8) 09610411 ! 965: IF (IRECN .EQ. 05) IVCOMP = IVCOMP * 2 09620411 ! 966: IF (RAON22(2,2) .EQ. -7.77) IVCOMP = IVCOMP * 3 09630411 ! 967: IF (RAON32(1,1,2) .EQ. .512 ) IVCOMP = IVCOMP * 5 09640411 ! 968: C 09650411 ! 969: C THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER, A NEGATIVE 09660411 ! 970: C FIELD VALUE AND A POSITIVE FIELD VALUE. 09670411 ! 971: C 09680411 ! 972: 40240 IF (IVCOMP - 30) 20240, 10240, 20240 09690411 ! 973: 30240 IVDELE = IVDELE + 1 09700411 ! 974: WRITE (I02,80000) IVTNUM 09710411 ! 975: IF (ICZERO) 10240, 0251, 20240 09720411 ! 976: 10240 IVPASS = IVPASS + 1 09730411 ! 977: WRITE (I02,80002) IVTNUM 09740411 ! 978: GO TO 0251 09750411 ! 979: 20240 IVFAIL = IVFAIL + 1 09760411 ! 980: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 09770411 ! 981: 0251 CONTINUE 09780411 ! 982: C 09790411 ! 983: C **** FCVS PROGRAM 411 - TEST 025 **** 09800411 ! 984: C 09810411 ! 985: C 09820411 ! 986: C TEST 025 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 09830411 ! 987: C ARRAY ELEMENT OF LOGICAL TYPE. ONE, TWO, AND THREE 09840411 ! 988: C DIMENSION ARRAYS ARE USED. 09850411 ! 989: C 09860411 ! 990: C 09870411 ! 991: C 09880411 ! 992: IVTNUM = 25 09890411 ! 993: IF (ICZERO) 30250, 0250, 30250 09900411 ! 994: 0250 CONTINUE 09910411 ! 995: LAON12(1) = .FALSE. 09920411 ! 996: LAON32(2,1,2) = .TRUE. 09930411 ! 997: IVCORR = 30 09940411 ! 998: IVCOMP = 1 09950411 ! 999: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 09960411 ! 1000: 1 LAON12(1), LAON12(2), LAON22(1,2), LAON22(2,2), LAON32(1,1,2), 09970411 ! 1001: 2 LAON32(2,1,2), LAON12(7), LAON12(8) 09980411 ! 1002: IF (IRECN .EQ. 06) IVCOMP = IVCOMP * 2 09990411 ! 1003: IF (LAON12(1)) IVCOMP = IVCOMP * 3 10000411 ! 1004: IF (.NOT. LAON32(2,1,2)) IVCOMP = IVCOMP * 5 10010411 ! 1005: 40250 IF (IVCOMP - 30) 20250, 10250, 20250 10020411 ! 1006: 30250 IVDELE = IVDELE + 1 10030411 ! 1007: WRITE (I02,80000) IVTNUM 10040411 ! 1008: IF (ICZERO) 10250, 0261, 20250 10050411 ! 1009: 10250 IVPASS = IVPASS + 1 10060411 ! 1010: WRITE (I02,80002) IVTNUM 10070411 ! 1011: GO TO 0261 10080411 ! 1012: 20250 IVFAIL = IVFAIL + 1 10090411 ! 1013: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 10100411 ! 1014: 0261 CONTINUE 10110411 ! 1015: C 10120411 ! 1016: C **** FCVS PROGRAM 411 - TEST 026 **** 10130411 ! 1017: C 10140411 ! 1018: C 10150411 ! 1019: C TEST 026 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 10160411 ! 1020: C ARRAY OF INTEGER TYPE. 10170411 ! 1021: C 10180411 ! 1022: C 10190411 ! 1023: IVTNUM = 26 10200411 ! 1024: IF (ICZERO) 30260, 0260, 30260 10210411 ! 1025: 0260 CONTINUE 10220411 ! 1026: IAON32(2,1,1) = 0 10230411 ! 1027: IAON32(2,2,2) = 0 10240411 ! 1028: IVCORR = 30 10250411 ! 1029: IVCOMP = 1 10260411 ! 1030: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 10270411 ! 1031: 1 IAON32 10280411 ! 1032: IF (IRECN .EQ. 07) IVCOMP = IVCOMP * 2 10290411 ! 1033: IF (IAON32(2,1,1) .EQ. -11) IVCOMP = IVCOMP * 3 10300411 ! 1034: IF (IAON32(2,2,2) .EQ. 32767) IVCOMP = IVCOMP * 5 10310411 ! 1035: C 10320411 ! 1036: C THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER, A NEGATIVE 10330411 ! 1037: C FIELD VALUE AND A POSITIVE FIELD VALUE. 10340411 ! 1038: C 10350411 ! 1039: 40260 IF (IVCOMP - 30) 20260, 10260, 20260 10360411 ! 1040: 30260 IVDELE = IVDELE + 1 10370411 ! 1041: WRITE (I02,80000) IVTNUM 10380411 ! 1042: IF (ICZERO) 10260, 0271, 20260 10390411 ! 1043: 10260 IVPASS = IVPASS + 1 10400411 ! 1044: WRITE (I02,80002) IVTNUM 10410411 ! 1045: GO TO 0271 10420411 ! 1046: 20260 IVFAIL = IVFAIL + 1 10430411 ! 1047: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 10440411 ! 1048: 0271 CONTINUE 10450411 ! 1049: C 10460411 ! 1050: C **** FCVS PROGRAM 411 - TEST 027 **** 10470411 ! 1051: C 10480411 ! 1052: C 10490411 ! 1053: C TEST 027 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 10500411 ! 1054: C ARRAY OF REAL TYPE. 10510411 ! 1055: C 10520411 ! 1056: C 10530411 ! 1057: IVTNUM = 27 10540411 ! 1058: IF (ICZERO) 30270, 0270, 30270 10550411 ! 1059: 0270 CONTINUE 10560411 ! 1060: RAON32(2,1,1) = 0.0 10570411 ! 1061: RAON32(2,2,2) = 0.0 10580411 ! 1062: IVCORR = 30 10590411 ! 1063: IVCOMP = 1 10600411 ! 1064: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 10610411 ! 1065: 1 RAON32 10620411 ! 1066: IF (IRECN .EQ. 08) IVCOMP = IVCOMP * 2 10630411 ! 1067: IF (RAON32(2,1,1) .EQ. -11.) IVCOMP = IVCOMP * 3 10640411 ! 1068: IF (RAON32(2,2,2) .EQ. 32767.) IVCOMP = IVCOMP * 5 10650411 ! 1069: C 10660411 ! 1070: C THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER, A NEGATIVE 10670411 ! 1071: C FIELD VALUE AND A POSITIVE FIELD VALUE. 10680411 ! 1072: C 10690411 ! 1073: 40270 IF (IVCOMP - 30) 20270, 10270, 20270 10700411 ! 1074: 30270 IVDELE = IVDELE + 1 10710411 ! 1075: WRITE (I02,80000) IVTNUM 10720411 ! 1076: IF (ICZERO) 10270, 0281, 20270 10730411 ! 1077: 10270 IVPASS = IVPASS + 1 10740411 ! 1078: WRITE (I02,80002) IVTNUM 10750411 ! 1079: GO TO 0281 10760411 ! 1080: 20270 IVFAIL = IVFAIL + 1 10770411 ! 1081: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 10780411 ! 1082: 0281 CONTINUE 10790411 ! 1083: C 10800411 ! 1084: C **** FCVS PROGRAM 411 - TEST 028 **** 10810411 ! 1085: C 10820411 ! 1086: C 10830411 ! 1087: C TEST 028 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 10840411 ! 1088: C ARRAY OF LOGICAL TYPE. 10850411 ! 1089: C 10860411 ! 1090: C 10870411 ! 1091: IVTNUM = 28 10880411 ! 1092: IF (ICZERO) 30280, 0280, 30280 10890411 ! 1093: 0280 CONTINUE 10900411 ! 1094: LAON32(1,1,1) = .FALSE. 10910411 ! 1095: LAON32(2,2,2) = .TRUE. 10920411 ! 1096: IVCORR = 30 10930411 ! 1097: IVCOMP = 1 10940411 ! 1098: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 10950411 ! 1099: 1 LAON32 10960411 ! 1100: IF (IRECN .EQ. 09) IVCOMP = IVCOMP * 2 10970411 ! 1101: IF (LAON32(1,1,1)) IVCOMP = IVCOMP * 3 10980411 ! 1102: IF (.NOT. LAON32(2,2,2)) IVCOMP = IVCOMP * 5 10990411 ! 1103: 40280 IF (IVCOMP - 30) 20280, 10280, 20280 11000411 ! 1104: 30280 IVDELE = IVDELE + 1 11010411 ! 1105: WRITE (I02,80000) IVTNUM 11020411 ! 1106: IF (ICZERO) 10280, 0291, 20280 11030411 ! 1107: 10280 IVPASS = IVPASS + 1 11040411 ! 1108: WRITE (I02,80002) IVTNUM 11050411 ! 1109: GO TO 0291 11060411 ! 1110: 20280 IVFAIL = IVFAIL + 1 11070411 ! 1111: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 11080411 ! 1112: 0291 CONTINUE 11090411 ! 1113: C 11100411 ! 1114: C **** FCVS PROGRAM 411 - TEST 029 **** 11110411 ! 1115: C 11120411 ! 1116: C 11130411 ! 1117: C TEST 029 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 11140411 ! 1118: C IMPLIED-DO WITH AN ITEM OF INTEGER TYPE. THE STORAGE VALUES IN 11150411 ! 1119: C THE ARRAY (BY THE IMPLIED-DO DURING THE READ) SHOULD RESULT IN A 11160411 ! 1120: C DIFFERENT STORAGE SEQUENCE IN THE ARRAY THAN FOUND IN THE RECORD 11170411 ! 1121: C OF THE FILE. THIS RECORD IS RECORD NUMBER 10 AND WAS CREATED IN 11180411 ! 1122: C TEST 012 ABOVE. THE FIELD VALUE, FIELD POSITION, POSITION WITHIN 11190411 ! 1123: C ARRAY IAON32 AND SUBSCRIPT VALUE AFTER THE READ IS 11200411 ! 1124: C 11210411 ! 1125: C VALUE 11 777 512 -32767 -11 -777 -512 32767 11220411 ! 1126: C FIELD POS 1 3 2 4 5 7 6 8 11230411 ! 1127: C IAON32 1 2 3 4 5 6 7 8 11240411 ! 1128: C SUBSCRIPT 1,1,1 2,1,1 1,2,1 2,2,1 1,1,2 2,1,2 1,2,2 2,2,211250411 ! 1129: C 11260411 ! 1130: C 11270411 ! 1131: IVTNUM = 29 11280411 ! 1132: IF (ICZERO) 30290, 0290, 30290 11290411 ! 1133: 0290 CONTINUE 11300411 ! 1134: IAON32(2,1,1) = 0 11310411 ! 1135: IAON32(2,2,1) = 0 11320411 ! 1136: IVCORR = 30 11330411 ! 1137: IVCOMP = 1 11340411 ! 1138: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 11350411 ! 1139: 1 (((IAON32 (J,K,I), K=1,2), J=1,2), I=1,2) 11360411 ! 1140: IF (IRECN .EQ. 10) IVCOMP = IVCOMP * 2 11370411 ! 1141: IF (IAON32(2,1,1) .EQ. 777) IVCOMP = IVCOMP * 3 11380411 ! 1142: IF (IAON32(2,2,1) .EQ. -32767) IVCOMP = IVCOMP * 5 11390411 ! 1143: C 11400411 ! 1144: C THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER, A NEGATIVE 11410411 ! 1145: C FIELD VALUE AND A POSITIVE FIELD VALUE. 11420411 ! 1146: C 11430411 ! 1147: 40290 IF (IVCOMP - 30) 20290, 10290, 20290 11440411 ! 1148: 30290 IVDELE = IVDELE + 1 11450411 ! 1149: WRITE (I02,80000) IVTNUM 11460411 ! 1150: IF (ICZERO) 10290, 0301, 20290 11470411 ! 1151: 10290 IVPASS = IVPASS + 1 11480411 ! 1152: WRITE (I02,80002) IVTNUM 11490411 ! 1153: GO TO 0301 11500411 ! 1154: 20290 IVFAIL = IVFAIL + 1 11510411 ! 1155: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 11520411 ! 1156: 0301 CONTINUE 11530411 ! 1157: C 11540411 ! 1158: C **** FCVS PROGRAM 411 - TEST 030 **** 11550411 ! 1159: C 11560411 ! 1160: C 11570411 ! 1161: C TEST 030 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 11580411 ! 1162: C IMPLIED-DO WITH AN ITEM OF REAL TYPE. THE STORAGE VALUES IN 11590411 ! 1163: C THE ARRAY (BY THE IMPLIED-DO DURING THE READ) SHOULD RESULT IN A 11600411 ! 1164: C SEQUENCE THE SAME AS FOUND IN THE RECORD OF THE FILE. THIS REC- 11610411 ! 1165: C ORD IS RECORD NUMBER 011 AND WAS CREATED IN TEST 013 ABOVE. 11620411 ! 1166: C THE FIELD VALUE, FIELD POSITION, POSITION WITHIN ARRAY RAON32 AND11630411 ! 1167: C SUBSCRIPT VALUE AFTER THE THE READ IS 11640411 ! 1168: C 11650411 ! 1169: C VALUE 11. -11. 7.77 -7.77 .512 -.512 -32767. 32767.11660411 ! 1170: C FIELD POS 1 2 3 4 5 6 7 8 11670411 ! 1171: C RAON32 1 2 3 4 5 6 7 8 11680411 ! 1172: C SUBSCRIPT 1,1,1 2,1,1 1,2,1 2,2,1 1,1,2 2,1,2 1,2,2 2,2,211690411 ! 1173: C 11700411 ! 1174: C 11710411 ! 1175: IVTNUM = 30 11720411 ! 1176: IF (ICZERO) 30300, 0300, 30300 11730411 ! 1177: 0300 CONTINUE 11740411 ! 1178: RAON32(1,2,1) = 0.0 11750411 ! 1179: RAON32(1,2,2) = 0.0 11760411 ! 1180: IVCORR = 30 11770411 ! 1181: IVCOMP = 1 11780411 ! 1182: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 11790411 ! 1183: 1 (((RAON32 (J,K,I), J=1,2), K=1,2), I=1,2) 11800411 ! 1184: IF (IRECN .EQ. 11) IVCOMP = IVCOMP * 2 11810411 ! 1185: IF (RAON32(1,2,1) .EQ. 7.77) IVCOMP = IVCOMP * 3 11820411 ! 1186: IF (RAON32(1,2,2) .EQ. -32767.) IVCOMP = IVCOMP * 5 11830411 ! 1187: C 11840411 ! 1188: C THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER, A NEGATIVE 11850411 ! 1189: C FIELD VALUE AND A POSITIVE FIELD VALUE. 11860411 ! 1190: C 11870411 ! 1191: 40300 IF (IVCOMP - 30) 20300, 10300, 20300 11880411 ! 1192: 30300 IVDELE = IVDELE + 1 11890411 ! 1193: WRITE (I02,80000) IVTNUM 11900411 ! 1194: IF (ICZERO) 10300, 0311, 20300 11910411 ! 1195: 10300 IVPASS = IVPASS + 1 11920411 ! 1196: WRITE (I02,80002) IVTNUM 11930411 ! 1197: GO TO 0311 11940411 ! 1198: 20300 IVFAIL = IVFAIL + 1 11950411 ! 1199: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 11960411 ! 1200: 0311 CONTINUE 11970411 ! 1201: C 11980411 ! 1202: C **** FCVS PROGRAM 411 - TEST 031 **** 11990411 ! 1203: C 12000411 ! 1204: C 12010411 ! 1205: C TEST 031 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 12020411 ! 1206: C IMPLIED-DO WITH AN ITEM OF LOGICAL TYPE. THE STORAGE VALUES IN 12030411 ! 1207: C THE ARRAY (BY THE IMPLIED-DO DURING THE READ) SHOULD RESULT IN A 12040411 ! 1208: C DIFFERENT STORAGE SEQUENCE IN THE ARRAY THAN FOUND IN THE RECORD 12050411 ! 1209: C OF THE FILE. THIS RECORD IS RECORD NUMBER 12 AND WAS CREATED IN 12060411 ! 1210: C TEST 014 ABOVE. THE FIELD VALUE, FIELD POSITION, POSITION WITHIN 12070411 ! 1211: C ARRAY LAON32 AND SUBSCRIPT VALUE AFTER THE READ IS 12080411 ! 1212: C 12090411 ! 1213: C VALUE T T F F T T F F 12100411 ! 1214: C FIELD POS 1 5 3 7 2 6 4 8 12110411 ! 1215: C LAON32 1 2 3 4 5 6 7 8 12120411 ! 1216: C SUBSCRIPT 1,1,1 2,1,1 1,2,1 2,2,1 1,1,2 2,1,2 1,2,2 2,2,212130411 ! 1217: C 12140411 ! 1218: C 12150411 ! 1219: IVTNUM = 31 12160411 ! 1220: IF (ICZERO) 30310, 0310, 30310 12170411 ! 1221: 0310 CONTINUE 12180411 ! 1222: LAON32(1,2,1) = .TRUE. 12190411 ! 1223: LAON32(2,1,1) = .FALSE. 12200411 ! 1224: IVCORR = 30 12210411 ! 1225: IVCOMP = 1 12220411 ! 1226: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 12230411 ! 1227: 1 (((LAON32 (J,K,I), I=1,2), K=1,2), J=1,2) 12240411 ! 1228: IF (IRECN .EQ. 12) IVCOMP = IVCOMP * 2 12250411 ! 1229: IF ( .NOT. LAON32(1,2,1)) IVCOMP = IVCOMP * 3 12260411 ! 1230: IF (LAON32(2,1,1)) IVCOMP = IVCOMP * 5 12270411 ! 1231: 40310 IF (IVCOMP - 30) 20310, 10310, 20310 12280411 ! 1232: 30310 IVDELE = IVDELE + 1 12290411 ! 1233: WRITE (I02,80000) IVTNUM 12300411 ! 1234: IF (ICZERO) 10310, 0321, 20310 12310411 ! 1235: 10310 IVPASS = IVPASS + 1 12320411 ! 1236: WRITE (I02,80002) IVTNUM 12330411 ! 1237: GO TO 0321 12340411 ! 1238: 20310 IVFAIL = IVFAIL + 1 12350411 ! 1239: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 12360411 ! 1240: 0321 CONTINUE 12370411 ! 1241: C 12380411 ! 1242: C **** FCVS PROGRAM 411 - TEST 032 **** 12390411 ! 1243: C 12400411 ! 1244: C 12410411 ! 1245: C TEST 032 USES A READ STATEMENT WITHOUT ANY INPUT LIST ITEMS 12420411 ! 1246: C (INPUT LIST ITEMS ARE OPTIONAL FOR THE READ STATEMENT). THIS 12430411 ! 1247: C RECORD WAS WRITTEN IN TEST 15 AND SHOULD BE RECORD NUMBER 13. 12440411 ! 1248: C THE PURPOSE OF THIS TEST IS TO SEE THAT THE STATEMENT CONSTRUCT 12450411 ! 1249: C IS ACCEPTABLE TO THE COMPILER. 12460411 ! 1250: C ALSO THE LENGTH OF AN UNFORMATTED RECORD MAY BE ZERO. 12470411 ! 1251: C 12480411 ! 1252: C SEE SECTIONS 12.1.2, UNFORMATTED RECORDS 12490411 ! 1253: C 12.8, READ, WRITE AND PRINT STATEMENTS12500411 ! 1254: C 12510411 ! 1255: C 12520411 ! 1256: IVTNUM = 32 12530411 ! 1257: IF (ICZERO) 30320, 0320, 30320 12540411 ! 1258: 0320 CONTINUE 12550411 ! 1259: IRECN = 13 12560411 ! 1260: IVCORR = 13 12570411 ! 1261: READ (I04) 12580411 ! 1262: IVCOMP = IRECN 12590411 ! 1263: 40320 IF (IVCOMP - 13) 20320, 10320, 20320 12600411 ! 1264: 30320 IVDELE = IVDELE + 1 12610411 ! 1265: WRITE (I02,80000) IVTNUM 12620411 ! 1266: IF (ICZERO) 10320, 0331, 20320 12630411 ! 1267: 10320 IVPASS = IVPASS + 1 12640411 ! 1268: WRITE (I02,80002) IVTNUM 12650411 ! 1269: GO TO 0331 12660411 ! 1270: 20320 IVFAIL = IVFAIL + 1 12670411 ! 1271: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 12680411 ! 1272: 0331 CONTINUE 12690411 ! 1273: C 12700411 ! 1274: C **** FCVS PROGRAM 411 - TEST 033 **** 12710411 ! 1275: C 12720411 ! 1276: C 12730411 ! 1277: C TEST 033 USES A READ STATEMENT IN WHICH THE NUMBER OF VALUES 12740411 ! 1278: C REQUIRED BY THE INPUT LIST IS LESS THAN THE NUMBER OF VALUES IN 12750411 ! 1279: C THE RECORD. THIS TEST READS RECORD NUMBER 14 WHICH WAS CREATED 12760411 ! 1280: C IN TEST 016. 12770411 ! 1281: C 12780411 ! 1282: C SEE SECTION 12.9.5.1, UNFORMATED DATA TRANSFER 12790411 ! 1283: C 12800411 ! 1284: C 12810411 ! 1285: IVTNUM = 33 12820411 ! 1286: IF (ICZERO) 30330, 0330, 30330 12830411 ! 1287: 0330 CONTINUE 12840411 ! 1288: IVON21 = 0 12850411 ! 1289: IVON22 = 0 12860411 ! 1290: IVON31 = 0 12870411 ! 1291: IVCORR = 0 12880411 ! 1292: IVCOMP = 1 12890411 ! 1293: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 12900411 ! 1294: 1 IVON21, IVON22, IVON31 12910411 ! 1295: IF (IRECN .EQ. 14) IVCOMP = IVCOMP * 2 12920411 ! 1296: IF (IVON21 .EQ. 11) IVCOMP = IVCOMP * 3 12930411 ! 1297: IF (IVON22 .EQ. -11) IVCOMP = IVCOMP * 5 12940411 ! 1298: 40330 IF (IVCOMP - 30) 20330, 10330, 20330 12950411 ! 1299: 30330 IVDELE = IVDELE + 1 12960411 ! 1300: WRITE (I02,80000) IVTNUM 12970411 ! 1301: IF (ICZERO) 10330, 0341, 20330 12980411 ! 1302: 10330 IVPASS = IVPASS + 1 12990411 ! 1303: WRITE (I02,80002) IVTNUM 13000411 ! 1304: GO TO 0341 13010411 ! 1305: 20330 IVFAIL = IVFAIL + 1 13020411 ! 1306: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 13030411 ! 1307: 0341 CONTINUE 13040411 ! 1308: C 13050411 ! 1309: C 13060411 ! 1310: C THE FOLLOWING TWO TESTS USE THE READ STATEMENT WITH THE 13070411 ! 1311: C END SPECIFIER. 13080411 ! 1312: C 13090411 ! 1313: C 13100411 ! 1314: C 13110411 ! 1315: C **** FCVS PROGRAM 411 - TEST 034 **** 13120411 ! 1316: C 13130411 ! 1317: C 13140411 ! 1318: C TEST 034 USES THE READ STATEMENT WITHOUT ANY I/O LIST ITEMS. 13150411 ! 1319: C THE FILE IS READ UNTIL AN END-OF-FILE CONDITION OCCURS. 13160411 ! 1320: C 13170411 ! 1321: IVTNUM = 34 13180411 ! 1322: IF (ICZERO) 30340, 0340, 30340 13190411 ! 1323: 0340 CONTINUE 13200411 ! 1324: REWIND I04 13210411 ! 1325: C 13220411 ! 1326: IVCOMP = 1 13230411 ! 1327: IVON01 = 0 13240411 ! 1328: IVCORR = 6 13250411 ! 1329: DO 0342 I=1,150 13260411 ! 1330: READ (I04, END = 0343) 13270411 ! 1331: IVON01 = IVON01 + 1 13280411 ! 1332: IF (IVON01 .GT. 150) GO TO 40340 13290411 ! 1333: 0342 CONTINUE 13300411 ! 1334: GO TO 40340 13310411 ! 1335: 0343 IVCOMP = IVCOMP * 2 13320411 ! 1336: IF (IVON01 .EQ. 142) IVCOMP = IVCOMP * 3 13330411 ! 1337: 40340 IF (IVCOMP - 6) 20340, 10340, 20340 13340411 ! 1338: 30340 IVDELE = IVDELE + 1 13350411 ! 1339: WRITE (I02,80000) IVTNUM 13360411 ! 1340: IF (ICZERO) 10340, 0351, 20340 13370411 ! 1341: 10340 IVPASS = IVPASS + 1 13380411 ! 1342: WRITE (I02,80002) IVTNUM 13390411 ! 1343: GO TO 0351 13400411 ! 1344: 20340 IVFAIL = IVFAIL + 1 13410411 ! 1345: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 13420411 ! 1346: 0351 CONTINUE 13430411 ! 1347: C 13440411 ! 1348: C **** FCVS PROGRAM 411 - TEST 035 **** 13450411 ! 1349: C 13460411 ! 1350: C 13470411 ! 1351: C TEST 035 USES THE READ STATEMENT WITH INPUT LIST ITEMS. 13480411 ! 1352: C THE FILE IS READ UNTIL AN END-OF-FILE CONDITION OCCURS. 13490411 ! 1353: C 13500411 ! 1354: C 13510411 ! 1355: IVTNUM = 35 13520411 ! 1356: IF (ICZERO) 30350, 0350, 30350 13530411 ! 1357: 0350 CONTINUE 13540411 ! 1358: REWIND I04 13550411 ! 1359: IVCOMP = 1 13560411 ! 1360: IVCORR = 6 13570411 ! 1361: IVON01 = 0 13580411 ! 1362: IRECCK = 0 13590411 ! 1363: DO 0352 I = 1,150 13600411 ! 1364: IRECCK = IRECCK + 1 13610411 ! 1365: IF (IRECCK .EQ. 13) GO TO 0353 13620411 ! 1366: C TEST 015 WROTE A RECORD WITHOUT ANY I/O LIST ITEMS THEREFORE 13630411 ! 1367: C THE RECORD IS READ WITHOUT ANY I/O LIST ITEMS. 13640411 ! 1368: READ (I04, END = 0354) IPROG, IFILE, ITOTR, IRLGN, IRECN,IEOF 13650411 ! 1369: GO TO 0355 13660411 ! 1370: 0353 READ (I04) 13670411 ! 1371: IVON01 = IVON01 + 1 13680411 ! 1372: 0355 IF (IRECN .EQ. IRECCK) IVON01 = IVON01 + 1 13690411 ! 1373: 0352 CONTINUE 13700411 ! 1374: GO TO 40350 13710411 ! 1375: 0354 IVCOMP = IVCOMP * 2 13720411 ! 1376: IF (IVON01 .EQ. 142) IVCOMP = IVCOMP * 3 13730411 ! 1377: 40350 IF (IVCOMP - 6) 20350, 10350, 20350 13740411 ! 1378: 30350 IVDELE = IVDELE + 1 13750411 ! 1379: WRITE (I02,80000) IVTNUM 13760411 ! 1380: IF (ICZERO) 10350, 0361, 20350 13770411 ! 1381: 10350 IVPASS = IVPASS + 1 13780411 ! 1382: WRITE (I02,80002) IVTNUM 13790411 ! 1383: GO TO 0361 13800411 ! 1384: 20350 IVFAIL = IVFAIL + 1 13810411 ! 1385: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 13820411 ! 1386: 0361 CONTINUE 13830411 ! 1387: C 13840411 ! 1388: C 13850411 ! 1389: C THE FOLLOWING SOURCE CODE BRACKETED BY THE COMMENT LINES 13860411 ! 1390: C ***** BEGIN-FILE-DUMP SECTION AND ***** END-FILE-DUMP SECTION 13870411 ! 1391: C MAY OR MAY NOT APPEAR AS COMMENTS IN THE SOURCE PROGRAM. 13880411 ! 1392: C THIS CODE IS OPTIONAL AND BY DEFAULT IT IS AUTOMATICALLY COMMENTED13890411 ! 1393: C OUT BY THE EXECUTIVE ROUTINE. A DUMP OF THE FILE USED BY THIS 13900411 ! 1394: C ROUTINE IS PROVIDED BY USING THE *OPT1 EXECUTIVE ROUTINE CONTROL 13910411 ! 1395: C CARD. IF THE OPTIONAL CODE IS SELECTED THE ROUTINE WILL DUMP 13920411 ! 1396: C THE CONTENTS OF THE FILE TO THE PRINT FILE FOLLOWING THE TEST 13930411 ! 1397: C REPORT AND BEFORE THE TEST REPORT SUMMARY. 13940411 ! 1398: CDB** BEGIN FILE DUMP CODE 13950411 ! 1399: C REWIND I04 13960411 ! 1400: C ITOTR = 142 13970411 ! 1401: C ILUN = I04 13980411 ! 1402: C IRLGN = 80 13990411 ! 1403: C IRNUM = 1 14000411 ! 1404: C7701 FORMAT (80A1) 14010411 ! 1405: C7702 FORMAT (1X,80A1) 14020411 ! 1406: C7703 FORMAT (10X,5HFILE ,I2,5H HAS ,I3,13H RECORDS - OK) 14030411 ! 1407: C7704 FORMAT (10X,5HFILE ,I2,5H HAS ,I3,27H RECORDS - THERE SHOULD BE ,I14040411 ! 1408: C 13,9H RECORDS.) 14050411 ! 1409: C DO 7771 IRNUM = 1, ITOTR 14060411 ! 1410: C READ (ILUN, END = 7772) (IDUMP(ICH), ICH = 1, IRLGN) 14070411 ! 1411: C WRITE (I02,7702) (IDUMP(ICH), ICH = 1, IRLGN) 14080411 ! 1412: C7771 CONTINUE 14090411 ! 1413: C7772 CONTINUE 14100411 ! 1414: CDE** END OF DUMP CODE 14110411 ! 1415: C TEST 035 IS THE LAST TEST IN THIS PROGRAM. THE ROUTINE SHOULD14120411 ! 1416: C HAVE MADE 35 EXPLICIT TESTS AND PROCESSED ONE FILE CONNECTED FOR 14130411 ! 1417: C SEQUENTIAL ACCESS 14140411 ! 1418: C 14150411 ! 1419: C 14160411 ! 1420: C 14170411 ! 1421: C WRITE OUT TEST SUMMARY 14180411 ! 1422: C 14190411 ! 1423: WRITE (I02,90004) 14200411 ! 1424: WRITE (I02,90014) 14210411 ! 1425: WRITE (I02,90004) 14220411 ! 1426: WRITE (I02,90000) 14230411 ! 1427: WRITE (I02,90004) 14240411 ! 1428: WRITE (I02,90020) IVFAIL 14250411 ! 1429: WRITE (I02,90022) IVPASS 14260411 ! 1430: WRITE (I02,90024) IVDELE 14270411 ! 1431: STOP 14280411 ! 1432: 90001 FORMAT (1H ,24X,5HFM411) 14290411 ! 1433: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM411) 14300411 ! 1434: C 14310411 ! 1435: C FORMATS FOR TEST DETAIL LINES 14320411 ! 1436: C 14330411 ! 1437: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 14340411 ! 1438: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 14350411 ! 1439: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 14360411 ! 1440: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 14370411 ! 1441: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 14380411 ! 1442: C 14390411 ! 1443: C FORMAT STATEMENTS FOR PAGE HEADERS 14400411 ! 1444: C 14410411 ! 1445: 90002 FORMAT (1H1) 14420411 ! 1446: 90004 FORMAT (1H ) 14430411 ! 1447: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 14440411 ! 1448: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 14450411 ! 1449: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 14460411 ! 1450: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 14470411 ! 1451: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 14480411 ! 1452: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 14490411 ! 1453: C 14500411 ! 1454: C FORMAT STATEMENTS FOR RUN SUMMARY 14510411 ! 1455: C 14520411 ! 1456: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 14530411 ! 1457: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 14540411 ! 1458: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 14550411 ! 1459: END 14560411
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.