|
|
1.1 ! root 1: PROGRAM FM402 00010402 ! 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 00020402 ! 6: C 00030402 ! 7: C 00040402 ! 8: C THIS ROUTINE TESTS THE A(W) (W IS SIZE OF FIELD IN CHARACTERS)00050402 ! 9: C EDIT DESCRIPTOR OF THE FORMAT SPECIFICATION BOTH WITH AND WITHOUT 00060402 ! 10: C THE OPTIONAL W. THE A EDIT DESCRIPTOR IS USED WITH AN INPUT/ 00070402 ! 11: C OUTPUT LIST ITEM OF TYPE CHARACTER. IF A FIELD WIDTH W IS SPECI- 00080402 ! 12: C FIED WITH THE A EDIT DESCRIPTOR THE FIELD CONSISTS OF W CHARAC- 00090402 ! 13: C TERS. IF A FIELD WIDTH W IS NOT SPECIFIED WITH THE A EDIT DES- 00100402 ! 14: C CRIPTOR, THE NUMBER OF CHARACTERS IN THE FIELD IS THE LENGTH OF 00110402 ! 15: C THE CHARACTER INPUT/OUTPUT LIST ITEM. THIS ROUTINE FIRST 00120402 ! 16: C TESTS FOR PROPER EDITING OF CHARACTER DATA ON OUTPUT BY DIRECTING00130402 ! 17: C THE EDITED RESULT TO A PRINT FILE. RESULTS OF THIS SET OF 00140402 ! 18: C TESTS MUST BE VISUALLY CHECKED FOR CORRECTNESS. NEXT AN EXTERNAL 00150402 ! 19: C FILE CONNECTED FOR SEQUENTIAL ACCESS IS CREATED WITH CHARACTER 00160402 ! 20: C DATA. FINALLY THE FILE IS REWOUND AND READ WITH THE A(W) EDIT 00170402 ! 21: C DESCRIPTOR AND CHECKED FOR PROPER EDITING ON INPUT. 00180402 ! 22: C 00190402 ! 23: C THIS ROUTINE TESTS FOR PROPER EDITING BY 00200402 ! 24: C 00210402 ! 25: C (1) THE A EDIT DESCRIPTOR WITHOUT THE OPTIONAL W ON BOTH INPUT00220402 ! 26: C AND OUTPUT, 00230402 ! 27: C 00240402 ! 28: C (2) THE AW EDIT DESCRIPTOR WHEN THE LENGTH OF THE INPUT/OUTPUT00250402 ! 29: C LIST ITEM IS LESS THAN THE WIDTH W, 00260402 ! 30: C 00270402 ! 31: C (3) THE AW EDIT DESCRIPTOR WHEN THE LENGTH OF THE INPUT/OUTPUT00280402 ! 32: C LIST ITEM IS BOTH EQUAL TO AND GREATER THAN THE WIDTH W, 00290402 ! 33: C 00300402 ! 34: C (4) THE A EDIT DESCRIPTOR WHEN USED WITH THE OPTIONAL REPEAT 00310402 ! 35: C SPECIFICATION. 00320402 ! 36: C 00330402 ! 37: C REFERENCES - 00340402 ! 38: C 00350402 ! 39: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00360402 ! 40: C X3.9-1978 00370402 ! 41: C 00380402 ! 42: C SECTION 3.1, FORTRAN CHARACTER SET 00390402 ! 43: C SECTION 4.8, CHARACTER TYPE 00400402 ! 44: C SECTION 8.4.2, CHARACTER TYPE-STATEMENT 00410402 ! 45: C SECTION 10.4, CHARACTER ASSIGNMENT STATEMENT 00420402 ! 46: C SECTION 13.5.11, A EDITING 00430402 ! 47: C 00440402 ! 48: C 00450402 ! 49: C 00460402 ! 50: C 00470402 ! 51: C ******************************************************************00480402 ! 52: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00490402 ! 53: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00500402 ! 54: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00510402 ! 55: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00520402 ! 56: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00530402 ! 57: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00540402 ! 58: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00550402 ! 59: C THE RESULT OF EXECUTING THESE TESTS. 00560402 ! 60: C 00570402 ! 61: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00580402 ! 62: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00590402 ! 63: C 00600402 ! 64: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00610402 ! 65: C DEPARTMENT OF THE NAVY 00620402 ! 66: C FEDERAL COBOL COMPILER TESTING SERVICE 00630402 ! 67: C WASHINGTON, D.C. 20376 00640402 ! 68: C 00650402 ! 69: C ******************************************************************00660402 ! 70: C 00670402 ! 71: C 00680402 ! 72: IMPLICIT LOGICAL (L) 00690402 ! 73: IMPLICIT CHARACTER*14 (C) 00700402 ! 74: C 00710402 ! 75: DIMENSION IDUMP (80) 00720402 ! 76: DIMENSION CATN11(46), CATN12(5), CATN31(2,3,2), CATN14(46) 00730402 ! 77: CHARACTER CATN11*1, CVTN11*1, CATN12*5, CATN31*1 00740402 ! 78: CHARACTER CVTN12*10, CVTN13*2, CATN14*1, CCTN15*50, CVTN15*50 00750402 ! 79: CHARACTER CVTN01*1 00760402 ! 80: 00770402 ! 81: DATA CATN14 /46*' '/ 00780402 ! 82: DATA CCTN15 /'ABCDEFG HIJKLMN OPQRSTUVWXYZ 0123456789'/00790402 ! 83: DATA CATN11 / '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 00800402 ! 84: 1'=', '+', '-','*', '/', '(', ')', ',', '.', '''','A', 'B', 'C', 00810402 ! 85: 2'D', 'E', 'F','G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 00820402 ! 86: 3'Q', 'R', 'S','T', 'U', 'V', 'W', 'X', 'Y', 'Z'/ 00830402 ! 87: DATA CATN12 /'ABMYZ', '01589', '=+-()','A5+Z.' ,'1''A,4'/ 00840402 ! 88: 00850402 ! 89: C 00860402 ! 90: C 00870402 ! 91: C 00880402 ! 92: C INITIALIZATION SECTION. 00890402 ! 93: C 00900402 ! 94: C INITIALIZE CONSTANTS 00910402 ! 95: C ******************** 00920402 ! 96: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00930402 ! 97: I01 = 5 00940402 ! 98: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00950402 ! 99: I02 = 6 00960402 ! 100: C SYSTEM ENVIRONMENT SECTION 00970402 ! 101: C 00980402 ! 102: I01 = 5 00990402 ! 103: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 01000402 ! 104: C (UNIT NUMBER FOR CARD READER). 01010402 ! 105: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD01020402 ! 106: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01030402 ! 107: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 01040402 ! 108: C 01050402 ! 109: I02 = 6 01060402 ! 110: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 01070402 ! 111: C (UNIT NUMBER FOR PRINTER). 01080402 ! 112: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.01090402 ! 113: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01100402 ! 114: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 01110402 ! 115: C 01120402 ! 116: IVPASS = 0 01130402 ! 117: IVFAIL = 0 01140402 ! 118: IVDELE = 0 01150402 ! 119: ICZERO = 0 01160402 ! 120: C 01170402 ! 121: C WRITE OUT PAGE HEADERS 01180402 ! 122: C 01190402 ! 123: WRITE (I02,90002) 01200402 ! 124: WRITE (I02,90006) 01210402 ! 125: WRITE (I02,90008) 01220402 ! 126: WRITE (I02,90004) 01230402 ! 127: WRITE (I02,90010) 01240402 ! 128: WRITE (I02,90004) 01250402 ! 129: WRITE (I02,90016) 01260402 ! 130: WRITE (I02,90001) 01270402 ! 131: WRITE (I02,90004) 01280402 ! 132: WRITE (I02,90012) 01290402 ! 133: WRITE (I02,90014) 01300402 ! 134: WRITE (I02,90004) 01310402 ! 135: C 01320402 ! 136: C 01330402 ! 137: C 01340402 ! 138: C TEST 001 THROUGH 014 TESTS THE EDIT DESCRIPTOR FOR PROPER 01350402 ! 139: C EDITING OF CHARACTER DATA ON OUTPUT. TO VALIDATE THESE TESTS 01360402 ! 140: C THE EDITED DATA IS SENT TO A PRINT FILE AND THEREFORE MUST BE 01370402 ! 141: C VISUALLY CHECKED FOR CORRECTNESS. ON OUTPUT THE EDITED FIELD 01380402 ! 142: C SIZE IS AW WHERE W IS NUMBER OF POSITIONS IN THE FIELD OR 01390402 ! 143: C IS THE SIZE OF THE OUTPUT DATUM ITEM. SEE SECTION 13.5.11 A 01400402 ! 144: C EDITING 01410402 ! 145: C 01420402 ! 146: C 01430402 ! 147: 80052 FORMAT (1H ,4X,48HTESTS 001 THROUGH 014 MUST BE VISUALLY VERIFIED.01440402 ! 148: 1) 01450402 ! 149: 80054 FORMAT (1H ,56HIMMEDIATELY FOLLOWING THIS NARRATIVE IS A REFERENCE01460402 ! 150: 1 LINE) 01470402 ! 151: 80056 FORMAT (1H ,52HOF THE FORM '123456 ...'. THE REFERENCE LINE IS T01480402 ! 152: 1O) 01490402 ! 153: 80058 FORMAT (1H ,49HAID IN THE VISUAL VERIFICATION OF THE TESTS. FOR) 01500402 ! 154: 80062 FORMAT (1H ,50HTHE OUTPUT TO BE CORRECT THE DATA VALUES DISPLAYED 01510402 ! 155: 1) 01520402 ! 156: 80064 FORMAT (1H ,54HIN THE COMPUTED COLUMN MUST MATCH THAT IN THE CORRE01530402 ! 157: 1CT ) 01540402 ! 158: 80066 FORMAT (1H ,44HCOLUMN IN BOTH VALUE AND CHARACTER POSITION.) 01550402 ! 159: 80072 FORMAT (1H ,26HREFERENCE LINE - ,10H1234567890,5X,10H123401560402 ! 160: 1567890) 01570402 ! 161: WRITE (I02,80052) 01580402 ! 162: WRITE (I02,80054) 01590402 ! 163: WRITE (I02,80056) 01600402 ! 164: WRITE (I02,80058) 01610402 ! 165: WRITE (I02,80062) 01620402 ! 166: WRITE (I02,80064) 01630402 ! 167: WRITE (I02,80066) 01640402 ! 168: WRITE (I02,90004) 01650402 ! 169: WRITE (I02,80072) 01660402 ! 170: C 01670402 ! 171: C **** FCVS PROGRAM 402 - TEST 001 **** 01680402 ! 172: C 01690402 ! 173: C TEST 001 TESTS FOR PROPER EDITING OF THE A EDIT DESCRIPTOR 01700402 ! 174: C ON OUTPUT WHERE THE FIELD IS 1 POSITION IN LENGTH, THE 01710402 ! 175: C VALUE OF THE DATUM IS LETTERS AND THE OUTPUT LIST ITEM IS A 01720402 ! 176: C VARIABLE. 01730402 ! 177: C 01740402 ! 178: IVTNUM = 001 01750402 ! 179: IF (ICZERO) 30010, 0010, 30010 01760402 ! 180: 0010 CONTINUE 01770402 ! 181: CVTN01 = 'A' 01780402 ! 182: 0012 FORMAT (1H ,4X,I5,26X,A,14X,1HA) 01790402 ! 183: WRITE (I02, 0012) IVTNUM, CVTN01 01800402 ! 184: GO TO 0021 01810402 ! 185: 30010 IVDELE = IVDELE + 1 01820402 ! 186: WRITE (I02,80000) IVTNUM 01830402 ! 187: 0021 CONTINUE 01840402 ! 188: C 01850402 ! 189: C **** FCVS PROGRAM 402 - TEST 002 **** 01860402 ! 190: C 01870402 ! 191: C TEST 002 IS SIMILAR TO TEST 001 EXCEPT THAT THE OUTPUT LIST 01880402 ! 192: C ITEM IS AN ARRAY ELEMENT. 01890402 ! 193: C 01900402 ! 194: IVTNUM = 002 01910402 ! 195: IF (ICZERO) 30020, 0020, 30020 01920402 ! 196: 0020 CONTINUE 01930402 ! 197: CATN31 (1,2,1) = 'Z' 01940402 ! 198: 0022 FORMAT (1H ,4X,I5,26X,A,14X,1HZ) 01950402 ! 199: WRITE (I02, 0022) IVTNUM, CATN31 (1,2,1) 01960402 ! 200: GO TO 0031 01970402 ! 201: 30020 IVDELE = IVDELE + 1 01980402 ! 202: WRITE (I02,80000) IVTNUM 01990402 ! 203: 0031 CONTINUE 02000402 ! 204: C 02010402 ! 205: C *** FCVS PROGRAM 402 - TEST 003 **** 02020402 ! 206: C 02030402 ! 207: C TEST 003 VERIFIES THAT THE A EDIT DESCRIPTOR (WITHOUT THE 02040402 ! 208: C W OPTION) CAN PROPERLY EDIT SPECIAL CHARACTERS ON OUTPUT. THE 02050402 ! 209: C SPECIAL CHARACTER / (SLASH) IS USED FOR THIS TEST AND IS STORED 02060402 ! 210: C IN AN OUTPUT LIST ITEM 1 POSITION IN LENGTH. 02070402 ! 211: C 02080402 ! 212: IVTNUM = 003 02090402 ! 213: IF (ICZERO) 30030, 0030, 30030 02100402 ! 214: 0030 CONTINUE 02110402 ! 215: CVTN11 = '/' 02120402 ! 216: 0032 FORMAT (1H ,4X,I5,26X,A,14X,1H/) 02130402 ! 217: WRITE (I02, 0032) IVTNUM, CVTN11 02140402 ! 218: GO TO 0041 02150402 ! 219: 30030 IVDELE = IVDELE + 1 02160402 ! 220: WRITE (I02, 80000) IVTNUM 02170402 ! 221: 0041 CONTINUE 02180402 ! 222: C 02190402 ! 223: C *** FCVS PROGRAM 402 - TEST 004 *** 02200402 ! 224: C 02210402 ! 225: C TEST 004 IS SIMILAR TO TEST 003 EXCEPT THAT THE DATA BEING 02220402 ! 226: C EDITED IS NUMERIC. 02230402 ! 227: C 02240402 ! 228: IVTNUM = 004 02250402 ! 229: IF (ICZERO) 30040, 0040, 30040 02260402 ! 230: 0040 CONTINUE 02270402 ! 231: CVTN11 = '9' 02280402 ! 232: 0042 FORMAT (1H ,4X,I5,26X,A,14X,1H9) 02290402 ! 233: WRITE (I02, 0042) IVTNUM, CVTN11 02300402 ! 234: GO TO 0051 02310402 ! 235: 30040 IVDELE = IVDELE + 1 02320402 ! 236: WRITE (I02, 80000) IVTNUM 02330402 ! 237: 0051 CONTINUE 02340402 ! 238: C 02350402 ! 239: C *** FCVS PROGRAM 402 - TEST 005 *** 02360402 ! 240: C 02370402 ! 241: C TEST 005 IS SIMILAR TO TEST 003 EXCEPT THAT IT USES THE SPECIAL02380402 ! 242: C CHARACTER QUOTE. 02390402 ! 243: C 02400402 ! 244: IVTNUM = 005 02410402 ! 245: IF (ICZERO) 30050, 0050, 30050 02420402 ! 246: 0050 CONTINUE 02430402 ! 247: CVTN11 = '''' 02440402 ! 248: 0052 FORMAT (1H ,4X,I5,26X,A,14X,1H') 02450402 ! 249: WRITE (I02, 0052) IVTNUM, CVTN11 02460402 ! 250: GO TO 0061 02470402 ! 251: 30050 IVDELE = IVDELE + 1 02480402 ! 252: WRITE (I02, 80000) IVTNUM 02490402 ! 253: C 02500402 ! 254: C 02510402 ! 255: C TESTS 006 THROUGH TEST 011 TESTS THE A EDIT DESCRIPTOR 02520402 ! 256: C WITHOUT THE FIELD WIDTH SPECIFICATION (W OPTION) WHERE THE SIZE 02530402 ! 257: C OF THE OUTPUT DATA ITEM IS 05 CHARACTERS IN LENGTH. 02540402 ! 258: C 02550402 ! 259: C 02560402 ! 260: 0061 CONTINUE 02570402 ! 261: C 02580402 ! 262: C **** FCVS PROGRAM 402 - TEST 006 **** 02590402 ! 263: C 02600402 ! 264: C TEST 006 TESTS USE OF THE A EDIT DESCRIPTOR WITH LETTERS 02610402 ! 265: C 02620402 ! 266: IVTNUM = 006 02630402 ! 267: IF (ICZERO) 30060, 0060, 30060 02640402 ! 268: 0060 CONTINUE 02650402 ! 269: CATN12(1) = 'ABMYZ' 02660402 ! 270: 0062 FORMAT(1H ,4X,I5,17X,5H ,A,5X,10H ABMYZ) 02670402 ! 271: WRITE (I02, 0062) IVTNUM, CATN12(1) 02680402 ! 272: GO TO 0071 02690402 ! 273: 30060 IVDELE = IVDELE + 1 02700402 ! 274: WRITE (I02, 80000) IVTNUM 02710402 ! 275: 0071 CONTINUE 02720402 ! 276: C 02730402 ! 277: C **** FCVS PROGRAM 402 - TEST 007 **** 02740402 ! 278: C 02750402 ! 279: C TEST 007 TESTS USE OF THE A EDIT DESCRIPTOR WITH DIGITS 02760402 ! 280: C 02770402 ! 281: IVTNUM = 007 02780402 ! 282: IF (ICZERO) 30070, 0070, 30070 02790402 ! 283: 0070 CONTINUE 02800402 ! 284: CATN12(2) = '01589' 02810402 ! 285: 0072 FORMAT(1H ,4X,I5,17X,5H ,A,5X,10H 01589) 02820402 ! 286: WRITE (I02, 0072) IVTNUM, CATN12(2) 02830402 ! 287: GO TO 0081 02840402 ! 288: 30070 IVDELE = IVDELE + 1 02850402 ! 289: WRITE (I02, 80000) IVTNUM 02860402 ! 290: 0081 CONTINUE 02870402 ! 291: C 02880402 ! 292: C **** FCVS PROGRAM 402 - TEST 008 **** 02890402 ! 293: C 02900402 ! 294: C TEST 008 TESTS USE OF THE A EDIT DESCRIPTOR WITH SPECIAL 02910402 ! 295: C CHARACTERS. 02920402 ! 296: C 02930402 ! 297: IVTNUM = 008 02940402 ! 298: IF (ICZERO) 30080, 0080, 30080 02950402 ! 299: 0080 CONTINUE 02960402 ! 300: CATN12(3) = '=+-()' 02970402 ! 301: 0082 FORMAT(1H ,4X,I5,17X,5H ,A,5X,10H =+-()) 02980402 ! 302: WRITE (I02, 0082) IVTNUM, CATN12(3) 02990402 ! 303: GO TO 0091 03000402 ! 304: 30080 IVDELE = IVDELE + 1 03010402 ! 305: WRITE (I02, 80000) IVTNUM 03020402 ! 306: 0091 CONTINUE 03030402 ! 307: C 03040402 ! 308: C **** FCVS PROGRAM FM402 - TEST 009 **** 03050402 ! 309: C 03060402 ! 310: C TEST 009 TESTS USE OF THE A EDIT DESCRIPTOR WITH A MIX 03070402 ! 311: C OF LETTERS, DIGITS AND SPECIAL CHARACTERS 03080402 ! 312: C 03090402 ! 313: IVTNUM = 009 03100402 ! 314: IF (ICZERO) 30090, 0090, 30090 03110402 ! 315: 0090 CONTINUE 03120402 ! 316: CATN12(4) = 'A5+.Z' 03130402 ! 317: 0092 FORMAT(1H ,4X,I5,17X,5H ,A,5X,10H A5+.Z) 03140402 ! 318: WRITE (I02, 0092) IVTNUM, CATN12(4) 03150402 ! 319: GO TO 0101 03160402 ! 320: 30090 IVDELE = IVDELE + 1 03170402 ! 321: WRITE (I02, 80000) IVTNUM 03180402 ! 322: 0101 CONTINUE 03190402 ! 323: C 03200402 ! 324: C **** FCVS PROGRAM FM402 - TEST 010 **** 03210402 ! 325: C 03220402 ! 326: C TEST 010 TESTS USE OF THE A EDIT DESCRIPTOR WITH A MIX 03230402 ! 327: C OF LETTERS, DIGITS AND SPECIAL CHARACTERS INCLUDING APOSTROPES 03240402 ! 328: C 03250402 ! 329: IVTNUM = 010 03260402 ! 330: IF (ICZERO) 30100, 0100, 30100 03270402 ! 331: 0100 CONTINUE 03280402 ! 332: CATN12(5) = '1''A,4' 03290402 ! 333: 0102 FORMAT(1H ,4X,I5,17X,5H ,A,5X,10H 1'A,4) 03300402 ! 334: WRITE (I02, 0102) IVTNUM, CATN12(5) 03310402 ! 335: GO TO 0111 03320402 ! 336: 30100 IVDELE = IVDELE + 1 03330402 ! 337: WRITE (I02, 80000) IVTNUM 03340402 ! 338: C 03350402 ! 339: 0111 CONTINUE 03360402 ! 340: C **** FCVS PROGRAM FM402 - TEST 11 **** 03370402 ! 341: C 03380402 ! 342: C TEST 011 USES THE A EDIT DESCRIPTOR (WITHOUT THE OPTIONAL 03390402 ! 343: C FIELD WIDTH SPECIFIED) WITH THE OPTIONAL REPEAT SPECIFICATION. 03400402 ! 344: C EACH OUTPUT LIST ITEM WILL BE ONE CHARACTER IN LENGTH. 03410402 ! 345: C 03420402 ! 346: IVTNUM = 011 03430402 ! 347: IF (ICZERO) 30110, 0110, 30110 03440402 ! 348: 0110 CONTINUE 03450402 ! 349: 0112 FORMAT (1H ,4X,I5,17X,10A,5X,10H059=+PQUVY) 03460402 ! 350: WRITE (I02, 0112) IVTNUM, CATN11(1), CATN11(6), CATN11(10), 03470402 ! 351: 1CATN11(11), CATN11(12), CATN11(36), CATN11(37), CATN11(41), 03480402 ! 352: 2CATN11(42), CATN11(45) 03490402 ! 353: GO TO 0121 03500402 ! 354: 30110 IVDELE = IVDELE + 1 03510402 ! 355: WRITE (I02, 80000) IVTNUM 03520402 ! 356: 0121 CONTINUE 03530402 ! 357: C 03540402 ! 358: C **** FCVS PROGRAM FM402 - TEST 12 **** 03550402 ! 359: C 03560402 ! 360: C TEST 012 IS SIMILAR TO 011 IN THAT THE A DESCRIPTOR IS USED 03570402 ! 361: C WITH THE OPTIONAL REPEAT SPECIFICATION E. G., 3A HOWEVER, EACH 03580402 ! 362: C OUTPUT LIST ITEM HAS A DIFFERENT NUMBER OF CHARACTERS IN THE ITEM 03590402 ! 363: C E. G., THE FIRST I/O LIST ITEM HAS 5 CHARACTERS, THE SECOND 03600402 ! 364: C ITEM HAS 2 CHARACTERS AND THE THIRD ITEM HAS 1 CHARACTER. 03610402 ! 365: C 03620402 ! 366: IVTNUM = 012 03630402 ! 367: IF (ICZERO) 30120, 0120, 30120 03640402 ! 368: 0120 CONTINUE 03650402 ! 369: CVTN13 = 'YZ' 03660402 ! 370: CVTN11 = ')' 03670402 ! 371: CATN12(2) = '(12AB' 03680402 ! 372: 0122 FORMAT (1H ,4X,I5,17X,1H*,3A,1H*,5X,10H*(12ABYZ)*) 03690402 ! 373: WRITE (I02, 0122) IVTNUM, CATN12(2), CVTN13, CVTN11 03700402 ! 374: GO TO 0131 03710402 ! 375: 30120 IVDELE = IVDELE + 1 03720402 ! 376: WRITE (I02, 80000) IVTNUM 03730402 ! 377: 0131 CONTINUE 03740402 ! 378: C 03750402 ! 379: C **** FCVS PROGRAM FM402 - TEST 13 *** 03760402 ! 380: C 03770402 ! 381: C TEST 013 TESTS FOR PROPER EDITING OF THE A EDIT DESCRIPTOR 03780402 ! 382: C (WITH THE FIELD WIDTH SPECIFIED) WHEN THE OUTPUT LIST ITEM 03790402 ! 383: C HAS FEWER CHARACTERS THAN SPECIFIED BY THE EDIT DESCRIPTOR. THE 03800402 ! 384: C OUTPUT FIELD SHOULD CONSISTS OF BLANKS FOLLOWED BY CHARACTERS 03810402 ! 385: C FROM THE INTERNAL REPRESENTATION. 03820402 ! 386: C 03830402 ! 387: IVTNUM = 013 03840402 ! 388: IF (ICZERO) 30130, 0130, 30130 03850402 ! 389: 0130 CONTINUE 03860402 ! 390: CATN12(1) = 'ABMYZ' 03870402 ! 391: 0132 FORMAT (1H ,4X,I5,17X,A10,5X,10H ABMYZ) 03880402 ! 392: WRITE (I02, 0132) IVTNUM, CATN12(1) 03890402 ! 393: GO TO 0141 03900402 ! 394: 30130 IVDELE = IVDELE + 1 03910402 ! 395: WRITE (I02, 80000) IVTNUM 03920402 ! 396: 0141 CONTINUE 03930402 ! 397: C 03940402 ! 398: C **** FCVS PROGRAM FM402 - TEST 14 **** 03950402 ! 399: C 03960402 ! 400: C TEST 014 TESTS FOR PROPER EDITING OF THE A EDIT DESCRIPTOR 03970402 ! 401: C (WITH THE FIELD WIDTH SPECIFIED) WHEN THE OUTPUT LIST ITEM 03980402 ! 402: C IS GREATER THAN THAT SPECIFIED BY THE EDIT DESCRIPTOR. THE OUTPUT03990402 ! 403: C FIELD SHOULD CONSIST OF THE LEFTMOST CHARACTERS FROM THE INTERNAL 04000402 ! 404: C REPRESENTATION. 04010402 ! 405: C 04020402 ! 406: IVTNUM = 014 04030402 ! 407: IF (ICZERO) 30140, 0140, 30140 04040402 ! 408: 0140 CONTINUE 04050402 ! 409: CVTN12 = '12345ABCDE' 04060402 ! 410: 0142 FORMAT (1H ,4X,I5,17X,5H ,A5,5X,10H 12345) 04070402 ! 411: WRITE (I02, 0142) IVTNUM, CVTN12 04080402 ! 412: GO TO 0151 04090402 ! 413: 30140 IVDELE = IVDELE + 1 04100402 ! 414: WRITE (I02, 80000) IVTNUM 04110402 ! 415: 0151 CONTINUE 04120402 ! 416: C 04130402 ! 417: C THE FOLLOWING BLOCK OF SOURCE CODE BEGINNING WITH COMMENT LINE 04140402 ! 418: C **** CREATE-FILE SECTION AND ENDING WITH THE COMMENT LINE 04150402 ! 419: C **** END-OF-CREATE-FILE SECTION BUILDS A FILE WHICH IS USED IN 04160402 ! 420: C TESTING THE A EDIT DESCRIPTOR. THE FILE PROPERTIES ARE: 04170402 ! 421: C 04180402 ! 422: C FILE IDENTIFIER - I09 (X-NUMBER 09) 04190402 ! 423: C RECORD SIZE - 80 CHARACTERS 04200402 ! 424: C ACCESS METHOD - SEQUENTIAL 04210402 ! 425: C RECORD TYPE - FORMATTED 04220402 ! 426: C DESIGNATED DEVICE - DISK 04230402 ! 427: C TYPE OF DATA - CHARACTER (A FORMAT) 04240402 ! 428: C RECORDS IN FILE - 143 PLUS THE ENDFILE RECORD 04250402 ! 429: C 04260402 ! 430: C THE FIRST 20 POSITIONS OF EACH RECORD IN THE FILE UNIQUELY 04270402 ! 431: C IDENTIFIES THAT RECORD. THE REMAINING POSITONS OF THE RECORD 04280402 ! 432: C CONTAIN DATA WHICH IS USED IN TESTING THE A EDIT DESCRIPTOR. 04290402 ! 433: C A DESCRIPTION OF EACH FIELD OF THE 20-CHARACTER PREAMBLE FOLLOWS. 04300402 ! 434: C 04310402 ! 435: C VARIABLE NAME IN PROGRAM CHARACTER POSITIONS 04320402 ! 436: C -------- ---- -- ------- --------- --------- 04330402 ! 437: C 04340402 ! 438: C IPROG (ROUTINE NAME) - 1 THRU 3 04350402 ! 439: C IFILE (LOGICAL/ X-NUMBER) - 4 THRU 5 04360402 ! 440: C ITOTR (RECORDS IN FILE) - 6 THRU 9 04370402 ! 441: C IRLGN (CHARACTERS IN RECORD) - 10 THRU 12 04380402 ! 442: C IRECN (RECORD NUMBER) - 13 THRU 16 04390402 ! 443: C IEOF (9999 IF LAST RECORD) - 17 THRU 20 04400402 ! 444: C 04410402 ! 445: C DEFAULT ASSIGNMENT FOR FILE IS I09 = 07 04420402 ! 446: I09 = 07 04430402 ! 447: OPEN(UNIT=I09,ACCESS='SEQUENTIAL',FORM='FORMATTED') 04440402 ! 448: CX091 THIS CARD IS REPLACED BY THE CONTENTS OF CARD X-091 04450402 ! 449: IPROG = 402 04460402 ! 450: IFILE = I09 04470402 ! 451: ITOTR = 143 04480402 ! 452: IRLGN = 80 04490402 ! 453: IRECN = 0 04500402 ! 454: IEOF = 0 04510402 ! 455: C 04520402 ! 456: C 04530402 ! 457: C ***** CREATE-FILE SECTION ***** 04540402 ! 458: C 04550402 ! 459: C 04560402 ! 460: C **** FCVS PROGRAM 402 - TEST 015 **** 04570402 ! 461: C 04580402 ! 462: C 04590402 ! 463: C TEST 15 WRITES RECORDS USING THE A EDIT DESCRIPTOR WITHOUT THE04600402 ! 464: C OPTIONAL FIELD WIDTH SPECIFICATION. EACH CHARACTER OF THE 04610402 ! 465: C FORTRAN SET IS WRITTEN WITH AN A EDIT DESCRIPTOR FROM 04620402 ! 466: C THE INTERNAL REPRESENTATION WHICH IS ONE CHARACTER IN LENGTH. 04630402 ! 467: C TEN DIFFERENT CHARACTERS ARE WRITTEN IN EACH RECORD UNTIL THE 04640402 ! 468: C FULL CHARACTER SET IS EXHAUSTED. THIS SEQUENCE IS REPEATED UNTIL04650402 ! 469: C 50 RECORDS HAVE BEEN WRITTEN (5 RECORDS PER SET AND 10 SETS). 04660402 ! 470: C THE RECORDS ARE WRITTEN TO A MASS STORAGE FILE. 04670402 ! 471: C 04680402 ! 472: C 04690402 ! 473: IVTNUM = 15 04700402 ! 474: IF (ICZERO) 30150, 0150, 30150 04710402 ! 475: 0150 CONTINUE 04720402 ! 476: 70003 FORMAT (I3,I2,I4,I3,2I4,50X,10A) 04730402 ! 477: 70004 FORMAT (I3,I2,I4,I3,2I4,54X,6A) 04740402 ! 478: IRECN = 0 04750402 ! 479: DO 4023 I=1,10 04760402 ! 480: IRECN = IRECN + 1 04770402 ! 481: WRITE (I09, 70003) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 04780402 ! 482: 1 (CATN11 (J), J = 1,10) 04790402 ! 483: C CHARACTERS 0 THROUGH 9 ARE CONTAINED IN THIS RECORD 04800402 ! 484: IRECN = IRECN + 1 04810402 ! 485: WRITE (I09, 70003) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 04820402 ! 486: 1 (CATN11(J), J = 11,20) 04830402 ! 487: C CHARACTERS =,+,-,*,/,(,),,,. AND ' ARE IN THIS RECORD. 04840402 ! 488: IRECN = IRECN + 1 04850402 ! 489: WRITE (I09, 70003) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 04860402 ! 490: 1 (CATN11(J), J = 21,30) 04870402 ! 491: C CHARACTERS A THROUGH J ARE IN THIS RECORD 04880402 ! 492: IRECN = IRECN + 1 04890402 ! 493: WRITE (I09, 70003) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 04900402 ! 494: 1 (CATN11(J), J = 31,40) 04910402 ! 495: C CHARACTERS K THROUGH T ARE IN THIS RECORD 04920402 ! 496: IRECN = IRECN + 1 04930402 ! 497: WRITE (I09, 70004) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 04940402 ! 498: 1 (CATN11(J), J = 41,46) 04950402 ! 499: C CHARACTERS U THROUGH Z ARE IN THIS RECORD 04960402 ! 500: 4023 CONTINUE 04970402 ! 501: IVCOMP = IRECN 04980402 ! 502: IVCORR = 050 04990402 ! 503: IVON01 = 50 05000402 ! 504: 40150 IF (IVON01 - IRECN ) 20150, 10150, 20150 05010402 ! 505: C VALUE IN IVCOMP IS THE NUMBER OF RECORDS WRITTEN 05020402 ! 506: 30150 IVDELE = IVDELE + 1 05030402 ! 507: WRITE (I02,80000) IVTNUM 05040402 ! 508: IF (ICZERO) 10150, 0161, 20150 05050402 ! 509: 10150 IVPASS = IVPASS + 1 05060402 ! 510: WRITE (I02,80002) IVTNUM 05070402 ! 511: GO TO 0161 05080402 ! 512: 20150 IVFAIL = IVFAIL + 1 05090402 ! 513: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05100402 ! 514: 0161 CONTINUE 05110402 ! 515: C 05120402 ! 516: C **** FCVS PROGRAM 402 - TEST 016 **** 05130402 ! 517: C 05140402 ! 518: C 05150402 ! 519: C TEST 16 IS THE SAME AS TEST 15 EXCEPT THAT THE 50 RECORDS 05160402 ! 520: C WRITTEN USE THE A EDIT DESCRIPTOR WITH THE OPTIONAL FIELD WIDTH05170402 ! 521: C SPECIFIED. 05180402 ! 522: C 05190402 ! 523: C 05200402 ! 524: IVTNUM = 16 05210402 ! 525: IF (ICZERO) 30160, 0160, 30160 05220402 ! 526: 0160 CONTINUE 05230402 ! 527: 70005 FORMAT (I3,I2,I4,I3,2I4,50X,10A1) 05240402 ! 528: 70006 FORMAT (I3,I2,I4,I3,2I4,54X,6A1) 05250402 ! 529: IRECN = 50 05260402 ! 530: DO 4024 I=1,10 05270402 ! 531: IRECN = IRECN + 1 05280402 ! 532: WRITE (I09, 70005) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 05290402 ! 533: 1 (CATN11(J), J = 1,10) 05300402 ! 534: C CHARACTERS 0 THROUGH 9 ARE CONTAINED IN THIS RECORD 05310402 ! 535: IRECN = IRECN + 1 05320402 ! 536: WRITE (I09, 70005) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 05330402 ! 537: 1 (CATN11(J), J = 11,20) 05340402 ! 538: C CHARACTERS =,+,-,*,/,(,),,,. AND ' ARE IN THIS RECORD 05350402 ! 539: IRECN = IRECN + 1 05360402 ! 540: WRITE (I09, 70005) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 05370402 ! 541: 1 (CATN11(J), J = 21,30) 05380402 ! 542: C CHARACTERS A THROUGH J ARE IN THIS RECORD 05390402 ! 543: IRECN = IRECN + 1 05400402 ! 544: WRITE (I09, 70005) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 05410402 ! 545: 1 (CATN11(J), J = 31,40) 05420402 ! 546: C CHARACTERS K THROUGH T ARE IN THIS RECORD 05430402 ! 547: IRECN = IRECN + 1 05440402 ! 548: WRITE (I09, 70006) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 05450402 ! 549: 1 (CATN11(J), J = 41,46) 05460402 ! 550: C CHARACTERS U THROUGH Z ARE IN THIS RECORD 05470402 ! 551: 4024 CONTINUE 05480402 ! 552: IVCOMP = IRECN - 50 05490402 ! 553: IVCORR = 50 05500402 ! 554: IVON01 = 100 05510402 ! 555: 40160 IF (IVON01 - IRECN) 20160, 10160, 20160 05520402 ! 556: 30160 IVDELE = IVDELE + 1 05530402 ! 557: WRITE (I02,80000) IVTNUM 05540402 ! 558: IF (ICZERO) 10160, 0171, 20160 05550402 ! 559: 10160 IVPASS = IVPASS + 1 05560402 ! 560: WRITE (I02,80002) IVTNUM 05570402 ! 561: GO TO 0171 05580402 ! 562: 20160 IVFAIL = IVFAIL + 1 05590402 ! 563: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05600402 ! 564: 0171 CONTINUE 05610402 ! 565: C 05620402 ! 566: C **** FCVS PROGRAM 402 - TEST 017 **** 05630402 ! 567: C 05640402 ! 568: C 05650402 ! 569: C TEST 17 WRITES 40 RECORDS CONTAINING CHARACTER DATA WHICH IS 05660402 ! 570: C USED FOR LATER TESTS. THE FILE SHOULD CONTAIN 140 RECORDS 05670402 ! 571: C FOLLOWING EXECUTION OF THIS TEST. 05680402 ! 572: C 05690402 ! 573: C 05700402 ! 574: IVTNUM = 17 05710402 ! 575: IF (ICZERO) 30170, 0170, 30170 05720402 ! 576: 0170 CONTINUE 05730402 ! 577: 70007 FORMAT (I3,I2,I4,I3,2I4,60HABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 05740402 ! 578: 1 ) 05750402 ! 579: 70008 FORMAT (I3,I2,I4,I3,2I4,60H=+-*/(),'.ABMYZ01589=+-()A5+Z.1'A,4 05760402 ! 580: 1 ) 05770402 ! 581: IRECN = 100 05780402 ! 582: DO 4025 I = 1,20 05790402 ! 583: IRECN = IRECN + 1 05800402 ! 584: WRITE (I09, 70007) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF 05810402 ! 585: C CHARACTERS 0 THROUGH 9 AND A THROUGH Z ARE IN THIS RECORD 05820402 ! 586: IRECN = IRECN + 1 05830402 ! 587: WRITE (I09, 70008) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF 05840402 ! 588: C SPECIAL CHARACTERS ARE IN THIS RECORD 05850402 ! 589: 4025 CONTINUE 05860402 ! 590: IVCOMP = IRECN - 100 05870402 ! 591: IVCORR = 40 05880402 ! 592: IVON01 = 140 05890402 ! 593: 40170 IF (IVON01 - IRECN) 20170, 10170, 20170 05900402 ! 594: 30170 IVDELE = IVDELE + 1 05910402 ! 595: WRITE (I02,80000) IVTNUM 05920402 ! 596: IF (ICZERO) 10170, 0181, 20170 05930402 ! 597: 10170 IVPASS = IVPASS + 1 05940402 ! 598: WRITE (I02,80002) IVTNUM 05950402 ! 599: GO TO 0181 05960402 ! 600: 20170 IVFAIL = IVFAIL + 1 05970402 ! 601: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05980402 ! 602: 0181 CONTINUE 05990402 ! 603: C 06000402 ! 604: C **** FCVS PROGRAM 402 - TEST 018 **** 06010402 ! 605: C 06020402 ! 606: C 06030402 ! 607: C TEST 18 WRITES A RECORD WHICH CONTAINS A LONG FIELD (50 CHAR- 06040402 ! 608: C ACTERS) USING AN A EDIT DESCRIPTOR WITHOUT THE OPTIONAL FIELD 06050402 ! 609: C WIDTH SPECIFICATION. 06060402 ! 610: C 06070402 ! 611: C 06080402 ! 612: IVTNUM = 18 06090402 ! 613: IF (ICZERO) 30180, 0180, 30180 06100402 ! 614: 0180 CONTINUE 06110402 ! 615: IRECN = 141 06120402 ! 616: 70009 FORMAT (I3,I2,I4,I3,2I4,10X,A) 06130402 ! 617: WRITE (I09, 70009) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, CCTN1506140402 ! 618: IVCOMP = IRECN - 140 06150402 ! 619: IVCORR = 1 06160402 ! 620: IVON01 = 141 06170402 ! 621: 40180 IF (IVON01 - IRECN) 20180, 10180, 20180 06180402 ! 622: 30180 IVDELE = IVDELE + 1 06190402 ! 623: WRITE (I02,80000) IVTNUM 06200402 ! 624: IF (ICZERO) 10180, 0191, 20180 06210402 ! 625: 10180 IVPASS = IVPASS + 1 06220402 ! 626: WRITE (I02,80002) IVTNUM 06230402 ! 627: GO TO 0191 06240402 ! 628: 20180 IVFAIL = IVFAIL + 1 06250402 ! 629: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06260402 ! 630: 0191 CONTINUE 06270402 ! 631: C 06280402 ! 632: C **** FCVS PROGRAM 402 - TEST 019 **** 06290402 ! 633: C 06300402 ! 634: C 06310402 ! 635: C TEST 19 WRITES A LONG FIELD (50 CHARACTERS) 06320402 ! 636: C USING AN A EDIT DESCRIPTOR WITH THE OPTIONAL FIELD WIDTH 06330402 ! 637: C SPECIFICATION. 06340402 ! 638: C 06350402 ! 639: C 06360402 ! 640: IVTNUM = 19 06370402 ! 641: IF (ICZERO) 30190, 0190, 30190 06380402 ! 642: 0190 CONTINUE 06390402 ! 643: IRECN = 142 06400402 ! 644: 70010 FORMAT (I3,I2,I4,I3,2I4,10X,A50) 06410402 ! 645: WRITE (I09, 70010) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, CCTN1506420402 ! 646: IVCOMP = IRECN - 141 06430402 ! 647: IVCORR = 1 06440402 ! 648: IVON01 = 142 06450402 ! 649: 40190 IF (IVON01 - IRECN) 20190, 10190, 20190 06460402 ! 650: 30190 IVDELE = IVDELE + 1 06470402 ! 651: WRITE (I02,80000) IVTNUM 06480402 ! 652: IF (ICZERO) 10190, 0201, 20190 06490402 ! 653: 10190 IVPASS = IVPASS + 1 06500402 ! 654: WRITE (I02,80002) IVTNUM 06510402 ! 655: GO TO 0201 06520402 ! 656: 20190 IVFAIL = IVFAIL + 1 06530402 ! 657: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06540402 ! 658: 0201 CONTINUE 06550402 ! 659: C 06560402 ! 660: C **** FCVS PROGRAM 402 - TEST 020 **** 06570402 ! 661: C 06580402 ! 662: C 06590402 ! 663: IVTNUM = 20 06600402 ! 664: IF (ICZERO) 30200, 0200, 30200 06610402 ! 665: 0200 CONTINUE 06620402 ! 666: IRECN = IRECN + 1 06630402 ! 667: IEOF = 9999 06640402 ! 668: 70011 FORMAT (I3,I2,I4,I3,2I4,59X,1H ) 06650402 ! 669: WRITE (I09, 70011) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF 06660402 ! 670: ENDFILE I09 06670402 ! 671: REWIND I09 06680402 ! 672: WRITE (I02, 90004) 06690402 ! 673: 70012 FORMAT (53H FILE I09 HAS BEEN CREATED AND CONTAINS 143 RECORDS) 06700402 ! 674: 70013 FORMAT (39H INCORRECT NUMBER OF RECORDS IN FILE - , I5 ,08H RECO06710402 ! 675: 1RDS) 06720402 ! 676: 70014 FORMAT (50H WRITTEN BUT 143 RECORDS SHOULD HAVE BEEN WRITTEN.) 06730402 ! 677: IF (IRECN - 143) 4020, 4021, 4020 06740402 ! 678: 4020 WRITE (I02, 70013) IRECN 06750402 ! 679: WRITE (I02, 70014) 06760402 ! 680: GO TO 4022 06770402 ! 681: 4021 WRITE (I02, 70012) 06780402 ! 682: WRITE (I02, 90004) 06790402 ! 683: C 06800402 ! 684: C **** END-OF-CREATE-FILE SECTION **** 06810402 ! 685: C 06820402 ! 686: 4022 CONTINUE 06830402 ! 687: C 06840402 ! 688: C TESTS 20 THROUGH 24 READ 5 OF THE FIRST 50 RECORDS USING THE 06850402 ! 689: C A EDIT DESCRIPTOR WITHOUT THE OPTIONAL FIELD WIDTH SPECIFICATION. 06860402 ! 690: C EACH CHARACTER IS CHECKED FOR PROPER EDITING. THE FIELDS ARE 06870402 ! 691: C WRITTEN AND READ WITH THE SAME A EDIT DESCRIPTOR FORM. THE 06880402 ! 692: C RESULTING NUMBER FROM EACH TEST IN IVCOMP AND IVCORR IS 06890402 ! 693: C THE NUMBER OF CORRECT CHARACTERS FOUND AS A RESULT OF THE READ. 06900402 ! 694: C 06910402 ! 695: C 06920402 ! 696: C TEST 20 READS AND CHECKS THE CHARACTERS 0 THROUGH 9. THE 06930402 ! 697: C VALUE RESULTING FROM THE TEST IN IVCOMP AND IVCORR REFLECTS THE 06940402 ! 698: C NUMBER OF CORRECT CHARACTERS FOUND AS A RESULT OF THE READ. 06950402 ! 699: C 06960402 ! 700: IVCOMP = 0 06970402 ! 701: IVCORR = 10 06980402 ! 702: 0202 FORMAT (70X,10A) 06990402 ! 703: READ (I09, 0202) (CATN14(J), J = 1,10) 07000402 ! 704: DO 0203 I=1,10 07010402 ! 705: IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1 07020402 ! 706: 0203 CONTINUE 07030402 ! 707: 40200 IF (IVCOMP - 10) 20200, 10200, 20200 07040402 ! 708: 30200 IVDELE = IVDELE + 1 07050402 ! 709: WRITE (I02,80000) IVTNUM 07060402 ! 710: IF (ICZERO) 10200, 0211, 20200 07070402 ! 711: 10200 IVPASS = IVPASS + 1 07080402 ! 712: WRITE (I02,80002) IVTNUM 07090402 ! 713: GO TO 0211 07100402 ! 714: 20200 IVFAIL = IVFAIL + 1 07110402 ! 715: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07120402 ! 716: 0211 CONTINUE 07130402 ! 717: C 07140402 ! 718: C **** FCVS PROGRAM 402 - TEST 021 **** 07150402 ! 719: C 07160402 ! 720: C 07170402 ! 721: C TEST 21 READS AND CHECKS THE CHARACTERS =,+,-,*,/,(,),,,., AND07180402 ! 722: C '. THE NUMBER RESULTING FROM THE TEST IN IVCOMP AND IVCORR 07190402 ! 723: C REFLECTS THE NUMBER OF CORRECT CHARACTERS FOUND AS A RESULT OF 07200402 ! 724: C THE READ. 07210402 ! 725: C 07220402 ! 726: C 07230402 ! 727: IVTNUM = 21 07240402 ! 728: IF (ICZERO) 30210, 0210, 30210 07250402 ! 729: 0210 CONTINUE 07260402 ! 730: IVCOMP = 0 07270402 ! 731: IVCORR = 10 07280402 ! 732: 0212 FORMAT (70X,10A) 07290402 ! 733: READ (I09, 0212) (CATN14(J), J = 11,20) 07300402 ! 734: DO 0213 I = 11,20 07310402 ! 735: IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1 07320402 ! 736: 0213 CONTINUE 07330402 ! 737: 40210 IF (IVCOMP - 10) 20210, 10210, 20210 07340402 ! 738: 30210 IVDELE = IVDELE + 1 07350402 ! 739: WRITE (I02,80000) IVTNUM 07360402 ! 740: IF (ICZERO) 10210, 0221, 20210 07370402 ! 741: 10210 IVPASS = IVPASS + 1 07380402 ! 742: WRITE (I02,80002) IVTNUM 07390402 ! 743: GO TO 0221 07400402 ! 744: 20210 IVFAIL = IVFAIL + 1 07410402 ! 745: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07420402 ! 746: 0221 CONTINUE 07430402 ! 747: C 07440402 ! 748: C **** FCVS PROGRAM 402 - TEST 022 **** 07450402 ! 749: C 07460402 ! 750: C 07470402 ! 751: C TEST 22 READS AND CHECKS THE CHARACTERS A THROUGH J. 07480402 ! 752: C 07490402 ! 753: C 07500402 ! 754: IVTNUM = 22 07510402 ! 755: IF (ICZERO) 30220, 0220, 30220 07520402 ! 756: 0220 CONTINUE 07530402 ! 757: IVCOMP = 0 07540402 ! 758: IVCORR = 10 07550402 ! 759: 0222 FORMAT (70X,10A) 07560402 ! 760: READ (I09, 0222) (CATN14(J), J = 21,30) 07570402 ! 761: DO 0223 I = 21,30 07580402 ! 762: IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1 07590402 ! 763: 0223 CONTINUE 07600402 ! 764: 40220 IF (IVCOMP - 10) 20220, 10220, 20220 07610402 ! 765: 30220 IVDELE = IVDELE + 1 07620402 ! 766: WRITE (I02,80000) IVTNUM 07630402 ! 767: IF (ICZERO) 10220, 0231, 20220 07640402 ! 768: 10220 IVPASS = IVPASS + 1 07650402 ! 769: WRITE (I02,80002) IVTNUM 07660402 ! 770: GO TO 0231 07670402 ! 771: 20220 IVFAIL = IVFAIL + 1 07680402 ! 772: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07690402 ! 773: 0231 CONTINUE 07700402 ! 774: C 07710402 ! 775: C **** FCVS PROGRAM 402 - TEST 023 **** 07720402 ! 776: C 07730402 ! 777: C 07740402 ! 778: C TEST 23 READS AND CHECKS THE CHARACTERS K THROUGH T. 07750402 ! 779: C 07760402 ! 780: C 07770402 ! 781: IVTNUM = 23 07780402 ! 782: IF (ICZERO) 30230, 0230, 30230 07790402 ! 783: 0230 CONTINUE 07800402 ! 784: IVCOMP = 0 07810402 ! 785: IVCORR = 10 07820402 ! 786: 0232 FORMAT (70X,10A) 07830402 ! 787: READ (I09, 0232) (CATN14(J), J = 31,40) 07840402 ! 788: DO 0233 I = 31,40 07850402 ! 789: IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1 07860402 ! 790: 0233 CONTINUE 07870402 ! 791: 40230 IF (IVCOMP - 10) 20230, 10230, 20230 07880402 ! 792: 30230 IVDELE = IVDELE + 1 07890402 ! 793: WRITE (I02,80000) IVTNUM 07900402 ! 794: IF (ICZERO) 10230, 0241, 20230 07910402 ! 795: 10230 IVPASS = IVPASS + 1 07920402 ! 796: WRITE (I02,80002) IVTNUM 07930402 ! 797: GO TO 0241 07940402 ! 798: 20230 IVFAIL = IVFAIL + 1 07950402 ! 799: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07960402 ! 800: 0241 CONTINUE 07970402 ! 801: C 07980402 ! 802: C **** FCVS PROGRAM 402 - TEST 024 **** 07990402 ! 803: C 08000402 ! 804: C 08010402 ! 805: C TEST 24 READS AND CHECKS THE CHARACTERS U THROUGH Z. 08020402 ! 806: C 08030402 ! 807: C 08040402 ! 808: IVTNUM = 24 08050402 ! 809: IF (ICZERO) 30240, 0240, 30240 08060402 ! 810: 0240 CONTINUE 08070402 ! 811: IVCOMP = 0 08080402 ! 812: IVCORR = 06 08090402 ! 813: 0242 FORMAT (74X,6A) 08100402 ! 814: READ (I09, 0242) (CATN14(J), J = 41,46) 08110402 ! 815: DO 0243 I = 41,46 08120402 ! 816: IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1 08130402 ! 817: 0243 CONTINUE 08140402 ! 818: 40240 IF (IVCOMP - 6) 20240, 10240, 20240 08150402 ! 819: 30240 IVDELE = IVDELE + 1 08160402 ! 820: WRITE (I02,80000) IVTNUM 08170402 ! 821: IF (ICZERO) 10240, 0251, 20240 08180402 ! 822: 10240 IVPASS = IVPASS + 1 08190402 ! 823: WRITE (I02,80002) IVTNUM 08200402 ! 824: GO TO 0251 08210402 ! 825: 20240 IVFAIL = IVFAIL + 1 08220402 ! 826: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08230402 ! 827: 0251 CONTINUE 08240402 ! 828: C 08250402 ! 829: C 08260402 ! 830: C TESTS 25 THROUGH 29 READ RECORD NUMBERS 56 THROUGH 60 USING 08270402 ! 831: C THE A EDIT DESCRIPTOR WITH THE OPTIONAL FIELD WIDTH SPECIFIED. 08280402 ! 832: C EACH FIELD IS 1 CHARACTER IN LENGTH AND IS CHECKED FOR PROPER 08290402 ! 833: C EDITING. THE FIELDS ARE WRITTEN AND READ WITH THE SAME EDIT 08300402 ! 834: C DESCRIPTOR. THE NUMBER RESULTING FROM EACH TEST IN IVCOMP AND 08310402 ! 835: C IVCORR IS THE THE NUMBER OF CORRECT CHARACTERS FOUND AS A RESULT 08320402 ! 836: C OF THE READ. 08330402 ! 837: C 08340402 ! 838: C 08350402 ! 839: 70020 FORMAT (12X,2I4,59X,A1) 08360402 ! 840: REWIND I09 08370402 ! 841: DO 4026 I = 1, 150 08380402 ! 842: READ (I09, 70020, END = 4027) IRECN, IEOF 08390402 ! 843: IF (IRECN .EQ. 55) GO TO 4027 08400402 ! 844: 4026 CONTINUE 08410402 ! 845: 4027 IF (IRECN - 55) 4028, 4029, 4028 08420402 ! 846: C 08430402 ! 847: C THE CODE IMMEDIATELY PRECEDING POSITIONS THE FILE TO RECORD 08440402 ! 848: C NUMBER 55 FOR TESTS 25 THROUGH 29. 08450402 ! 849: C 08460402 ! 850: 70021 FORMAT (64H THE INITIAL RECORD FOR TESTS 25 THROUGH 29 COULD NOT 08470402 ! 851: 1BE FOUND,) 08480402 ! 852: 70022 FORMAT (49H THEREFORE TESTS 25 THROUGH 29 ARE DELETED.) 08490402 ! 853: 4028 WRITE (I02, 70021) 08500402 ! 854: WRITE (I02, 70022) 08510402 ! 855: GO TO 301 08520402 ! 856: 4029 CONTINUE 08530402 ! 857: DO 4030 I = 1,46 08540402 ! 858: CATN14(I) = ' ' 08550402 ! 859: 4030 CONTINUE 08560402 ! 860: C 08570402 ! 861: C THE ABOVE DO LOOP INITIALIZES THE ARRAY CATN14 TO BLANKS. 08580402 ! 862: C 08590402 ! 863: C 08600402 ! 864: C **** FCVS PROGRAM 402 - TEST 025 **** 08610402 ! 865: C 08620402 ! 866: C 08630402 ! 867: C TEST 25 READS AND CHECKS THE CHARACTERS 0 THROUGH 9. 08640402 ! 868: C 08650402 ! 869: C 08660402 ! 870: IVTNUM = 25 08670402 ! 871: IF (ICZERO) 30250, 0250, 30250 08680402 ! 872: 0250 CONTINUE 08690402 ! 873: IVCOMP = 0 08700402 ! 874: IVCORR = 10 08710402 ! 875: 0252 FORMAT (70X,10A1) 08720402 ! 876: READ (I09, 0252) (CATN14(J), J = 1, 10) 08730402 ! 877: DO 0253 I = 1,10 08740402 ! 878: IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1 08750402 ! 879: 0253 CONTINUE 08760402 ! 880: 40250 IF (IVCOMP - 10) 20250, 10250, 20250 08770402 ! 881: 30250 IVDELE = IVDELE + 1 08780402 ! 882: WRITE (I02,80000) IVTNUM 08790402 ! 883: IF (ICZERO) 10250, 0261, 20250 08800402 ! 884: 10250 IVPASS = IVPASS + 1 08810402 ! 885: WRITE (I02,80002) IVTNUM 08820402 ! 886: GO TO 0261 08830402 ! 887: 20250 IVFAIL = IVFAIL + 1 08840402 ! 888: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08850402 ! 889: 0261 CONTINUE 08860402 ! 890: C 08870402 ! 891: C **** FCVS PROGRAM 402 - TEST 026 **** 08880402 ! 892: C 08890402 ! 893: C 08900402 ! 894: C TEST 26 READS AND CHECKS THE CHARACTERS =,+,-,*,/,(,),,,., AND08910402 ! 895: C '. 08920402 ! 896: C 08930402 ! 897: C 08940402 ! 898: IVTNUM = 26 08950402 ! 899: IF (ICZERO) 30260, 0260, 30260 08960402 ! 900: 0260 CONTINUE 08970402 ! 901: IVCOMP = 0 08980402 ! 902: IVCORR = 10 08990402 ! 903: 0262 FORMAT (70X,10A1) 09000402 ! 904: READ (I09, 0262) (CATN14(J), J = 11, 20) 09010402 ! 905: DO 0263 I = 11,20 09020402 ! 906: IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1 09030402 ! 907: 0263 CONTINUE 09040402 ! 908: 40260 IF (IVCOMP -10) 20260, 10260, 20260 09050402 ! 909: 30260 IVDELE = IVDELE + 1 09060402 ! 910: WRITE (I02,80000) IVTNUM 09070402 ! 911: IF (ICZERO) 10260, 0271, 20260 09080402 ! 912: 10260 IVPASS = IVPASS + 1 09090402 ! 913: WRITE (I02,80002) IVTNUM 09100402 ! 914: GO TO 0271 09110402 ! 915: 20260 IVFAIL = IVFAIL + 1 09120402 ! 916: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 09130402 ! 917: 0271 CONTINUE 09140402 ! 918: C 09150402 ! 919: C **** FCVS PROGRAM 402 - TEST 027 **** 09160402 ! 920: C 09170402 ! 921: C 09180402 ! 922: C TEST 27 READS AND CHECKS THE CHARACTERS A THROUGH J. 09190402 ! 923: C 09200402 ! 924: C 09210402 ! 925: IVTNUM = 27 09220402 ! 926: IF (ICZERO) 30270, 0270, 30270 09230402 ! 927: 0270 CONTINUE 09240402 ! 928: IVCOMP = 0 09250402 ! 929: IVCORR = 10 09260402 ! 930: 0272 FORMAT (70X,10A1) 09270402 ! 931: READ (I09, 0272) (CATN14(J), J = 21,30) 09280402 ! 932: DO 0273 I = 21,30 09290402 ! 933: IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1 09300402 ! 934: 0273 CONTINUE 09310402 ! 935: 40270 IF (IVCOMP - 10) 20270, 10270, 20270 09320402 ! 936: 30270 IVDELE = IVDELE + 1 09330402 ! 937: WRITE (I02,80000) IVTNUM 09340402 ! 938: IF (ICZERO) 10270, 0281, 20270 09350402 ! 939: 10270 IVPASS = IVPASS + 1 09360402 ! 940: WRITE (I02,80002) IVTNUM 09370402 ! 941: GO TO 0281 09380402 ! 942: 20270 IVFAIL = IVFAIL + 1 09390402 ! 943: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 09400402 ! 944: 0281 CONTINUE 09410402 ! 945: C 09420402 ! 946: C **** FCVS PROGRAM 402 - TEST 028 **** 09430402 ! 947: C 09440402 ! 948: C 09450402 ! 949: C TEST 28 READS AND CHECKS THE CHARACTERS K THROUGH T. 09460402 ! 950: C 09470402 ! 951: C 09480402 ! 952: IVTNUM = 28 09490402 ! 953: IF (ICZERO) 30280, 0280, 30280 09500402 ! 954: 0280 CONTINUE 09510402 ! 955: IVCOMP = 0 09520402 ! 956: IVCORR = 10 09530402 ! 957: 0282 FORMAT (70X,10A1) 09540402 ! 958: READ (I09, 0282) (CATN14(J), J = 31,40) 09550402 ! 959: DO 0283 I = 31, 40 09560402 ! 960: IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1 09570402 ! 961: 0283 CONTINUE 09580402 ! 962: 40280 IF (IVCOMP - 10) 20280, 10280, 20280 09590402 ! 963: 30280 IVDELE = IVDELE + 1 09600402 ! 964: WRITE (I02,80000) IVTNUM 09610402 ! 965: IF (ICZERO) 10280, 0291, 20280 09620402 ! 966: 10280 IVPASS = IVPASS + 1 09630402 ! 967: WRITE (I02,80002) IVTNUM 09640402 ! 968: GO TO 0291 09650402 ! 969: 20280 IVFAIL = IVFAIL + 1 09660402 ! 970: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 09670402 ! 971: 0291 CONTINUE 09680402 ! 972: C 09690402 ! 973: C **** FCVS PROGRAM 402 - TEST 029 **** 09700402 ! 974: C 09710402 ! 975: C 09720402 ! 976: C TEST 29 READS AND CHECKS THE CHARACTERS U THROUGH Z. 09730402 ! 977: C 09740402 ! 978: C 09750402 ! 979: IVTNUM = 29 09760402 ! 980: IF (ICZERO) 30290, 0290, 30290 09770402 ! 981: 0290 CONTINUE 09780402 ! 982: IVCOMP = 0 09790402 ! 983: IVCORR = 6 09800402 ! 984: 0292 FORMAT (74X,6A1) 09810402 ! 985: READ (I09, 0292) (CATN14(J), J = 41,46) 09820402 ! 986: DO 0293 I = 41,46 09830402 ! 987: IF (CATN14(I) .EQ. CATN11(I)) IVCOMP = IVCOMP + 1 09840402 ! 988: 0293 CONTINUE 09850402 ! 989: 40290 IF (IVCOMP - 6) 20290, 10290, 20290 09860402 ! 990: 30290 IVDELE = IVDELE + 1 09870402 ! 991: WRITE (I02,80000) IVTNUM 09880402 ! 992: IF (ICZERO) 10290, 0301, 20290 09890402 ! 993: 10290 IVPASS = IVPASS + 1 09900402 ! 994: WRITE (I02,80002) IVTNUM 09910402 ! 995: GO TO 0301 09920402 ! 996: 20290 IVFAIL = IVFAIL + 1 09930402 ! 997: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 09940402 ! 998: 0301 CONTINUE 09950402 ! 999: C 09960402 ! 1000: C 09970402 ! 1001: C TESTS 30 THROUGH 32 READ RECORD NUMBERS 101 THROUGH 103. THESE09980402 ! 1002: C TESTS TEST FOR PROPER EDITING ON INPUT WHERE THE INPUT FIELD 09990402 ! 1003: C AND THE INPUT LIST ITEM ARE OF DIFFERENT SIZES. 10000402 ! 1004: C 10010402 ! 1005: C 10020402 ! 1006: 70031 FORMAT (12X,2I4,59X,A1) 10030402 ! 1007: REWIND I09 10040402 ! 1008: DO 4031 I = 1,150 10050402 ! 1009: READ (I09, 70031, END = 4032) IRECN, IEOF 10060402 ! 1010: IF (IRECN .EQ. 100) GO TO 4032 10070402 ! 1011: 4031 CONTINUE 10080402 ! 1012: 4032 IF (IRECN - 100) 4033, 4034, 4033 10090402 ! 1013: 70032 FORMAT (64H THE START RECORD FOR TESTS 30 THROUGH 32 COULD NOT 10100402 ! 1014: 1BE FOUND,) 10110402 ! 1015: 70033 FORMAT (49H THEREFORE TESTS 30 THROUGH 32 ARE DELETED.) 10120402 ! 1016: 4033 WRITE (I02, 70032) 10130402 ! 1017: WRITE (I02, 70033) 10140402 ! 1018: GO TO 331 10150402 ! 1019: 4034 CONTINUE 10160402 ! 1020: C 10170402 ! 1021: C **** FCVS PROGRAM 402 - TEST 030 **** 10180402 ! 1022: C 10190402 ! 1023: C 10200402 ! 1024: C TEST 30 TESTS THE A EDIT DESCRIPTOR WITH THE OPTIONAL REPEAT 10210402 ! 1025: C SPECIFICATION. THE A EDIT DESCRIPTOR DOES NOT HAVE THE OPTIONAL 10220402 ! 1026: C FIELD WIDTH SPECIFICATION AND THE INPUT LIST ITEMS VARY IN SIZE 10230402 ! 1027: C FROM 1 TO 10 CHARACTERS. RECORD NUMBER 101 IS READ AND WAS 10240402 ! 1028: C CREATED IN TEST 17 WITH THE FORMAT STATEMENT 10250402 ! 1029: C 10260402 ! 1030: C FORMAT (I3,I2,I4,I3,2I4,60HABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 10270402 ! 1031: C 1 ) 10280402 ! 1032: C 10290402 ! 1033: C 10300402 ! 1034: IVTNUM = 30 10310402 ! 1035: IF (ICZERO) 30300, 0300, 30300 10320402 ! 1036: 0300 CONTINUE 10330402 ! 1037: IVCOMP = 1 10340402 ! 1038: IVCORR = 210 10350402 ! 1039: CATN14(1) = ' ' 10360402 ! 1040: CVTN13 = ' ' 10370402 ! 1041: CATN12(3) = ' ' 10380402 ! 1042: CVTN12 = ' ' 10390402 ! 1043: 0302 FORMAT (20X,4A,42X,A1) 10400402 ! 1044: READ (I09, 0302, END = 0303) CATN14(1), CVTN13, CATN12(3), CVTN1210410402 ! 1045: 0303 IF (CATN14(1) .EQ. 'A') IVCOMP = IVCOMP * 2 10420402 ! 1046: IF (CVTN13 .EQ. 'BC') IVCOMP = IVCOMP * 3 10430402 ! 1047: IF (CATN12(3) .EQ. 'DEFGH') IVCOMP = IVCOMP * 5 10440402 ! 1048: IF (CVTN12 .EQ. 'IJKLMNOPQR') IVCOMP = IVCOMP * 7 10450402 ! 1049: 40300 IF (IVCOMP - 210) 20300, 10300, 20300 10460402 ! 1050: 30300 IVDELE = IVDELE + 1 10470402 ! 1051: WRITE (I02,80000) IVTNUM 10480402 ! 1052: IF (ICZERO) 10300, 0311, 20300 10490402 ! 1053: 10300 IVPASS = IVPASS + 1 10500402 ! 1054: WRITE (I02,80002) IVTNUM 10510402 ! 1055: GO TO 0311 10520402 ! 1056: 20300 IVFAIL = IVFAIL + 1 10530402 ! 1057: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 10540402 ! 1058: 0311 CONTINUE 10550402 ! 1059: C 10560402 ! 1060: C **** FCVS PROGRAM 402 - TEST 031 **** 10570402 ! 1061: C 10580402 ! 1062: C 10590402 ! 1063: C TEST 31 TESTS FOR PROPER EDITING OF THE A EDIT DESCRIPTOR WHEN10600402 ! 1064: C THE SPECIFIED WIDTH OF THE DESCRIPTOR IS LESS THAN THE INTERNAL 10610402 ! 1065: C REPRESENTATION OF THE INPUT LIST ITEM. THE CHARACTERS SHOULD 10620402 ! 1066: C APPEAR LEFT-JUSTIFIED WITH TRAILING BLANKS IN THE INTERNAL 10630402 ! 1067: C REPRESENTATION. RECORD NUMBER 102 IS READ AND WAS CREATED 10640402 ! 1068: C IN TEST 17 WITH THE FORMAT STATEMENT 10650402 ! 1069: C 10660402 ! 1070: C FORMAT (I3,I2,I4,I3,2I4,60H=+-*/(),'.ABMYZ01589=+-()A5+Z.1'A,4 10670402 ! 1071: C 1 ) 10680402 ! 1072: C 10690402 ! 1073: C 10700402 ! 1074: C 10710402 ! 1075: IVTNUM = 31 10720402 ! 1076: IF (ICZERO) 30310, 0310, 30310 10730402 ! 1077: 0310 CONTINUE 10740402 ! 1078: CVTN12 = '9999999999' 10750402 ! 1079: IVCOMP = 0 10760402 ! 1080: IVCORR = 1 10770402 ! 1081: 0312 FORMAT (20X,10X,A5,40X) 10780402 ! 1082: READ (I09, 0312, END = 0313) CVTN12 10790402 ! 1083: 0313 IF (CVTN12 .EQ. 'ABMYZ ') IVCOMP = 1 10800402 ! 1084: 40310 IF (IVCOMP - 1) 20310, 10310, 20310 10810402 ! 1085: 30310 IVDELE = IVDELE + 1 10820402 ! 1086: WRITE (I02,80000) IVTNUM 10830402 ! 1087: IF (ICZERO) 10310, 0321, 20310 10840402 ! 1088: 10310 IVPASS = IVPASS + 1 10850402 ! 1089: WRITE (I02,80002) IVTNUM 10860402 ! 1090: GO TO 0321 10870402 ! 1091: 20310 IVFAIL = IVFAIL + 1 10880402 ! 1092: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 10890402 ! 1093: 0321 CONTINUE 10900402 ! 1094: C 10910402 ! 1095: C **** FCVS PROGRAM 402 - TEST 032 **** 10920402 ! 1096: C 10930402 ! 1097: C 10940402 ! 1098: C TEST 32 TESTS FOR PROPER EDITING OF THE A EDIT 10950402 ! 1099: C DESCRIPTOR WHEN THE WIDTH OF THE DESCRIPTOR IS GREATER THAN THE 10960402 ! 1100: C INTERNAL REPRESENTATION OF THE INPUT LIST ITEM. THE RIGHTMOST 10970402 ! 1101: C CHARACTERS SHOULD BE TAKEN FROM THE INPUT FIELD. RECORD NUMBER 10980402 ! 1102: C 103 IS EXPECTED TO BE READ. THE RECORD WAS CREATED IN TEST 17 10990402 ! 1103: C WITH THE FORMAT STATEMENT 11000402 ! 1104: C 11010402 ! 1105: C FORMAT (I3,I2,I4,I3,2I4,60HABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 11020402 ! 1106: C 1 ) 11030402 ! 1107: C 11040402 ! 1108: C 11050402 ! 1109: C 11060402 ! 1110: IVTNUM = 32 11070402 ! 1111: IF (ICZERO) 30320, 0320, 30320 11080402 ! 1112: 0320 CONTINUE 11090402 ! 1113: CATN12 (5) = 'AAAAA' 11100402 ! 1114: IVCOMP = 0 11110402 ! 1115: IVCORR = 1 11120402 ! 1116: 0322 FORMAT (20X,10X,A10,35X) 11130402 ! 1117: READ (I09, 0322, END = 0323) CATN12 (5) 11140402 ! 1118: 0323 IF (CATN12(5) .EQ. 'PQRST') IVCOMP = 1 11150402 ! 1119: 40320 IF (IVCOMP - 1) 20320, 10320, 20320 11160402 ! 1120: 30320 IVDELE = IVDELE + 1 11170402 ! 1121: WRITE (I02,80000) IVTNUM 11180402 ! 1122: IF (ICZERO) 10320, 0331, 20320 11190402 ! 1123: 10320 IVPASS = IVPASS + 1 11200402 ! 1124: WRITE (I02,80002) IVTNUM 11210402 ! 1125: GO TO 0331 11220402 ! 1126: 20320 IVFAIL = IVFAIL + 1 11230402 ! 1127: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 11240402 ! 1128: 0331 CONTINUE 11250402 ! 1129: C 11260402 ! 1130: C 11270402 ! 1131: C TESTS 33 AND 34 READ A LONG INPUT FIELD (50 CHARACTERS) AND 11280402 ! 1132: C CHECK RESULTING INTERNAL REPRESENTATION. THE RECORD IS READ 11290402 ! 1133: C WITH THE SAME A EDIT DESCRIPTOR AS WAS USED TO WRITE THE RECORD. 11300402 ! 1134: C 11310402 ! 1135: C 11320402 ! 1136: 70034 FORMAT (12X,2I4,60X) 11330402 ! 1137: REWIND I09 11340402 ! 1138: DO 4035 I = 1,150 11350402 ! 1139: READ (I09, 70034, END = 4036) IRECN, IEOF 11360402 ! 1140: IF (IRECN .EQ. 140) GO TO 4036 11370402 ! 1141: 4035 CONTINUE 11380402 ! 1142: 4036 IF (IRECN - 140) 4037, 4038, 4037 11390402 ! 1143: C THE ABOVE CODE POSITIONS THE FILE TO RECORD NUMBER 140 FOR 11400402 ! 1144: C TESTS 33 AND 34. 11410402 ! 1145: C 11420402 ! 1146: 70035 FORMAT (61H THE START RECORD FOR TESTS 33 AND 34 COULD NOT BE 11430402 ! 1147: 1FOUND,) 11440402 ! 1148: 70036 FORMAT (45H THEREFORE TESTS 33 AND 34 ARE DELETED.) 11450402 ! 1149: 4037 WRITE (I02, 70035) 11460402 ! 1150: WRITE (I02, 70036) 11470402 ! 1151: GO TO 351 11480402 ! 1152: 4038 CONTINUE 11490402 ! 1153: C 11500402 ! 1154: C **** FCVS PROGRAM 402 - TEST 033 **** 11510402 ! 1155: C 11520402 ! 1156: C 11530402 ! 1157: C TEST 33 READS A LONG FIELD WITH THE WIDTH SPECIFIED ON THE A 11540402 ! 1158: C EDIT DESCRIPTOR. RECORD NUMBER 141 IS READ. THE RECORD WAS 11550402 ! 1159: C CREATED IN TEST 18 AND CONTAINS FIELD DATA OF 11560402 ! 1160: C 11570402 ! 1161: C 'ABCDEFG HIJKLMN OPQRSTUVWXYZ 0123456789' 11580402 ! 1162: C 11590402 ! 1163: C WITHOUT THE SURROUNDING APOSTROPHES. 11600402 ! 1164: C 11610402 ! 1165: C 11620402 ! 1166: C 11630402 ! 1167: IVTNUM = 33 11640402 ! 1168: IF (ICZERO) 30330, 0330, 30330 11650402 ! 1169: 0330 CONTINUE 11660402 ! 1170: CVTN15 = ' ' 11670402 ! 1171: IVCOMP = 0 11680402 ! 1172: IVCORR = 1 11690402 ! 1173: 0332 FORMAT (20X,10X,A50) 11700402 ! 1174: READ (I09, 0332) CVTN15 11710402 ! 1175: IF (CVTN15 .EQ. 'ABCDEFG HIJKLMN OPQRSTUVWXYZ 01234567811720402 ! 1176: 19') IVCOMP = 1 11730402 ! 1177: 40330 IF (IVCOMP -1 ) 20330, 10330, 20330 11740402 ! 1178: 30330 IVDELE = IVDELE + 1 11750402 ! 1179: WRITE (I02,80000) IVTNUM 11760402 ! 1180: IF (ICZERO) 10330, 0341, 20330 11770402 ! 1181: 10330 IVPASS = IVPASS + 1 11780402 ! 1182: WRITE (I02,80002) IVTNUM 11790402 ! 1183: GO TO 0341 11800402 ! 1184: 20330 IVFAIL = IVFAIL + 1 11810402 ! 1185: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 11820402 ! 1186: 0341 CONTINUE 11830402 ! 1187: C 11840402 ! 1188: C **** FCVS PROGRAM 402 - TEST 034 **** 11850402 ! 1189: C 11860402 ! 1190: C 11870402 ! 1191: C TEST 34 READS A LONG FIELD USING THE A EDIT DESCRIPTOR 11880402 ! 1192: C WITHOUT THE OPTIONAL WIDTH SPECIFIED. RECORD NUMBER 142 IS READ. 11890402 ! 1193: C THE RECORD WAS CREATED IN TEST 19 AND CONTAINS THE FIELD DATA 11900402 ! 1194: C 11910402 ! 1195: C 'ABCDEFG HIJKLMN OPQRSTUVWXYZ 0123456789' 11920402 ! 1196: C 11930402 ! 1197: C WITHOUT THE SURROUNDING APOSTROPHES. 11940402 ! 1198: C 11950402 ! 1199: C 11960402 ! 1200: IVTNUM = 34 11970402 ! 1201: IF (ICZERO) 30340, 0340, 30340 11980402 ! 1202: 0340 CONTINUE 11990402 ! 1203: CVTN15 = ' ' 12000402 ! 1204: IVCOMP = 0 12010402 ! 1205: IVCORR = 1 12020402 ! 1206: 0342 FORMAT (20X,10X,A) 12030402 ! 1207: READ (I09, 0342) CVTN15 12040402 ! 1208: IF (CVTN15 .EQ. 'ABCDEFG HIJKLMN OPQRSTUVWXYZ 01234567812050402 ! 1209: 19') IVCOMP = 1 12060402 ! 1210: 40340 IF (IVCOMP - 1) 20340, 10340, 20340 12070402 ! 1211: 30340 IVDELE = IVDELE + 1 12080402 ! 1212: WRITE (I02,80000) IVTNUM 12090402 ! 1213: IF (ICZERO) 10340, 0351, 20340 12100402 ! 1214: 10340 IVPASS = IVPASS + 1 12110402 ! 1215: WRITE (I02,80002) IVTNUM 12120402 ! 1216: GO TO 0351 12130402 ! 1217: 20340 IVFAIL = IVFAIL + 1 12140402 ! 1218: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 12150402 ! 1219: 0351 CONTINUE 12160402 ! 1220: C 12170402 ! 1221: C 12180402 ! 1222: C 12190402 ! 1223: C THE FOLLOWING SOURCE CODE BRACKETED BY THE COMMENT LINES 12200402 ! 1224: C ***** BEGIN-FILE-DUMP SECTION AND ***** END-FILE-DUMP SECTION 12210402 ! 1225: C MAY OR MAY NOT APPEAR AS COMMENTS IN THE SOURCE PROGRAM. 12220402 ! 1226: C THIS CODE IS OPTIONAL AND BY DEFAULT IT IS AUTOMATICALLY COMMENTED12230402 ! 1227: C OUT BY THE EXECUTIVE ROUTINE. A DUMP OF THE FILE USED BY THIS 12240402 ! 1228: C ROUTINE IS PROVIDED BY USING THE *OPT1 EXECUTIVE ROUTINE CONTROL 12250402 ! 1229: C CARD. IF THE OPTIONAL CODE IS SELECTED THE ROUTINE WILL DUMP 12260402 ! 1230: C THE CONTENTS OF THE FILE TO THE PRINT FILE FOLLOWING THE TEST 12270402 ! 1231: C REPORT AND BEFORE THE TEST REPORT SUMMARY. 12280402 ! 1232: C 12290402 ! 1233: CDB** BEGIN FILE DUMP CODE 12300402 ! 1234: C REWIND I09 12310402 ! 1235: C IRNUM = 1 12320402 ! 1236: C IRLGN = 80 12330402 ! 1237: C ILUN = I09 12340402 ! 1238: C7701 FORMAT (I3,I2,I4,I3,2I4,60A1) 12350402 ! 1239: C7702 FORMAT (1H ,I3,I2,I4,I3,2I4,60A1) 12360402 ! 1240: C7703 FORMAT (10X,5HFILE ,I2,5H HAS ,I3,13H RECORDS - OK) 12370402 ! 1241: C7704 FORMAT (10X,5HFILE ,I2,5H HAS ,I3,27H RECORDS - THERE SHOULD BE , 12380402 ! 1242: C 1I3,9H RECORDS.) 12390402 ! 1243: C DO 7771 IRNUM = 1, ITOTR 12400402 ! 1244: C READ (ILUN, 7701) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 12410402 ! 1245: C 1 (IDUMP(ICH), ICH = 1,60) 12420402 ! 1246: C WRITE (I02, 7702) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 12430402 ! 1247: C 1 (IDUMP(ICH), ICH = 1,60) 12440402 ! 1248: C IF (IEOF .EQ. 9999) GO TO 7772 12450402 ! 1249: C7771 CONTINUE 12460402 ! 1250: C GO TO 7775 12470402 ! 1251: C7772 IF (IRNUM - ITOTR) 7774, 7773, 7775 12480402 ! 1252: C7773 WRITE (I02, 7703) ILUN, IRNUM 12490402 ! 1253: C GO TO 7779 12500402 ! 1254: C7774 WRITE (I02, 7704) ILUN, IRNUM, ITOTR 12510402 ! 1255: C GO TO 7779 12520402 ! 1256: C7775 DO 7776 I = 1,20 12530402 ! 1257: C READ (ILUN, 7701) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 12540402 ! 1258: C 1 (IDUMP(ICH), ICH = 1,60) 12550402 ! 1259: C WRITE (I02, 7702) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 12560402 ! 1260: C 1 (IDUMP(ICH), ICH = 1,60) 12570402 ! 1261: C IRNUM = IRNUM + 1 12580402 ! 1262: C IF (IEOF .EQ. 9999) GO TO 7777 12590402 ! 1263: C7776 CONTINUE 12600402 ! 1264: C7777 WRITE (I02, 7704) ILUN, IRNUM, ITOTR 12610402 ! 1265: C7779 CONTINUE 12620402 ! 1266: CDE** END OF DUMP CODE 12630402 ! 1267: C 12640402 ! 1268: C THERE SHOULD BE 34 TESTS IN THIS ROUTINE 12650402 ! 1269: C 12660402 ! 1270: C 12670402 ! 1271: C 12680402 ! 1272: C 12690402 ! 1273: C WRITE OUT TEST SUMMARY 12700402 ! 1274: C 12710402 ! 1275: WRITE (I02,90004) 12720402 ! 1276: WRITE (I02,90014) 12730402 ! 1277: WRITE (I02,90004) 12740402 ! 1278: WRITE (I02,90000) 12750402 ! 1279: WRITE (I02,90004) 12760402 ! 1280: WRITE (I02,90020) IVFAIL 12770402 ! 1281: WRITE (I02,90022) IVPASS 12780402 ! 1282: WRITE (I02,90024) IVDELE 12790402 ! 1283: STOP 12800402 ! 1284: 90001 FORMAT (1H ,24X,5HFM402) 12810402 ! 1285: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM402) 12820402 ! 1286: C 12830402 ! 1287: C FORMATS FOR TEST DETAIL LINES 12840402 ! 1288: C 12850402 ! 1289: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 12860402 ! 1290: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 12870402 ! 1291: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 12880402 ! 1292: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 12890402 ! 1293: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 12900402 ! 1294: C 12910402 ! 1295: C FORMAT STATEMENTS FOR PAGE HEADERS 12920402 ! 1296: C 12930402 ! 1297: 90002 FORMAT (1H1) 12940402 ! 1298: 90004 FORMAT (1H ) 12950402 ! 1299: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 12960402 ! 1300: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 12970402 ! 1301: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 12980402 ! 1302: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 12990402 ! 1303: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 13000402 ! 1304: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 13010402 ! 1305: C 13020402 ! 1306: C FORMAT STATEMENTS FOR RUN SUMMARY 13030402 ! 1307: C 13040402 ! 1308: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 13050402 ! 1309: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 13060402 ! 1310: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 13070402 ! 1311: END 13080402
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.