|
|
1.1 ! root 1: PROGRAM FM352 00010352 ! 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 00020352 ! 6: C 00030352 ! 7: C THIS PROGRAM CHECKS BASIC RELATIONAL EXPRESSIONS INVOLVING 00040352 ! 8: C OPERANDS OF REAL DATA TYPE. IN EACH TEST, NOT ONLY THE RELATIONAL00050352 ! 9: C EXPRESSION IS TESTED, BUT THE TRICHOTOMY LAW OF MATHEMATICAL 00060352 ! 10: C RELATIONSHIPS IS ALSO TESTED (E.G., IF A .LT. B, THEN A CAN NOT 00070352 ! 11: C BE .GT. THAN B, AND A CAN NOT BE .EQ. B). A TEST VARIABLE 00080352 ! 12: C (IVCOMP) IS USED TO REPORT THE RESULT OF THE TEST AS FOLLOWS, 00090352 ! 13: C IVCOMP = 0 IF BOTH THE TESTED RELATIONAL OPERATOR AND THE 00100352 ! 14: C TRICHOTOMY TEST PASS. 00110352 ! 15: C IVCOMP = 1 IF THE RELATIONAL TEST FAILS AND THE TRICHOTOMY 00120352 ! 16: C TEST PASSES (WHICH WOULD INDICATE THAT A TESTED 00130352 ! 17: C NOT .LT., .GT., OR .EQ. B). 00140352 ! 18: C IVCOMP = 2 IF THE RELATIONAL TEST PASSES AND THE TRICHOTOMY 00150352 ! 19: C TEST FAILS (WHICH WOULD INDICATE THAT A TESTED 00160352 ! 20: C .LT., .GT., AND .EQ. B). 00170352 ! 21: C IVCOMP = 3 IF BOTH THE RELATIONAL TEST AND THE TRICHOTOMY 00180352 ! 22: C TEST FAIL (WHICH WOULD INDICATE THE RELATIONAL 00190352 ! 23: C EXPRESSION TESTED OPPOSITE TO THAT EXPECTED 00200352 ! 24: C (E.G., WHERE A WAS SUPPOSED TO BE .LT. B, IN 00210352 ! 25: C FACT A .LT. B WAS FOUND TO BE FALSE AND A .GE. B 00220352 ! 26: C WAS FOUND TO BE TRUE). 00230352 ! 27: C 00240352 ! 28: C 00250352 ! 29: C REFERENCES - 00260352 ! 30: C 00270352 ! 31: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, X3.9-197700280352 ! 32: C SECTION 4.4, REAL TYPE 00290352 ! 33: C SECTION 6.3, RELATIONAL EXPRESSIONS 00300352 ! 34: C SECTION 6.5, PRECEDENCE OF OPERATORS 00310352 ! 35: C SECTION 6.6, EVALUATION OF EXPRESSIONS 00320352 ! 36: C 00330352 ! 37: C 00340352 ! 38: C ******************************************************************00350352 ! 39: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00360352 ! 40: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00370352 ! 41: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00380352 ! 42: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00390352 ! 43: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00400352 ! 44: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00410352 ! 45: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00420352 ! 46: C THE RESULT OF EXECUTING THESE TESTS. 00430352 ! 47: C 00440352 ! 48: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00450352 ! 49: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00460352 ! 50: C 00470352 ! 51: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00480352 ! 52: C DEPARTMENT OF THE NAVY 00490352 ! 53: C FEDERAL COBOL COMPILER TESTING SERVICE 00500352 ! 54: C WASHINGTON, D.C. 20376 00510352 ! 55: C 00520352 ! 56: C ******************************************************************00530352 ! 57: C 00540352 ! 58: C 00550352 ! 59: IMPLICIT LOGICAL (L) 00560352 ! 60: IMPLICIT CHARACTER*14 (C) 00570352 ! 61: C 00580352 ! 62: DIMENSION RADN11(2) 00590352 ! 63: RFOS01(RDON01,RDON02) = RDON01 + RDON02 00600352 ! 64: C 00610352 ! 65: C 00620352 ! 66: C 00630352 ! 67: C INITIALIZATION SECTION. 00640352 ! 68: C 00650352 ! 69: C INITIALIZE CONSTANTS 00660352 ! 70: C ******************** 00670352 ! 71: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00680352 ! 72: I01 = 5 00690352 ! 73: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00700352 ! 74: I02 = 6 00710352 ! 75: C SYSTEM ENVIRONMENT SECTION 00720352 ! 76: C 00730352 ! 77: I01 = 5 00740352 ! 78: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00750352 ! 79: C (UNIT NUMBER FOR CARD READER). 00760352 ! 80: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00770352 ! 81: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00780352 ! 82: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00790352 ! 83: C 00800352 ! 84: I02 = 6 00810352 ! 85: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00820352 ! 86: C (UNIT NUMBER FOR PRINTER). 00830352 ! 87: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00840352 ! 88: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00850352 ! 89: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00860352 ! 90: C 00870352 ! 91: IVPASS = 0 00880352 ! 92: IVFAIL = 0 00890352 ! 93: IVDELE = 0 00900352 ! 94: ICZERO = 0 00910352 ! 95: C 00920352 ! 96: C WRITE OUT PAGE HEADERS 00930352 ! 97: C 00940352 ! 98: WRITE (I02,90002) 00950352 ! 99: WRITE (I02,90006) 00960352 ! 100: WRITE (I02,90008) 00970352 ! 101: WRITE (I02,90004) 00980352 ! 102: WRITE (I02,90010) 00990352 ! 103: WRITE (I02,90004) 01000352 ! 104: WRITE (I02,90016) 01010352 ! 105: WRITE (I02,90001) 01020352 ! 106: WRITE (I02,90004) 01030352 ! 107: WRITE (I02,90012) 01040352 ! 108: WRITE (I02,90014) 01050352 ! 109: WRITE (I02,90004) 01060352 ! 110: C 01070352 ! 111: C 01080352 ! 112: C TESTS 1 THROUGH 13 CHECK BASIC RELATIONAL EXPRESSIONS USING 01090352 ! 113: C ONLY REAL VARIABLE OPERANDS. ALL THE VARIABLES ARE ASSIGNED REAL 01100352 ! 114: C CONSTANTS WITH EXPONENTIAL FORMAT. 01110352 ! 115: C 01120352 ! 116: C 01130352 ! 117: C **** FCVS PROGRAM 352 - TEST 001 **** 01140352 ! 118: C 01150352 ! 119: C TEST 1 CHECKS THE .LT. OPERATOR USING TWO REAL OPERANDS 01160352 ! 120: C WHERE THE MANTISSAS ARE EQUAL BUT THE EXPONENTS ARE DIFFERENT. 01170352 ! 121: C 01180352 ! 122: IVTNUM = 1 01190352 ! 123: IF (ICZERO) 30010, 0010, 30010 01200352 ! 124: 0010 CONTINUE 01210352 ! 125: RVON01 = 1.0001 E17 01220352 ! 126: RVON02 = 1.0001 E18 01230352 ! 127: IVCOMP = 0 01240352 ! 128: IVCORR = 0 01250352 ! 129: 40010 IF(RVON01 .LT. RVON02) GO TO 40011 01260352 ! 130: IVCOMP = 1 01270352 ! 131: 40011 IF (RVON01 .GE. RVON02) IVCOMP = IVCOMP + 2 01280352 ! 132: IF (IVCOMP) 20010, 10010, 20010 01290352 ! 133: 30010 IVDELE = IVDELE + 1 01300352 ! 134: WRITE (I02,80000) IVTNUM 01310352 ! 135: IF (ICZERO) 10010, 0021, 20010 01320352 ! 136: 10010 IVPASS = IVPASS + 1 01330352 ! 137: WRITE (I02,80002) IVTNUM 01340352 ! 138: GO TO 0021 01350352 ! 139: 20010 IVFAIL = IVFAIL + 1 01360352 ! 140: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01370352 ! 141: 0021 CONTINUE 01380352 ! 142: C 01390352 ! 143: C **** FCVS PROGRAM 352 - TEST 002 **** 01400352 ! 144: C 01410352 ! 145: C TEST 2 CHECKS THE .LT. OPERATOR USING TWO REAL OPERANDS 01420352 ! 146: C WHERE THE EXPONENTS ARE EQUAL BUT THE MANTISSAS ARE DIFFERENT. 01430352 ! 147: C 01440352 ! 148: IVTNUM = 2 01450352 ! 149: IF (ICZERO) 30020, 0020, 30020 01460352 ! 150: 0020 CONTINUE 01470352 ! 151: RVON01 = 1.0001 E17 01480352 ! 152: RVON02 = 1.9999 E17 01490352 ! 153: IVCOMP = 0 01500352 ! 154: IVCORR = 0 01510352 ! 155: 40020 IF (RVON01 .LT. RVON02) GO TO 40021 01520352 ! 156: IVCOMP = 1 01530352 ! 157: 40021 IF (RVON01 .GE. RVON02) IVCOMP = IVCOMP + 2 01540352 ! 158: IF (IVCOMP) 20020, 10020, 20020 01550352 ! 159: 30020 IVDELE = IVDELE + 1 01560352 ! 160: WRITE (I02,80000) IVTNUM 01570352 ! 161: IF (ICZERO) 10020, 0031, 20020 01580352 ! 162: 10020 IVPASS = IVPASS + 1 01590352 ! 163: WRITE (I02,80002) IVTNUM 01600352 ! 164: GO TO 0031 01610352 ! 165: 20020 IVFAIL = IVFAIL + 1 01620352 ! 166: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01630352 ! 167: 0031 CONTINUE 01640352 ! 168: C 01650352 ! 169: C **** FCVS PROGRAM 352 - TEST 003 **** 01660352 ! 170: C 01670352 ! 171: C TEST 3 CHECKS THE .LE. OPERATOR USING TWO REAL OPERANDS 01680352 ! 172: C WHERE THE MANTISSAS ARE EQUAL BUT THE EXPONENTS ARE DIFFERENT. 01690352 ! 173: C 01700352 ! 174: IVTNUM = 3 01710352 ! 175: IF (ICZERO) 30030, 0030, 30030 01720352 ! 176: 0030 CONTINUE 01730352 ! 177: RVON01 = 1.0001 E17 01740352 ! 178: RVON02 = 1.0001 E18 01750352 ! 179: IVCOMP = 0 01760352 ! 180: IVCORR = 0 01770352 ! 181: 40030 IF (RVON01 .LE. RVON02) GO TO 40031 01780352 ! 182: IVCOMP = 1 01790352 ! 183: 40031 IF (RVON01 .GT. RVON02) IVCOMP = IVCOMP + 2 01800352 ! 184: IF (IVCOMP) 20030, 10030, 20030 01810352 ! 185: 30030 IVDELE = IVDELE + 1 01820352 ! 186: WRITE (I02,80000) IVTNUM 01830352 ! 187: IF (ICZERO) 10030, 0041, 20030 01840352 ! 188: 10030 IVPASS = IVPASS + 1 01850352 ! 189: WRITE (I02,80002) IVTNUM 01860352 ! 190: GO TO 0041 01870352 ! 191: 20030 IVFAIL = IVFAIL + 1 01880352 ! 192: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01890352 ! 193: 0041 CONTINUE 01900352 ! 194: C 01910352 ! 195: C **** FCVS PROGRAM 352 - TEST 004 **** 01920352 ! 196: C 01930352 ! 197: C TEST 4 CHECKS THE .LE. OPERATOR USING TWO REAL OPERANDS 01940352 ! 198: C WHERE THE EXPONENTS ARE EQUAL BUT THE MANTISSAS ARE DIFFERENT. 01950352 ! 199: C 01960352 ! 200: IVTNUM = 4 01970352 ! 201: IF (ICZERO) 30040, 0040, 30040 01980352 ! 202: 0040 CONTINUE 01990352 ! 203: RVON01 = 1.0001 E17 02000352 ! 204: RVON02 = 1.9999 E17 02010352 ! 205: IVCOMP = 0 02020352 ! 206: IVCORR = 0 02030352 ! 207: 40040 IF (RVON01 .LE. RVON02) GO TO 40041 02040352 ! 208: IVCOMP = 1 02050352 ! 209: 40041 IF (RVON01 .GT. RVON02) IVCOMP = IVCOMP + 2 02060352 ! 210: IF (IVCOMP) 20040, 10040, 20040 02070352 ! 211: 30040 IVDELE = IVDELE + 1 02080352 ! 212: WRITE (I02,80000) IVTNUM 02090352 ! 213: IF (ICZERO) 10040, 0051, 20040 02100352 ! 214: 10040 IVPASS = IVPASS + 1 02110352 ! 215: WRITE (I02,80002) IVTNUM 02120352 ! 216: GO TO 0051 02130352 ! 217: 20040 IVFAIL = IVFAIL + 1 02140352 ! 218: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02150352 ! 219: 0051 CONTINUE 02160352 ! 220: C 02170352 ! 221: C **** FCVS PROGRAM 352 - TEST 005 **** 02180352 ! 222: C 02190352 ! 223: C TEST 5 CHECKS THE .LE. OPERATOR USING TWO REAL OPERANDS 02200352 ! 224: C WHICH HAVE BEEN ASSIGNED THE SAME REAL CONSTANT. 02210352 ! 225: C 02220352 ! 226: IVTNUM = 5 02230352 ! 227: IF (ICZERO) 30050, 0050, 30050 02240352 ! 228: 0050 CONTINUE 02250352 ! 229: RVON01 = 1.0001 E17 02260352 ! 230: RVON02 = 1.0001 E17 02270352 ! 231: IVCOMP = 0 02280352 ! 232: IVCORR = 0 02290352 ! 233: 40050 IF (RVON01 .LE. RVON02) GO TO 40051 02300352 ! 234: IVCOMP = 1 02310352 ! 235: 40051 IF (RVON01 .GT. RVON02) IVCOMP = IVCOMP + 2 02320352 ! 236: IF (IVCOMP) 20050, 10050, 20050 02330352 ! 237: 30050 IVDELE = IVDELE + 1 02340352 ! 238: WRITE (I02,80000) IVTNUM 02350352 ! 239: IF (ICZERO) 10050, 0061, 20050 02360352 ! 240: 10050 IVPASS = IVPASS + 1 02370352 ! 241: WRITE (I02,80002) IVTNUM 02380352 ! 242: GO TO 0061 02390352 ! 243: 20050 IVFAIL = IVFAIL + 1 02400352 ! 244: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02410352 ! 245: 0061 CONTINUE 02420352 ! 246: C 02430352 ! 247: C **** FCVS PROGRAM 352 - TEST 006 **** 02440352 ! 248: C 02450352 ! 249: C TEST 6 CHECKS THE .NE. OPERATOR USING TWO REAL OPERANDS 02460352 ! 250: C WHERE THE MANTISSAS ARE EQUAL BUT THE EXPONENTS ARE DIFFERENT. 02470352 ! 251: C 02480352 ! 252: IVTNUM = 6 02490352 ! 253: IF (ICZERO) 30060, 0060, 30060 02500352 ! 254: 0060 CONTINUE 02510352 ! 255: RVON01 = 1.0001 E17 02520352 ! 256: RVON02 = 1.0001 E18 02530352 ! 257: IVCOMP = 0 02540352 ! 258: IVCORR = 0 02550352 ! 259: 40060 IF (RVON01 .NE. RVON02) GO TO 40061 02560352 ! 260: IVCOMP = 1 02570352 ! 261: 40061 IF (RVON01 .EQ. RVON02) IVCOMP = IVCOMP + 2 02580352 ! 262: IF (IVCOMP) 20060, 10060, 20060 02590352 ! 263: 30060 IVDELE = IVDELE + 1 02600352 ! 264: WRITE (I02,80000) IVTNUM 02610352 ! 265: IF (ICZERO) 10060, 0071, 20060 02620352 ! 266: 10060 IVPASS = IVPASS + 1 02630352 ! 267: WRITE (I02,80002) IVTNUM 02640352 ! 268: GO TO 0071 02650352 ! 269: 20060 IVFAIL = IVFAIL + 1 02660352 ! 270: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02670352 ! 271: 0071 CONTINUE 02680352 ! 272: C 02690352 ! 273: C **** FCVS PROGRAM 352 - TEST 007 **** 02700352 ! 274: C 02710352 ! 275: C TEST 7 CHECKS THE .NE. OPERATOR USING TWO REAL OPERANDS 02720352 ! 276: C WHERE THE EXPONENTS ARE EQUAL BUT THE MANTISSAS ARE DIFFERENT. 02730352 ! 277: C 02740352 ! 278: IVTNUM = 7 02750352 ! 279: IF (ICZERO) 30070, 0070, 30070 02760352 ! 280: 0070 CONTINUE 02770352 ! 281: RVON01 = 1.0001 E17 02780352 ! 282: RVON02 = 1.9999 E17 02790352 ! 283: IVCOMP = 0 02800352 ! 284: IVCORR = 0 02810352 ! 285: 40070 IF (RVON01 .NE. RVON02) GO TO 40071 02820352 ! 286: IVCOMP = 1 02830352 ! 287: 40071 IF (RVON01 .EQ. RVON02) IVCOMP = IVCOMP + 2 02840352 ! 288: IF (IVCOMP) 20070, 10070, 20070 02850352 ! 289: 30070 IVDELE = IVDELE + 1 02860352 ! 290: WRITE (I02,80000) IVTNUM 02870352 ! 291: IF (ICZERO) 10070, 0081, 20070 02880352 ! 292: 10070 IVPASS = IVPASS + 1 02890352 ! 293: WRITE (I02,80002) IVTNUM 02900352 ! 294: GO TO 0081 02910352 ! 295: 20070 IVFAIL = IVFAIL + 1 02920352 ! 296: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02930352 ! 297: 0081 CONTINUE 02940352 ! 298: C 02950352 ! 299: C **** FCVS PROGRAM 352 - TEST 008 **** 02960352 ! 300: C 02970352 ! 301: C TEST 8 CHECKS THE .EQ. OPERATOR USING TWO REAL OPERANDS 02980352 ! 302: C WHICH HAVE BEEN ASSIGNED THE SAME REAL CONSTANT. 02990352 ! 303: C 03000352 ! 304: IVTNUM = 8 03010352 ! 305: IF (ICZERO) 30080, 0080, 30080 03020352 ! 306: 0080 CONTINUE 03030352 ! 307: RVON01 = 1.0001 E17 03040352 ! 308: RVON02 = 1.0001 E17 03050352 ! 309: IVCOMP = 0 03060352 ! 310: IVCORR = 0 03070352 ! 311: 40080 IF (RVON01 .EQ. RVON02) GO TO 40081 03080352 ! 312: IVCOMP = 1 03090352 ! 313: 40081 IF (RVON01 .NE. RVON02) IVCOMP = IVCOMP + 2 03100352 ! 314: IF (IVCOMP) 20080, 10080, 20080 03110352 ! 315: 30080 IVDELE = IVDELE + 1 03120352 ! 316: WRITE (I02,80000) IVTNUM 03130352 ! 317: IF (ICZERO) 10080, 0091, 20080 03140352 ! 318: 10080 IVPASS = IVPASS + 1 03150352 ! 319: WRITE (I02,80002) IVTNUM 03160352 ! 320: GO TO 0091 03170352 ! 321: 20080 IVFAIL = IVFAIL + 1 03180352 ! 322: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03190352 ! 323: 0091 CONTINUE 03200352 ! 324: C 03210352 ! 325: C **** FCVS PROGRAM 352 - TEST 009 **** 03220352 ! 326: C 03230352 ! 327: C TEST 9 CHECKS THE .GT. OPERATOR USING TWO REAL OPERANDS 03240352 ! 328: C WHERE THE MANTISSAS ARE EQUAL BUT THE EXPONENTS ARE DIFFERENT. 03250352 ! 329: C 03260352 ! 330: IVTNUM = 9 03270352 ! 331: IF (ICZERO) 30090, 0090, 30090 03280352 ! 332: 0090 CONTINUE 03290352 ! 333: RVON01 = 1.0001 E18 03300352 ! 334: RVON02 = 1.0001 E17 03310352 ! 335: IVCOMP = 0 03320352 ! 336: IVCORR = 0 03330352 ! 337: 40090 IF(RVON01 .GT. RVON02) GO TO 40091 03340352 ! 338: IVCOMP = 1 03350352 ! 339: 40091 IF (RVON01 .LE. RVON02) IVCOMP = IVCOMP + 2 03360352 ! 340: IF (IVCOMP) 20090, 10090, 20090 03370352 ! 341: 30090 IVDELE = IVDELE + 1 03380352 ! 342: WRITE (I02,80000) IVTNUM 03390352 ! 343: IF (ICZERO) 10090, 0101, 20090 03400352 ! 344: 10090 IVPASS = IVPASS + 1 03410352 ! 345: WRITE (I02,80002) IVTNUM 03420352 ! 346: GO TO 0101 03430352 ! 347: 20090 IVFAIL = IVFAIL + 1 03440352 ! 348: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03450352 ! 349: 0101 CONTINUE 03460352 ! 350: C 03470352 ! 351: C **** FCVS PROGRAM 352 - TEST 010 **** 03480352 ! 352: C 03490352 ! 353: C TEST 10 CHECKS THE .GT. OPERATOR USING TWO REAL OPERANDS 03500352 ! 354: C WHERE THE EXPONENTS ARE EQUAL BUT THE MANTISSAS ARE DIFFERENT. 03510352 ! 355: C 03520352 ! 356: IVTNUM = 10 03530352 ! 357: IF (ICZERO) 30100, 0100, 30100 03540352 ! 358: 0100 CONTINUE 03550352 ! 359: RVON01 = 1.9999 E17 03560352 ! 360: RVON02 = 1.0001 E17 03570352 ! 361: IVCOMP = 0 03580352 ! 362: IVCORR = 0 03590352 ! 363: 40100 IF (RVON01 .GT. RVON02) GO TO 40101 03600352 ! 364: IVCOMP = 1 03610352 ! 365: 40101 IF (RVON01 .LE. RVON02) IVCOMP = IVCOMP + 2 03620352 ! 366: IF (IVCOMP) 20100, 10100, 20100 03630352 ! 367: 30100 IVDELE = IVDELE + 1 03640352 ! 368: WRITE (I02,80000) IVTNUM 03650352 ! 369: IF (ICZERO) 10100, 0111, 20100 03660352 ! 370: 10100 IVPASS = IVPASS + 1 03670352 ! 371: WRITE (I02,80002) IVTNUM 03680352 ! 372: GO TO 0111 03690352 ! 373: 20100 IVFAIL = IVFAIL + 1 03700352 ! 374: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03710352 ! 375: 0111 CONTINUE 03720352 ! 376: C 03730352 ! 377: C **** FCVS PROGRAM 352 - TEST 011 **** 03740352 ! 378: C 03750352 ! 379: C TEST 11 CHECKS THE .GE. OPERATOR USING TWO REAL OPERANDS 03760352 ! 380: C WHERE THE MANTISSAS ARE EQUAL BUT THE EXPONENTS ARE DIFFERENT. 03770352 ! 381: C 03780352 ! 382: IVTNUM = 11 03790352 ! 383: IF (ICZERO) 30110, 0110, 30110 03800352 ! 384: 0110 CONTINUE 03810352 ! 385: RVON01 = 1.0001 E18 03820352 ! 386: RVON02 = 1.0001 E17 03830352 ! 387: IVCOMP = 0 03840352 ! 388: IVCORR = 0 03850352 ! 389: 40110 IF (RVON01 .GE. RVON02) GO TO 40111 03860352 ! 390: IVCOMP = 1 03870352 ! 391: 40111 IF (RVON01 .LT. RVON02) IVCOMP = IVCOMP + 2 03880352 ! 392: IF (IVCOMP) 20110, 10110, 20110 03890352 ! 393: 30110 IVDELE = IVDELE + 1 03900352 ! 394: WRITE (I02,80000) IVTNUM 03910352 ! 395: IF (ICZERO) 10110, 0121, 20110 03920352 ! 396: 10110 IVPASS = IVPASS + 1 03930352 ! 397: WRITE (I02,80002) IVTNUM 03940352 ! 398: GO TO 0121 03950352 ! 399: 20110 IVFAIL = IVFAIL + 1 03960352 ! 400: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03970352 ! 401: 0121 CONTINUE 03980352 ! 402: C 03990352 ! 403: C **** FCVS PROGRAM 352 - TEST 012 **** 04000352 ! 404: C 04010352 ! 405: C TEST 12 CHECKS THE .GE. OPERATOR USING TWO REAL OPERANDS 04020352 ! 406: C WHERE THE EXPONENTS ARE EQUAL BUT THE MANTISSAS ARE DIFFERENT. 04030352 ! 407: C 04040352 ! 408: IVTNUM = 12 04050352 ! 409: IF (ICZERO) 30120, 0120, 30120 04060352 ! 410: 0120 CONTINUE 04070352 ! 411: RVON01 = 1.9999 E17 04080352 ! 412: RVON02 = 1.0001 E17 04090352 ! 413: IVCOMP = 0 04100352 ! 414: IVCORR = 0 04110352 ! 415: 40120 IF (RVON01 .GE. RVON02) GO TO 40121 04120352 ! 416: IVCOMP = 1 04130352 ! 417: 40121 IF (RVON01 .LT. RVON02) IVCOMP = IVCOMP + 2 04140352 ! 418: IF (IVCOMP) 20120, 10120, 20120 04150352 ! 419: 30120 IVDELE = IVDELE + 1 04160352 ! 420: WRITE (I02,80000) IVTNUM 04170352 ! 421: IF (ICZERO) 10120, 0131, 20120 04180352 ! 422: 10120 IVPASS = IVPASS + 1 04190352 ! 423: WRITE (I02,80002) IVTNUM 04200352 ! 424: GO TO 0131 04210352 ! 425: 20120 IVFAIL = IVFAIL + 1 04220352 ! 426: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04230352 ! 427: 0131 CONTINUE 04240352 ! 428: C 04250352 ! 429: C **** FCVS PROGRAM 352 - TEST 013 **** 04260352 ! 430: C 04270352 ! 431: C TEST 13 CHECKS THE .GE. OPERATOR USING TWO REAL OPERANDS 04280352 ! 432: C WHERE EACH HAS BEEN ASSIGNED THE SAME REAL CONSTANT. 04290352 ! 433: C 04300352 ! 434: IVTNUM = 13 04310352 ! 435: IF (ICZERO) 30130, 0130, 30130 04320352 ! 436: 0130 CONTINUE 04330352 ! 437: RVON01 = 1.0001 E17 04340352 ! 438: RVON02 = 1.0001 E17 04350352 ! 439: IVCOMP = 0 04360352 ! 440: IVCORR = 0 04370352 ! 441: 40130 IF (RVON01 .GE. RVON02) GO TO 40131 04380352 ! 442: IVCOMP = 1 04390352 ! 443: 40131 IF (RVON01 .LT. RVON02) IVCOMP = IVCOMP + 2 04400352 ! 444: IF (IVCOMP) 20130, 10130, 20130 04410352 ! 445: 30130 IVDELE = IVDELE + 1 04420352 ! 446: WRITE (I02,80000) IVTNUM 04430352 ! 447: IF (ICZERO) 10130, 0141, 20130 04440352 ! 448: 10130 IVPASS = IVPASS + 1 04450352 ! 449: WRITE (I02,80002) IVTNUM 04460352 ! 450: GO TO 0141 04470352 ! 451: 20130 IVFAIL = IVFAIL + 1 04480352 ! 452: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04490352 ! 453: 0141 CONTINUE 04500352 ! 454: C 04510352 ! 455: C TESTS 14 THROUGH 28 REPETITIVELY CHECK THE .LT. RELATIONSHIP 04520352 ! 456: C USING ALL TYPES AND ORDERINGS OF TWO REAL OPERANDS. 04530352 ! 457: C 04540352 ! 458: C 04550352 ! 459: C TESTS 14 THROUGH 16 CHECK REAL-VARIABLE .LT OTHER-REAL-TYPES.04560352 ! 460: C 04570352 ! 461: C 04580352 ! 462: C **** FCVS PROGRAM 352 - TEST 014 **** 04590352 ! 463: C 04600352 ! 464: C TEST 14 CHECKS REAL-VARIABLE .LT. REAL-CONSTANT 04610352 ! 465: C 04620352 ! 466: IVTNUM = 14 04630352 ! 467: IF (ICZERO) 30140, 0140, 30140 04640352 ! 468: 0140 CONTINUE 04650352 ! 469: RVON01 = 1.0001 E17 04660352 ! 470: IVCOMP = 0 04670352 ! 471: IVCORR = 0 04680352 ! 472: 40140 IF (RVON01 .LT. 1.9999 E17) GO TO 40141 04690352 ! 473: IVCOMP = 1 04700352 ! 474: 40141 IF (RVON01 .GE. 1.9999 E17) IVCOMP = IVCOMP + 2 04710352 ! 475: IF (IVCOMP) 20140, 10140, 20140 04720352 ! 476: 30140 IVDELE = IVDELE + 1 04730352 ! 477: WRITE (I02,80000) IVTNUM 04740352 ! 478: IF (ICZERO) 10140, 0151, 20140 04750352 ! 479: 10140 IVPASS = IVPASS + 1 04760352 ! 480: WRITE (I02,80002) IVTNUM 04770352 ! 481: GO TO 0151 04780352 ! 482: 20140 IVFAIL = IVFAIL + 1 04790352 ! 483: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04800352 ! 484: 0151 CONTINUE 04810352 ! 485: C 04820352 ! 486: C **** FCVS PROGRAM 352 - TEST 015 **** 04830352 ! 487: C 04840352 ! 488: C TEST 15 CHECKS REAL-VARIABLE .LT. ARRAY-ELEMENT 04850352 ! 489: C 04860352 ! 490: IVTNUM = 15 04870352 ! 491: IF (ICZERO) 30150, 0150, 30150 04880352 ! 492: 0150 CONTINUE 04890352 ! 493: RADN11(1) = 1.9999 E17 04900352 ! 494: RVON01 = 1.0001 E17 04910352 ! 495: IVCOMP = 0 04920352 ! 496: IVCORR = 0 04930352 ! 497: 40150 IF (RVON01 .LT. RADN11(1)) GO TO 40151 04940352 ! 498: IVCOMP = 1 04950352 ! 499: 40151 IF (RVON01 .GE. RADN11(1)) IVCOMP = IVCOMP + 2 04960352 ! 500: IF (IVCOMP) 20150, 10150, 20150 04970352 ! 501: 30150 IVDELE = IVDELE + 1 04980352 ! 502: WRITE (I02,80000) IVTNUM 04990352 ! 503: IF (ICZERO) 10150, 0161, 20150 05000352 ! 504: 10150 IVPASS = IVPASS + 1 05010352 ! 505: WRITE (I02,80002) IVTNUM 05020352 ! 506: GO TO 0161 05030352 ! 507: 20150 IVFAIL = IVFAIL + 1 05040352 ! 508: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05050352 ! 509: 0161 CONTINUE 05060352 ! 510: C 05070352 ! 511: C **** FCVS PROGRAM 352 - TEST 016 **** 05080352 ! 512: C 05090352 ! 513: C TEST 16 CHECKS REAL-VARIABLE .LT. FUNCTION-REFERENCE 05100352 ! 514: C 05110352 ! 515: IVTNUM = 16 05120352 ! 516: IF (ICZERO) 30160, 0160, 30160 05130352 ! 517: 0160 CONTINUE 05140352 ! 518: RVON01 = 1.0001 E17 05150352 ! 519: RVON02 = 1 E17 05160352 ! 520: RVON03 = 0.9999 E17 05170352 ! 521: IVCOMP = 0 05180352 ! 522: IVCORR = 0 05190352 ! 523: 40160 IF (RVON01 .LT. RFOS01(RVON02,RVON03)) GO TO 40161 05200352 ! 524: IVCOMP = 1 05210352 ! 525: 40161 IF (RVON01 .GE. RFOS01(RVON02,RVON03)) IVCOMP = IVCOMP + 2 05220352 ! 526: IF (IVCOMP) 20160, 10160, 20160 05230352 ! 527: 30160 IVDELE = IVDELE + 1 05240352 ! 528: WRITE (I02,80000) IVTNUM 05250352 ! 529: IF (ICZERO) 10160, 0171, 20160 05260352 ! 530: 10160 IVPASS = IVPASS + 1 05270352 ! 531: WRITE (I02,80002) IVTNUM 05280352 ! 532: GO TO 0171 05290352 ! 533: 20160 IVFAIL = IVFAIL + 1 05300352 ! 534: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05310352 ! 535: 0171 CONTINUE 05320352 ! 536: C 05330352 ! 537: C TESTS 17 THROUGH 20 CHECK REAL-CONSTANT .LT. OTHER-REAL-TYPES05340352 ! 538: C 05350352 ! 539: C 05360352 ! 540: C **** FCVS PROGRAM 352 - TEST 017 **** 05370352 ! 541: C 05380352 ! 542: C TEST 17 CHECKS REAL-CONSTANT .LT. REAL-CONSTANT 05390352 ! 543: C 05400352 ! 544: IVTNUM = 17 05410352 ! 545: IF (ICZERO) 30170, 0170, 30170 05420352 ! 546: 0170 CONTINUE 05430352 ! 547: IVCOMP = 0 05440352 ! 548: IVCORR = 0 05450352 ! 549: 40170 IF (1.0001 E17 .LT. 1.9999 E17) GO TO 40171 05460352 ! 550: IVCOMP = 1 05470352 ! 551: 40171 IF (1.0001 E17 .GE. 1.9999 E17) IVCOMP = IVCOMP + 2 05480352 ! 552: IF (IVCOMP) 20170, 10170, 20170 05490352 ! 553: 30170 IVDELE = IVDELE + 1 05500352 ! 554: WRITE (I02,80000) IVTNUM 05510352 ! 555: IF (ICZERO) 10170, 0181, 20170 05520352 ! 556: 10170 IVPASS = IVPASS + 1 05530352 ! 557: WRITE (I02,80002) IVTNUM 05540352 ! 558: GO TO 0181 05550352 ! 559: 20170 IVFAIL = IVFAIL + 1 05560352 ! 560: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05570352 ! 561: 0181 CONTINUE 05580352 ! 562: C 05590352 ! 563: C **** FCVS PROGRAM 352 - TEST 018 **** 05600352 ! 564: C 05610352 ! 565: C TEST 18 CHECKS REAL-CONSTANT .LT. REAL-ARRAY-ELEMENT 05620352 ! 566: C 05630352 ! 567: IVTNUM = 18 05640352 ! 568: IF (ICZERO) 30180, 0180, 30180 05650352 ! 569: 0180 CONTINUE 05660352 ! 570: RADN11(1) = 1.9999 E17 05670352 ! 571: IVCOMP = 0 05680352 ! 572: IVCORR = 0 05690352 ! 573: 40180 IF (1.0001 E17 .LT. RADN11(1)) GO TO 40181 05700352 ! 574: IVCOMP = 1 05710352 ! 575: 40181 IF (1.0001 E17 .GE. RADN11(1)) IVCOMP = IVCOMP + 2 05720352 ! 576: IF (IVCOMP) 20180, 10180, 20180 05730352 ! 577: 30180 IVDELE = IVDELE + 1 05740352 ! 578: WRITE (I02,80000) IVTNUM 05750352 ! 579: IF (ICZERO) 10180, 0191, 20180 05760352 ! 580: 10180 IVPASS = IVPASS + 1 05770352 ! 581: WRITE (I02,80002) IVTNUM 05780352 ! 582: GO TO 0191 05790352 ! 583: 20180 IVFAIL = IVFAIL + 1 05800352 ! 584: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05810352 ! 585: 0191 CONTINUE 05820352 ! 586: C 05830352 ! 587: C **** FCVS PROGRAM 352 - TEST 019 **** 05840352 ! 588: C 05850352 ! 589: C TEST 19 CHECKS REAL-CONSTANT .LT. REAL-VARIABLE 05860352 ! 590: C 05870352 ! 591: IVTNUM = 19 05880352 ! 592: IF (ICZERO) 30190, 0190, 30190 05890352 ! 593: 0190 CONTINUE 05900352 ! 594: RVON01 = 1.9999 E17 05910352 ! 595: IVCOMP = 0 05920352 ! 596: IVCORR = 0 05930352 ! 597: 40190 IF (1.0001 E17 .LT. RVON01) GO TO 40191 05940352 ! 598: IVCOMP = 1 05950352 ! 599: 40191 IF (1.0001 E17 .GE. RVON01) IVCOMP = IVCOMP + 2 05960352 ! 600: IF (IVCOMP) 20190, 10190, 20190 05970352 ! 601: 30190 IVDELE = IVDELE + 1 05980352 ! 602: WRITE (I02,80000) IVTNUM 05990352 ! 603: IF (ICZERO) 10190, 0201, 20190 06000352 ! 604: 10190 IVPASS = IVPASS + 1 06010352 ! 605: WRITE (I02,80002) IVTNUM 06020352 ! 606: GO TO 0201 06030352 ! 607: 20190 IVFAIL = IVFAIL + 1 06040352 ! 608: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06050352 ! 609: 0201 CONTINUE 06060352 ! 610: C 06070352 ! 611: C **** FCVS PROGRAM 352 - TEST 020 **** 06080352 ! 612: C 06090352 ! 613: C TEST 20 CHECKS REAL-CONSTANT .LT. REAL-FUNCTION-REFERENCE 06100352 ! 614: C 06110352 ! 615: IVTNUM = 20 06120352 ! 616: IF (ICZERO) 30200, 0200, 30200 06130352 ! 617: 0200 CONTINUE 06140352 ! 618: RVON01 = 1 E17 06150352 ! 619: RVON02 = 0.9999 E17 06160352 ! 620: IVCOMP = 0 06170352 ! 621: IVCORR = 0 06180352 ! 622: 40200 IF (1.0001 E17 .LT. RFOS01(RVON01,RVON02)) GO TO 40201 06190352 ! 623: IVCOMP = 1 06200352 ! 624: 40201 IF (1.0001 E17 .GE. RFOS01(RVON01,RVON02)) IVCOMP = IVCOMP + 2 06210352 ! 625: IF (IVCOMP) 20200, 10200, 20200 06220352 ! 626: 30200 IVDELE = IVDELE + 1 06230352 ! 627: WRITE (I02,80000) IVTNUM 06240352 ! 628: IF (ICZERO) 10200, 0211, 20200 06250352 ! 629: 10200 IVPASS = IVPASS + 1 06260352 ! 630: WRITE (I02,80002) IVTNUM 06270352 ! 631: GO TO 0211 06280352 ! 632: 20200 IVFAIL = IVFAIL + 1 06290352 ! 633: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06300352 ! 634: 0211 CONTINUE 06310352 ! 635: C 06320352 ! 636: C TESTS 21 THROUGH 24 CHECK REAL-ARRAY-ELEMENT .LT. OTHER-REALS06330352 ! 637: C 06340352 ! 638: C 06350352 ! 639: C **** FCVS PROGRAM 352 - TEST 021 **** 06360352 ! 640: C 06370352 ! 641: C TEST 21 CHECKS REAL-ARRAY-ELEMENT .LT. REAL-CONSTANT 06380352 ! 642: C 06390352 ! 643: IVTNUM = 21 06400352 ! 644: IF (ICZERO) 30210, 0210, 30210 06410352 ! 645: 0210 CONTINUE 06420352 ! 646: RADN11(1) = 1.0001 E17 06430352 ! 647: IVCOMP = 0 06440352 ! 648: IVCORR = 0 06450352 ! 649: 40210 IF (RADN11(1) .LT. 1.9999 E17) GO TO 40211 06460352 ! 650: IVCOMP = 1 06470352 ! 651: 40211 IF (RADN11(1) .GE. 1.9999 E17) IVCOMP = IVCOMP + 2 06480352 ! 652: IF (IVCOMP) 20210, 10210, 20210 06490352 ! 653: 30210 IVDELE = IVDELE + 1 06500352 ! 654: WRITE (I02,80000) IVTNUM 06510352 ! 655: IF (ICZERO) 10210, 0221, 20210 06520352 ! 656: 10210 IVPASS = IVPASS + 1 06530352 ! 657: WRITE (I02,80002) IVTNUM 06540352 ! 658: GO TO 0221 06550352 ! 659: 20210 IVFAIL = IVFAIL + 1 06560352 ! 660: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06570352 ! 661: 0221 CONTINUE 06580352 ! 662: C 06590352 ! 663: C **** FCVS PROGRAM 352 - TEST 022 **** 06600352 ! 664: C 06610352 ! 665: C TEST 22 CHECKS REAL-ARRAY-ELEMENT .LT. REAL-ARRAY-ELEMENT 06620352 ! 666: C 06630352 ! 667: IVTNUM = 22 06640352 ! 668: IF (ICZERO) 30220, 0220, 30220 06650352 ! 669: 0220 CONTINUE 06660352 ! 670: RADN11(1) = 1.0001 E17 06670352 ! 671: RADN11(2) = 1.9999 E17 06680352 ! 672: IVCOMP = 0 06690352 ! 673: IVCORR = 0 06700352 ! 674: 40220 IF (RADN11(1) .LT. RADN11(2)) GO TO 40221 06710352 ! 675: IVCOMP = 1 06720352 ! 676: 40221 IF (RADN11(1) .GE. RADN11(2)) IVCOMP = IVCOMP + 2 06730352 ! 677: IF (IVCOMP) 20220, 10220, 20220 06740352 ! 678: 30220 IVDELE = IVDELE + 1 06750352 ! 679: WRITE (I02,80000) IVTNUM 06760352 ! 680: IF (ICZERO) 10220, 0231, 20220 06770352 ! 681: 10220 IVPASS = IVPASS + 1 06780352 ! 682: WRITE (I02,80002) IVTNUM 06790352 ! 683: GO TO 0231 06800352 ! 684: 20220 IVFAIL = IVFAIL + 1 06810352 ! 685: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06820352 ! 686: 0231 CONTINUE 06830352 ! 687: C 06840352 ! 688: C **** FCVS PROGRAM 352 - TEST 023 **** 06850352 ! 689: C 06860352 ! 690: C TEST 23 CHECKS REAL-ARRAY-ELEMENT .LT. REAL-VARIABLE 06870352 ! 691: C 06880352 ! 692: IVTNUM = 23 06890352 ! 693: IF (ICZERO) 30230, 0230, 30230 06900352 ! 694: 0230 CONTINUE 06910352 ! 695: RVON01 = 1.9999 E17 06920352 ! 696: RADN11(1) = 1.0001 E17 06930352 ! 697: IVCORR = 0 06940352 ! 698: IVCOMP = 0 06950352 ! 699: 40230 IF (RADN11(1) .LT. RVON01) GO TO 40231 06960352 ! 700: IVCOMP = 1 06970352 ! 701: 40231 IF (RADN11(1) .GE. RVON01) IVCOMP = IVCOMP + 2 06980352 ! 702: IF (IVCOMP) 20230, 10230, 20230 06990352 ! 703: 30230 IVDELE = IVDELE + 1 07000352 ! 704: WRITE (I02,80000) IVTNUM 07010352 ! 705: IF (ICZERO) 10230, 0241, 20230 07020352 ! 706: 10230 IVPASS = IVPASS + 1 07030352 ! 707: WRITE (I02,80002) IVTNUM 07040352 ! 708: GO TO 0241 07050352 ! 709: 20230 IVFAIL = IVFAIL + 1 07060352 ! 710: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07070352 ! 711: 0241 CONTINUE 07080352 ! 712: C 07090352 ! 713: C **** FCVS PROGRAM 352 - TEST 024 **** 07100352 ! 714: C 07110352 ! 715: C TEST 24 CHECKS REAL-ARRAY-ELEMENT .LT. REAL-FUNCTION-REF. 07120352 ! 716: C 07130352 ! 717: IVTNUM = 24 07140352 ! 718: IF (ICZERO) 30240, 0240, 30240 07150352 ! 719: 0240 CONTINUE 07160352 ! 720: RVON01 = 1.0000 E17 07170352 ! 721: RVON02 = 0.9999 E17 07180352 ! 722: RADN11(1) = 1.0001 E17 07190352 ! 723: IVCORR = 0 07200352 ! 724: IVCOMP = 0 07210352 ! 725: 40240 IF (RADN11(1) .LT. RFOS01(RVON01,RVON02)) GO TO 40241 07220352 ! 726: IVCOMP = 1 07230352 ! 727: 40241 IF (RADN11(1) .GE. RFOS01(RVON01,RVON02)) IVCOMP = IVCOMP + 2 07240352 ! 728: IF (IVCOMP) 20240, 10240, 20240 07250352 ! 729: 30240 IVDELE = IVDELE + 1 07260352 ! 730: WRITE (I02,80000) IVTNUM 07270352 ! 731: IF (ICZERO) 10240, 0251, 20240 07280352 ! 732: 10240 IVPASS = IVPASS + 1 07290352 ! 733: WRITE (I02,80002) IVTNUM 07300352 ! 734: GO TO 0251 07310352 ! 735: 20240 IVFAIL = IVFAIL + 1 07320352 ! 736: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07330352 ! 737: 0251 CONTINUE 07340352 ! 738: C 07350352 ! 739: C TESTS 25 THROUGH 28 CHECK REAL-FUNCTION-REFERENCE .LT. 07360352 ! 740: C OTHER-REAL-TYPES 07370352 ! 741: C 07380352 ! 742: C 07390352 ! 743: C **** FCVS PROGRAM 352 - TEST 025 **** 07400352 ! 744: C 07410352 ! 745: C TEST 25 CHECKS REAL-FUNCTION-REFERENCE .LT. REAL-CONSTANT 07420352 ! 746: C 07430352 ! 747: IVTNUM = 25 07440352 ! 748: IF (ICZERO) 30250, 0250, 30250 07450352 ! 749: 0250 CONTINUE 07460352 ! 750: RVON01 = 1.0000 E17 07470352 ! 751: RVON02 = 0.0001 E17 07480352 ! 752: IVCOMP = 0 07490352 ! 753: IVCORR = 0 07500352 ! 754: 40250 IF (RFOS01(RVON01,RVON02) .LT. 1.9999 E17) GO TO 40251 07510352 ! 755: IVCOMP = 1 07520352 ! 756: 40251 IF (RFOS01(RVON01,RVON02) .GE. 1.9999 E17) IVCOMP = IVCOMP + 2 07530352 ! 757: IF (IVCOMP) 20250, 10250, 20250 07540352 ! 758: 30250 IVDELE = IVDELE + 1 07550352 ! 759: WRITE (I02,80000) IVTNUM 07560352 ! 760: IF (ICZERO) 10250, 0261, 20250 07570352 ! 761: 10250 IVPASS = IVPASS + 1 07580352 ! 762: WRITE (I02,80002) IVTNUM 07590352 ! 763: GO TO 0261 07600352 ! 764: 20250 IVFAIL = IVFAIL + 1 07610352 ! 765: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07620352 ! 766: 0261 CONTINUE 07630352 ! 767: C 07640352 ! 768: C **** FCVS PROGRAM 352 - TEST 026 **** 07650352 ! 769: C 07660352 ! 770: C TEST 26 CHECKS REAL-FUNCTION-REFERENCE .LT. REAL-ARRAY-ELEMNT07670352 ! 771: C 07680352 ! 772: IVTNUM = 26 07690352 ! 773: IF (ICZERO) 30260, 0260, 30260 07700352 ! 774: 0260 CONTINUE 07710352 ! 775: RVON01 = 1 E17 07720352 ! 776: RVON02 = 0.0001 E17 07730352 ! 777: RADN11(1) = 1.9999 E17 07740352 ! 778: IVCOMP = 0 07750352 ! 779: IVCORR = 0 07760352 ! 780: 40260 IF (RFOS01(RVON01,RVON02) .LT. RADN11(1)) GO TO 40261 07770352 ! 781: IVCOMP = 1 07780352 ! 782: 40261 IF (RFOS01(RVON01,RVON02) .GE. RADN11(1)) IVCOMP = IVCOMP + 2 07790352 ! 783: IF (IVCOMP) 20260, 10260, 20260 07800352 ! 784: 30260 IVDELE = IVDELE + 1 07810352 ! 785: WRITE (I02,80000) IVTNUM 07820352 ! 786: IF (ICZERO) 10260, 0271, 20260 07830352 ! 787: 10260 IVPASS = IVPASS + 1 07840352 ! 788: WRITE (I02,80002) IVTNUM 07850352 ! 789: GO TO 0271 07860352 ! 790: 20260 IVFAIL = IVFAIL + 1 07870352 ! 791: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07880352 ! 792: 0271 CONTINUE 07890352 ! 793: C 07900352 ! 794: C **** FCVS PROGRAM 352 - TEST 027 **** 07910352 ! 795: C 07920352 ! 796: C TEST 27 CHECKS REAL-FUNCTION-REFERENCE .LT. REAL-VARIABLE 07930352 ! 797: C 07940352 ! 798: IVTNUM = 27 07950352 ! 799: IF (ICZERO) 30270, 0270, 30270 07960352 ! 800: 0270 CONTINUE 07970352 ! 801: RVON01 = 1 E17 07980352 ! 802: RVON02 = 0.0001 E17 07990352 ! 803: RVON03 = 1.9999 E17 08000352 ! 804: IVCOMP = 0 08010352 ! 805: IVCORR = 0 08020352 ! 806: 40270 IF (RFOS01(RVON01,RVON02) .LT. RVON03) GO TO 40271 08030352 ! 807: IVCOMP = 1 08040352 ! 808: 40271 IF (RFOS01(RVON01,RVON02) .GE. RVON03) IVCOMP = IVCOMP + 2 08050352 ! 809: IF (IVCOMP) 20270, 10270, 20270 08060352 ! 810: 30270 IVDELE = IVDELE + 1 08070352 ! 811: WRITE (I02,80000) IVTNUM 08080352 ! 812: IF (ICZERO) 10270, 0281, 20270 08090352 ! 813: 10270 IVPASS = IVPASS + 1 08100352 ! 814: WRITE (I02,80002) IVTNUM 08110352 ! 815: GO TO 0281 08120352 ! 816: 20270 IVFAIL = IVFAIL + 1 08130352 ! 817: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08140352 ! 818: 0281 CONTINUE 08150352 ! 819: C 08160352 ! 820: C **** FCVS PROGRAM 352 - TEST 028 **** 08170352 ! 821: C 08180352 ! 822: C TEST 28 CHECKS REAL-FUNCTION-REFERENCE .LT REAL-FUNCTION-REF.08190352 ! 823: C 08200352 ! 824: IVTNUM = 28 08210352 ! 825: IF (ICZERO) 30280, 0280, 30280 08220352 ! 826: 0280 CONTINUE 08230352 ! 827: RVON01 = 1 E17 08240352 ! 828: RVON02 = 0.0001 E17 08250352 ! 829: RVON03 = 0.9999 E17 08260352 ! 830: IVCOMP = 0 08270352 ! 831: IVCORR = 0 08280352 ! 832: 40280 IF (RFOS01(RVON01,RVON02) .LT. RFOS01(RVON01,RVON03)) GO TO 40281 08290352 ! 833: IVCOMP = 1 08300352 ! 834: 40281 IF (RFOS01(RVON01,RVON02) .GE. RFOS01(RVON01,RVON03)) 08310352 ! 835: 1 IVCOMP = IVCOMP + 2 08320352 ! 836: IF (IVCOMP) 20280, 10280, 20280 08330352 ! 837: 30280 IVDELE = IVDELE + 1 08340352 ! 838: WRITE (I02,80000) IVTNUM 08350352 ! 839: IF (ICZERO) 10280, 0291, 20280 08360352 ! 840: 10280 IVPASS = IVPASS + 1 08370352 ! 841: WRITE (I02,80002) IVTNUM 08380352 ! 842: GO TO 0291 08390352 ! 843: 20280 IVFAIL = IVFAIL + 1 08400352 ! 844: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08410352 ! 845: 0291 CONTINUE 08420352 ! 846: C 08430352 ! 847: C 08440352 ! 848: C WRITE OUT TEST SUMMARY 08450352 ! 849: C 08460352 ! 850: WRITE (I02,90004) 08470352 ! 851: WRITE (I02,90014) 08480352 ! 852: WRITE (I02,90004) 08490352 ! 853: WRITE (I02,90000) 08500352 ! 854: WRITE (I02,90004) 08510352 ! 855: WRITE (I02,90020) IVFAIL 08520352 ! 856: WRITE (I02,90022) IVPASS 08530352 ! 857: WRITE (I02,90024) IVDELE 08540352 ! 858: STOP 08550352 ! 859: 90001 FORMAT (1H ,24X,5HFM352) 08560352 ! 860: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM352) 08570352 ! 861: C 08580352 ! 862: C FORMATS FOR TEST DETAIL LINES 08590352 ! 863: C 08600352 ! 864: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 08610352 ! 865: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 08620352 ! 866: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 08630352 ! 867: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 08640352 ! 868: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 08650352 ! 869: C 08660352 ! 870: C FORMAT STATEMENTS FOR PAGE HEADERS 08670352 ! 871: C 08680352 ! 872: 90002 FORMAT (1H1) 08690352 ! 873: 90004 FORMAT (1H ) 08700352 ! 874: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 08710352 ! 875: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 08720352 ! 876: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 08730352 ! 877: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 08740352 ! 878: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 08750352 ! 879: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 08760352 ! 880: C 08770352 ! 881: C FORMAT STATEMENTS FOR RUN SUMMARY 08780352 ! 882: C 08790352 ! 883: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 08800352 ! 884: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 08810352 ! 885: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 08820352 ! 886: END 08830352
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.