|
|
1.1 ! root 1: PROGRAM FM204 00010204 ! 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 00020204 ! 6: C 00030204 ! 7: C THIS ROUTINE CONTINUES THE TESTING OF CHARACTER VARIABLES AND 00040204 ! 8: C CHARACTER ARRAYS OF LENGTH ONE. THE CHARACTER FEATURES TESTED IN 00050204 ! 9: C FM202 AND FM203 ARE USED IN THE TESTS IN THIS ROUTINE. THE 00060204 ! 10: C FOLLOWING CHARACTER FEATURES ARE TESTED 00070204 ! 11: C 00080204 ! 12: C (1) INITIAL DEFINITION OF CHARACTER ENTITIES OF LENGTH ONE BY 00090204 ! 13: C SPECIFYING THEM IN A DATA STATEMENT. 00100204 ! 14: C 00110204 ! 15: C (2) THE SUBSET FORTRAN LANGUAGE SPECIFIES THE FOLLOWING 00120204 ! 16: C COLLATING SEQUENCE RULES. 00130204 ! 17: C 00140204 ! 18: C A LESS THAN B ... LESS THAN Z, 00150204 ! 19: C 0 LESS THAN 1 ... LESS THAN 9, 00160204 ! 20: C ALL OF THE DIGITS PRECEDE A OR ALL OF THE DIGITS FOLLOW 00170204 ! 21: C Z, 00180204 ! 22: C BLANK IS LESS THAN THE LETTER A AND BLANK IS LESS THAN 00190204 ! 23: C THE DIGIT ZERO. 00200204 ! 24: C 00210204 ! 25: C (3) THE VALUE OF THE INTRINSIC FUNCTION ICHAR IS AN INTEGER 00220204 ! 26: C IN THE RANGE (0, N-1), WHERE N IS THE NUMBER OF CHARACTERS IN 00230204 ! 27: C THE COLLATING SEQUENCE FOR THE PROCESSOR. FOR ANY CHARACTERS 00240204 ! 28: C C1 AND C2 CAPABLE OF REPRESENTATION IN THE PROCESSOR, C1 .LE. C2 00250204 ! 29: C IS TRUE IF AND ONLY IF ICHAR(C1) .LE. ICHAR(C2) IS TRUE; AND 00260204 ! 30: C C1 .EQ. C2 IF AND ONLY IF ICHAR(C1) .EQ. ICHAR(C2). 00270204 ! 31: C 00280204 ! 32: C REFERENCES 00290204 ! 33: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00300204 ! 34: C X3.9-1978 00310204 ! 35: C 00320204 ! 36: C SECTION 3.1.5, COLLATING SEQUENCE AND GRAPHICS 00330204 ! 37: C SECTION 4.8, CHARACTER TYPE 00340204 ! 38: C SECTION 6.2, CHARACTER EXPRESSIONS 00350204 ! 39: C SECTION 6.3.4, CHARACTER RELATIONAL EXPRESSIONS 00360204 ! 40: C SECTION 6.3.5, INTERPRETATION OF CHARACTER RELATIONAL 00370204 ! 41: C EXPRESSIONS 00380204 ! 42: C SECTION 8.4.2, CHARACTER TYPE-STATEMENT 00390204 ! 43: C SECTION 9.4, CHARACTER CONSTANT IN A DATA STATEMENT 00400204 ! 44: C SECTION 10.4, CHARACTER ASSIGNMENT STATEMENT 00410204 ! 45: C SECTION 15.3, INTRINSIC FUNCTIONS 00420204 ! 46: C SECTION 15.10, TABLE 5 INTRINSIC FUNCTIONS 00430204 ! 47: C 00440204 ! 48: C 00450204 ! 49: C ******************************************************************00460204 ! 50: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00470204 ! 51: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00480204 ! 52: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00490204 ! 53: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00500204 ! 54: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00510204 ! 55: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00520204 ! 56: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00530204 ! 57: C THE RESULT OF EXECUTING THESE TESTS. 00540204 ! 58: C 00550204 ! 59: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00560204 ! 60: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00570204 ! 61: C 00580204 ! 62: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00590204 ! 63: C DEPARTMENT OF THE NAVY 00600204 ! 64: C FEDERAL COBOL COMPILER TESTING SERVICE 00610204 ! 65: C WASHINGTON, D.C. 20376 00620204 ! 66: C 00630204 ! 67: C ******************************************************************00640204 ! 68: C 00650204 ! 69: C 00660204 ! 70: IMPLICIT LOGICAL (L) 00670204 ! 71: IMPLICIT CHARACTER*14 (C) 00680204 ! 72: C 00690204 ! 73: CHARACTER*1 CATN11(47), CATN12(26), CATN13(10) 00700204 ! 74: CHARACTER CVTN10*1, CATN14(6)*1, CVTN01 00710204 ! 75: DIMENSION IAON11(47) 00720204 ! 76: DATA CATN11/'A','B','C','D','E','F','G','H','I','J','K','L','M', 00730204 ! 77: 1 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1', 00740204 ! 78: 2 '2','3','4','5','6','7','8','9',' ','=','+','-','*','/','(', 00750204 ! 79: 3 ')',',','.',''''/ 00760204 ! 80: DATA CATN12/'A','B','C','D','E','F','G','H','I','J','K','L','M', 00770204 ! 81: 1 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z'/ 00780204 ! 82: DATA CATN14(1),CATN14(2),CATN14(3),CATN14(4),CATN14(5),CATN14(6) 00790204 ! 83: 1 /6*'V'/,IAON11/47*7/, CATN13/'0','1','2','3','4','5','6', 00800204 ! 84: 2 '7','8','9'/,CVTN10/' '/ 00810204 ! 85: C 00820204 ! 86: C 00830204 ! 87: C 00840204 ! 88: C INITIALIZATION SECTION. 00850204 ! 89: C 00860204 ! 90: C INITIALIZE CONSTANTS 00870204 ! 91: C ******************** 00880204 ! 92: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00890204 ! 93: I01 = 5 00900204 ! 94: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00910204 ! 95: I02 = 6 00920204 ! 96: C SYSTEM ENVIRONMENT SECTION 00930204 ! 97: C 00940204 ! 98: I01 = 5 00950204 ! 99: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00960204 ! 100: C (UNIT NUMBER FOR CARD READER). 00970204 ! 101: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00980204 ! 102: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00990204 ! 103: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 01000204 ! 104: C 01010204 ! 105: I02 = 6 01020204 ! 106: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 01030204 ! 107: C (UNIT NUMBER FOR PRINTER). 01040204 ! 108: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.01050204 ! 109: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01060204 ! 110: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 01070204 ! 111: C 01080204 ! 112: IVPASS = 0 01090204 ! 113: IVFAIL = 0 01100204 ! 114: IVDELE = 0 01110204 ! 115: ICZERO = 0 01120204 ! 116: C 01130204 ! 117: C WRITE OUT PAGE HEADERS 01140204 ! 118: C 01150204 ! 119: WRITE (I02,90002) 01160204 ! 120: WRITE (I02,90006) 01170204 ! 121: WRITE (I02,90008) 01180204 ! 122: WRITE (I02,90004) 01190204 ! 123: WRITE (I02,90010) 01200204 ! 124: WRITE (I02,90004) 01210204 ! 125: WRITE (I02,90016) 01220204 ! 126: WRITE (I02,90001) 01230204 ! 127: WRITE (I02,90004) 01240204 ! 128: WRITE (I02,90012) 01250204 ! 129: WRITE (I02,90014) 01260204 ! 130: WRITE (I02,90004) 01270204 ! 131: C 01280204 ! 132: C 01290204 ! 133: C TEST 61 THROUGH TEST 73 VERIFY THE CONTENTS OF CHARACTER ARRAY 01300204 ! 134: C ELEMENTS AND CHARACTER VARIABLES WHICH WERE INITIALLY DEFINED IN 01310204 ! 135: C A DATA STATEMENT. 01320204 ! 136: C 01330204 ! 137: C TEST 61 THROUGH TEST 65 VERIFY THE CONTENTS OF SELECTED 01340204 ! 138: C ELEMENTS OF THE ARRAY CATN11 WHICH WAS INITIALLY SET EQUAL TO THE 01350204 ! 139: C 47 CHARACTERS OF THE FORTRAN SUBSET LANGUAGE CHARACTER SET. 01360204 ! 140: C 01370204 ! 141: C 01380204 ! 142: C **** FCVS PROGRAM 204 - TEST 061 **** 01390204 ! 143: C 01400204 ! 144: C 01410204 ! 145: IVTNUM = 61 01420204 ! 146: IF (ICZERO) 30610, 0610, 30610 01430204 ! 147: 0610 CONTINUE 01440204 ! 148: IVCOMP = 0 01450204 ! 149: IVCORR = 1 01460204 ! 150: IF (CATN11(1) .EQ. 'A') IVCOMP = 1 01470204 ! 151: 40610 IF (IVCOMP - 1) 20610, 10610, 20610 01480204 ! 152: 30610 IVDELE = IVDELE + 1 01490204 ! 153: WRITE (I02,80000) IVTNUM 01500204 ! 154: IF (ICZERO) 10610, 0621, 20610 01510204 ! 155: 10610 IVPASS = IVPASS + 1 01520204 ! 156: WRITE (I02,80002) IVTNUM 01530204 ! 157: GO TO 0621 01540204 ! 158: 20610 IVFAIL = IVFAIL + 1 01550204 ! 159: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01560204 ! 160: 0621 CONTINUE 01570204 ! 161: C 01580204 ! 162: C **** FCVS PROGRAM 204 - TEST 062 **** 01590204 ! 163: C 01600204 ! 164: C 01610204 ! 165: IVTNUM = 62 01620204 ! 166: IF (ICZERO) 30620, 0620, 30620 01630204 ! 167: 0620 CONTINUE 01640204 ! 168: IVCOMP = 0 01650204 ! 169: IVCORR = 1 01660204 ! 170: IF (CATN11(47) .EQ. '''') IVCOMP = 1 01670204 ! 171: 40620 IF (IVCOMP - 1) 20620, 10620, 20620 01680204 ! 172: 30620 IVDELE = IVDELE + 1 01690204 ! 173: WRITE (I02,80000) IVTNUM 01700204 ! 174: IF (ICZERO) 10620, 0631, 20620 01710204 ! 175: 10620 IVPASS = IVPASS + 1 01720204 ! 176: WRITE (I02,80002) IVTNUM 01730204 ! 177: GO TO 0631 01740204 ! 178: 20620 IVFAIL = IVFAIL + 1 01750204 ! 179: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01760204 ! 180: 0631 CONTINUE 01770204 ! 181: C 01780204 ! 182: C **** FCVS PROGRAM 204 - TEST 063 **** 01790204 ! 183: C 01800204 ! 184: C 01810204 ! 185: IVTNUM = 63 01820204 ! 186: IF (ICZERO) 30630, 0630, 30630 01830204 ! 187: 0630 CONTINUE 01840204 ! 188: IVCOMP = 0 01850204 ! 189: IVCORR = 1 01860204 ! 190: IF (CATN11(46) .EQ. '.') IVCOMP = 1 01870204 ! 191: 40630 IF (IVCOMP - 1) 20630, 10630, 20630 01880204 ! 192: 30630 IVDELE = IVDELE + 1 01890204 ! 193: WRITE (I02,80000) IVTNUM 01900204 ! 194: IF (ICZERO) 10630, 0641, 20630 01910204 ! 195: 10630 IVPASS = IVPASS + 1 01920204 ! 196: WRITE (I02,80002) IVTNUM 01930204 ! 197: GO TO 0641 01940204 ! 198: 20630 IVFAIL = IVFAIL + 1 01950204 ! 199: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01960204 ! 200: 0641 CONTINUE 01970204 ! 201: C 01980204 ! 202: C **** FCVS PROGRAM 204 - TEST 064 **** 01990204 ! 203: C 02000204 ! 204: C 02010204 ! 205: IVTNUM = 64 02020204 ! 206: IF (ICZERO) 30640, 0640, 30640 02030204 ! 207: 0640 CONTINUE 02040204 ! 208: IVCOMP = 0 02050204 ! 209: IVCORR = 1 02060204 ! 210: IF (CATN11(27) .EQ. '0') IVCOMP = 1 02070204 ! 211: 40640 IF (IVCOMP - 1) 20640, 10640, 20640 02080204 ! 212: 30640 IVDELE = IVDELE + 1 02090204 ! 213: WRITE (I02,80000) IVTNUM 02100204 ! 214: IF (ICZERO) 10640, 0651, 20640 02110204 ! 215: 10640 IVPASS = IVPASS + 1 02120204 ! 216: WRITE (I02,80002) IVTNUM 02130204 ! 217: GO TO 0651 02140204 ! 218: 20640 IVFAIL = IVFAIL + 1 02150204 ! 219: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02160204 ! 220: 0651 CONTINUE 02170204 ! 221: C 02180204 ! 222: C **** FCVS PROGRAM 204 - TEST 065 **** 02190204 ! 223: C 02200204 ! 224: C 02210204 ! 225: IVTNUM = 65 02220204 ! 226: IF (ICZERO) 30650, 0650, 30650 02230204 ! 227: 0650 CONTINUE 02240204 ! 228: IVCOMP = 0 02250204 ! 229: IVCORR = 1 02260204 ! 230: IF (CATN11(36) .EQ. '9') IVCOMP = 1 02270204 ! 231: 40650 IF (IVCOMP - 1) 20650, 10650, 20650 02280204 ! 232: 30650 IVDELE = IVDELE + 1 02290204 ! 233: WRITE (I02,80000) IVTNUM 02300204 ! 234: IF (ICZERO) 10650, 0661, 20650 02310204 ! 235: 10650 IVPASS = IVPASS + 1 02320204 ! 236: WRITE (I02,80002) IVTNUM 02330204 ! 237: GO TO 0661 02340204 ! 238: 20650 IVFAIL = IVFAIL + 1 02350204 ! 239: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02360204 ! 240: 0661 CONTINUE 02370204 ! 241: C 02380204 ! 242: C TEST 66 THROUGH TEST 68 VERIFY THE CONTENTS OF SELECTED 02390204 ! 243: C ELEMENTS OF THE ARRAY CATN12 WHICH WAS INITIALLY SET EQUAL TO THE 02400204 ! 244: C 26 LETTERS OF THE ALPHABET. 02410204 ! 245: C 02420204 ! 246: C 02430204 ! 247: C **** FCVS PROGRAM 204 - TEST 066 **** 02440204 ! 248: C 02450204 ! 249: C 02460204 ! 250: IVTNUM = 66 02470204 ! 251: IF (ICZERO) 30660, 0660, 30660 02480204 ! 252: 0660 CONTINUE 02490204 ! 253: IVCOMP = 0 02500204 ! 254: IVCORR = 1 02510204 ! 255: IF (CATN12(1) .EQ. 'A') IVCOMP = 1 02520204 ! 256: 40660 IF (IVCOMP - 1) 20660, 10660, 20660 02530204 ! 257: 30660 IVDELE = IVDELE + 1 02540204 ! 258: WRITE (I02,80000) IVTNUM 02550204 ! 259: IF (ICZERO) 10660, 0671, 20660 02560204 ! 260: 10660 IVPASS = IVPASS + 1 02570204 ! 261: WRITE (I02,80002) IVTNUM 02580204 ! 262: GO TO 0671 02590204 ! 263: 20660 IVFAIL = IVFAIL + 1 02600204 ! 264: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02610204 ! 265: 0671 CONTINUE 02620204 ! 266: C 02630204 ! 267: C **** FCVS PROGRAM 204 - TEST 067 **** 02640204 ! 268: C 02650204 ! 269: C 02660204 ! 270: IVTNUM = 67 02670204 ! 271: IF (ICZERO) 30670, 0670, 30670 02680204 ! 272: 0670 CONTINUE 02690204 ! 273: IVCOMP = 0 02700204 ! 274: IVCORR = 1 02710204 ! 275: IF (CATN12(26) .EQ. 'Z') IVCOMP = 1 02720204 ! 276: 40670 IF (IVCOMP - 1) 20670, 10670, 20670 02730204 ! 277: 30670 IVDELE = IVDELE + 1 02740204 ! 278: WRITE (I02,80000) IVTNUM 02750204 ! 279: IF (ICZERO) 10670, 0681, 20670 02760204 ! 280: 10670 IVPASS = IVPASS + 1 02770204 ! 281: WRITE (I02,80002) IVTNUM 02780204 ! 282: GO TO 0681 02790204 ! 283: 20670 IVFAIL = IVFAIL + 1 02800204 ! 284: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02810204 ! 285: 0681 CONTINUE 02820204 ! 286: C 02830204 ! 287: C **** FCVS PROGRAM 204 - TEST 068 **** 02840204 ! 288: C 02850204 ! 289: C 02860204 ! 290: IVTNUM = 68 02870204 ! 291: IF (ICZERO) 30680, 0680, 30680 02880204 ! 292: 0680 CONTINUE 02890204 ! 293: IVCOMP = 0 02900204 ! 294: IVCORR = 1 02910204 ! 295: IF (CATN12(20) .EQ. 'T') IVCOMP = 1 02920204 ! 296: 40680 IF (IVCOMP - 1) 20680, 10680, 20680 02930204 ! 297: 30680 IVDELE = IVDELE + 1 02940204 ! 298: WRITE (I02,80000) IVTNUM 02950204 ! 299: IF (ICZERO) 10680, 0691, 20680 02960204 ! 300: 10680 IVPASS = IVPASS + 1 02970204 ! 301: WRITE (I02,80002) IVTNUM 02980204 ! 302: GO TO 0691 02990204 ! 303: 20680 IVFAIL = IVFAIL + 1 03000204 ! 304: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03010204 ! 305: 0691 CONTINUE 03020204 ! 306: C 03030204 ! 307: C TEST 69 AND TEST 70 VERIFY THE CONTENTS OF SELECTED ELEMENTS 03040204 ! 308: C OF THE ARRAY CATN13 WHICH WAS INITIALLY SET EQUAL TO THE TEN 03050204 ! 309: C NUMERIC DIGITS. 03060204 ! 310: C 03070204 ! 311: C 03080204 ! 312: C **** FCVS PROGRAM 204 - TEST 069 **** 03090204 ! 313: C 03100204 ! 314: C 03110204 ! 315: IVTNUM = 69 03120204 ! 316: IF (ICZERO) 30690, 0690, 30690 03130204 ! 317: 0690 CONTINUE 03140204 ! 318: IVCOMP = 0 03150204 ! 319: IVCORR = 1 03160204 ! 320: IF (CATN13(1) .EQ. '0') IVCOMP = 1 03170204 ! 321: 40690 IF (IVCOMP - 1) 20690, 10690, 20690 03180204 ! 322: 30690 IVDELE = IVDELE + 1 03190204 ! 323: WRITE (I02,80000) IVTNUM 03200204 ! 324: IF (ICZERO) 10690, 0701, 20690 03210204 ! 325: 10690 IVPASS = IVPASS + 1 03220204 ! 326: WRITE (I02,80002) IVTNUM 03230204 ! 327: GO TO 0701 03240204 ! 328: 20690 IVFAIL = IVFAIL + 1 03250204 ! 329: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03260204 ! 330: 0701 CONTINUE 03270204 ! 331: C 03280204 ! 332: C **** FCVS PROGRAM 204 - TEST 070 **** 03290204 ! 333: C 03300204 ! 334: C 03310204 ! 335: IVTNUM = 70 03320204 ! 336: IF (ICZERO) 30700, 0700, 30700 03330204 ! 337: 0700 CONTINUE 03340204 ! 338: IVCOMP = 0 03350204 ! 339: IVCORR = 1 03360204 ! 340: IF (CATN13(10) .EQ. '9') IVCOMP = 1 03370204 ! 341: 40700 IF (IVCOMP - 1) 20700, 10700, 20700 03380204 ! 342: 30700 IVDELE = IVDELE + 1 03390204 ! 343: WRITE (I02,80000) IVTNUM 03400204 ! 344: IF (ICZERO) 10700, 0711, 20700 03410204 ! 345: 10700 IVPASS = IVPASS + 1 03420204 ! 346: WRITE (I02,80002) IVTNUM 03430204 ! 347: GO TO 0711 03440204 ! 348: 20700 IVFAIL = IVFAIL + 1 03450204 ! 349: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03460204 ! 350: 0711 CONTINUE 03470204 ! 351: C 03480204 ! 352: C **** FCVS PROGRAM 204 - TEST 071 **** 03490204 ! 353: C 03500204 ! 354: C TEST 71 VERIFIES THE CONTENTS OF THE VARIABLE CVTN10 WHICH 03510204 ! 355: C WAS INITIALLY SET EQUAL TO BLANK. 03520204 ! 356: C 03530204 ! 357: IVTNUM = 71 03540204 ! 358: IF (ICZERO) 30710, 0710, 30710 03550204 ! 359: 0710 CONTINUE 03560204 ! 360: IVCOMP = 0 03570204 ! 361: IVCORR = 1 03580204 ! 362: IF (CVTN10 .EQ. ' ') IVCOMP = 1 03590204 ! 363: 40710 IF (IVCOMP - 1) 20710, 10710, 20710 03600204 ! 364: 30710 IVDELE = IVDELE + 1 03610204 ! 365: WRITE (I02,80000) IVTNUM 03620204 ! 366: IF (ICZERO) 10710, 0721, 20710 03630204 ! 367: 10710 IVPASS = IVPASS + 1 03640204 ! 368: WRITE (I02,80002) IVTNUM 03650204 ! 369: GO TO 0721 03660204 ! 370: 20710 IVFAIL = IVFAIL + 1 03670204 ! 371: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03680204 ! 372: 0721 CONTINUE 03690204 ! 373: C 03700204 ! 374: C **** FCVS PROGRAM 204 - TEST 072 **** 03710204 ! 375: C 03720204 ! 376: C TEST 72 VERIFIES THE CONTENTS OF THE ARRAY CATN14 WHICH WAS 03730204 ! 377: C INITIALLY SET EQUAL TO ALL V'S. 03740204 ! 378: C 03750204 ! 379: IVTNUM = 72 03760204 ! 380: IF (ICZERO) 30720, 0720, 30720 03770204 ! 381: 0720 CONTINUE 03780204 ! 382: IVCOMP = 0 03790204 ! 383: IVCORR = 6 03800204 ! 384: DO 722, I= 1,6 03810204 ! 385: IF (CATN14(I) .EQ. 'V') IVCOMP = IVCOMP + 1 03820204 ! 386: 722 CONTINUE 03830204 ! 387: 40720 IF (IVCOMP - 6) 20720, 10720, 20720 03840204 ! 388: 30720 IVDELE = IVDELE + 1 03850204 ! 389: WRITE (I02,80000) IVTNUM 03860204 ! 390: IF (ICZERO) 10720, 0731, 20720 03870204 ! 391: 10720 IVPASS = IVPASS + 1 03880204 ! 392: WRITE (I02,80002) IVTNUM 03890204 ! 393: GO TO 0731 03900204 ! 394: 20720 IVFAIL = IVFAIL + 1 03910204 ! 395: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03920204 ! 396: 0731 CONTINUE 03930204 ! 397: C 03940204 ! 398: C **** FCVS PROGRAM 204 - TEST 073 **** 03950204 ! 399: C 03960204 ! 400: C TEST 73 VERIFIES THE CONTENTS OF THE ARRAY IAON11 WHICH WAS 03970204 ! 401: C INITIALLY SET EQUAL TO ALL 7'S. 03980204 ! 402: C 03990204 ! 403: IVTNUM = 73 04000204 ! 404: IF (ICZERO) 30730, 0730, 30730 04010204 ! 405: 0730 CONTINUE 04020204 ! 406: IVCOMP = 0 04030204 ! 407: IVCORR = 47 04040204 ! 408: DO 732, I= 1,47 04050204 ! 409: IF (IAON11(I) - 7) 732, 733, 732 04060204 ! 410: 733 IVCOMP = IVCOMP + 1 04070204 ! 411: 732 CONTINUE 04080204 ! 412: 40730 IF (IVCOMP - 47) 20730, 10730, 20730 04090204 ! 413: 30730 IVDELE = IVDELE + 1 04100204 ! 414: WRITE (I02,80000) IVTNUM 04110204 ! 415: IF (ICZERO) 10730, 0741, 20730 04120204 ! 416: 10730 IVPASS = IVPASS + 1 04130204 ! 417: WRITE (I02,80002) IVTNUM 04140204 ! 418: GO TO 0741 04150204 ! 419: 20730 IVFAIL = IVFAIL + 1 04160204 ! 420: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04170204 ! 421: 0741 CONTINUE 04180204 ! 422: C 04190204 ! 423: C TEST 74 THROUGH TEST 79 VERIFY THE COLLATING SEQUENCE 04200204 ! 424: C SPECIFICATIONS FOR THE FORTRAN SUBSET LANGUAGE. 04210204 ! 425: C 04220204 ! 426: C TEST 74 AND TEST 75 VERIFY THE COLLATING SEQUENCE FOR LETTERS. 04230204 ! 427: C 04240204 ! 428: C 04250204 ! 429: C **** FCVS PROGRAM 204 - TEST 074 **** 04260204 ! 430: C 04270204 ! 431: C 04280204 ! 432: IVTNUM = 74 04290204 ! 433: IF (ICZERO) 30740, 0740, 30740 04300204 ! 434: 0740 CONTINUE 04310204 ! 435: IVCOMP = 1 04320204 ! 436: IVCORR = 210 04330204 ! 437: IF ('A' .LT. 'B') IVCOMP = IVCOMP * 2 04340204 ! 438: IF ('B' .LT. 'M') IVCOMP = IVCOMP * 3 04350204 ! 439: IF ('M' .LT. 'V') IVCOMP = IVCOMP * 5 04360204 ! 440: IF ('V' .LT. 'Z') IVCOMP = IVCOMP * 7 04370204 ! 441: 40740 IF (IVCOMP - 210) 20740, 10740, 20740 04380204 ! 442: 30740 IVDELE = IVDELE + 1 04390204 ! 443: WRITE (I02,80000) IVTNUM 04400204 ! 444: IF (ICZERO) 10740, 0751, 20740 04410204 ! 445: 10740 IVPASS = IVPASS + 1 04420204 ! 446: WRITE (I02,80002) IVTNUM 04430204 ! 447: GO TO 0751 04440204 ! 448: 20740 IVFAIL = IVFAIL + 1 04450204 ! 449: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04460204 ! 450: 0751 CONTINUE 04470204 ! 451: C 04480204 ! 452: C **** FCVS PROGRAM 204 - TEST 075 **** 04490204 ! 453: C 04500204 ! 454: C 04510204 ! 455: IVTNUM = 75 04520204 ! 456: IF (ICZERO) 30750, 0750, 30750 04530204 ! 457: 0750 CONTINUE 04540204 ! 458: IVCOMP = 0 04550204 ! 459: IVCORR = 25 04560204 ! 460: DO 752, I=1,25 04570204 ! 461: J= I + 1 04580204 ! 462: IF (CATN12(J) .GT. CATN12(I)) IVCOMP = IVCOMP + 1 04590204 ! 463: 752 CONTINUE 04600204 ! 464: 40750 IF (IVCOMP - 25) 20750, 10750, 20750 04610204 ! 465: 30750 IVDELE = IVDELE + 1 04620204 ! 466: WRITE (I02,80000) IVTNUM 04630204 ! 467: IF (ICZERO) 10750, 0761, 20750 04640204 ! 468: 10750 IVPASS = IVPASS + 1 04650204 ! 469: WRITE (I02,80002) IVTNUM 04660204 ! 470: GO TO 0761 04670204 ! 471: 20750 IVFAIL = IVFAIL + 1 04680204 ! 472: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04690204 ! 473: 0761 CONTINUE 04700204 ! 474: C 04710204 ! 475: C TEST 76 AND TEST 77 VERIFY THE COLLATING SEQUENCE FOR DIGITS. 04720204 ! 476: C 04730204 ! 477: C 04740204 ! 478: C **** FCVS PROGRAM 204 - TEST 076 **** 04750204 ! 479: C 04760204 ! 480: C 04770204 ! 481: IVTNUM = 76 04780204 ! 482: IF (ICZERO) 30760, 0760, 30760 04790204 ! 483: 0760 CONTINUE 04800204 ! 484: IVCOMP = 1 04810204 ! 485: IVCORR = 30 04820204 ! 486: IF ('0' .LT. '1') IVCOMP = IVCOMP * 2 04830204 ! 487: IF ('1' .LT. '5') IVCOMP = IVCOMP * 3 04840204 ! 488: IF ('5' .LT. '9') IVCOMP = IVCOMP * 5 04850204 ! 489: 40760 IF (IVCOMP - 30) 20760, 10760, 20760 04860204 ! 490: 30760 IVDELE = IVDELE + 1 04870204 ! 491: WRITE (I02,80000) IVTNUM 04880204 ! 492: IF (ICZERO) 10760, 0771, 20760 04890204 ! 493: 10760 IVPASS = IVPASS + 1 04900204 ! 494: WRITE (I02,80002) IVTNUM 04910204 ! 495: GO TO 0771 04920204 ! 496: 20760 IVFAIL = IVFAIL + 1 04930204 ! 497: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04940204 ! 498: 0771 CONTINUE 04950204 ! 499: C 04960204 ! 500: C **** FCVS PROGRAM 204 - TEST 077 **** 04970204 ! 501: C 04980204 ! 502: C 04990204 ! 503: IVTNUM = 77 05000204 ! 504: IF (ICZERO) 30770, 0770, 30770 05010204 ! 505: 0770 CONTINUE 05020204 ! 506: IVCOMP = 0 05030204 ! 507: IVCORR = 9 05040204 ! 508: DO 772, I=1,9 05050204 ! 509: J = I + 1 05060204 ! 510: IF (CATN13(I) .LT. CATN13(J)) IVCOMP = IVCOMP + 1 05070204 ! 511: 772 CONTINUE 05080204 ! 512: 40770 IF (IVCOMP - 9) 20770, 10770, 20770 05090204 ! 513: 30770 IVDELE = IVDELE + 1 05100204 ! 514: WRITE (I02,80000) IVTNUM 05110204 ! 515: IF (ICZERO) 10770, 0781, 20770 05120204 ! 516: 10770 IVPASS = IVPASS + 1 05130204 ! 517: WRITE (I02,80002) IVTNUM 05140204 ! 518: GO TO 0781 05150204 ! 519: 20770 IVFAIL = IVFAIL + 1 05160204 ! 520: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05170204 ! 521: 0781 CONTINUE 05180204 ! 522: C 05190204 ! 523: C **** FCVS PROGRAM 204 - TEST 078 **** 05200204 ! 524: C 05210204 ! 525: C TEST 78 VERIFIES THAT BLANK IS LESS THAN THE LETTER A AND BLANK05220204 ! 526: C IS LESS THAN THE DIGIT ZERO. 05230204 ! 527: C 05240204 ! 528: IVTNUM = 78 05250204 ! 529: IF (ICZERO) 30780, 0780, 30780 05260204 ! 530: 0780 CONTINUE 05270204 ! 531: IVCOMP = 1 05280204 ! 532: IVCORR = 6 05290204 ! 533: IF (' ' .LT. 'A') IVCOMP = IVCOMP * 2 05300204 ! 534: IF (' ' .LT. '0') IVCOMP = IVCOMP * 3 05310204 ! 535: 40780 IF (IVCOMP - 6) 20780, 10780, 20780 05320204 ! 536: 30780 IVDELE = IVDELE + 1 05330204 ! 537: WRITE (I02,80000) IVTNUM 05340204 ! 538: IF (ICZERO) 10780, 0791, 20780 05350204 ! 539: 10780 IVPASS = IVPASS + 1 05360204 ! 540: WRITE (I02,80002) IVTNUM 05370204 ! 541: GO TO 0791 05380204 ! 542: 20780 IVFAIL = IVFAIL + 1 05390204 ! 543: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05400204 ! 544: 0791 CONTINUE 05410204 ! 545: C 05420204 ! 546: C **** FCVS PROGRAM 204 - TEST 079 **** 05430204 ! 547: C 05440204 ! 548: C TEST 79 VERIFIES THAT THE DIGITS AND LETTERS ARE NOT INTERMIXED05450204 ! 549: C IN THE COLLATING SEQUENCE. EITHER ALL OF THE DIGITS MUST PRECEDE 05460204 ! 550: C A OR ALL OF THE DIGITS MUST FOLLOW Z. 05470204 ! 551: C 05480204 ! 552: IVTNUM = 79 05490204 ! 553: IF (ICZERO) 30790, 0790, 30790 05500204 ! 554: 0790 CONTINUE 05510204 ! 555: IVCOMP = 0 05520204 ! 556: IVCORR = 10 05530204 ! 557: IF ('0' .NE. 'A') GO TO 792 05540204 ! 558: IVCOMP = 111 05550204 ! 559: GO TO 40790 05560204 ! 560: 792 IF ('0' .GT. 'A') GO TO 793 05570204 ! 561: C 05580204 ! 562: C ZERO IS LESS THAN LETTER A, SO ALL DIGITS MUST BE LESS THAN A05590204 ! 563: C 05600204 ! 564: DO 794, I= 1,10 05610204 ! 565: IF (CATN13(I) .LT. 'A') IVCOMP = IVCOMP + 1 05620204 ! 566: 794 CONTINUE 05630204 ! 567: GO TO 40790 05640204 ! 568: C 05650204 ! 569: C ZERO IS GREATER THAN LETTER A, SO ALL DIGITS MUST BE GREATER 05660204 ! 570: C THAN LETTER Z. 05670204 ! 571: C 05680204 ! 572: 793 DO 795 I=1,10 05690204 ! 573: IF (CATN13(I) .GT. 'Z') IVCOMP = IVCOMP + 1 05700204 ! 574: 795 CONTINUE 05710204 ! 575: 40790 IF (IVCOMP - 10) 20790,10790, 20790 05720204 ! 576: 30790 IVDELE = IVDELE + 1 05730204 ! 577: WRITE (I02,80000) IVTNUM 05740204 ! 578: IF (ICZERO) 10790, 0801, 20790 05750204 ! 579: 10790 IVPASS = IVPASS + 1 05760204 ! 580: WRITE (I02,80002) IVTNUM 05770204 ! 581: GO TO 0801 05780204 ! 582: 20790 IVFAIL = IVFAIL + 1 05790204 ! 583: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05800204 ! 584: 0801 CONTINUE 05810204 ! 585: C 05820204 ! 586: C TEST 80 THROUGH TEST 85 PERFORM THE SAME COMPARISONS AS TEST 7405830204 ! 587: C THROUGH TEST 79 EXCEPT THAT THE ICHAR INTRINSIC FUNCTION IS USED 05840204 ! 588: C IN PLACE OF THE INDIVIDUAL CHARACTERS. 05850204 ! 589: C 05860204 ! 590: C TEST 80 AND TEST 81 VERIFY THE COLLATING SEQUENCE FOR LETTERS 05870204 ! 591: C USING THE ICHAR INTRINSIC FUNCTION. 05880204 ! 592: C 05890204 ! 593: C 05900204 ! 594: C **** FCVS PROGRAM 204 - TEST 080 **** 05910204 ! 595: C 05920204 ! 596: C 05930204 ! 597: IVTNUM = 80 05940204 ! 598: IF (ICZERO) 30800, 0800, 30800 05950204 ! 599: 0800 CONTINUE 05960204 ! 600: IVCOMP = 1 05970204 ! 601: IVCORR = 210 05980204 ! 602: IVON01 = ICHAR('A') 05990204 ! 603: IVON02 = ICHAR('B') 06000204 ! 604: IVON03 = ICHAR('M') 06010204 ! 605: IVON04 = ICHAR('V') 06020204 ! 606: IVON05 = ICHAR('Z') 06030204 ! 607: IF (IVON01 .LT. IVON02) IVCOMP = IVCOMP * 2 06040204 ! 608: IF (IVON02 .LT. IVON03) IVCOMP = IVCOMP * 3 06050204 ! 609: IF (IVON03 .LT. IVON04) IVCOMP = IVCOMP * 5 06060204 ! 610: IF (IVON04 .LT. IVON05) IVCOMP = IVCOMP * 7 06070204 ! 611: 40800 IF (IVCOMP - 210) 20800, 10800, 20800 06080204 ! 612: 30800 IVDELE = IVDELE + 1 06090204 ! 613: WRITE (I02,80000) IVTNUM 06100204 ! 614: IF (ICZERO) 10800, 0811, 20800 06110204 ! 615: 10800 IVPASS = IVPASS + 1 06120204 ! 616: WRITE (I02,80002) IVTNUM 06130204 ! 617: GO TO 0811 06140204 ! 618: 20800 IVFAIL = IVFAIL + 1 06150204 ! 619: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06160204 ! 620: 0811 CONTINUE 06170204 ! 621: C 06180204 ! 622: C **** FCVS PROGRAM 204 - TEST 081 **** 06190204 ! 623: C 06200204 ! 624: C 06210204 ! 625: IVTNUM = 81 06220204 ! 626: IF (ICZERO) 30810, 0810, 30810 06230204 ! 627: 0810 CONTINUE 06240204 ! 628: IVON01 = 0 06250204 ! 629: IVON02 = 0 06260204 ! 630: IVCOMP = 0 06270204 ! 631: IVCORR = 25 06280204 ! 632: DO 812, I=1,25 06290204 ! 633: J= I + 1 06300204 ! 634: IVON01 = ICHAR(CATN12(J)) 06310204 ! 635: IVON02 = ICHAR(CATN12(I)) 06320204 ! 636: IF (IVON01 .GT. IVON02) IVCOMP = IVCOMP + 1 06330204 ! 637: 812 CONTINUE 06340204 ! 638: 40810 IF (IVCOMP - 25) 20810, 10810, 20810 06350204 ! 639: 30810 IVDELE = IVDELE + 1 06360204 ! 640: WRITE (I02,80000) IVTNUM 06370204 ! 641: IF (ICZERO) 10810, 0821, 20810 06380204 ! 642: 10810 IVPASS = IVPASS + 1 06390204 ! 643: WRITE (I02,80002) IVTNUM 06400204 ! 644: GO TO 0821 06410204 ! 645: 20810 IVFAIL = IVFAIL + 1 06420204 ! 646: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06430204 ! 647: 0821 CONTINUE 06440204 ! 648: C 06450204 ! 649: C TEST 82 AND TEST 83 VERIFY THE COLLATING SEQUENCE FOR DIGITS 06460204 ! 650: C USING THE ICHAR INTRINSIC FUNCTION. 06470204 ! 651: C 06480204 ! 652: C 06490204 ! 653: C **** FCVS PROGRAM 204 - TEST 082 **** 06500204 ! 654: C 06510204 ! 655: C 06520204 ! 656: IVTNUM = 82 06530204 ! 657: IF (ICZERO) 30820, 0820, 30820 06540204 ! 658: 0820 CONTINUE 06550204 ! 659: IVCOMP = 1 06560204 ! 660: IVCORR = 30 06570204 ! 661: IF (ICHAR('0') .LT. ICHAR('1')) IVCOMP = IVCOMP *2 06580204 ! 662: IF (ICHAR('1') .LT. ICHAR('5')) IVCOMP = IVCOMP * 3 06590204 ! 663: IF (ICHAR('5') .LT. ICHAR('9')) IVCOMP = IVCOMP * 5 06600204 ! 664: 40820 IF (IVCOMP - 30) 20820, 10820, 20820 06610204 ! 665: 30820 IVDELE = IVDELE + 1 06620204 ! 666: WRITE (I02,80000) IVTNUM 06630204 ! 667: IF (ICZERO) 10820, 0831, 20820 06640204 ! 668: 10820 IVPASS = IVPASS + 1 06650204 ! 669: WRITE (I02,80002) IVTNUM 06660204 ! 670: GO TO 0831 06670204 ! 671: 20820 IVFAIL = IVFAIL + 1 06680204 ! 672: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06690204 ! 673: 0831 CONTINUE 06700204 ! 674: C 06710204 ! 675: C **** FCVS PROGRAM 204 - TEST 083 **** 06720204 ! 676: C 06730204 ! 677: C 06740204 ! 678: IVTNUM = 83 06750204 ! 679: IF (ICZERO) 30830, 0830, 30830 06760204 ! 680: 0830 CONTINUE 06770204 ! 681: IVON01 = 0 06780204 ! 682: IVON02 = 0 06790204 ! 683: IVCOMP = 0 06800204 ! 684: IVCORR = 9 06810204 ! 685: DO 832, I=1,9 06820204 ! 686: J = I + 1 06830204 ! 687: IVON01 = ICHAR(CATN13(J)) 06840204 ! 688: IVON02 = ICHAR(CATN13(I)) 06850204 ! 689: IF (IVON02 .LT. IVON01) IVCOMP = IVCOMP + 1 06860204 ! 690: 832 CONTINUE 06870204 ! 691: 40830 IF (IVCOMP -9) 20830, 10830, 20830 06880204 ! 692: 30830 IVDELE = IVDELE + 1 06890204 ! 693: WRITE (I02,80000) IVTNUM 06900204 ! 694: IF (ICZERO) 10830, 0841, 20830 06910204 ! 695: 10830 IVPASS = IVPASS + 1 06920204 ! 696: WRITE (I02,80002) IVTNUM 06930204 ! 697: GO TO 0841 06940204 ! 698: 20830 IVFAIL = IVFAIL + 1 06950204 ! 699: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06960204 ! 700: 0841 CONTINUE 06970204 ! 701: C 06980204 ! 702: C **** FCVS PROGRAM 204 - TEST 084 **** 06990204 ! 703: C 07000204 ! 704: C TEST 84 VERIFIES THAT BLANK IS LESS THAN THE LETTER A AND BLANK07010204 ! 705: C IS LESS THAN THE DIGIT ZERO. THE INTRINSIC FUNCTION ICHAR IS 07020204 ! 706: C USED IN THIS TEST. 07030204 ! 707: C 07040204 ! 708: IVTNUM = 84 07050204 ! 709: IF (ICZERO) 30840, 0840, 30840 07060204 ! 710: 0840 CONTINUE 07070204 ! 711: IVCOMP = 1 07080204 ! 712: IVCORR = 6 07090204 ! 713: IF (ICHAR(' ') .LT. ICHAR('A')) IVCOMP = IVCOMP * 2 07100204 ! 714: IF (ICHAR(' ') .LT. ICHAR('0')) IVCOMP = IVCOMP * 3 07110204 ! 715: 40840 IF (IVCOMP - 6) 20840, 10840, 20840 07120204 ! 716: 30840 IVDELE = IVDELE + 1 07130204 ! 717: WRITE (I02,80000) IVTNUM 07140204 ! 718: IF (ICZERO) 10840, 0851, 20840 07150204 ! 719: 10840 IVPASS = IVPASS + 1 07160204 ! 720: WRITE (I02,80002) IVTNUM 07170204 ! 721: GO TO 0851 07180204 ! 722: 20840 IVFAIL = IVFAIL + 1 07190204 ! 723: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07200204 ! 724: 0851 CONTINUE 07210204 ! 725: C 07220204 ! 726: C **** FCVS PROGRAM 204 - TEST 085 **** 07230204 ! 727: C 07240204 ! 728: C TEST 85 VERIFIES THAT THE DIGITS AND LETTERS ARE NOT INTERMIXED07250204 ! 729: C IN THE COLLATING SEQUENCE. THE ICHAR INTRINSIC FUNCTION IS USED 07260204 ! 730: C TO VERIFY THAT EITHER ALL OF THE DIGITS PRECEDE A OR ALL OF THE 07270204 ! 731: C DIGITS FOLLOW Z. 07280204 ! 732: C 07290204 ! 733: IVTNUM = 85 07300204 ! 734: IF (ICZERO) 30850, 0850, 30850 07310204 ! 735: 0850 CONTINUE 07320204 ! 736: IVCOMP = 0 07330204 ! 737: IVCORR = 10 07340204 ! 738: IF (ICHAR('0') .NE. ICHAR('A')) GO TO 852 07350204 ! 739: IVCOMP = 111 07360204 ! 740: GO TO 40850 07370204 ! 741: 852 IF (ICHAR('0') .GT. ICHAR('A')) GO TO 853 07380204 ! 742: C 07390204 ! 743: C ZERO IS LESS THAN LETTER A ACCORDING TO ICHAR INTRINSIC 07400204 ! 744: C FUNCTION VALUE. THUS, THE ICHAR VALUE FOR ALL DIGITS MUST BE 07410204 ! 745: C LESS THAN ICHAR VALUE FOR LETTER A. 07420204 ! 746: C 07430204 ! 747: DO 854, I=1,10 07440204 ! 748: IF (ICHAR(CATN13(I)) .LT. ICHAR('A')) IVCOMP = IVCOMP + 1 07450204 ! 749: 854 CONTINUE 07460204 ! 750: GO TO 40850 07470204 ! 751: C 07480204 ! 752: C ZERO IS GREATER THAN LETTER A ACCORDING TO ICHAR INTRINSIC 07490204 ! 753: C FUNCTION VALUE. THUS, THE ICHAR VALUE FOR ALL DIGITS MUST BE 07500204 ! 754: C GREATER THAN ICHAR VALUE FOR LETTER Z. 07510204 ! 755: C 07520204 ! 756: 853 DO 855, I=1,10 07530204 ! 757: IF (ICHAR(CATN13(I)).GT. ICHAR('Z')) IVCOMP = IVCOMP + 1 07540204 ! 758: 855 CONTINUE 07550204 ! 759: 40850 IF (IVCOMP - 10) 20850, 10850, 20850 07560204 ! 760: 30850 IVDELE = IVDELE + 1 07570204 ! 761: WRITE (I02,80000) IVTNUM 07580204 ! 762: IF (ICZERO) 10850, 0861, 20850 07590204 ! 763: 10850 IVPASS = IVPASS + 1 07600204 ! 764: WRITE (I02,80002) IVTNUM 07610204 ! 765: GO TO 0861 07620204 ! 766: 20850 IVFAIL = IVFAIL + 1 07630204 ! 767: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07640204 ! 768: 0861 CONTINUE 07650204 ! 769: C 07660204 ! 770: C **** FCVS PROGRAM 204 - TEST 086 **** 07670204 ! 771: C 07680204 ! 772: C THE ARRAY IAON11 IS SET EQUAL TO THE ICHAR INTRINSIC FUNCTION07690204 ! 773: C VALUE OF THE CORRESPONDING ELEMENT IN THE CATN11 ARRAY. THE 07700204 ! 774: C IAON11 ARRAY IS THEN SORTED IN ASCENDING ORDER, AND ENTRIES IN 07710204 ! 775: C THE CATN11 ARRAY ARE ARRANGED ACCORDING TO THE ASCENDING SORT 07720204 ! 776: C ORDER IN IAON11. THE RESULTING ORDER OF THE CATN11 ARRAY GIVES 07730204 ! 777: C THE PROCESSOR'S COLLATING SEQUENCE FOR THE FORTRAN SUBSET LANGUAGE07740204 ! 778: C CHARACTER SET. THE CATN11 ARRAY IS PRINTED AND MUST BE VISUALLY 07750204 ! 779: C CHECKED TO DETERMINE IF THE COLLATING SEQUENCE RULES ARE FOLLOWED 07760204 ! 780: C BY THE COMPILER. 07770204 ! 781: C 07780204 ! 782: IVTNUM = 86 07790204 ! 783: IF (ICZERO) 30860, 0860, 30860 07800204 ! 784: 0860 CONTINUE 07810204 ! 785: IVCOMP = 0 07820204 ! 786: C 07830204 ! 787: C INITIALIZE IAON11 TO ZERO. 07840204 ! 788: DO 862 I=1,47 07850204 ! 789: IAON11(I) = 0 07860204 ! 790: 862 CONTINUE 07870204 ! 791: C 07880204 ! 792: C PLACE ICHAR INTRINSIC VALUE IN IAON11. 07890204 ! 793: C 07900204 ! 794: DO 863, I= 1,47 07910204 ! 795: IAON11(I) = ICHAR(CATN11(I)) 07920204 ! 796: 863 CONTINUE 07930204 ! 797: C 07940204 ! 798: C SORT FORTRAN CHARACTERS ACCORDING TO THEIR POSITION IN THE 07950204 ! 799: C COLLATING SEQUENCE. 07960204 ! 800: C 07970204 ! 801: DO 864, I=1,46 07980204 ! 802: J=I 07990204 ! 803: N = I + 1 08000204 ! 804: DO 865 K = N,47 08010204 ! 805: IF (IAON11(J) .LT. IAON11(K)) GO TO 865 08020204 ! 806: J=K 08030204 ! 807: 865 CONTINUE 08040204 ! 808: IVON01 = IAON11(J) 08050204 ! 809: IAON11(J)= IAON11(I) 08060204 ! 810: IAON11(I)= IVON01 08070204 ! 811: CVTN01 = CATN11(J) 08080204 ! 812: CATN11(J) = CATN11(I) 08090204 ! 813: CATN11(I) = CVTN01 08100204 ! 814: 864 CONTINUE 08110204 ! 815: WRITE (I02, 866) CATN11 08120204 ! 816: WRITE (I02, 867) IAON11 08130204 ! 817: 866 FORMAT (3X,'FORTRAN CHARACTER SET IN ASCENDING ORDER',3X,/ 08140204 ! 818: 1 3X, 'VISUAL VERIFICATION REQUIRED' //,3X, 12(A1,3X)/ 08150204 ! 819: 2 3X, 12(A1,3X)/ 3X, 12(A1,3X)/ 3X, 11(A1,3X)) 08160204 ! 820: 867 FORMAT ( 3X/3X, 'ICHAR INTRINSIC FUNCTION VALUES FOR FORTRAN ', 08170204 ! 821: 1 'CHARACTER SET'// 3X, 12I4/ 3X, 12I4/ 3X, 12I4/ 08180204 ! 822: 2 3X,11I4//) 08190204 ! 823: IVCOMP = 1 08200204 ! 824: IVCORR = 1 08210204 ! 825: 40860 IF (IVCOMP - 1) 20860, 10860, 20860 08220204 ! 826: 30860 IVDELE = IVDELE + 1 08230204 ! 827: WRITE (I02,80000) IVTNUM 08240204 ! 828: IF (ICZERO) 10860, 0871, 20860 08250204 ! 829: 10860 IVPASS = IVPASS + 1 08260204 ! 830: WRITE (I02,80002) IVTNUM 08270204 ! 831: GO TO 0871 08280204 ! 832: 20860 IVFAIL = IVFAIL + 1 08290204 ! 833: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08300204 ! 834: 0871 CONTINUE 08310204 ! 835: C 08320204 ! 836: C 08330204 ! 837: C WRITE OUT TEST SUMMARY 08340204 ! 838: C 08350204 ! 839: WRITE (I02,90004) 08360204 ! 840: WRITE (I02,90014) 08370204 ! 841: WRITE (I02,90004) 08380204 ! 842: WRITE (I02,90000) 08390204 ! 843: WRITE (I02,90004) 08400204 ! 844: WRITE (I02,90020) IVFAIL 08410204 ! 845: WRITE (I02,90022) IVPASS 08420204 ! 846: WRITE (I02,90024) IVDELE 08430204 ! 847: STOP 08440204 ! 848: 90001 FORMAT (1H ,24X,5HFM204) 08450204 ! 849: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM204) 08460204 ! 850: C 08470204 ! 851: C FORMATS FOR TEST DETAIL LINES 08480204 ! 852: C 08490204 ! 853: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 08500204 ! 854: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 08510204 ! 855: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 08520204 ! 856: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 08530204 ! 857: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 08540204 ! 858: C 08550204 ! 859: C FORMAT STATEMENTS FOR PAGE HEADERS 08560204 ! 860: C 08570204 ! 861: 90002 FORMAT (1H1) 08580204 ! 862: 90004 FORMAT (1H ) 08590204 ! 863: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 08600204 ! 864: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 08610204 ! 865: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 08620204 ! 866: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 08630204 ! 867: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 08640204 ! 868: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 08650204 ! 869: C 08660204 ! 870: C FORMAT STATEMENTS FOR RUN SUMMARY 08670204 ! 871: C 08680204 ! 872: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 08690204 ! 873: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 08700204 ! 874: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 08710204 ! 875: END 08720204
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.