|
|
1.1 ! root 1: PROGRAM FM203 00010203 ! 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 00020203 ! 6: C 00030203 ! 7: C THIS ROUTINE CONTINUES THE TESTING OF CHARACTER DATA TYPES 00040203 ! 8: C WHICH WAS STARTED IN FM202. THE CHARACTER TYPE-STATEMENTS SPECIFY00050203 ! 9: C CHARACTER VARIABLES AND ONE-DIMENSIONAL CHARACTER ARRAYS OF 00060203 ! 10: C LENGTH ONE AND LENGTH TWO. THE TESTS IN THIS ROUTINE DETERMINE 00070203 ! 11: C THAT THE FOLLOWING LANGUAGE FEATURES FUNCTION CORRECTLY. 00080203 ! 12: C 00090203 ! 13: C (1) CHARACTER ASSIGNMENT STATEMENTS OF THE FORM 00100203 ! 14: C 00110203 ! 15: C CHARACTER ARRAY ELEMENT = CHARACTER CONSTANT 00120203 ! 16: C CHARACTER ARRAY ELEMENT = CHARACTER VARIABLE 00130203 ! 17: C CHARACTER ARRAY ELEMENT = CHARACTER ARRAY ELEMENT 00140203 ! 18: C CHARACTER VARIABLE = CHARACTER ARRAY ELEMENT 00150203 ! 19: C 00160203 ! 20: C WHERE THE ARRAY ELEMENTS, VARIABLES AND CONSTANTS ARE OF LENGTH 00170203 ! 21: C ONE OR TWO. 00180203 ! 22: C 00190203 ! 23: C (2) CHARACTER RELATIONAL EXPRESSIONS OF THE FORM 00200203 ! 24: C 00210203 ! 25: C CHARACTER ARRAY ELEMENT RELOP CHARACTER CONSTANT 00220203 ! 26: C CHARACTER ARRAY ELEMENT RELOP CHARACTER VARIABLE 00230203 ! 27: C CHARACTER ARRAY ELEMENT RELOP CHARACTER ARRAY ELEMENT 00240203 ! 28: C 00250203 ! 29: C WHERE THE ARRAY ELEMENTS, VARIABLES AND CONSTANTS ARE OF LENGTH 00260203 ! 30: C ONE OR TWO. 00270203 ! 31: C 00280203 ! 32: C (3) CHARACTER EXPRESSIONS ENCLOSED IN PARENTHESES. THE FORMS00290203 ! 33: C TESTED ARE 00300203 ! 34: C 00310203 ! 35: C (CHARACTER CONSTANT) 00320203 ! 36: C (CHARACTER VARIABLE) 00330203 ! 37: C (CHARACTER ARRAY ELEMENT) 00340203 ! 38: C ((CHARACTER ARRAY ELEMENT)) 00350203 ! 39: C 00360203 ! 40: C (4) CHARACTER RELATIONAL EXPRESSIONS OF THE FORM 00370203 ! 41: C 00380203 ! 42: C CHARACTER ARRAY ELEMENT .EQ. CHARACTER CONSTANT 00390203 ! 43: C 00400203 ! 44: C ARE USED IN THIS ROUTINE TO VERIFY THE CHARACTER ASSIGNMENT 00410203 ! 45: C STATEMENTS. 00420203 ! 46: C 00430203 ! 47: C REFERENCES 00440203 ! 48: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00450203 ! 49: C X3.9-1978 00460203 ! 50: C 00470203 ! 51: C SECTION 4.8, CHARACTER TYPE 00480203 ! 52: C SECTION 4.8.1, CHARACTER CONSTANT 00490203 ! 53: C SECTION 6.2, CHARACTER EXPRESSIONS 00500203 ! 54: C SECTION 6.3.4, CHARACTER RELATIONAL EXPRESSION 00510203 ! 55: C SECTION 6.3.5, INTERPRETATION OF CHARACTER RELATIONAL 00520203 ! 56: C EXPRESSIONS 00530203 ! 57: C SECTION 8.4.2, CHARACTER TYPE-STATEMENT 00540203 ! 58: C SECTION 10.4, CHARACTER ASSIGNMENT STATEMENT 00550203 ! 59: C 00560203 ! 60: C 00570203 ! 61: C 00580203 ! 62: C ******************************************************************00590203 ! 63: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00600203 ! 64: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00610203 ! 65: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00620203 ! 66: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00630203 ! 67: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00640203 ! 68: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00650203 ! 69: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00660203 ! 70: C THE RESULT OF EXECUTING THESE TESTS. 00670203 ! 71: C 00680203 ! 72: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00690203 ! 73: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00700203 ! 74: C 00710203 ! 75: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00720203 ! 76: C DEPARTMENT OF THE NAVY 00730203 ! 77: C FEDERAL COBOL COMPILER TESTING SERVICE 00740203 ! 78: C WASHINGTON, D.C. 20376 00750203 ! 79: C 00760203 ! 80: C ******************************************************************00770203 ! 81: C 00780203 ! 82: C 00790203 ! 83: IMPLICIT LOGICAL (L) 00800203 ! 84: IMPLICIT CHARACTER*14 (C) 00810203 ! 85: C 00820203 ! 86: CHARACTER CATN11(5), CVTN01, CATN12(5), CVTN02 00830203 ! 87: CHARACTER*2 CATN13, CVTN03, CATN14(5), CVTN04 00840203 ! 88: DIMENSION CATN13(5) 00850203 ! 89: C 00860203 ! 90: C 00870203 ! 91: C 00880203 ! 92: C INITIALIZATION SECTION. 00890203 ! 93: C 00900203 ! 94: C INITIALIZE CONSTANTS 00910203 ! 95: C ******************** 00920203 ! 96: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00930203 ! 97: I01 = 5 00940203 ! 98: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00950203 ! 99: I02 = 6 00960203 ! 100: C SYSTEM ENVIRONMENT SECTION 00970203 ! 101: C 00980203 ! 102: I01 = 5 00990203 ! 103: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 01000203 ! 104: C (UNIT NUMBER FOR CARD READER). 01010203 ! 105: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD01020203 ! 106: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01030203 ! 107: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 01040203 ! 108: C 01050203 ! 109: I02 = 6 01060203 ! 110: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 01070203 ! 111: C (UNIT NUMBER FOR PRINTER). 01080203 ! 112: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.01090203 ! 113: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01100203 ! 114: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 01110203 ! 115: C 01120203 ! 116: IVPASS = 0 01130203 ! 117: IVFAIL = 0 01140203 ! 118: IVDELE = 0 01150203 ! 119: ICZERO = 0 01160203 ! 120: C 01170203 ! 121: C WRITE OUT PAGE HEADERS 01180203 ! 122: C 01190203 ! 123: WRITE (I02,90002) 01200203 ! 124: WRITE (I02,90006) 01210203 ! 125: WRITE (I02,90008) 01220203 ! 126: WRITE (I02,90004) 01230203 ! 127: WRITE (I02,90010) 01240203 ! 128: WRITE (I02,90004) 01250203 ! 129: WRITE (I02,90016) 01260203 ! 130: WRITE (I02,90001) 01270203 ! 131: WRITE (I02,90004) 01280203 ! 132: WRITE (I02,90012) 01290203 ! 133: WRITE (I02,90014) 01300203 ! 134: WRITE (I02,90004) 01310203 ! 135: C 01320203 ! 136: C 01330203 ! 137: C TEST 31 THROUGH TEST 33 VERIFY THAT THE CHARACTER ASSIGNMENT 01340203 ! 138: C STATEMENT 01350203 ! 139: C 01360203 ! 140: C CHARACTER ARRAY ELEMENT (LEN 1) = CHARACTER CONSTANT (LEN 1) 01370203 ! 141: C 01380203 ! 142: C IS CORRECT. THE CHARACTER RELATIONAL EXPRESSION 01390203 ! 143: C 01400203 ! 144: C CHARACTER ARRAY ELEMENT (LEN 1) .EQ. CHARACTER CONSTANT (LEN 1) 01410203 ! 145: C 01420203 ! 146: C IS USED TO VERIFY THE ASSIGNMENT STATEMENT. BOTH OF THE ABOVE 01430203 ! 147: C STATEMENT FORMS MUST MEET THE LANGUAGE SPECIFICATIONS FOR THESE 01440203 ! 148: C TESTS TO PASS. 01450203 ! 149: C 01460203 ! 150: C THE TWO ARRAYS USED IN THESE TESTS ARE CATN11(5) AND CATN12(5)01470203 ! 151: C THE ARRAYS ARE INITIALIZED TO A BLANK CHARACTER BY THE DO-LOOP 01480203 ! 152: C 01490203 ! 153: DO 312 I= 1,5 01500203 ! 154: CATN11(I) = ' ' 01510203 ! 155: CATN12(I) = ' ' 01520203 ! 156: 312 CONTINUE 01530203 ! 157: C 01540203 ! 158: C **** FCVS PROGRAM 203 - TEST 031 **** 01550203 ! 159: C 01560203 ! 160: C 01570203 ! 161: IVTNUM = 31 01580203 ! 162: IF (ICZERO) 30310, 0310, 30310 01590203 ! 163: 0310 CONTINUE 01600203 ! 164: IVCOMP = 0 01610203 ! 165: IVCORR = 1 01620203 ! 166: CATN11(2) = 'V' 01630203 ! 167: IF (CATN11(2) .EQ. 'V') IVCOMP = 1 01640203 ! 168: 40310 IF (IVCOMP - 1) 20310,10310,20310 01650203 ! 169: 30310 IVDELE = IVDELE + 1 01660203 ! 170: WRITE (I02,80000) IVTNUM 01670203 ! 171: IF (ICZERO) 10310, 0321, 20310 01680203 ! 172: 10310 IVPASS = IVPASS + 1 01690203 ! 173: WRITE (I02,80002) IVTNUM 01700203 ! 174: GO TO 0321 01710203 ! 175: 20310 IVFAIL = IVFAIL + 1 01720203 ! 176: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01730203 ! 177: 0321 CONTINUE 01740203 ! 178: C 01750203 ! 179: C **** FCVS PROGRAM 203 - TEST 032 **** 01760203 ! 180: C 01770203 ! 181: C 01780203 ! 182: IVTNUM = 32 01790203 ! 183: IF (ICZERO) 30320, 0320, 30320 01800203 ! 184: 0320 CONTINUE 01810203 ! 185: IVCOMP=0 01820203 ! 186: IVCORR=1 01830203 ! 187: CATN11(3) = '+' 01840203 ! 188: IF (CATN11(3) .EQ. '+') IVCOMP = 1 01850203 ! 189: 40320 IF (IVCOMP - 1) 20320,10320,20320 01860203 ! 190: 30320 IVDELE = IVDELE + 1 01870203 ! 191: WRITE (I02,80000) IVTNUM 01880203 ! 192: IF (ICZERO) 10320, 0331, 20320 01890203 ! 193: 10320 IVPASS = IVPASS + 1 01900203 ! 194: WRITE (I02,80002) IVTNUM 01910203 ! 195: GO TO 0331 01920203 ! 196: 20320 IVFAIL = IVFAIL + 1 01930203 ! 197: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01940203 ! 198: 0331 CONTINUE 01950203 ! 199: C 01960203 ! 200: C **** FCVS PROGRAM 203 - TEST 033 **** 01970203 ! 201: C 01980203 ! 202: C 01990203 ! 203: IVTNUM = 33 02000203 ! 204: IF (ICZERO) 30330, 0330, 30330 02010203 ! 205: 0330 CONTINUE 02020203 ! 206: IVCOMP = 0 02030203 ! 207: IVCORR = 1 02040203 ! 208: CATN11 (4) = '7' 02050203 ! 209: IF (CATN11 (4) .EQ. '7') IVCOMP = 1 02060203 ! 210: 40330 IF (IVCOMP -1) 20330,10330,20330 02070203 ! 211: 30330 IVDELE = IVDELE + 1 02080203 ! 212: WRITE (I02,80000) IVTNUM 02090203 ! 213: IF (ICZERO) 10330, 0341, 20330 02100203 ! 214: 10330 IVPASS = IVPASS + 1 02110203 ! 215: WRITE (I02,80002) IVTNUM 02120203 ! 216: GO TO 0341 02130203 ! 217: 20330 IVFAIL = IVFAIL + 1 02140203 ! 218: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02150203 ! 219: 0341 CONTINUE 02160203 ! 220: C 02170203 ! 221: C TEST 34 THROUGH TEST 36 VERIFY THAT THE CHARACTER ASSIGNMENT 02180203 ! 222: C STATEMENTS 02190203 ! 223: C 02200203 ! 224: C CHARACTER VARIABLE (LEN 1) = CHARACTER CONSTANT (LEN 1) 02210203 ! 225: C CHARACTER ARRAY ELEMENT (LEN1) = CHARACTER VARIABLE (LEN1) 02220203 ! 226: C 02230203 ! 227: C ARE CORRECT. THE CHARACTER RELATIONAL EXPRESSION 02240203 ! 228: C 02250203 ! 229: C CHARACTER ARRAY ELEMENT (LEN1) .EQ. CHAR. CONSTANT (LEN1) 02260203 ! 230: C 02270203 ! 231: C IS USED TO VERIFY THE RESULT OF THE ASSIGNMENT STATEMENTS. 02280203 ! 232: C 02290203 ! 233: C 02300203 ! 234: C **** FCVS PROGRAM 203 - TEST 034 **** 02310203 ! 235: C 02320203 ! 236: C 02330203 ! 237: IVTNUM = 34 02340203 ! 238: IF (ICZERO) 30340, 0340, 30340 02350203 ! 239: 0340 CONTINUE 02360203 ! 240: IVCOMP = 0 02370203 ! 241: IVCORR = 1 02380203 ! 242: CVTN01 = 'V' 02390203 ! 243: CATN12(2) = CVTN01 02400203 ! 244: IF (CATN12(2) .EQ. 'V') IVCOMP = 1 02410203 ! 245: 40340 IF (IVCOMP - 1) 20340,10340,20340 02420203 ! 246: 30340 IVDELE = IVDELE + 1 02430203 ! 247: WRITE (I02,80000) IVTNUM 02440203 ! 248: IF (ICZERO) 10340, 0351, 20340 02450203 ! 249: 10340 IVPASS = IVPASS + 1 02460203 ! 250: WRITE (I02,80002) IVTNUM 02470203 ! 251: GO TO 0351 02480203 ! 252: 20340 IVFAIL = IVFAIL + 1 02490203 ! 253: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02500203 ! 254: 0351 CONTINUE 02510203 ! 255: C 02520203 ! 256: C **** FCVS PROGRAM 203 - TEST 035 **** 02530203 ! 257: C 02540203 ! 258: C 02550203 ! 259: IVTNUM = 35 02560203 ! 260: IF (ICZERO) 30350, 0350, 30350 02570203 ! 261: 0350 CONTINUE 02580203 ! 262: IVCOMP = 0 02590203 ! 263: IVCORR = 1 02600203 ! 264: CVTN01 = '+' 02610203 ! 265: CATN12(3) = CVTN01 02620203 ! 266: IF (CATN12(3) .EQ. '+') IVCOMP = 1 02630203 ! 267: 40350 IF (IVCOMP - 1) 20350,10350,20350 02640203 ! 268: 30350 IVDELE = IVDELE + 1 02650203 ! 269: WRITE (I02,80000) IVTNUM 02660203 ! 270: IF (ICZERO) 10350, 0361, 20350 02670203 ! 271: 10350 IVPASS = IVPASS + 1 02680203 ! 272: WRITE (I02,80002) IVTNUM 02690203 ! 273: GO TO 0361 02700203 ! 274: 20350 IVFAIL = IVFAIL + 1 02710203 ! 275: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02720203 ! 276: 0361 CONTINUE 02730203 ! 277: C 02740203 ! 278: C **** FCVS PROGRAM 203 - TEST 036 **** 02750203 ! 279: C 02760203 ! 280: C 02770203 ! 281: IVTNUM = 36 02780203 ! 282: IF (ICZERO) 30360, 0360, 30360 02790203 ! 283: 0360 CONTINUE 02800203 ! 284: IVCOMP = 0 02810203 ! 285: IVCORR = 1 02820203 ! 286: CVTN01 = '7' 02830203 ! 287: CATN12(4) = CVTN01 02840203 ! 288: IF (CATN12(4) .EQ. '7') IVCOMP = 1 02850203 ! 289: 40360 IF (IVCOMP - 1) 20360,10360,20360 02860203 ! 290: 30360 IVDELE = IVDELE + 1 02870203 ! 291: WRITE (I02,80000) IVTNUM 02880203 ! 292: IF (ICZERO) 10360, 0371, 20360 02890203 ! 293: 10360 IVPASS = IVPASS + 1 02900203 ! 294: WRITE (I02,80002) IVTNUM 02910203 ! 295: GO TO 0371 02920203 ! 296: 20360 IVFAIL = IVFAIL + 1 02930203 ! 297: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02940203 ! 298: 0371 CONTINUE 02950203 ! 299: C 02960203 ! 300: C TEST 37 THROUGH TEST 39 VERIFY THAT THE CHARACTER ASSIGNMENT 02970203 ! 301: C STATEMENTS 02980203 ! 302: C 02990203 ! 303: C CHAR. ARRAY ELEMENT (LEN 1) = CHAR. CONSTANT (LEN 1) 03000203 ! 304: C CHAR. ARRAY ELEMENT (LEN 1) = CHAR. ARRAY ELEMENT (LEN 1) 03010203 ! 305: C 03020203 ! 306: C ARE CORRECT. THE CHARACTER RELATIONAL EXPRESSION 03030203 ! 307: C 03040203 ! 308: C CHAR. ARRAY ELEMENT (LEN 1) .EQ. CHAR. CONSTANT (LEN 1) 03050203 ! 309: C 03060203 ! 310: C IS USED TO VERIFY THE RESULT OF THE ASSIGNMENT STATEMENTS. 03070203 ! 311: C 03080203 ! 312: C 03090203 ! 313: C **** FCVS PROGRAM 203 - TEST 037 **** 03100203 ! 314: C 03110203 ! 315: C 03120203 ! 316: IVTNUM = 37 03130203 ! 317: IF (ICZERO) 30370, 0370, 30370 03140203 ! 318: 0370 CONTINUE 03150203 ! 319: IVCOMP = 1 03160203 ! 320: IVCORR = 6 03170203 ! 321: CATN11 (1) = 'V' 03180203 ! 322: CATN12 (1) = CATN11 (1) 03190203 ! 323: IF (CATN12(1) .EQ. 'V') IVCOMP=IVCOMP*2 03200203 ! 324: IF (CATN11(1) .EQ. 'V') IVCOMP=IVCOMP*3 03210203 ! 325: 40370 IF (IVCOMP-6) 20370,10370,20370 03220203 ! 326: 30370 IVDELE = IVDELE + 1 03230203 ! 327: WRITE (I02,80000) IVTNUM 03240203 ! 328: IF (ICZERO) 10370, 0381, 20370 03250203 ! 329: 10370 IVPASS = IVPASS + 1 03260203 ! 330: WRITE (I02,80002) IVTNUM 03270203 ! 331: GO TO 0381 03280203 ! 332: 20370 IVFAIL = IVFAIL + 1 03290203 ! 333: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03300203 ! 334: 0381 CONTINUE 03310203 ! 335: C 03320203 ! 336: C **** FCVS PROGRAM 203 - TEST 038 **** 03330203 ! 337: C 03340203 ! 338: C 03350203 ! 339: IVTNUM = 38 03360203 ! 340: IF (ICZERO) 30380, 0380, 30380 03370203 ! 341: 0380 CONTINUE 03380203 ! 342: IVCOMP=1 03390203 ! 343: IVCORR=6 03400203 ! 344: CATN11(2) = '+' 03410203 ! 345: CATN12(2) = CATN11(2) 03420203 ! 346: IF (CATN12(2) .EQ. '+') IVCOMP=IVCOMP*2 03430203 ! 347: IF (CATN11(2) .EQ. '+') IVCOMP=IVCOMP*3 03440203 ! 348: 40380 IF (IVCOMP - 6) 20380,10380,20380 03450203 ! 349: 30380 IVDELE = IVDELE + 1 03460203 ! 350: WRITE (I02,80000) IVTNUM 03470203 ! 351: IF (ICZERO) 10380, 0391, 20380 03480203 ! 352: 10380 IVPASS = IVPASS + 1 03490203 ! 353: WRITE (I02,80002) IVTNUM 03500203 ! 354: GO TO 0391 03510203 ! 355: 20380 IVFAIL = IVFAIL + 1 03520203 ! 356: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03530203 ! 357: 0391 CONTINUE 03540203 ! 358: C 03550203 ! 359: C **** FCVS PROGRAM 203 - TEST 039 **** 03560203 ! 360: C 03570203 ! 361: C 03580203 ! 362: IVTNUM = 39 03590203 ! 363: IF (ICZERO) 30390, 0390, 30390 03600203 ! 364: 0390 CONTINUE 03610203 ! 365: IVCOMP = 1 03620203 ! 366: IVCORR = 6 03630203 ! 367: CATN11 (3) = '7' 03640203 ! 368: CATN12 (3) = CATN11 (3) 03650203 ! 369: IF (CATN12(3) .EQ. '7') IVCOMP = IVCOMP * 2 03660203 ! 370: IF (CATN11(3) .EQ. '7') IVCOMP = IVCOMP * 3 03670203 ! 371: 40390 IF (IVCOMP - 6) 20390,10390,20390 03680203 ! 372: 30390 IVDELE = IVDELE + 1 03690203 ! 373: WRITE (I02,80000) IVTNUM 03700203 ! 374: IF (ICZERO) 10390, 0401, 20390 03710203 ! 375: 10390 IVPASS = IVPASS + 1 03720203 ! 376: WRITE (I02,80002) IVTNUM 03730203 ! 377: GO TO 0401 03740203 ! 378: 20390 IVFAIL = IVFAIL + 1 03750203 ! 379: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03760203 ! 380: 0401 CONTINUE 03770203 ! 381: C 03780203 ! 382: C TEST 40 AND TEST 41 VERIFY THAT THE CHARACTER ASSIGNMENT 03790203 ! 383: C STATEMENTS 03800203 ! 384: C 03810203 ! 385: C CHAR. ARRAY ELEMENT (LEN 1) = CHAR. CONSTANT (LEN 1) 03820203 ! 386: C CHAR. VARIABLE (LEN 1) = CHAR. ARRAY ELEMENT (LEN 1) 03830203 ! 387: C 03840203 ! 388: C ARE CORRECT. 03850203 ! 389: C 03860203 ! 390: C 03870203 ! 391: C **** FCVS PROGRAM 203 - TEST 040 **** 03880203 ! 392: C 03890203 ! 393: C 03900203 ! 394: IVTNUM = 40 03910203 ! 395: IF (ICZERO) 30400, 0400, 30400 03920203 ! 396: 0400 CONTINUE 03930203 ! 397: IVCOMP = 0 03940203 ! 398: IVCORR = 1 03950203 ! 399: CATN11(4) = 'X' 03960203 ! 400: CVTN02 = CATN11 (4) 03970203 ! 401: IF (CVTN02 .EQ. 'X') IVCOMP = 1 03980203 ! 402: 40400 IF (IVCOMP - 1) 20400,10400,20400 03990203 ! 403: 30400 IVDELE = IVDELE + 1 04000203 ! 404: WRITE (I02,80000) IVTNUM 04010203 ! 405: IF (ICZERO) 10400, 0411, 20400 04020203 ! 406: 10400 IVPASS = IVPASS + 1 04030203 ! 407: WRITE (I02,80002) IVTNUM 04040203 ! 408: GO TO 0411 04050203 ! 409: 20400 IVFAIL = IVFAIL + 1 04060203 ! 410: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04070203 ! 411: 0411 CONTINUE 04080203 ! 412: C 04090203 ! 413: C **** FCVS PROGRAM 203 - TEST 041 **** 04100203 ! 414: C 04110203 ! 415: C 04120203 ! 416: IVTNUM = 41 04130203 ! 417: IF (ICZERO) 30410, 0410, 30410 04140203 ! 418: 0410 CONTINUE 04150203 ! 419: IVCOMP = 0 04160203 ! 420: IVCORR = 1 04170203 ! 421: CATN11(3) = '-' 04180203 ! 422: CVTN02 = CATN11(3) 04190203 ! 423: IF (CVTN02 .EQ. '-') IVCOMP=1 04200203 ! 424: 40410 IF (IVCOMP - 1) 20410,10410,20410 04210203 ! 425: 30410 IVDELE = IVDELE + 1 04220203 ! 426: WRITE (I02,80000) IVTNUM 04230203 ! 427: IF (ICZERO) 10410, 0421, 20410 04240203 ! 428: 10410 IVPASS = IVPASS + 1 04250203 ! 429: WRITE (I02,80002) IVTNUM 04260203 ! 430: GO TO 0421 04270203 ! 431: 20410 IVFAIL = IVFAIL + 1 04280203 ! 432: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04290203 ! 433: 0421 CONTINUE 04300203 ! 434: C 04310203 ! 435: C TEST 42 THROUGH TEST 44 VERIFY THE RESULTS OF CHARACTER 04320203 ! 436: C RELATIONAL EXPRESSIONS USING EACH OF THE SIX RELATIONAL OPERATORS.04330203 ! 437: C THE CHARACTER DATA 'A' AND '1' ARE COMPARED IN THE EXPRESSION 04340203 ! 438: C AND ARE INITIALIZED BY THE CHARACTER ASSIGNMENT STATEMENTS 04350203 ! 439: C 04360203 ! 440: CATN11 (4) = 'A' 04370203 ! 441: CATN12 (3) = '1' 04380203 ! 442: CVTN01 = 'A' 04390203 ! 443: CVTN02 = '1' 04400203 ! 444: C 04410203 ! 445: C **** FCVS PROGRAM 203 - TEST 042 **** 04420203 ! 446: C 04430203 ! 447: C RELATIONAL OPERATORS .NE. AND .EQ. 04440203 ! 448: C CHAR. ARRAY ELEMENT (LEN 1) RELOP CHAR. CONSTANT (LEN 1) 04450203 ! 449: C 04460203 ! 450: IVTNUM = 42 04470203 ! 451: IF (ICZERO) 30420, 0420, 30420 04480203 ! 452: 0420 CONTINUE 04490203 ! 453: IVCOMP = 1 04500203 ! 454: IVCORR = 3 04510203 ! 455: IF (CATN11(4) .EQ. '1') IVCOMP=IVCOMP*2 04520203 ! 456: IF ('A' .NE. CATN12(3)) IVCOMP=IVCOMP*3 04530203 ! 457: 40420 IF (IVCOMP - 3) 20420,10420,20420 04540203 ! 458: 30420 IVDELE = IVDELE + 1 04550203 ! 459: WRITE (I02,80000) IVTNUM 04560203 ! 460: IF (ICZERO) 10420, 0431, 20420 04570203 ! 461: 10420 IVPASS = IVPASS + 1 04580203 ! 462: WRITE (I02,80002) IVTNUM 04590203 ! 463: GO TO 0431 04600203 ! 464: 20420 IVFAIL = IVFAIL + 1 04610203 ! 465: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04620203 ! 466: 0431 CONTINUE 04630203 ! 467: C 04640203 ! 468: C **** FCVS PROGRAM 203 - TEST 043 **** 04650203 ! 469: C 04660203 ! 470: C RELATIONAL OPERATORS .LE. AND .GE. 04670203 ! 471: C CHAR. ARRAY ELEMENT (LEN 1) RELOP CHAR. VARIABLE (LEN 1) 04680203 ! 472: C 04690203 ! 473: IVTNUM = 43 04700203 ! 474: IF (ICZERO) 30430, 0430, 30430 04710203 ! 475: 0430 CONTINUE 04720203 ! 476: IVCOMP = 0 04730203 ! 477: IVCORR = 1 04740203 ! 478: IF (CATN11(4) .LE. CVTN02) IVCOMP=IVCOMP+1 04750203 ! 479: IF (CVTN01 .GE. CATN12(3)) IVCOMP=IVCOMP+1 04760203 ! 480: 40430 IF (IVCOMP - 1) 20430,10430,20430 04770203 ! 481: 30430 IVDELE = IVDELE + 1 04780203 ! 482: WRITE (I02,80000) IVTNUM 04790203 ! 483: IF (ICZERO) 10430, 0441, 20430 04800203 ! 484: 10430 IVPASS = IVPASS + 1 04810203 ! 485: WRITE (I02,80002) IVTNUM 04820203 ! 486: GO TO 0441 04830203 ! 487: 20430 IVFAIL = IVFAIL + 1 04840203 ! 488: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04850203 ! 489: 0441 CONTINUE 04860203 ! 490: C 04870203 ! 491: C **** FCVS PROGRAM 203 - TEST 044 **** 04880203 ! 492: C 04890203 ! 493: C RELATIONAL OPERATORS .LT. AND .GT. 04900203 ! 494: C CHAR. ARRAY ELEMENT (LEN 1) RELOP CHAR. ARRAY ELEMENT (LEN 1) 04910203 ! 495: C 04920203 ! 496: IVTNUM = 44 04930203 ! 497: IF (ICZERO) 30440, 0440, 30440 04940203 ! 498: 0440 CONTINUE 04950203 ! 499: IVCOMP = 0 04960203 ! 500: IVCORR = 1 04970203 ! 501: IF (CATN11(4) .LT. CATN12(3)) IVCOMP=IVCOMP+1 04980203 ! 502: IF (CATN11(4) .GT. CATN12(3)) IVCOMP=IVCOMP+1 04990203 ! 503: 40440 IF (IVCOMP - 1) 20440,10440,20440 05000203 ! 504: 30440 IVDELE = IVDELE + 1 05010203 ! 505: WRITE (I02,80000) IVTNUM 05020203 ! 506: IF (ICZERO) 10440, 0451, 20440 05030203 ! 507: 10440 IVPASS = IVPASS + 1 05040203 ! 508: WRITE (I02,80002) IVTNUM 05050203 ! 509: GO TO 0451 05060203 ! 510: 20440 IVFAIL = IVFAIL + 1 05070203 ! 511: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05080203 ! 512: 0451 CONTINUE 05090203 ! 513: C 05100203 ! 514: C **** FCVS PROGRAM 203 - TEST 045 **** 05110203 ! 515: C 05120203 ! 516: C TEST 45 VERIFIES THAT THE LAST ELEMENTS OF THE ARRAYS USED 05130203 ! 517: C IN TEST 31 THROUGH TEST 44 WERE NOT AFFECTED BY THE SETTING 05140203 ! 518: C OF OTHER CHARACTER ARRAY ELEMENTS. 05150203 ! 519: C 05160203 ! 520: IVTNUM = 45 05170203 ! 521: IF (ICZERO) 30450, 0450, 30450 05180203 ! 522: 0450 CONTINUE 05190203 ! 523: IVCOMP = 1 05200203 ! 524: IVCORR = 30 05210203 ! 525: IF (CATN11(5) .EQ. ' ') IVCOMP=IVCOMP*2 05220203 ! 526: IF (CATN12(5) .EQ. ' ') IVCOMP=IVCOMP*3 05230203 ! 527: IF (CATN11(5) .EQ. CATN12(5)) IVCOMP=IVCOMP*5 05240203 ! 528: 40450 IF (IVCOMP - 30) 20450,10450,20450 05250203 ! 529: 30450 IVDELE = IVDELE + 1 05260203 ! 530: WRITE (I02,80000) IVTNUM 05270203 ! 531: IF (ICZERO) 10450, 0461, 20450 05280203 ! 532: 10450 IVPASS = IVPASS + 1 05290203 ! 533: WRITE (I02,80002) IVTNUM 05300203 ! 534: GO TO 0461 05310203 ! 535: 20450 IVFAIL = IVFAIL + 1 05320203 ! 536: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05330203 ! 537: 0461 CONTINUE 05340203 ! 538: C 05350203 ! 539: C TEST 46 THROUGH TEST 49 CONTAIN CHARACTER ARRAY ELEMENTS OF 05360203 ! 540: C LENGTH TWO IN CHARACTER ASSIGNMENT STATEMENTS. THE CHARACTER 05370203 ! 541: C RELATIONAL EXPRESSION 05380203 ! 542: C 05390203 ! 543: C CHAR. ARRAY ELEMENT (LEN 2) .EQ. CHAR. CONSTANT (LEN 2) 05400203 ! 544: C 05410203 ! 545: C IS USED TO VERIFY THE TEST RESULTS. 05420203 ! 546: C 05430203 ! 547: C THE TWO ARRAYS USED IN THESE TESTS ARE CATN13(5) AND CATN14(5)05440203 ! 548: C THE ARRAYS ARE INITIALIZED TO TWO BLANK CHARACTERS BY THE DO-LOOP 05450203 ! 549: C 05460203 ! 550: DO 462 I=1,5 05470203 ! 551: CATN13(I) = ' ' 05480203 ! 552: CATN14(I) = ' ' 05490203 ! 553: 462 CONTINUE 05500203 ! 554: C 05510203 ! 555: C **** FCVS PROGRAM 203 - TEST 046 **** 05520203 ! 556: C 05530203 ! 557: C CHAR. ARRAY ELEMENT (LEN 2) = CHAR. CONSTANT (LEN 2) 05540203 ! 558: C 05550203 ! 559: IVTNUM = 46 05560203 ! 560: IF (ICZERO) 30460, 0460, 30460 05570203 ! 561: 0460 CONTINUE 05580203 ! 562: IVCOMP = 0 05590203 ! 563: IVCORR = 1 05600203 ! 564: CATN13(1) = 'AB' 05610203 ! 565: IF (CATN13(1) .EQ. 'AB') IVCOMP = 1 05620203 ! 566: 40460 IF (IVCOMP - 1) 20460,10460,20460 05630203 ! 567: 30460 IVDELE = IVDELE + 1 05640203 ! 568: WRITE (I02,80000) IVTNUM 05650203 ! 569: IF (ICZERO) 10460, 0471, 20460 05660203 ! 570: 10460 IVPASS = IVPASS + 1 05670203 ! 571: WRITE (I02,80002) IVTNUM 05680203 ! 572: GO TO 0471 05690203 ! 573: 20460 IVFAIL = IVFAIL + 1 05700203 ! 574: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05710203 ! 575: 0471 CONTINUE 05720203 ! 576: C 05730203 ! 577: C **** FCVS PROGRAM 203 - TEST 047 **** 05740203 ! 578: C 05750203 ! 579: C CHAR. VARIABLE (LEN 2) = CHAR. CONSTANT (LEN 2) 05760203 ! 580: C CHAR. ARRAY ELEMENT (LEN 2) = CHAR. VARIABLE (LEN 2) 05770203 ! 581: C 05780203 ! 582: IVTNUM = 47 05790203 ! 583: IF (ICZERO) 30470, 0470, 30470 05800203 ! 584: 0470 CONTINUE 05810203 ! 585: IVCOMP = 0 05820203 ! 586: IVCORR = 1 05830203 ! 587: CVTN03 = '+-' 05840203 ! 588: CATN13(2) = CVTN03 05850203 ! 589: IF (CATN13(2) .EQ. '+-') IVCOMP=1 05860203 ! 590: 40470 IF (IVCOMP - 1) 20470,10470,20470 05870203 ! 591: 30470 IVDELE = IVDELE + 1 05880203 ! 592: WRITE (I02,80000) IVTNUM 05890203 ! 593: IF (ICZERO) 10470, 0481, 20470 05900203 ! 594: 10470 IVPASS = IVPASS + 1 05910203 ! 595: WRITE (I02,80002) IVTNUM 05920203 ! 596: GO TO 0481 05930203 ! 597: 20470 IVFAIL = IVFAIL + 1 05940203 ! 598: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05950203 ! 599: 0481 CONTINUE 05960203 ! 600: C 05970203 ! 601: C **** FCVS PROGRAM 203 - TEST 048 **** 05980203 ! 602: C 05990203 ! 603: C CHAR. ARRAY ELEMENT (LEN 2) = CHAR. CONSTANT (LEN 2) 06000203 ! 604: C CHAR. ARRAY ELEMENT (LEN 2) = CHAR. ARRAY ELEMENT (LEN 2) 06010203 ! 605: C 06020203 ! 606: IVTNUM = 48 06030203 ! 607: IF (ICZERO) 30480, 0480, 30480 06040203 ! 608: 0480 CONTINUE 06050203 ! 609: IVCOMP = 0 06060203 ! 610: IVCORR = 1 06070203 ! 611: CATN13(4) = '24' 06080203 ! 612: CATN13(3) = CATN13(4) 06090203 ! 613: IF (CATN13(3) .EQ. '24') IVCOMP = 1 06100203 ! 614: 40480 IF (IVCOMP - 1) 20480,10480,20480 06110203 ! 615: 30480 IVDELE = IVDELE + 1 06120203 ! 616: WRITE (I02,80000) IVTNUM 06130203 ! 617: IF (ICZERO) 10480, 0491, 20480 06140203 ! 618: 10480 IVPASS = IVPASS + 1 06150203 ! 619: WRITE (I02,80002) IVTNUM 06160203 ! 620: GO TO 0491 06170203 ! 621: 20480 IVFAIL = IVFAIL + 1 06180203 ! 622: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06190203 ! 623: 0491 CONTINUE 06200203 ! 624: C 06210203 ! 625: C **** FCVS PROGRAM 203 - TEST 049 **** 06220203 ! 626: C 06230203 ! 627: C CHAR. ARRAY ELEMENT (LEN 2) = CHAR. CONSTANT (LEN 2) 06240203 ! 628: C CHAR. VARIABLE (LEN 2) = CHAR. ARRAY ELEMENT (LEN 2) 06250203 ! 629: C 06260203 ! 630: IVTNUM = 49 06270203 ! 631: IF (ICZERO) 30490, 0490, 30490 06280203 ! 632: 0490 CONTINUE 06290203 ! 633: IVCOMP = 0 06300203 ! 634: IVCORR = 1 06310203 ! 635: CATN14(1) = 'AB' 06320203 ! 636: CVTN04 = CATN14(1) 06330203 ! 637: IF (CVTN04 .EQ. 'AB') IVCOMP = 1 06340203 ! 638: 40490 IF (IVCOMP - 1) 20490,10490,20490 06350203 ! 639: 30490 IVDELE = IVDELE + 1 06360203 ! 640: WRITE (I02,80000) IVTNUM 06370203 ! 641: IF (ICZERO) 10490, 0501, 20490 06380203 ! 642: 10490 IVPASS = IVPASS + 1 06390203 ! 643: WRITE (I02,80002) IVTNUM 06400203 ! 644: GO TO 0501 06410203 ! 645: 20490 IVFAIL = IVFAIL + 1 06420203 ! 646: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06430203 ! 647: 0501 CONTINUE 06440203 ! 648: C 06450203 ! 649: C TEST 50 THROUGH TEST 52 VERIFY THE RESULTS OF CHARACTER 06460203 ! 650: C RELATIONAL EXPRESSIONS USING EACH OF THE SIX RELATIONAL OPERATORS.06470203 ! 651: C THE CHARACTER DATA 'ZA' AND 'Z1' ARE COMPARED IN THE EXPRESSION 06480203 ! 652: C AND ARE INITIALIZED BY THE CHARACTER ASSIGNMENT STATEMENTS 06490203 ! 653: C 06500203 ! 654: CATN14(2) = 'ZA' 06510203 ! 655: CATN14(3) = 'Z1' 06520203 ! 656: CVTN03 = 'ZA' 06530203 ! 657: CVTN04 = 'Z1' 06540203 ! 658: C 06550203 ! 659: C **** FCVS PROGRAM 203 - TEST 050 **** 06560203 ! 660: C 06570203 ! 661: C RELATIONAL OPERATORS .NE. AND .EQ. 06580203 ! 662: C CHAR. ARRAY ELEMENT (LEN 2) RELOP CHAR. VARIABLE (LEN 2) 06590203 ! 663: C 06600203 ! 664: IVTNUM = 50 06610203 ! 665: IF (ICZERO) 30500, 0500, 30500 06620203 ! 666: 0500 CONTINUE 06630203 ! 667: IVCOMP = 1 06640203 ! 668: IVCORR = 3 06650203 ! 669: IF (CATN14(2) .EQ. 'Z1') IVCOMP=IVCOMP*2 06660203 ! 670: IF ('ZA' .NE. CATN14(3)) IVCOMP=IVCOMP*3 06670203 ! 671: 40500 IF (IVCOMP - 3) 20500,10500,20500 06680203 ! 672: 30500 IVDELE = IVDELE + 1 06690203 ! 673: WRITE (I02,80000) IVTNUM 06700203 ! 674: IF (ICZERO) 10500, 0511, 20500 06710203 ! 675: 10500 IVPASS = IVPASS + 1 06720203 ! 676: WRITE (I02,80002) IVTNUM 06730203 ! 677: GO TO 0511 06740203 ! 678: 20500 IVFAIL = IVFAIL + 1 06750203 ! 679: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06760203 ! 680: 0511 CONTINUE 06770203 ! 681: C 06780203 ! 682: C **** FCVS PROGRAM 203 - TEST 051 **** 06790203 ! 683: C 06800203 ! 684: C RELATIONAL OPERATORS .LE. AND .GE. 06810203 ! 685: C CHAR. ARRAY ELEMENT (LEN 2) RELOP CHAR. VARIABLE (LEN 2) 06820203 ! 686: C 06830203 ! 687: IVTNUM = 51 06840203 ! 688: IF (ICZERO) 30510, 0510, 30510 06850203 ! 689: 0510 CONTINUE 06860203 ! 690: IVCOMP = 0 06870203 ! 691: IVCORR = 1 06880203 ! 692: IF (CATN14(2) .LE. CVTN04) IVCOMP=IVCOMP+1 06890203 ! 693: IF (CVTN03 .GE. CATN14(3)) IVCOMP=IVCOMP+1 06900203 ! 694: 40510 IF (IVCOMP - 1) 20510,10510,20510 06910203 ! 695: 30510 IVDELE = IVDELE + 1 06920203 ! 696: WRITE (I02,80000) IVTNUM 06930203 ! 697: IF (ICZERO) 10510, 0521, 20510 06940203 ! 698: 10510 IVPASS = IVPASS + 1 06950203 ! 699: WRITE (I02,80002) IVTNUM 06960203 ! 700: GO TO 0521 06970203 ! 701: 20510 IVFAIL = IVFAIL + 1 06980203 ! 702: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06990203 ! 703: 0521 CONTINUE 07000203 ! 704: C 07010203 ! 705: C **** FCVS PROGRAM 203 - TEST 052 **** 07020203 ! 706: C 07030203 ! 707: C RELATIONAL OPERATORS .LT. AND .GT. 07040203 ! 708: C CHAR. ARRAY ELEMENT (LEN 2) RELOP CHAR. ARRAY ELEMENT (LEN 2) 07050203 ! 709: C 07060203 ! 710: IVTNUM = 52 07070203 ! 711: IF (ICZERO) 30520, 0520, 30520 07080203 ! 712: 0520 CONTINUE 07090203 ! 713: IVCOMP =0 07100203 ! 714: IVCORR =1 07110203 ! 715: IF (CATN14(2) .LT. CATN14(3)) IVCOMP=IVCOMP+1 07120203 ! 716: IF (CATN14(2) .GT. CATN14(3)) IVCOMP=IVCOMP+1 07130203 ! 717: 40520 IF (IVCOMP - 1) 20520,10520,20520 07140203 ! 718: 30520 IVDELE = IVDELE + 1 07150203 ! 719: WRITE (I02,80000) IVTNUM 07160203 ! 720: IF (ICZERO) 10520, 0531, 20520 07170203 ! 721: 10520 IVPASS = IVPASS + 1 07180203 ! 722: WRITE (I02,80002) IVTNUM 07190203 ! 723: GO TO 0531 07200203 ! 724: 20520 IVFAIL = IVFAIL + 1 07210203 ! 725: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07220203 ! 726: 0531 CONTINUE 07230203 ! 727: C 07240203 ! 728: C **** FCVS PROGRAM 203 - TEST 053 **** 07250203 ! 729: C 07260203 ! 730: C TEST 53 VERIFIES THAT THE LAST ELEMENTS OF THE ARRAYS USED IN 07270203 ! 731: C TEST 46 THROUGH TEST 52 WERE NOT AFFECTED BY THE SETTING OF OTHER 07280203 ! 732: C CHARACTER ARRAY ELEMENTS. 07290203 ! 733: C 07300203 ! 734: IVTNUM = 53 07310203 ! 735: IF (ICZERO) 30530, 0530, 30530 07320203 ! 736: 0530 CONTINUE 07330203 ! 737: IVCOMP = 1 07340203 ! 738: IVCORR = 30 07350203 ! 739: IF (CATN13(5) .EQ. ' ')IVCOMP=IVCOMP*2 07360203 ! 740: IF (CATN14(5) .EQ. ' ') IVCOMP= IVCOMP * 3 07370203 ! 741: IF (CATN14(5) .EQ. CATN13(5)) IVCOMP=IVCOMP*5 07380203 ! 742: 40530 IF (IVCOMP - 30) 20530,10530,20530 07390203 ! 743: 30530 IVDELE = IVDELE + 1 07400203 ! 744: WRITE (I02,80000) IVTNUM 07410203 ! 745: IF (ICZERO) 10530, 0541, 20530 07420203 ! 746: 10530 IVPASS = IVPASS + 1 07430203 ! 747: WRITE (I02,80002) IVTNUM 07440203 ! 748: GO TO 0541 07450203 ! 749: 20530 IVFAIL = IVFAIL + 1 07460203 ! 750: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07470203 ! 751: 0541 CONTINUE 07480203 ! 752: C 07490203 ! 753: C TEST 54 THROUGH TEST 60 VERIFY THAT A CHARACTER PRIMARY CAN 07500203 ! 754: C BE ENCLOSED IN PARENTHESES. THE CHARACTER PRIMARIES FOR THE 07510203 ! 755: C SUBSET ARE CHARACTER CONSTANT, CHARACTER VARIABLE, CHARACTER ARRAY07520203 ! 756: C ELEMENT, AND CHARACTER EXPRESSION ENCLOSED IN PARENTHESES. THE 07530203 ! 757: C FORM OF A CHARACTER EXPRESSION IS CHARACTER PRIMARY. 07540203 ! 758: C 07550203 ! 759: C 07560203 ! 760: C **** FCVS PROGRAM 203 - TEST 054 **** 07570203 ! 761: C 07580203 ! 762: C CHARACTER ASSIGNMENT STATEMENT 07590203 ! 763: C CHAR. VARIABLE = (CHARACTER CONSTANT) LENGTH 1 07600203 ! 764: C 07610203 ! 765: IVTNUM = 54 07620203 ! 766: IF (ICZERO) 30540, 0540, 30540 07630203 ! 767: 0540 CONTINUE 07640203 ! 768: CVTN01 = ' ' 07650203 ! 769: IVCOMP = 0 07660203 ! 770: IVCORR = 1 07670203 ! 771: CVTN01 = ('N') 07680203 ! 772: IF (CVTN01 .EQ. 'N') IVCOMP = 1 07690203 ! 773: 40540 IF (IVCOMP - 1) 20540,10540,20540 07700203 ! 774: 30540 IVDELE = IVDELE + 1 07710203 ! 775: WRITE (I02,80000) IVTNUM 07720203 ! 776: IF (ICZERO) 10540, 0551, 20540 07730203 ! 777: 10540 IVPASS = IVPASS + 1 07740203 ! 778: WRITE (I02,80002) IVTNUM 07750203 ! 779: GO TO 0551 07760203 ! 780: 20540 IVFAIL = IVFAIL + 1 07770203 ! 781: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07780203 ! 782: 0551 CONTINUE 07790203 ! 783: C 07800203 ! 784: C **** FCVS PROGRAM 203 - TEST 055 **** 07810203 ! 785: C 07820203 ! 786: C CHARACTER ASSIGNMENT STATEMENT 07830203 ! 787: C CHAR. VARIABLE = (CHAR. VARIABLE) LENGTH 2 07840203 ! 788: C 07850203 ! 789: IVTNUM = 55 07860203 ! 790: IF (ICZERO) 30550, 0550, 30550 07870203 ! 791: 0550 CONTINUE 07880203 ! 792: CVTN04 = ' ' 07890203 ! 793: IVCOMP = 0 07900203 ! 794: IVCORR = 1 07910203 ! 795: CVTN03 = '/+' 07920203 ! 796: CVTN04 = (CVTN03) 07930203 ! 797: IF (CVTN04 .EQ. '/+') IVCOMP=1 07940203 ! 798: 40550 IF (IVCOMP - 1) 20550,10550,20550 07950203 ! 799: 30550 IVDELE = IVDELE + 1 07960203 ! 800: WRITE (I02,80000) IVTNUM 07970203 ! 801: IF (ICZERO) 10550, 0561, 20550 07980203 ! 802: 10550 IVPASS = IVPASS + 1 07990203 ! 803: WRITE (I02,80002) IVTNUM 08000203 ! 804: GO TO 0561 08010203 ! 805: 20550 IVFAIL = IVFAIL + 1 08020203 ! 806: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08030203 ! 807: 0561 CONTINUE 08040203 ! 808: C 08050203 ! 809: C **** FCVS PROGRAM 203 - TEST 056 **** 08060203 ! 810: C 08070203 ! 811: C CHARACTER ASSIGNMENT STATEMENT 08080203 ! 812: C CHAR. VARIABLE = (CHAR. ARRAY ELEMENT) LENGTH 2 08090203 ! 813: C 08100203 ! 814: IVTNUM = 56 08110203 ! 815: IF (ICZERO) 30560, 0560, 30560 08120203 ! 816: 0560 CONTINUE 08130203 ! 817: IVCOMP = 0 08140203 ! 818: IVCORR = 1 08150203 ! 819: CVTN04 = ' ' 08160203 ! 820: CATN13(1) = 'BC' 08170203 ! 821: CVTN04 = (CATN13(1)) 08180203 ! 822: IF (CVTN04 .EQ. 'BC') IVCOMP = 1 08190203 ! 823: 40560 IF (IVCOMP - 1) 20560,10560,20560 08200203 ! 824: 30560 IVDELE = IVDELE + 1 08210203 ! 825: WRITE (I02,80000) IVTNUM 08220203 ! 826: IF (ICZERO) 10560, 0571, 20560 08230203 ! 827: 10560 IVPASS = IVPASS + 1 08240203 ! 828: WRITE (I02,80002) IVTNUM 08250203 ! 829: GO TO 0571 08260203 ! 830: 20560 IVFAIL = IVFAIL + 1 08270203 ! 831: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08280203 ! 832: 0571 CONTINUE 08290203 ! 833: C 08300203 ! 834: C **** FCVS PROGRAM 203 - TEST 057 **** 08310203 ! 835: C 08320203 ! 836: C CHARACTER ASSIGNMENT STATEMENT 08330203 ! 837: C CHAR. VARIABLE = ((CHAR. ARRAY ELEMENT)) LENGTH 2 08340203 ! 838: C 08350203 ! 839: IVTNUM = 57 08360203 ! 840: IF (ICZERO) 30570, 0570, 30570 08370203 ! 841: 0570 CONTINUE 08380203 ! 842: IVCOMP = 0 08390203 ! 843: IVCORR = 1 08400203 ! 844: CVTN04 = ' ' 08410203 ! 845: CATN13(3) = 'BC' 08420203 ! 846: CVTN04 = ((CATN13(3))) 08430203 ! 847: IF (CVTN04 .EQ. 'BC') IVCOMP=1 08440203 ! 848: 40570 IF (IVCOMP - 1) 20570,10570,20570 08450203 ! 849: 30570 IVDELE = IVDELE + 1 08460203 ! 850: WRITE (I02,80000) IVTNUM 08470203 ! 851: IF (ICZERO) 10570, 0581, 20570 08480203 ! 852: 10570 IVPASS = IVPASS + 1 08490203 ! 853: WRITE (I02,80002) IVTNUM 08500203 ! 854: GO TO 0581 08510203 ! 855: 20570 IVFAIL = IVFAIL + 1 08520203 ! 856: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08530203 ! 857: 0581 CONTINUE 08540203 ! 858: C 08550203 ! 859: C **** FCVS PROGRAM 203 - TEST 058 **** 08560203 ! 860: C 08570203 ! 861: C RELATIONAL EXPRESSION, .NE. 08580203 ! 862: C (CHAR. CONSTANT) .NE. (CHAR. VARIABLE) LENGTH 1 08590203 ! 863: C 08600203 ! 864: IVTNUM = 58 08610203 ! 865: IF (ICZERO) 30580, 0580, 30580 08620203 ! 866: 0580 CONTINUE 08630203 ! 867: IVCOMP = 0 08640203 ! 868: IVCORR = 1 08650203 ! 869: CVTN01 = '6' 08660203 ! 870: IF (('9') .NE. (CVTN01)) IVCOMP=1 08670203 ! 871: 40580 IF (IVCOMP - 1) 20580,10580,20580 08680203 ! 872: 30580 IVDELE = IVDELE + 1 08690203 ! 873: WRITE (I02,80000) IVTNUM 08700203 ! 874: IF (ICZERO) 10580, 0591, 20580 08710203 ! 875: 10580 IVPASS = IVPASS + 1 08720203 ! 876: WRITE (I02,80002) IVTNUM 08730203 ! 877: GO TO 0591 08740203 ! 878: 20580 IVFAIL = IVFAIL + 1 08750203 ! 879: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08760203 ! 880: 0591 CONTINUE 08770203 ! 881: C 08780203 ! 882: C **** FCVS PROGRAM 203 - TEST 059 **** 08790203 ! 883: C 08800203 ! 884: C RELATIONAL EXPRESSION, .GE. 08810203 ! 885: C (CHAR. VARIABLE) .GE. (CHAR. ARRAY ELEMENT) LENGTH 2 08820203 ! 886: C 08830203 ! 887: IVTNUM = 59 08840203 ! 888: IF (ICZERO) 30590, 0590, 30590 08850203 ! 889: 0590 CONTINUE 08860203 ! 890: IVCOMP = 0 08870203 ! 891: IVCORR = 1 08880203 ! 892: CVTN03 = 'DE' 08890203 ! 893: CATN13(5) = 'DE' 08900203 ! 894: IF ((CVTN03) .GE. (CATN13(5))) IVCOMP=1 08910203 ! 895: 40590 IF (IVCOMP - 1) 20590,10590,20590 08920203 ! 896: 30590 IVDELE = IVDELE + 1 08930203 ! 897: WRITE (I02,80000) IVTNUM 08940203 ! 898: IF (ICZERO) 10590, 0601, 20590 08950203 ! 899: 10590 IVPASS = IVPASS + 1 08960203 ! 900: WRITE (I02,80002) IVTNUM 08970203 ! 901: GO TO 0601 08980203 ! 902: 20590 IVFAIL = IVFAIL + 1 08990203 ! 903: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 09000203 ! 904: 0601 CONTINUE 09010203 ! 905: C 09020203 ! 906: C **** FCVS PROGRAM 203 - TEST 060 **** 09030203 ! 907: C 09040203 ! 908: C RELATIONAL EXPRESSION, .LE. 09050203 ! 909: C ((CHAR. ARRAY ELEMENT)) .LE. ((CHAR. ARRAY ELEMENT)) LEN 2 09060203 ! 910: C 09070203 ! 911: IVTNUM = 60 09080203 ! 912: IF (ICZERO) 30600, 0600, 30600 09090203 ! 913: 0600 CONTINUE 09100203 ! 914: IVCOMP = 0 09110203 ! 915: IVCORR = 1 09120203 ! 916: CATN13(4) = 'MC' 09130203 ! 917: CATN13(5) = 'MC' 09140203 ! 918: IF (((CATN13(4))) .LE. ((CATN13(5)))) IVCOMP = 1 09150203 ! 919: 40600 IF (IVCOMP - 1) 20600,10600,20600 09160203 ! 920: 30600 IVDELE = IVDELE + 1 09170203 ! 921: WRITE (I02,80000) IVTNUM 09180203 ! 922: IF (ICZERO) 10600, 0611, 20600 09190203 ! 923: 10600 IVPASS = IVPASS + 1 09200203 ! 924: WRITE (I02,80002) IVTNUM 09210203 ! 925: GO TO 0611 09220203 ! 926: 20600 IVFAIL = IVFAIL + 1 09230203 ! 927: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 09240203 ! 928: 0611 CONTINUE 09250203 ! 929: C 09260203 ! 930: C 09270203 ! 931: C WRITE OUT TEST SUMMARY 09280203 ! 932: C 09290203 ! 933: WRITE (I02,90004) 09300203 ! 934: WRITE (I02,90014) 09310203 ! 935: WRITE (I02,90004) 09320203 ! 936: WRITE (I02,90000) 09330203 ! 937: WRITE (I02,90004) 09340203 ! 938: WRITE (I02,90020) IVFAIL 09350203 ! 939: WRITE (I02,90022) IVPASS 09360203 ! 940: WRITE (I02,90024) IVDELE 09370203 ! 941: STOP 09380203 ! 942: 90001 FORMAT (1H ,24X,5HFM203) 09390203 ! 943: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM203) 09400203 ! 944: C 09410203 ! 945: C FORMATS FOR TEST DETAIL LINES 09420203 ! 946: C 09430203 ! 947: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 09440203 ! 948: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 09450203 ! 949: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 09460203 ! 950: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 09470203 ! 951: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 09480203 ! 952: C 09490203 ! 953: C FORMAT STATEMENTS FOR PAGE HEADERS 09500203 ! 954: C 09510203 ! 955: 90002 FORMAT (1H1) 09520203 ! 956: 90004 FORMAT (1H ) 09530203 ! 957: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 09540203 ! 958: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 09550203 ! 959: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 09560203 ! 960: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 09570203 ! 961: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 09580203 ! 962: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 09590203 ! 963: C 09600203 ! 964: C FORMAT STATEMENTS FOR RUN SUMMARY 09610203 ! 965: C 09620203 ! 966: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 09630203 ! 967: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 09640203 ! 968: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 09650203 ! 969: END 09660203
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.