|
|
1.1 ! root 1: PROGRAM FM351 00010351 ! 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 00020351 ! 6: C 00030351 ! 7: C THIS PROGRAM CONTAINS TESTS FOR COMPOUND ARITHMETIC 00040351 ! 8: C EXPRESSIONS WHICH NECESSITATE THE APPLICATION OF THE RULES 00050351 ! 9: C FOR ARITHMETIC OPERATOR PRECEDENCE. THESE TESTS INCLUDE ONES 00060351 ! 10: C WHICH EXERCIZE THE 00070351 ! 11: C 00080351 ! 12: C (1) USE OF ALL ARITHMETIC OPERATOR TYPES IN THE SAME STATEMENT. 00090351 ! 13: C (2) USE OF PARENTHESES TO OVERRIDE DEFAULT PRECEDENCES. 00100351 ! 14: C (3) USE OF ALL CLASSES OF PRIMARY OPERANDS. 00110351 ! 15: C (4) USE OF NESTED FUNCTION REFERENCES. 00120351 ! 16: C (5) USE OF MIXED DATA TYPES. 00130351 ! 17: C 00140351 ! 18: C REFERENCES - 00150351 ! 19: C 00160351 ! 20: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, X3.9-197700170351 ! 21: C 00180351 ! 22: C SECTION 6.1 ARITHMETIC EXPRESSIONS 00190351 ! 23: C SECTION 6.5 PRECEDENCE OF OPERATORS 00200351 ! 24: C SECTION 6.6 EVALUATION OF EXPRESSIONS 00210351 ! 25: C 00220351 ! 26: C 00230351 ! 27: C ******************************************************************00240351 ! 28: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00250351 ! 29: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00260351 ! 30: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00270351 ! 31: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00280351 ! 32: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00290351 ! 33: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00300351 ! 34: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00310351 ! 35: C THE RESULT OF EXECUTING THESE TESTS. 00320351 ! 36: C 00330351 ! 37: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00340351 ! 38: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00350351 ! 39: C 00360351 ! 40: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00370351 ! 41: C DEPARTMENT OF THE NAVY 00380351 ! 42: C FEDERAL COBOL COMPILER TESTING SERVICE 00390351 ! 43: C WASHINGTON, D.C. 20376 00400351 ! 44: C 00410351 ! 45: C ******************************************************************00420351 ! 46: C 00430351 ! 47: C 00440351 ! 48: IMPLICIT LOGICAL (L) 00450351 ! 49: IMPLICIT CHARACTER*14 (C) 00460351 ! 50: C 00470351 ! 51: DIMENSION IADN11(5), RADN11(5) 00480351 ! 52: IFOS01(IDON01,IDON02,IDON03) = IDON01 ** IDON02 ** IDON03 00490351 ! 53: IFOS02(IDON04,IDON05) = IADN11(IDON04) / IADN11(IDON05) 00500351 ! 54: IFOS04(IDON09,IDON10) = IADN11(IDON09) + IABS(IDON10) 00510351 ! 55: IFOS03(IDON06,IDON07,IDON08) = IFOS04(IDON06,IDON07) * IDON08 00520351 ! 56: RFOS01(RDON01,RDON02,RDON03) = RDON01 ** RDON02 ** RDON03 00530351 ! 57: RFOS02(IDON11,IDON12) = RADN11(IDON11) / RADN11(IDON12) 00540351 ! 58: RFOS04(IDON13,RDON10) = RADN11(IDON13) + ABS(RDON10) 00550351 ! 59: RFOS03(RDON06,RDON07,RDON08) = RFOS04(INT(RDON06),RDON07) * RDON0800560351 ! 60: IFOS05(IDON14,IDON16) = RADN11(IDON14) + IABS(IDON16) 00570351 ! 61: RFOS06(RDON17,IDON18,RDON19) = IFOS05(INT(RDON17),IDON18) * RDON1900580351 ! 62: C 00590351 ! 63: C 00600351 ! 64: C 00610351 ! 65: C INITIALIZATION SECTION. 00620351 ! 66: C 00630351 ! 67: C INITIALIZE CONSTANTS 00640351 ! 68: C ******************** 00650351 ! 69: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00660351 ! 70: I01 = 5 00670351 ! 71: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00680351 ! 72: I02 = 6 00690351 ! 73: C SYSTEM ENVIRONMENT SECTION 00700351 ! 74: C 00710351 ! 75: I01 = 5 00720351 ! 76: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00730351 ! 77: C (UNIT NUMBER FOR CARD READER). 00740351 ! 78: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00750351 ! 79: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00760351 ! 80: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00770351 ! 81: C 00780351 ! 82: I02 = 6 00790351 ! 83: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00800351 ! 84: C (UNIT NUMBER FOR PRINTER). 00810351 ! 85: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00820351 ! 86: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00830351 ! 87: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00840351 ! 88: C 00850351 ! 89: IVPASS = 0 00860351 ! 90: IVFAIL = 0 00870351 ! 91: IVDELE = 0 00880351 ! 92: ICZERO = 0 00890351 ! 93: C 00900351 ! 94: C WRITE OUT PAGE HEADERS 00910351 ! 95: C 00920351 ! 96: WRITE (I02,90002) 00930351 ! 97: WRITE (I02,90006) 00940351 ! 98: WRITE (I02,90008) 00950351 ! 99: WRITE (I02,90004) 00960351 ! 100: WRITE (I02,90010) 00970351 ! 101: WRITE (I02,90004) 00980351 ! 102: WRITE (I02,90016) 00990351 ! 103: WRITE (I02,90001) 01000351 ! 104: WRITE (I02,90004) 01010351 ! 105: WRITE (I02,90012) 01020351 ! 106: WRITE (I02,90014) 01030351 ! 107: WRITE (I02,90004) 01040351 ! 108: C 01050351 ! 109: C 01060351 ! 110: C TESTS 1 THROUGH 10 DEAL ENTIRELY WITH INTEGER EXPRESSIONS. 01070351 ! 111: C 01080351 ! 112: C 01090351 ! 113: C **** FCVS PROGRAM 351 - TEST 001 **** 01100351 ! 114: C 01110351 ! 115: C TEST 1 CHECKS AN INTEGER EXPRESSION WHERE ALL FIVE ARITHMETIC 01120351 ! 116: C OPERATORS ARE USED AND ALL OPERAND PRIMARIES ARE SIMPLE INTEGER 01130351 ! 117: C VARIABLES. NO PARENTHESES ARE USED TO UPSET DEFAULT PRECEDENCES. 01140351 ! 118: C 01150351 ! 119: IVTNUM = 1 01160351 ! 120: IF (ICZERO) 30010, 0010, 30010 01170351 ! 121: 0010 CONTINUE 01180351 ! 122: IVON01 = 7 01190351 ! 123: IVON02 = 3 01200351 ! 124: IVON03 = 573 01210351 ! 125: IVON04 = 23 01220351 ! 126: IVON05 = 3 01230351 ! 127: IVON06 = -7 01240351 ! 128: IVCOMP = IVON01 ** IVON02 + IVON03 - IVON04 * IVON05 / IVON06 01250351 ! 129: IVCORR = 925 01260351 ! 130: 40010 IF (IVCOMP - 925) 20010, 10010, 20010 01270351 ! 131: 30010 IVDELE = IVDELE + 1 01280351 ! 132: WRITE (I02,80000) IVTNUM 01290351 ! 133: IF (ICZERO) 10010, 0021, 20010 01300351 ! 134: 10010 IVPASS = IVPASS + 1 01310351 ! 135: WRITE (I02,80002) IVTNUM 01320351 ! 136: GO TO 0021 01330351 ! 137: 20010 IVFAIL = IVFAIL + 1 01340351 ! 138: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01350351 ! 139: 0021 CONTINUE 01360351 ! 140: C 01370351 ! 141: C **** FCVS PROGRAM 351 - TEST 002 **** 01380351 ! 142: C 01390351 ! 143: C TEST 2, LIKE TEST 1, CHECKS AN INTEGER EXPRESSION WHERE ALL 01400351 ! 144: C FIVE ARITHMETIC OPERATORS ARE USED AND ALL OPERANDS ARE SIMPLE 01410351 ! 145: C INTEGER VARIABLES; BUT IN THIS TEST, PARENTHESES ARE USED, AS IS 01420351 ! 146: C A UNARY OPERATOR. 01430351 ! 147: C 01440351 ! 148: IVTNUM = 2 01450351 ! 149: IF (ICZERO) 30020, 0020, 30020 01460351 ! 150: 0020 CONTINUE 01470351 ! 151: IVON01 = 7 01480351 ! 152: IVON02 = 3 01490351 ! 153: IVON03 = 5 01500351 ! 154: IVON04 = -3 01510351 ! 155: IVON05 = 3 01520351 ! 156: IVCOMP = -(IVON01 / IVON02) + (IVON03 * IVON04 ** IVON05) 01530351 ! 157: IVCORR = -137 01540351 ! 158: 40020 IF (IVCOMP + 137) 20020, 10020, 20020 01550351 ! 159: 30020 IVDELE = IVDELE + 1 01560351 ! 160: WRITE (I02,80000) IVTNUM 01570351 ! 161: IF (ICZERO) 10020, 0031, 20020 01580351 ! 162: 10020 IVPASS = IVPASS + 1 01590351 ! 163: WRITE (I02,80002) IVTNUM 01600351 ! 164: GO TO 0031 01610351 ! 165: 20020 IVFAIL = IVFAIL + 1 01620351 ! 166: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01630351 ! 167: 0031 CONTINUE 01640351 ! 168: C 01650351 ! 169: C **** FCVS PROGRAM 351 - TEST 003 **** 01660351 ! 170: C 01670351 ! 171: C TEST 3 IS SIMILAR TO TEST 2 EXCEPT THAT IT EMPLOYS NESTED 01680351 ! 172: C PARENTHESES. 01690351 ! 173: C 01700351 ! 174: IVTNUM = 3 01710351 ! 175: IF (ICZERO) 30030, 0030, 30030 01720351 ! 176: 0030 CONTINUE 01730351 ! 177: IVON01 = 5 01740351 ! 178: IVON02 = 3 01750351 ! 179: IVON03 = 5 01760351 ! 180: IVON04 = 17 01770351 ! 181: IVON05 = 14 01780351 ! 182: IVON06 = 3 01790351 ! 183: IVCOMP = IVON01 ** (-(IVON02 + (IVON03 - IVON04)) - (IVON05 / 01800351 ! 184: 1 IVON06)) 01810351 ! 185: IVCORR = 3125 01820351 ! 186: 40030 IF (IVCOMP - 3125) 20030, 10030, 20030 01830351 ! 187: 30030 IVDELE = IVDELE + 1 01840351 ! 188: WRITE (I02,80000) IVTNUM 01850351 ! 189: IF (ICZERO) 10030, 0041, 20030 01860351 ! 190: 10030 IVPASS = IVPASS + 1 01870351 ! 191: WRITE (I02,80002) IVTNUM 01880351 ! 192: GO TO 0041 01890351 ! 193: 20030 IVFAIL = IVFAIL + 1 01900351 ! 194: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01910351 ! 195: 0041 CONTINUE 01920351 ! 196: C 01930351 ! 197: C **** FCVS PROGRAM 351 - TEST 004 **** 01940351 ! 198: C 01950351 ! 199: C TEST 4 IS SIMILAR TO TEST 2 AND 3 EXCEPT THAT THE 01960351 ! 200: C PARENTHESES USED ARE EFFECTIVELY EXTRANEOUS. 01970351 ! 201: C 01980351 ! 202: IVTNUM = 4 01990351 ! 203: IF (ICZERO) 30040, 0040, 30040 02000351 ! 204: 0040 CONTINUE 02010351 ! 205: IVON01 = 3 02020351 ! 206: IVON02 = 4 02030351 ! 207: IVON03 = 5 02040351 ! 208: IVON04 = 2 02050351 ! 209: IVON05 = 3 02060351 ! 210: IVON06 = 4 02070351 ! 211: IVCOMP = ((IVON01) ** (IVON02) + (IVON03) - (IVON04) * 02080351 ! 212: 1 (IVON05) / (IVON06)) 02090351 ! 213: IVCORR = 85 02100351 ! 214: 40040 IF (IVCOMP - 85) 20040, 10040, 20040 02110351 ! 215: 30040 IVDELE = IVDELE + 1 02120351 ! 216: WRITE (I02,80000) IVTNUM 02130351 ! 217: IF (ICZERO) 10040, 0051, 20040 02140351 ! 218: 10040 IVPASS = IVPASS + 1 02150351 ! 219: WRITE (I02,80002) IVTNUM 02160351 ! 220: GO TO 0051 02170351 ! 221: 20040 IVFAIL = IVFAIL + 1 02180351 ! 222: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02190351 ! 223: 0051 CONTINUE 02200351 ! 224: C 02210351 ! 225: C **** FCVS PROGRAM 351 - TEST 005 **** 02220351 ! 226: C 02230351 ! 227: C TEST 5 CONTINUES THE TESTING OF EXPRESSIONS USING ONLY 02240351 ! 228: C INTEGER VARIABLE OPERANDS CONNECTED BY ARITHMETIC OPERATORS, 02250351 ! 229: C AND USING PARENTHESES TO OVERRIDE PRECEDENCES. 02260351 ! 230: C 02270351 ! 231: IVTNUM = 5 02280351 ! 232: IF (ICZERO) 30050, 0050, 30050 02290351 ! 233: 0050 CONTINUE 02300351 ! 234: IVON01 = 57 02310351 ! 235: IVON02 = -3 02320351 ! 236: IVON03 = 4 02330351 ! 237: IVON04 = -1 02340351 ! 238: IVON05 = -5 02350351 ! 239: IVON06 = -2 02360351 ! 240: IVCOMP = -IVON01 ** (IVON02 + IVON03 - IVON04) * 02370351 ! 241: 1 (IVON05 / IVON06) 02380351 ! 242: IVCORR = -6498 02390351 ! 243: 40050 IF (IVCOMP + 6498) 20050, 10050, 20050 02400351 ! 244: 30050 IVDELE = IVDELE + 1 02410351 ! 245: WRITE (I02,80000) IVTNUM 02420351 ! 246: IF (ICZERO) 10050, 0061, 20050 02430351 ! 247: 10050 IVPASS = IVPASS + 1 02440351 ! 248: WRITE (I02,80002) IVTNUM 02450351 ! 249: GO TO 0061 02460351 ! 250: 20050 IVFAIL = IVFAIL + 1 02470351 ! 251: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02480351 ! 252: 0061 CONTINUE 02490351 ! 253: C 02500351 ! 254: C **** FCVS PROGRAM 351 - TEST 006 **** 02510351 ! 255: C 02520351 ! 256: C TEST 6 CONTINUES THE TESTING OF EXPRESSIONS USING ONLY 02530351 ! 257: C INTEGER VARIABLE OPERANDS CONNECTED BY ARITHMETIC OPERATORS, 02540351 ! 258: C AND USING PARENTHESES TO OVERRIDE PRECEDENCES. 02550351 ! 259: C 02560351 ! 260: IVTNUM = 6 02570351 ! 261: IF (ICZERO) 30060, 0060, 30060 02580351 ! 262: 0060 CONTINUE 02590351 ! 263: IVON01 = 5 02600351 ! 264: IVON02 = 3 02610351 ! 265: IVON03 = 4 02620351 ! 266: IVON04 = 5496 02630351 ! 267: IVON05 = 7 02640351 ! 268: IVON06 = -3 02650351 ! 269: IVCOMP = ((IVON01 * (IVON02 / IVON03)) + IVON04) / IVON05 - 02660351 ! 270: 1 (-IVON06) 02670351 ! 271: IVCORR = 782 02680351 ! 272: 40060 IF (IVCOMP - 782) 20060, 10060, 20060 02690351 ! 273: 30060 IVDELE = IVDELE + 1 02700351 ! 274: WRITE (I02,80000) IVTNUM 02710351 ! 275: IF (ICZERO) 10060, 0071, 20060 02720351 ! 276: 10060 IVPASS = IVPASS + 1 02730351 ! 277: WRITE (I02,80002) IVTNUM 02740351 ! 278: GO TO 0071 02750351 ! 279: 20060 IVFAIL = IVFAIL + 1 02760351 ! 280: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02770351 ! 281: 0071 CONTINUE 02780351 ! 282: C 02790351 ! 283: C **** FCVS PROGRAM 351 - TEST 007 **** 02800351 ! 284: C 02810351 ! 285: C IN TEST 7, AN INTEGER EXPRESSION INVOLVING ALL FIVE 02820351 ! 286: C ARITHMETIC OPERATORS TOGETHER WITH PARENTHESES IS EVALUATED, 02830351 ! 287: C BUT UNLIKE TESTS 1 THROUGH 6 WHERE ALL OPERANDS WERE INTEGER 02840351 ! 288: C VARIABLES, THE OPERANDS IN TEST 7 ARE CLASSED AS INTEGER 02850351 ! 289: C VARIABLES, INTEGER CONSTANTS, INTEGER ARRAY ELEMENTS, AND INTEGER 02860351 ! 290: C FUNCTION REFERENCES. 02870351 ! 291: C 02880351 ! 292: IVTNUM = 7 02890351 ! 293: IF (ICZERO) 30070, 0070, 30070 02900351 ! 294: 0070 CONTINUE 02910351 ! 295: IVON01 = 573 02920351 ! 296: IVON02 = 1 02930351 ! 297: IVON03 = 3 02940351 ! 298: IVON04 = 2 02950351 ! 299: IVON05 = 3 02960351 ! 300: IADN11(3) = 3071 02970351 ! 301: IVCOMP = (IVON01 + 1) - (5 + IADN11(IVON03)) / 02980351 ! 302: 1 (IFOS01(IVON03,IVON04,IVON05) ** IVON02) 02990351 ! 303: IVCORR = 574 03000351 ! 304: 40070 IF (IVCOMP - 574) 20070, 10070, 20070 03010351 ! 305: 30070 IVDELE = IVDELE + 1 03020351 ! 306: WRITE (I02,80000) IVTNUM 03030351 ! 307: IF (ICZERO) 10070, 0081, 20070 03040351 ! 308: 10070 IVPASS = IVPASS + 1 03050351 ! 309: WRITE (I02,80002) IVTNUM 03060351 ! 310: GO TO 0081 03070351 ! 311: 20070 IVFAIL = IVFAIL + 1 03080351 ! 312: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03090351 ! 313: 0081 CONTINUE 03100351 ! 314: C 03110351 ! 315: C **** FCVS PROGRAM 351 - TEST 008 **** 03120351 ! 316: C 03130351 ! 317: C TEST 8 IS IDENTICAL TO TEST 7 EXCEPT THAT PARENTHESES ARE 03140351 ! 318: C USED TO CHANGE THE ORDER OF SUB-EXPRESSION EVALUATION. 03150351 ! 319: C 03160351 ! 320: IVTNUM = 8 03170351 ! 321: IF (ICZERO) 30080, 0080, 30080 03180351 ! 322: 0080 CONTINUE 03190351 ! 323: IVON01 = 573 03200351 ! 324: IVON02 = 1 03210351 ! 325: IVON03 = 3 03220351 ! 326: IVON04 = 2 03230351 ! 327: IVON05 = 3 03240351 ! 328: IADN11(3) = 3071 03250351 ! 329: IVCOMP = ((IVON01 + 1) - (5 + IADN11(IVON03))) / 03260351 ! 330: 1 IFOS01(IVON03,IVON04,IVON05) ** IVON02 03270351 ! 331: IVCORR = 0 03280351 ! 332: 40080 IF (IVCOMP) 20080, 10080, 20080 03290351 ! 333: 30080 IVDELE = IVDELE + 1 03300351 ! 334: WRITE (I02,80000) IVTNUM 03310351 ! 335: IF (ICZERO) 10080, 0091, 20080 03320351 ! 336: 10080 IVPASS = IVPASS + 1 03330351 ! 337: WRITE (I02,80002) IVTNUM 03340351 ! 338: GO TO 0091 03350351 ! 339: 20080 IVFAIL = IVFAIL + 1 03360351 ! 340: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03370351 ! 341: 0091 CONTINUE 03380351 ! 342: C 03390351 ! 343: C **** FCVS PROGRAM 351 - TEST 009 **** 03400351 ! 344: C 03410351 ! 345: C TEST 9 IS SIMILAR TO TESTS 7 AND 8 EXCEPT THAT THE 03420351 ! 346: C FUNCTION REFERENCE IN TURN EVALUATES ARRAY ELEMENTS. 03430351 ! 347: C 03440351 ! 348: IVTNUM = 9 03450351 ! 349: IF (ICZERO) 30090, 0090, 30090 03460351 ! 350: 0090 CONTINUE 03470351 ! 351: IVON01 = 7 03480351 ! 352: IVON02 = 3 03490351 ! 353: IVON03 = 2 03500351 ! 354: IVON04 = 1 03510351 ! 355: IVON05 = 4 03520351 ! 356: IADN11(1) = 5 03530351 ! 357: IADN11(2) = 2 03540351 ! 358: IADN11(4) = 2 03550351 ! 359: IVCOMP = (IVON01 - 8 * IFOS02(IVON04,IVON03)) / IADN11(IVON05) + 03560351 ! 360: 1 13 ** IVON02 03570351 ! 361: IVCORR = 2193 03580351 ! 362: 40090 IF (IVCOMP - 2193) 20090, 10090, 20090 03590351 ! 363: 30090 IVDELE = IVDELE + 1 03600351 ! 364: WRITE (I02,80000) IVTNUM 03610351 ! 365: IF (ICZERO) 10090, 0101, 20090 03620351 ! 366: 10090 IVPASS = IVPASS + 1 03630351 ! 367: WRITE (I02,80002) IVTNUM 03640351 ! 368: GO TO 0101 03650351 ! 369: 20090 IVFAIL = IVFAIL + 1 03660351 ! 370: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03670351 ! 371: 0101 CONTINUE 03680351 ! 372: C 03690351 ! 373: C **** FCVS PROGRAM 351 - TEST 010 **** 03700351 ! 374: C 03710351 ! 375: C TEST 10 EVALUATES AN INTEGER EXPRESSION WHICH CONTAINS 03720351 ! 376: C FUNCTION REFERENCES NESTED TO THREE LEVELS. THE OUTER TWO 03730351 ! 377: C LEVELS ARE STATEMENT FUNCTION REFERENCES AND THE INNERMOST LEVEL 03740351 ! 378: C IS AN INTRINSIC FUNCTION REFERENCE. 03750351 ! 379: C 03760351 ! 380: IVTNUM = 10 03770351 ! 381: IF (ICZERO) 30100, 0100, 30100 03780351 ! 382: 0100 CONTINUE 03790351 ! 383: IVON01 = -51 03800351 ! 384: IVON02 = 4 03810351 ! 385: IVON03 = -101 03820351 ! 386: IVON04 = 13 03830351 ! 387: IVON05 = 3 03840351 ! 388: IVON06 = 5 03850351 ! 389: IVON07 = -37 03860351 ! 390: IADN11(4) = 87 03870351 ! 391: IADN11(5) = 409 03880351 ! 392: IVCOMP = (IVON01 + IFOS03(IVON02,IVON03,IVON04)) * IVON05 - 03890351 ! 393: 1 IFOS04(IVON06,IVON07) 03900351 ! 394: IVCORR = 6733 03910351 ! 395: 40100 IF (IVCOMP - 6733) 20100, 10100, 20100 03920351 ! 396: 30100 IVDELE = IVDELE + 1 03930351 ! 397: WRITE (I02,80000) IVTNUM 03940351 ! 398: IF (ICZERO) 10100, 0111, 20100 03950351 ! 399: 10100 IVPASS = IVPASS + 1 03960351 ! 400: WRITE (I02,80002) IVTNUM 03970351 ! 401: GO TO 0111 03980351 ! 402: 20100 IVFAIL = IVFAIL + 1 03990351 ! 403: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04000351 ! 404: 0111 CONTINUE 04010351 ! 405: C 04020351 ! 406: C TESTS 11 THROUGH 20 REPEAT TESTS 1 THROUGH 10 EXCEPT THAT 04030351 ! 407: C TESTS 11 THROUGH 20 DEAL ENTIRELY WITH REAL ARITHMETIC 04040351 ! 408: C EXPRESSIONS. 04050351 ! 409: C 04060351 ! 410: C 04070351 ! 411: C **** FCVS PROGRAM 351 - TEST 011 **** 04080351 ! 412: C 04090351 ! 413: C TEST 11 TESTS A REAL EXPRESSION WHERE ALL FIVE ARITHMETIC 04100351 ! 414: C OPERATORS ARE USED AND ALL OPERAND PRIMARIES ARE SIMPLE REAL 04110351 ! 415: C VARIABLES. 04120351 ! 416: C 04130351 ! 417: IVTNUM = 11 04140351 ! 418: IF (ICZERO) 30110, 0110, 30110 04150351 ! 419: 0110 CONTINUE 04160351 ! 420: RVON01 = 3.2 04170351 ! 421: RVON02 = 23.051 04180351 ! 422: RVON03 = 1545 E7 04190351 ! 423: RVON04 = -23.457 04200351 ! 424: RVON05 = .02 E3 04210351 ! 425: RVON06 = 7.210745323 E-10 04220351 ! 426: RVCOMP = RVON01 ** RVON02 + RVON03 - RVON04 * RVON05 / RVON06 04230351 ! 427: RVCORR = 1.10683 E12 04240351 ! 428: 40110 IF (RVCOMP - 1.1063 E12) 20110, 10110, 40111 04250351 ! 429: 40111 IF (RVCOMP - 1.1073 E12) 10110, 10110, 20110 04260351 ! 430: 30110 IVDELE = IVDELE + 1 04270351 ! 431: WRITE (I02,80000) IVTNUM 04280351 ! 432: IF (ICZERO) 10110, 0121, 20110 04290351 ! 433: 10110 IVPASS = IVPASS + 1 04300351 ! 434: WRITE (I02,80002) IVTNUM 04310351 ! 435: GO TO 0121 04320351 ! 436: 20110 IVFAIL = IVFAIL + 1 04330351 ! 437: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 04340351 ! 438: 0121 CONTINUE 04350351 ! 439: C 04360351 ! 440: C **** FCVS PROGRAM 351 - TEST 012 **** 04370351 ! 441: C 04380351 ! 442: C TEST 12, LIKE TEST 11, CHECKS A REAL EXPRESSION WHERE ALL 04390351 ! 443: C FIVE ARITHMETIC OPERATORS ARE USED AND ALL OPERANDS ARE REAL 04400351 ! 444: C VARIABLES, BUT IN TEST 12, PARENTHESES ARE USED, AS IS ALSO A 04410351 ! 445: C UNARY OPERATOR. 04420351 ! 446: C 04430351 ! 447: IVTNUM = 12 04440351 ! 448: IF (ICZERO) 30120, 0120, 30120 04450351 ! 449: 0120 CONTINUE 04460351 ! 450: RVON01 = 3.2 04470351 ! 451: RVON02 = 23.051 04480351 ! 452: RVON03 = 1545 E-3 04490351 ! 453: RVON04 = 5.75 E-1 04500351 ! 454: RVON05 = 2.22 E+1 04510351 ! 455: RVCOMP = -(RVON01 / RVON02) + (RVON03 * RVON04 ** RVON05) 04520351 ! 456: RVCORR = -.13882 04530351 ! 457: 40120 IF (RVCOMP + .13887) 20120, 10120, 40121 04540351 ! 458: 40121 IF (RVCOMP + .13877) 10120, 10120, 20120 04550351 ! 459: 30120 IVDELE = IVDELE + 1 04560351 ! 460: WRITE (I02,80000) IVTNUM 04570351 ! 461: IF (ICZERO) 10120, 0131, 20120 04580351 ! 462: 10120 IVPASS = IVPASS + 1 04590351 ! 463: WRITE (I02,80002) IVTNUM 04600351 ! 464: GO TO 0131 04610351 ! 465: 20120 IVFAIL = IVFAIL + 1 04620351 ! 466: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 04630351 ! 467: 0131 CONTINUE 04640351 ! 468: C 04650351 ! 469: C **** FCVS PROGRAM 351 - TEST 013 **** 04660351 ! 470: C 04670351 ! 471: C TEST 13 IS SIMILAR TO TEST 12 EXCEPT THAT TEST 13 EMPLOYS 04680351 ! 472: C NESTED PARENTHESES. 04690351 ! 473: C 04700351 ! 474: IVTNUM = 13 04710351 ! 475: IF (ICZERO) 30130, 0130, 30130 04720351 ! 476: 0130 CONTINUE 04730351 ! 477: RVON01 = 3.2 04740351 ! 478: RVON02 = -63.051 04750351 ! 479: RVON03 = 1545 E-3 04760351 ! 480: RVON04 = 5.75 E-1 04770351 ! 481: RVON05 = 2.22 E1 04780351 ! 482: RVON06 = 0.523 04790351 ! 483: RVCOMP = RVON01 ** (-(RVON02 + (RVON03 - RVON04)) - 04800351 ! 484: 1 (RVON05 / RVON06)) 04810351 ! 485: RVCORR = 8.27757 E9 04820351 ! 486: 40130 IF (RVCOMP - 8.2770 E9) 20130, 10130, 40131 04830351 ! 487: 40131 IF (RVCOMP - 8.2780 E9) 10130, 10130, 20130 04840351 ! 488: 30130 IVDELE = IVDELE + 1 04850351 ! 489: WRITE (I02,80000) IVTNUM 04860351 ! 490: IF (ICZERO) 10130, 0141, 20130 04870351 ! 491: 10130 IVPASS = IVPASS + 1 04880351 ! 492: WRITE (I02,80002) IVTNUM 04890351 ! 493: GO TO 0141 04900351 ! 494: 20130 IVFAIL = IVFAIL + 1 04910351 ! 495: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 04920351 ! 496: 0141 CONTINUE 04930351 ! 497: C 04940351 ! 498: C **** FCVS PROGRAM 351 - TEST 014 **** 04950351 ! 499: C 04960351 ! 500: C TEST 14 IS SIMILAR TO TESTS 12 AND 13 EXCEPT THAT THE 04970351 ! 501: C PARENTHESES USED ARE EFFECTIVELY EXTRANEOUS. 04980351 ! 502: C 04990351 ! 503: IVTNUM = 14 05000351 ! 504: IF (ICZERO) 30140, 0140, 30140 05010351 ! 505: 0140 CONTINUE 05020351 ! 506: RVON01 = 5.4515 E18 05030351 ! 507: RVON02 = .076923 05040351 ! 508: RVON03 = 23 E-2 05050351 ! 509: RVON04 = 7 E7 05060351 ! 510: RVON05 = 45.23 E5 05070351 ! 511: RVON06 = 5.65375 E12 05080351 ! 512: RVCOMP = ((RVON01) ** (RVON02) + (RVON03) - (RVON04) * (RVON05) / 05090351 ! 513: 1 (RVON06)) 05100351 ! 514: RVCORR = -28.147 05110351 ! 515: 40140 IF (RVCOMP + 28.152) 20140, 10140, 40141 05120351 ! 516: 40141 IF (RVCOMP + 28.142) 10140, 10140, 20140 05130351 ! 517: 30140 IVDELE = IVDELE + 1 05140351 ! 518: WRITE (I02,80000) IVTNUM 05150351 ! 519: IF (ICZERO) 10140, 0151, 20140 05160351 ! 520: 10140 IVPASS = IVPASS + 1 05170351 ! 521: WRITE (I02,80002) IVTNUM 05180351 ! 522: GO TO 0151 05190351 ! 523: 20140 IVFAIL = IVFAIL + 1 05200351 ! 524: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05210351 ! 525: 0151 CONTINUE 05220351 ! 526: C 05230351 ! 527: C **** FCVS PROGRAM 351 - TEST 015 **** 05240351 ! 528: C 05250351 ! 529: C TEST 15 CONTINUES THE TESTING OF EXPRESSIONS USING ONLY 05260351 ! 530: C REAL VARIABLE OPERANDS CONNECTED BY ARITHMETIC OPERATORS, AND 05270351 ! 531: C USING PARENTHESES TO OVERRIDE PRECEDENCES. 05280351 ! 532: C 05290351 ! 533: IVTNUM = 15 05300351 ! 534: IF (ICZERO) 30150, 0150, 30150 05310351 ! 535: 0150 CONTINUE 05320351 ! 536: RVON01 = .11341 E1 05330351 ! 537: RVON02 = 7.1417 05340351 ! 538: RVON03 = 5.2113 E1 05350351 ! 539: RVON04 = 10.001 05360351 ! 540: RVON05 = 7.241 E5 05370351 ! 541: RVON06 = 5.7777 E-3 05380351 ! 542: RVCOMP = -RVON01 ** (RVON02 + RVON03 - RVON04) * (RVON05 / RVON06)05390351 ! 543: RVCORR = -6.1635 E10 05400351 ! 544: 40150 IF (RVCOMP + 6.1640 E10) 20150, 10150, 40151 05410351 ! 545: 40151 IF (RVCOMP + 6.1630 E10) 10150, 10150, 20150 05420351 ! 546: 30150 IVDELE = IVDELE + 1 05430351 ! 547: WRITE (I02,80000) IVTNUM 05440351 ! 548: IF (ICZERO) 10150, 0161, 20150 05450351 ! 549: 10150 IVPASS = IVPASS + 1 05460351 ! 550: WRITE (I02,80002) IVTNUM 05470351 ! 551: GO TO 0161 05480351 ! 552: 20150 IVFAIL = IVFAIL + 1 05490351 ! 553: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05500351 ! 554: 0161 CONTINUE 05510351 ! 555: C 05520351 ! 556: C **** FCVS PROGRAM 351 - TEST 016 **** 05530351 ! 557: C 05540351 ! 558: C TEST 16 CONTINUES THE TESTING OF EXPRESSIONS USING ONLY 05550351 ! 559: C REAL VARIABLE OPERANDS CONNECTED BY ARITHMETIC OPERATORS, AND 05560351 ! 560: C USING PARENTHESES TO OVERRIDE PRECEDENCES. 05570351 ! 561: C 05580351 ! 562: IVTNUM = 16 05590351 ! 563: IF (ICZERO) 30160, 0160, 30160 05600351 ! 564: 0160 CONTINUE 05610351 ! 565: RVON01 = 6.4003 E18 05620351 ! 566: RVON02 = -3.7717 E-2 05630351 ! 567: RVON03 = -5.1195 E3 05640351 ! 568: RVON04 = 1.7521 E14 05650351 ! 569: RVON05 = 1.0533 E3 05660351 ! 570: RVON06 = -9.4207 E11 05670351 ! 571: RVCOMP = ((RVON01 * (RVON02 / RVON03)) + RVON04) / RVON05 - 05680351 ! 572: 1 (-RVON06) 05690351 ! 573: RVCORR = -7.3096 E11 05700351 ! 574: 40160 IF (RVCOMP + 7.3101 E11) 20160, 10160, 40161 05710351 ! 575: 40161 IF (RVCOMP + 7.3091 E11) 10160, 10160, 20160 05720351 ! 576: 30160 IVDELE = IVDELE + 1 05730351 ! 577: WRITE (I02,80000) IVTNUM 05740351 ! 578: IF (ICZERO) 10160, 0171, 20160 05750351 ! 579: 10160 IVPASS = IVPASS + 1 05760351 ! 580: WRITE (I02,80002) IVTNUM 05770351 ! 581: GO TO 0171 05780351 ! 582: 20160 IVFAIL = IVFAIL + 1 05790351 ! 583: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05800351 ! 584: 0171 CONTINUE 05810351 ! 585: C 05820351 ! 586: C **** FCVS PROGRAM 351 - TEST 017 **** 05830351 ! 587: C 05840351 ! 588: C IN TEST 17, A REAL EXPRESSION INVOLVING ALL FIVE ARITHMETIC 05850351 ! 589: C OPERATORS IS EVALUATED, BUT UNLIKE TESTS 11 THROUGH 16 WHERE 05860351 ! 590: C ALL OPERANDS WERE REAL VARIABLES, THE OPERANDS IN TEST 17 ARE 05870351 ! 591: C CLASSED AS REAL VARIABLES, REAL CONSTANTS, REAL ARRAY ELEMENTS, 05880351 ! 592: C AND REAL FUNCTION REFERENCES. 05890351 ! 593: C 05900351 ! 594: IVTNUM = 17 05910351 ! 595: IF (ICZERO) 30170, 0170, 30170 05920351 ! 596: 0170 CONTINUE 05930351 ! 597: RVON01 = 5.247 E10 05940351 ! 598: IVON01 = 3 05950351 ! 599: RVON02 = 1.07 E1 05960351 ! 600: RVON03 = 5.23 05970351 ! 601: RVON04 = 1.001 05980351 ! 602: RVON05 = 1.573 05990351 ! 603: RADN11(3) = 0.3947 E18 06000351 ! 604: RVCOMP = (RVON01 + 3.491 E10) - (4 E17 + RADN11(IVON01)) / 06010351 ! 605: 1 (RFOS01(RVON03,RVON04,RVON05) ** RVON02) 06020351 ! 606: RVCORR = 7.1526 E10 06030351 ! 607: 40170 IF (RVCOMP - 7.1521 E10) 20170, 10170, 40171 06040351 ! 608: 40171 IF (RVCOMP - 7.1531 E10) 10170, 10170, 20170 06050351 ! 609: 30170 IVDELE = IVDELE + 1 06060351 ! 610: WRITE (I02,80000) IVTNUM 06070351 ! 611: IF (ICZERO) 10170, 0181, 20170 06080351 ! 612: 10170 IVPASS = IVPASS + 1 06090351 ! 613: WRITE (I02,80002) IVTNUM 06100351 ! 614: GO TO 0181 06110351 ! 615: 20170 IVFAIL = IVFAIL + 1 06120351 ! 616: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 06130351 ! 617: 0181 CONTINUE 06140351 ! 618: C 06150351 ! 619: C **** FCVS PROGRAM 351 - TEST 018 **** 06160351 ! 620: C 06170351 ! 621: C TEST 18 IS IDENTICAL TO TEST 17 EXCEPT THAT PARENTHESES ARE 06180351 ! 622: C USED TO CHANGE THE ORDER OF SUB-EXPRESSION EVALUATION. 06190351 ! 623: C 06200351 ! 624: IVTNUM = 18 06210351 ! 625: IF (ICZERO) 30180, 0180, 30180 06220351 ! 626: 0180 CONTINUE 06230351 ! 627: RVON01 = 5.247 E10 06240351 ! 628: IVON01 = 3 06250351 ! 629: RVON02 = 1.07 E1 06260351 ! 630: RVON03 = 5.23 06270351 ! 631: RVON04 = 1.001 06280351 ! 632: RVON05 = 1.573 06290351 ! 633: RADN11(3) = 0.3947 E18 06300351 ! 634: RVCOMP = ((RVON01 + 3.491 E10) - (4 E17 + RADN11(IVON01))) / 06310351 ! 635: 1 RFOS01(RVON03,RVON04,RVON05) ** RVON02 06320351 ! 636: RVCORR = -1.5854 E10 06330351 ! 637: 40180 IF (RVCOMP + 1.5859 E10) 20180, 10180, 40181 06340351 ! 638: 40181 IF (RVCOMP + 1.5849 E10) 10180, 10180, 20180 06350351 ! 639: 30180 IVDELE = IVDELE + 1 06360351 ! 640: WRITE (I02,80000) IVTNUM 06370351 ! 641: IF (ICZERO) 10180, 0191, 20180 06380351 ! 642: 10180 IVPASS = IVPASS + 1 06390351 ! 643: WRITE (I02,80002) IVTNUM 06400351 ! 644: GO TO 0191 06410351 ! 645: 20180 IVFAIL = IVFAIL + 1 06420351 ! 646: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 06430351 ! 647: 0191 CONTINUE 06440351 ! 648: C 06450351 ! 649: C **** FCVS PROGRAM 351 - TEST 019 **** 06460351 ! 650: C 06470351 ! 651: C TEST 19 IS SIMILAR TO TESTS 17 AND 18 EXCEPT THAT THE 06480351 ! 652: C FUNCTION REFERENCES IN TURN EVALUATE ARRAY ELEMENTS. 06490351 ! 653: C 06500351 ! 654: IVTNUM = 19 06510351 ! 655: IF (ICZERO) 30190, 0190, 30190 06520351 ! 656: 0190 CONTINUE 06530351 ! 657: RVON01 = 5.026 E2 06540351 ! 658: RVON02 = 1.386 E1 06550351 ! 659: IVON03 = 2 06560351 ! 660: RVON04 = 1.9999 06570351 ! 661: RVON05 = 4.0127 06580351 ! 662: RADN11(1) = 3.004 E18 06590351 ! 663: RADN11(2) = 2.5705 E-1 06600351 ! 664: RADN11(4) = 7.993 E16 06610351 ! 665: RVCOMP = (RVON01 - 5.902 * RFOS02(INT(RVON04),INT(RVON05))) / 06620351 ! 666: 1 RADN11(IVON03) + 1.5372 ** RVON02 06630351 ! 667: RVCORR = 1.4797 E3 06640351 ! 668: 40190 IF (RVCORR - 1.4792 E3) 20190, 10190, 40191 06650351 ! 669: 40191 IF (RVCORR - 1.4802 E3) 10190, 10190, 20190 06660351 ! 670: 30190 IVDELE = IVDELE + 1 06670351 ! 671: WRITE (I02,80000) IVTNUM 06680351 ! 672: IF (ICZERO) 10190, 0201, 20190 06690351 ! 673: 10190 IVPASS = IVPASS + 1 06700351 ! 674: WRITE (I02,80002) IVTNUM 06710351 ! 675: GO TO 0201 06720351 ! 676: 20190 IVFAIL = IVFAIL + 1 06730351 ! 677: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 06740351 ! 678: 0201 CONTINUE 06750351 ! 679: C 06760351 ! 680: C **** FCVS PROGRAM 351 - TEST 020 **** 06770351 ! 681: C 06780351 ! 682: C TEST 20 EVALUATES A REAL EXPRESSION WHICH CONTAINS FUNCTION 06790351 ! 683: C REFERENCES NESTED TO THREE LEVELS. THE OUTER TWO LEVELS ARE 06800351 ! 684: C STATEMENT FUNCTION REFERENCES AND THE INNERMOST LEVEL IS AN 06810351 ! 685: C INTRINSIC FUNCTION REFERENCE. 06820351 ! 686: C 06830351 ! 687: IVTNUM = 20 06840351 ! 688: IF (ICZERO) 30200, 0200, 30200 06850351 ! 689: 0200 CONTINUE 06860351 ! 690: RVON01 = 4.7117 E05 06870351 ! 691: RVON02 = 5.987 06880351 ! 692: RVON03 = 2.00000 E5 06890351 ! 693: RVON04 = 1.0 E2 06900351 ! 694: RVON05 = 1.5222 E9 06910351 ! 695: IVON06 = 4 06920351 ! 696: RVON07 = -3.2107 E14 06930351 ! 697: RADN11(4) = 7.425 E14 06940351 ! 698: RADN11(5) = -2.4015 E5 06950351 ! 699: RVCOMP = (RVON01 + RFOS03(RVON02,RVON03,RVON04)) * RVON05 - 06960351 ! 700: 1 RFOS04(IVON06,RVON07) 06970351 ! 701: RVCORR = -6.4580 E15 06980351 ! 702: 40200 IF (RVCOMP + 6.4585 E15) 20200, 10200, 40201 06990351 ! 703: 40201 IF (RVCOMP + 6.4575 E15) 10200, 10200, 20200 07000351 ! 704: 30200 IVDELE = IVDELE + 1 07010351 ! 705: WRITE (I02,80000) IVTNUM 07020351 ! 706: IF (ICZERO) 10200, 0211, 20200 07030351 ! 707: 10200 IVPASS = IVPASS + 1 07040351 ! 708: WRITE (I02,80002) IVTNUM 07050351 ! 709: GO TO 0211 07060351 ! 710: 20200 IVFAIL = IVFAIL + 1 07070351 ! 711: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 07080351 ! 712: 0211 CONTINUE 07090351 ! 713: C 07100351 ! 714: C TESTS 21 THROUGH 25 DEAL WITH MIXTURES OF REAL AND INTEGER 07110351 ! 715: C EXPRESSIONS; I.E., THESE ARE TESTS WHICH EVALUATE EXPRESSIONS 07120351 ! 716: C CONTAINING BOTH REAL SUB-EXPRESSIONS AND INTEGER SUB-EXPRESSIONS 07130351 ! 717: C AND THEN ASSIGN THE RESULTS TO EITHER AN INTEGER OR A REAL 07140351 ! 718: C VARIABLE. 07150351 ! 719: C 07160351 ! 720: C 07170351 ! 721: C **** FCVS PROGRAM 351 - TEST 021 **** 07180351 ! 722: C 07190351 ! 723: C TEST 21 USES ALL FIVE ARITHMETIC OPERATORS AND A COMBINATION 07200351 ! 724: C OF INTEGER AND REAL VARIABLES. NO PARENTHESES ARE USED. FINAL 07210351 ! 725: C ASSIGNMENT IS TO AN INTEGER VARIABLE. 07220351 ! 726: C 07230351 ! 727: IVTNUM = 21 07240351 ! 728: IF (ICZERO) 30210, 0210, 30210 07250351 ! 729: 0210 CONTINUE 07260351 ! 730: IVON01 = 17 07270351 ! 731: IVON02 = 3 07280351 ! 732: RVON03 = 5.4732 E+2 07290351 ! 733: RVON04 = 1.523 07300351 ! 734: IVON05 = 798 07310351 ! 735: IVCOMP = IVON01 ** IVON02 + RVON03 - RVON04 * IVON05 / IVON01 07320351 ! 736: IVCORR = 5388 07330351 ! 737: 40210 IF (IVCOMP - 5388) 20210, 10210, 20210 07340351 ! 738: 30210 IVDELE = IVDELE + 1 07350351 ! 739: WRITE (I02,80000) IVTNUM 07360351 ! 740: IF (ICZERO) 10210, 0221, 20210 07370351 ! 741: 10210 IVPASS = IVPASS + 1 07380351 ! 742: WRITE (I02,80002) IVTNUM 07390351 ! 743: GO TO 0221 07400351 ! 744: 20210 IVFAIL = IVFAIL + 1 07410351 ! 745: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07420351 ! 746: 0221 CONTINUE 07430351 ! 747: C 07440351 ! 748: C **** FCVS PROGRAM 351 - TEST 022 **** 07450351 ! 749: C 07460351 ! 750: C TEST 22 IS LIKE TEST 21 EXCEPT THAT PARENTHESES ARE USED, 07470351 ! 751: C AS IS A UNARY OPERATOR. FINAL ASSIGNMENT IS TO A REAL VARIABLE. 07480351 ! 752: C 07490351 ! 753: IVTNUM = 22 07500351 ! 754: IF (ICZERO) 30220, 0220, 30220 07510351 ! 755: 0220 CONTINUE 07520351 ! 756: IVON01 = 798 07530351 ! 757: IVON02 = 17 07540351 ! 758: RVON03 = 9.34578 E-2 07550351 ! 759: IVON04 = 15985 07560351 ! 760: RVON05 = 0.72357 07570351 ! 761: RVCOMP = -(IVON01 / IVON02) + (RVON03 * IVON04 ** RVON05) 07580351 ! 762: RVCORR = 5.68717 E1 07590351 ! 763: 40220 IF (RVCOMP - 5.6866 E1) 20220, 10220, 40221 07600351 ! 764: 40221 IF (RVCOMP - 5.6876 E1) 10220, 10220, 20220 07610351 ! 765: 30220 IVDELE = IVDELE + 1 07620351 ! 766: WRITE (I02,80000) IVTNUM 07630351 ! 767: IF (ICZERO) 10220, 0231, 20220 07640351 ! 768: 10220 IVPASS = IVPASS + 1 07650351 ! 769: WRITE (I02,80002) IVTNUM 07660351 ! 770: GO TO 0231 07670351 ! 771: 20220 IVFAIL = IVFAIL + 1 07680351 ! 772: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 07690351 ! 773: 0231 CONTINUE 07700351 ! 774: C 07710351 ! 775: C **** FCVS PROGRAM 351 - TEST 023 **** 07720351 ! 776: C 07730351 ! 777: C TEST 23 IS SIMILAR TO TEST 22 EXCEPT THAT IT EMPLOYS NESTED 07740351 ! 778: C PARENTHESES. 07750351 ! 779: C 07760351 ! 780: IVTNUM = 23 07770351 ! 781: IF (ICZERO) 30230, 0230, 30230 07780351 ! 782: 0230 CONTINUE 07790351 ! 783: IVON01 = 2 07800351 ! 784: IVON02 = 183 07810351 ! 785: RVON03 = 58.7025 07820351 ! 786: IVON04 = 197 07830351 ! 787: IVON05 = 87 07840351 ! 788: RVON06 = 2.4611 E15 07850351 ! 789: RVCOMP = IVON01 ** (-(IVON02 + (RVON03 - IVON04)) - 07860351 ! 790: 1 (IVON05 / RVON06)) 07870351 ! 791: RVCORR = 3.4931 E-14 07880351 ! 792: 40230 IF (RVCOMP - 3.4926 E-14) 20230, 10230, 40231 07890351 ! 793: 40231 IF (RVCOMP - 3.4936 E-14) 10230, 10230, 20230 07900351 ! 794: 30230 IVDELE = IVDELE + 1 07910351 ! 795: WRITE (I02,80000) IVTNUM 07920351 ! 796: IF (ICZERO) 10230, 0241, 20230 07930351 ! 797: 10230 IVPASS = IVPASS + 1 07940351 ! 798: WRITE (I02,80002) IVTNUM 07950351 ! 799: GO TO 0241 07960351 ! 800: 20230 IVFAIL = IVFAIL + 1 07970351 ! 801: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 07980351 ! 802: 0241 CONTINUE 07990351 ! 803: C 08000351 ! 804: C **** FCVS PROGRAM 351 - TEST 024 **** 08010351 ! 805: C 08020351 ! 806: C TEST 24 IS IDENTICAL TO TEST 23 EXCEPT THAT THE FINAL 08030351 ! 807: C ASSIGNMENT IS TO AN INTEGER VARIABLE INSTEAD OF A REAL VARIABLE. 08040351 ! 808: C 08050351 ! 809: IVTNUM = 24 08060351 ! 810: IF (ICZERO) 30240, 0240, 30240 08070351 ! 811: 0240 CONTINUE 08080351 ! 812: IVON01 = 2 08090351 ! 813: IVON02 = 183 08100351 ! 814: RVON03 = 58.7025 08110351 ! 815: IVON04 = 197 08120351 ! 816: IVON05 = 87 08130351 ! 817: RVON06 = 2.4611 E15 08140351 ! 818: IVCOMP = IVON01 ** (-(IVON02 + (RVON03 - IVON04)) - 08150351 ! 819: 1 (IVON05 / RVON06)) 08160351 ! 820: IVCORR = 0 08170351 ! 821: 40240 IF (IVCOMP) 20240, 10240, 20240 08180351 ! 822: 30240 IVDELE = IVDELE + 1 08190351 ! 823: WRITE (I02,80000) IVTNUM 08200351 ! 824: IF (ICZERO) 10240, 0251, 20240 08210351 ! 825: 10240 IVPASS = IVPASS + 1 08220351 ! 826: WRITE (I02,80002) IVTNUM 08230351 ! 827: GO TO 0251 08240351 ! 828: 20240 IVFAIL = IVFAIL + 1 08250351 ! 829: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08260351 ! 830: 0251 CONTINUE 08270351 ! 831: C 08280351 ! 832: C **** FCVS PROGRAM 351 - TEST 025 **** 08290351 ! 833: C 08300351 ! 834: C TEST 25 IS SIMILAR TO TESTS 9 AND 19 EXCEPT THAT A MIXTURE 08310351 ! 835: C OF REAL AND INTEGER OPERANDS ARE USED, AND FINAL ASSIGNMENT IS 08320351 ! 836: C TO A REAL VARIABLE. 08330351 ! 837: C 08340351 ! 838: IVTNUM = 25 08350351 ! 839: IF (ICZERO) 30250, 0250, 30250 08360351 ! 840: 0250 CONTINUE 08370351 ! 841: RVON01 = 4.7117 08380351 ! 842: RVON02 = 5.998 08390351 ! 843: IVON03 = 2 08400351 ! 844: RVON04 = 1E2 08410351 ! 845: IVON05 = 20 08420351 ! 846: IVON06 = 4 08430351 ! 847: IVON07 = -3 08440351 ! 848: RADN11(4) = 7.425 08450351 ! 849: RADN11(5) = -2.4015 08460351 ! 850: RVCOMP = (RVON01 + RFOS06(AINT(RVON02),IVON03,RVON04)) * IVON05 - 08470351 ! 851: 1 IFOS05(IVON06,IVON07) 08480351 ! 852: RVCORR = 84.234 08490351 ! 853: 40250 IF (RVCOMP - 84.229) 20250, 10250, 40251 08500351 ! 854: 40251 IF (RVCOMP - 84.239) 10250, 10250, 20250 08510351 ! 855: 30250 IVDELE = IVDELE + 1 08520351 ! 856: WRITE (I02,80000) IVTNUM 08530351 ! 857: IF (ICZERO) 10250, 0261, 20250 08540351 ! 858: 10250 IVPASS = IVPASS + 1 08550351 ! 859: WRITE (I02,80002) IVTNUM 08560351 ! 860: GO TO 0261 08570351 ! 861: 20250 IVFAIL = IVFAIL + 1 08580351 ! 862: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 08590351 ! 863: 0261 CONTINUE 08600351 ! 864: C 08610351 ! 865: C 08620351 ! 866: C WRITE OUT TEST SUMMARY 08630351 ! 867: C 08640351 ! 868: WRITE (I02,90004) 08650351 ! 869: WRITE (I02,90014) 08660351 ! 870: WRITE (I02,90004) 08670351 ! 871: WRITE (I02,90000) 08680351 ! 872: WRITE (I02,90004) 08690351 ! 873: WRITE (I02,90020) IVFAIL 08700351 ! 874: WRITE (I02,90022) IVPASS 08710351 ! 875: WRITE (I02,90024) IVDELE 08720351 ! 876: STOP 08730351 ! 877: 90001 FORMAT (1H ,24X,5HFM351) 08740351 ! 878: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM351) 08750351 ! 879: C 08760351 ! 880: C FORMATS FOR TEST DETAIL LINES 08770351 ! 881: C 08780351 ! 882: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 08790351 ! 883: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 08800351 ! 884: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 08810351 ! 885: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 08820351 ! 886: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 08830351 ! 887: C 08840351 ! 888: C FORMAT STATEMENTS FOR PAGE HEADERS 08850351 ! 889: C 08860351 ! 890: 90002 FORMAT (1H1) 08870351 ! 891: 90004 FORMAT (1H ) 08880351 ! 892: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 08890351 ! 893: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 08900351 ! 894: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 08910351 ! 895: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 08920351 ! 896: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 08930351 ! 897: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 08940351 ! 898: C 08950351 ! 899: C FORMAT STATEMENTS FOR RUN SUMMARY 08960351 ! 900: C 08970351 ! 901: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 08980351 ! 902: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 08990351 ! 903: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 09000351 ! 904: END 09010351
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.