|
|
1.1 ! root 1: C COMMENT SECTION 00010099 ! 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 00020099 ! 6: C FM099 00030099 ! 7: C 00040099 ! 8: C THIS ROUTINE TESTS VARIOUS MATHEMATICAL FUNCTIONS WHERE BOTH THE 00050099 ! 9: C FUNCTION TYPE AND ARGUMENTS ARE REAL. THE REAL VARIABLES AND 00060099 ! 10: C CONSTANTS CONTAIN BOTH POSITIVE AND NEGATIVE VALUES. THE 00070099 ! 11: C FUNCTIONS TESTED IN FM099 INCLUDE 00080099 ! 12: C 00090099 ! 13: C TYPE OF 00100099 ! 14: C FUNCTION NAME ARGUMENT FUNCTION 00110099 ! 15: C ---------------- ---- -------- -------- 00120099 ! 16: C EXPONENTIAL EXP REAL REAL 00130099 ! 17: C NATURAL LOGARITHM ALOG REAL REAL 00140099 ! 18: C COMMON LOGARITHM ALOG10 REAL REAL 00150099 ! 19: C SQUARE ROOT SQRT REAL REAL 00160099 ! 20: C TRIGONOMETRIC SINE SIN REAL REAL 00170099 ! 21: C TRIGONOMETRIC COSINE COS REAL REAL 00180099 ! 22: C HYPERBOLIC TANGENT TANH REAL REAL 00190099 ! 23: C ARCTANGENT ATAN REAL REAL 00200099 ! 24: C ATAN2 REAL REAL 00210099 ! 25: C 00220099 ! 26: C REFERENCES 00230099 ! 27: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00240099 ! 28: C X3.9-1978 00250099 ! 29: C 00260099 ! 30: C SECTION 8.7, EXTERNAL STATEMENT 00270099 ! 31: C SECTION 15.5.2, FUNCTION REFERENCE 00280099 ! 32: C 00290099 ! 33: C 00300099 ! 34: C ********************************************************** 00310099 ! 35: C 00320099 ! 36: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00330099 ! 37: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00340099 ! 38: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00350099 ! 39: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00360099 ! 40: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00370099 ! 41: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00380099 ! 42: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00390099 ! 43: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00400099 ! 44: C OF EXECUTING THESE TESTS. 00410099 ! 45: C 00420099 ! 46: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00430099 ! 47: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00440099 ! 48: C 00450099 ! 49: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00460099 ! 50: C 00470099 ! 51: C DEPARTMENT OF THE NAVY 00480099 ! 52: C FEDERAL COBOL COMPILER TESTING SERVICE 00490099 ! 53: C WASHINGTON, D.C. 20376 00500099 ! 54: C 00510099 ! 55: C ********************************************************** 00520099 ! 56: C 00530099 ! 57: C 00540099 ! 58: C 00550099 ! 59: C INITIALIZATION SECTION 00560099 ! 60: C 00570099 ! 61: C INITIALIZE CONSTANTS 00580099 ! 62: C ************** 00590099 ! 63: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00600099 ! 64: I01 = 5 00610099 ! 65: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00620099 ! 66: I02 = 6 00630099 ! 67: C SYSTEM ENVIRONMENT SECTION 00640099 ! 68: C 00650099 ! 69: I01 = 5 00660099 ! 70: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00670099 ! 71: C (UNIT NUMBER FOR CARD READER). 00680099 ! 72: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00690099 ! 73: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00700099 ! 74: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00710099 ! 75: C 00720099 ! 76: I02 = 6 00730099 ! 77: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00740099 ! 78: C (UNIT NUMBER FOR PRINTER). 00750099 ! 79: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00760099 ! 80: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00770099 ! 81: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00780099 ! 82: C 00790099 ! 83: IVPASS=0 00800099 ! 84: IVFAIL=0 00810099 ! 85: IVDELE=0 00820099 ! 86: ICZERO=0 00830099 ! 87: C 00840099 ! 88: C WRITE PAGE HEADERS 00850099 ! 89: WRITE (I02,90000) 00860099 ! 90: WRITE (I02,90001) 00870099 ! 91: WRITE (I02,90002) 00880099 ! 92: WRITE (I02, 90002) 00890099 ! 93: WRITE (I02,90003) 00900099 ! 94: WRITE (I02,90002) 00910099 ! 95: WRITE (I02,90004) 00920099 ! 96: WRITE (I02,90002) 00930099 ! 97: WRITE (I02,90011) 00940099 ! 98: WRITE (I02,90002) 00950099 ! 99: WRITE (I02,90002) 00960099 ! 100: WRITE (I02,90005) 00970099 ! 101: WRITE (I02,90006) 00980099 ! 102: WRITE (I02,90002) 00990099 ! 103: C 01000099 ! 104: C TEST SECTION 01010099 ! 105: C 01020099 ! 106: C TEST 939 THROUGH TEST 942 CONTAIN FUNCTION TESTS FOR EXPONENTIAL 01030099 ! 107: C FUNCTIONS WHERE THE ARGUMENT AND FUNCTION ARE REAL 01040099 ! 108: C 01050099 ! 109: IVTNUM = 939 01060099 ! 110: C 01070099 ! 111: C **** TEST 939 **** 01080099 ! 112: C 01090099 ! 113: IF (ICZERO) 39390, 9390, 39390 01100099 ! 114: 9390 CONTINUE 01110099 ! 115: RVON01 = 0.0 01120099 ! 116: RVCOMP = EXP (RVON01) 01130099 ! 117: GO TO 49390 01140099 ! 118: 39390 IVDELE = IVDELE + 1 01150099 ! 119: WRITE (I02,80003) IVTNUM 01160099 ! 120: IF (ICZERO) 49390, 9401, 49390 01170099 ! 121: 49390 IF (RVCOMP - 0.95) 29390,19390,49391 01180099 ! 122: 49391 IF (RVCOMP - 1.05) 19390,19390,29390 01190099 ! 123: 19390 IVPASS = IVPASS + 1 01200099 ! 124: WRITE (I02,80001) IVTNUM 01210099 ! 125: GO TO 9401 01220099 ! 126: 29390 IVFAIL = IVFAIL + 1 01230099 ! 127: RVCORR = 1.00 01240099 ! 128: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 01250099 ! 129: 9401 CONTINUE 01260099 ! 130: IVTNUM = 940 01270099 ! 131: C 01280099 ! 132: C **** TEST 940 **** 01290099 ! 133: C 01300099 ! 134: IF (ICZERO) 39400, 9400, 39400 01310099 ! 135: 9400 CONTINUE 01320099 ! 136: RVCOMP = EXP (0.5) 01330099 ! 137: GO TO 49400 01340099 ! 138: 39400 IVDELE = IVDELE + 1 01350099 ! 139: WRITE (I02,80003) IVTNUM 01360099 ! 140: IF (ICZERO) 49400, 9411, 49400 01370099 ! 141: 49400 IF (RVCOMP - 1.60) 29400,19400,49401 01380099 ! 142: 49401 IF (RVCOMP - 1.70) 19400,19400,29400 01390099 ! 143: 19400 IVPASS = IVPASS + 1 01400099 ! 144: WRITE (I02,80001) IVTNUM 01410099 ! 145: GO TO 9411 01420099 ! 146: 29400 IVFAIL = IVFAIL + 1 01430099 ! 147: RVCORR = 1.65 01440099 ! 148: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 01450099 ! 149: 9411 CONTINUE 01460099 ! 150: IVTNUM = 941 01470099 ! 151: C 01480099 ! 152: C **** TEST 941 **** 01490099 ! 153: C 01500099 ! 154: IF (ICZERO) 39410, 9410, 39410 01510099 ! 155: 9410 CONTINUE 01520099 ! 156: RVON01 = .1E1 01530099 ! 157: RVCOMP = EXP (RVON01) 01540099 ! 158: GO TO 49410 01550099 ! 159: 39410 IVDELE = IVDELE + 1 01560099 ! 160: WRITE (I02,80003) IVTNUM 01570099 ! 161: IF (ICZERO) 49410, 9421, 49410 01580099 ! 162: 49410 IF (RVCOMP - 2.67) 29410,19410,49411 01590099 ! 163: 49411 IF (RVCOMP - 2.77) 19410,19410,29410 01600099 ! 164: 19410 IVPASS = IVPASS + 1 01610099 ! 165: WRITE (I02,80001) IVTNUM 01620099 ! 166: GO TO 9421 01630099 ! 167: 29410 IVFAIL = IVFAIL + 1 01640099 ! 168: RVCORR = 2.72 01650099 ! 169: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 01660099 ! 170: 9421 CONTINUE 01670099 ! 171: IVTNUM = 942 01680099 ! 172: C 01690099 ! 173: C **** TEST 942 **** 01700099 ! 174: C 01710099 ! 175: IF (ICZERO) 39420, 9420, 39420 01720099 ! 176: 9420 CONTINUE 01730099 ! 177: RVON01 = -1.0 01740099 ! 178: RVCOMP = EXP (RVON01) 01750099 ! 179: GO TO 49420 01760099 ! 180: 39420 IVDELE = IVDELE + 1 01770099 ! 181: WRITE (I02,80003) IVTNUM 01780099 ! 182: IF (ICZERO) 49420, 9431, 49420 01790099 ! 183: 49420 IF (RVCOMP - 0.363) 29420,19420,49421 01800099 ! 184: 49421 IF (RVCOMP - 0.373) 19420,19420,29420 01810099 ! 185: 19420 IVPASS = IVPASS + 1 01820099 ! 186: WRITE (I02,80001) IVTNUM 01830099 ! 187: GO TO 9431 01840099 ! 188: 29420 IVFAIL = IVFAIL + 1 01850099 ! 189: RVCORR = 0.368 01860099 ! 190: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 01870099 ! 191: 9431 CONTINUE 01880099 ! 192: C 01890099 ! 193: C TEST 943 THROUGH TEST 945 CONTAIN FUNCTION TESTS FOR NATURAL 01900099 ! 194: C LOGARITHM FUNCTIONS WHERE THE ARGUMENT AND FUNCTION ARE REAL 01910099 ! 195: C 01920099 ! 196: IVTNUM = 943 01930099 ! 197: C 01940099 ! 198: C **** TEST 943 **** 01950099 ! 199: C 01960099 ! 200: IF (ICZERO) 39430, 9430, 39430 01970099 ! 201: 9430 CONTINUE 01980099 ! 202: RVON01 = 5E1 01990099 ! 203: RVCOMP = ALOG (RVON01) 02000099 ! 204: GO TO 49430 02010099 ! 205: 39430 IVDELE = IVDELE + 1 02020099 ! 206: WRITE (I02,80003) IVTNUM 02030099 ! 207: IF (ICZERO) 49430, 9441, 49430 02040099 ! 208: 49430 IF (RVCOMP - 3.9115) 29430,19430,49431 02050099 ! 209: 49431 IF (RVCOMP - 3.9125) 19430,19430,29430 02060099 ! 210: 19430 IVPASS = IVPASS + 1 02070099 ! 211: WRITE (I02,80001) IVTNUM 02080099 ! 212: GO TO 9441 02090099 ! 213: 29430 IVFAIL = IVFAIL + 1 02100099 ! 214: RVCORR = 3.9120 02110099 ! 215: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 02120099 ! 216: 9441 CONTINUE 02130099 ! 217: IVTNUM = 944 02140099 ! 218: C 02150099 ! 219: C **** TEST 944 **** 02160099 ! 220: C 02170099 ! 221: IF (ICZERO) 39440, 9440, 39440 02180099 ! 222: 9440 CONTINUE 02190099 ! 223: RVON01 = 1.0 02200099 ! 224: RVCOMP = ALOG (RVON01) 02210099 ! 225: GO TO 49440 02220099 ! 226: 39440 IVDELE = IVDELE + 1 02230099 ! 227: WRITE (I02,80003) IVTNUM 02240099 ! 228: IF (ICZERO) 49440, 9451, 49440 02250099 ! 229: 49440 IF (RVCOMP + .00005) 29440,19440,49441 02260099 ! 230: 49441 IF (RVCOMP - .00005) 19440,19440,29440 02270099 ! 231: 19440 IVPASS = IVPASS + 1 02280099 ! 232: WRITE (I02,80001) IVTNUM 02290099 ! 233: GO TO 9451 02300099 ! 234: 29440 IVFAIL = IVFAIL + 1 02310099 ! 235: RVCORR = 0.00000 02320099 ! 236: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 02330099 ! 237: 9451 CONTINUE 02340099 ! 238: IVTNUM = 945 02350099 ! 239: C 02360099 ! 240: C **** TEST 945 **** 02370099 ! 241: C 02380099 ! 242: IF (ICZERO) 39450, 9450, 39450 02390099 ! 243: 9450 CONTINUE 02400099 ! 244: RVCOMP = ALOG (2.0) 02410099 ! 245: GO TO 49450 02420099 ! 246: 39450 IVDELE = IVDELE + 1 02430099 ! 247: WRITE (I02,80003) IVTNUM 02440099 ! 248: IF (ICZERO) 49450, 9461, 49450 02450099 ! 249: 49450 IF (RVCOMP - 0.688) 29450,19450,49451 02460099 ! 250: 49451 IF (RVCOMP - 0.698) 19450,19450,29450 02470099 ! 251: 19450 IVPASS = IVPASS + 1 02480099 ! 252: WRITE (I02,80001) IVTNUM 02490099 ! 253: GO TO 9461 02500099 ! 254: 29450 IVFAIL = IVFAIL + 1 02510099 ! 255: RVCORR = 0.693 02520099 ! 256: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 02530099 ! 257: 9461 CONTINUE 02540099 ! 258: C 02550099 ! 259: C TEST 946 THROUGH TEST 948 CONTAIN FUNCTION TESTS FOR COMMON 02560099 ! 260: C LOGARITHM FUNCTIONS WHERE THE ARGUMENT AND FUNCTION ARE REAL 02570099 ! 261: C 02580099 ! 262: IVTNUM = 946 02590099 ! 263: C 02600099 ! 264: C **** TEST 946 **** 02610099 ! 265: C 02620099 ! 266: IF (ICZERO) 39460, 9460, 39460 02630099 ! 267: 9460 CONTINUE 02640099 ! 268: RVON01 = 2E2 02650099 ! 269: RVCOMP = ALOG10 (RVON01) 02660099 ! 270: GO TO 49460 02670099 ! 271: 39460 IVDELE = IVDELE + 1 02680099 ! 272: WRITE (I02,80003) IVTNUM 02690099 ! 273: IF (ICZERO) 49460, 9471, 49460 02700099 ! 274: 49460 IF (RVCOMP - 2.296) 29460,19460,49461 02710099 ! 275: 49461 IF (RVCOMP - 2.306) 19460,19460,29460 02720099 ! 276: 19460 IVPASS = IVPASS + 1 02730099 ! 277: WRITE (I02,80001) IVTNUM 02740099 ! 278: GO TO 9471 02750099 ! 279: 29460 IVFAIL = IVFAIL + 1 02760099 ! 280: RVCORR = 2.301 02770099 ! 281: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 02780099 ! 282: 9471 CONTINUE 02790099 ! 283: IVTNUM = 947 02800099 ! 284: C 02810099 ! 285: C **** TEST 947 **** 02820099 ! 286: C 02830099 ! 287: IF (ICZERO) 39470, 9470, 39470 02840099 ! 288: 9470 CONTINUE 02850099 ! 289: RVON01 = .3E+3 02860099 ! 290: RVCOMP = ALOG10 (RVON01) 02870099 ! 291: GO TO 49470 02880099 ! 292: 39470 IVDELE = IVDELE + 1 02890099 ! 293: WRITE (I02,80003) IVTNUM 02900099 ! 294: IF (ICZERO) 49470, 9481, 49470 02910099 ! 295: 49470 IF (RVCOMP - 2.472) 29470,19470,49471 02920099 ! 296: 49471 IF (RVCOMP - 2.482) 19470,19470,29470 02930099 ! 297: 19470 IVPASS = IVPASS + 1 02940099 ! 298: WRITE (I02,80001) IVTNUM 02950099 ! 299: GO TO 9481 02960099 ! 300: 29470 IVFAIL = IVFAIL + 1 02970099 ! 301: RVCORR = 2.477 02980099 ! 302: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 02990099 ! 303: 9481 CONTINUE 03000099 ! 304: IVTNUM = 948 03010099 ! 305: C 03020099 ! 306: C **** TEST 948 **** 03030099 ! 307: C 03040099 ! 308: IF (ICZERO) 39480, 9480, 39480 03050099 ! 309: 9480 CONTINUE 03060099 ! 310: RVON01 = 1350.0 03070099 ! 311: RVCOMP = ALOG10 (RVON01) 03080099 ! 312: GO TO 49480 03090099 ! 313: 39480 IVDELE = IVDELE + 1 03100099 ! 314: WRITE (I02,80003) IVTNUM 03110099 ! 315: IF (ICZERO) 49480, 9491, 49480 03120099 ! 316: 49480 IF (RVCOMP - 3.125) 29480,19480,49481 03130099 ! 317: 49481 IF (RVCOMP - 3.135) 19480,19480,29480 03140099 ! 318: 19480 IVPASS = IVPASS + 1 03150099 ! 319: WRITE (I02,80001) IVTNUM 03160099 ! 320: GO TO 9491 03170099 ! 321: 29480 IVFAIL = IVFAIL + 1 03180099 ! 322: RVCORR = 3.130 03190099 ! 323: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 03200099 ! 324: 9491 CONTINUE 03210099 ! 325: C 03220099 ! 326: C TEST 949 THROUGH TEST 951 CONTAIN FUNCTION TESTS FOR SQUARE ROOT 03230099 ! 327: C FUNCTIONS WHERE THE ARGUMENT AND FUNCTION ARE REAL 03240099 ! 328: C 03250099 ! 329: IVTNUM = 949 03260099 ! 330: C 03270099 ! 331: C **** TEST 949 **** 03280099 ! 332: C 03290099 ! 333: IF (ICZERO) 39490, 9490, 39490 03300099 ! 334: 9490 CONTINUE 03310099 ! 335: RVON01 = 1.0 03320099 ! 336: RVCOMP = SQRT (RVON01) 03330099 ! 337: GO TO 49490 03340099 ! 338: 39490 IVDELE = IVDELE + 1 03350099 ! 339: WRITE (I02,80003) IVTNUM 03360099 ! 340: IF (ICZERO) 49490, 9501, 49490 03370099 ! 341: 49490 IF (RVCOMP - 0.95) 29490,19490,49491 03380099 ! 342: 49491 IF (RVCOMP - 1.05) 19490,19490,29490 03390099 ! 343: 19490 IVPASS = IVPASS + 1 03400099 ! 344: WRITE (I02,80001) IVTNUM 03410099 ! 345: GO TO 9501 03420099 ! 346: 29490 IVFAIL = IVFAIL + 1 03430099 ! 347: RVCORR = 1.00 03440099 ! 348: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 03450099 ! 349: 9501 CONTINUE 03460099 ! 350: IVTNUM = 950 03470099 ! 351: C 03480099 ! 352: C **** TEST 950 **** 03490099 ! 353: C 03500099 ! 354: IF (ICZERO) 39500, 9500, 39500 03510099 ! 355: 9500 CONTINUE 03520099 ! 356: RVCOMP = SQRT (2.0) 03530099 ! 357: GO TO 49500 03540099 ! 358: 39500 IVDELE = IVDELE + 1 03550099 ! 359: WRITE (I02,80003) IVTNUM 03560099 ! 360: IF (ICZERO) 49500, 9511, 49500 03570099 ! 361: 49500 IF (RVCOMP - 1.36) 29500,19500,49501 03580099 ! 362: 49501 IF (RVCOMP - 1.46) 19500,19500,29500 03590099 ! 363: 19500 IVPASS = IVPASS + 1 03600099 ! 364: WRITE (I02,80001) IVTNUM 03610099 ! 365: GO TO 9511 03620099 ! 366: 29500 IVFAIL = IVFAIL + 1 03630099 ! 367: RVCORR = 1.41 03640099 ! 368: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 03650099 ! 369: 9511 CONTINUE 03660099 ! 370: IVTNUM = 951 03670099 ! 371: C 03680099 ! 372: C **** TEST 951 **** 03690099 ! 373: C 03700099 ! 374: IF (ICZERO) 39510, 9510, 39510 03710099 ! 375: 9510 CONTINUE 03720099 ! 376: RVON01 = .229E1 03730099 ! 377: RVCOMP = SQRT (RVON01) 03740099 ! 378: GO TO 49510 03750099 ! 379: 39510 IVDELE = IVDELE + 1 03760099 ! 380: WRITE (I02,80003) IVTNUM 03770099 ! 381: IF (ICZERO) 49510, 9521, 49510 03780099 ! 382: 49510 IF (RVCOMP - 1.46) 29510,19510,49511 03790099 ! 383: 49511 IF (RVCOMP - 1.56) 19510,19510,29510 03800099 ! 384: 19510 IVPASS = IVPASS + 1 03810099 ! 385: WRITE (I02,80001) IVTNUM 03820099 ! 386: GO TO 9521 03830099 ! 387: 29510 IVFAIL = IVFAIL + 1 03840099 ! 388: RVCORR = 1.51 03850099 ! 389: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 03860099 ! 390: 9521 CONTINUE 03870099 ! 391: C 03880099 ! 392: C TEST 952 THROUGH TEST 953 CONTAIN FUNCTION TESTS FOR TRIGONOMETRIC03890099 ! 393: C SINE FUNCTIONS WHERE THE ARGUMENT AND FUNCTION ARE REAL 03900099 ! 394: C 03910099 ! 395: IVTNUM = 952 03920099 ! 396: C 03930099 ! 397: C **** TEST 952 **** 03940099 ! 398: C 03950099 ! 399: IF (ICZERO) 39520, 9520, 39520 03960099 ! 400: 9520 CONTINUE 03970099 ! 401: RVON01 = 0.00000 03980099 ! 402: RVCOMP = SIN (RVON01) 03990099 ! 403: GO TO 49520 04000099 ! 404: 39520 IVDELE = IVDELE + 1 04010099 ! 405: WRITE (I02,80003) IVTNUM 04020099 ! 406: IF (ICZERO) 49520, 9531, 49520 04030099 ! 407: 49520 IF (RVCOMP + .00005) 29520,19520,49521 04040099 ! 408: 49521 IF (RVCOMP - .00005) 19520,19520,29520 04050099 ! 409: 19520 IVPASS = IVPASS + 1 04060099 ! 410: WRITE (I02,80001) IVTNUM 04070099 ! 411: GO TO 9531 04080099 ! 412: 29520 IVFAIL = IVFAIL + 1 04090099 ! 413: RVCORR = 0.00000 04100099 ! 414: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 04110099 ! 415: 9531 CONTINUE 04120099 ! 416: IVTNUM = 953 04130099 ! 417: C 04140099 ! 418: C **** TEST 953 **** 04150099 ! 419: C 04160099 ! 420: IF (ICZERO) 39530, 9530, 39530 04170099 ! 421: 9530 CONTINUE 04180099 ! 422: RVON01 = 0.5 04190099 ! 423: RVCOMP = SIN (RVON01) 04200099 ! 424: GO TO 49530 04210099 ! 425: 39530 IVDELE = IVDELE + 1 04220099 ! 426: WRITE (I02,80003) IVTNUM 04230099 ! 427: IF (ICZERO) 49530, 9541, 49530 04240099 ! 428: 49530 IF (RVCOMP - .474) 29530,19530,49531 04250099 ! 429: 49531 IF (RVCOMP - .484) 19530,19530,29530 04260099 ! 430: 19530 IVPASS = IVPASS + 1 04270099 ! 431: WRITE (I02,80001) IVTNUM 04280099 ! 432: GO TO 9541 04290099 ! 433: 29530 IVFAIL = IVFAIL + 1 04300099 ! 434: RVCORR = .479 04310099 ! 435: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 04320099 ! 436: 9541 CONTINUE 04330099 ! 437: IVTNUM = 954 04340099 ! 438: C 04350099 ! 439: C **** TEST 954 **** 04360099 ! 440: C 04370099 ! 441: IF (ICZERO) 39540, 9540, 39540 04380099 ! 442: 9540 CONTINUE 04390099 ! 443: RVON01 = 4E0 04400099 ! 444: RVCOMP = SIN (RVON01) 04410099 ! 445: GO TO 49540 04420099 ! 446: 39540 IVDELE = IVDELE + 1 04430099 ! 447: WRITE (I02,80003) IVTNUM 04440099 ! 448: IF (ICZERO) 49540, 9551, 49540 04450099 ! 449: 49540 IF (RVCOMP + .762) 29540,19540,49541 04460099 ! 450: 49541 IF (RVCOMP + .752) 19540,19540,29540 04470099 ! 451: 19540 IVPASS = IVPASS + 1 04480099 ! 452: WRITE (I02,80001) IVTNUM 04490099 ! 453: GO TO 9551 04500099 ! 454: 29540 IVFAIL = IVFAIL + 1 04510099 ! 455: RVCORR = -.757 04520099 ! 456: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 04530099 ! 457: 9551 CONTINUE 04540099 ! 458: C 04550099 ! 459: C TEST 955 THROUGH TEST 957 CONTAIN FUNCTION TESTS FOR TRIGONOMETRIC04560099 ! 460: C COSINE FUNCTIONS WHERE THE ARGUMENT AND FUNCTION ARE REAL 04570099 ! 461: C 04580099 ! 462: IVTNUM = 955 04590099 ! 463: C 04600099 ! 464: C **** TEST 955 **** 04610099 ! 465: C 04620099 ! 466: IF (ICZERO) 39550, 9550, 39550 04630099 ! 467: 9550 CONTINUE 04640099 ! 468: RVON01 = 0.00000 04650099 ! 469: RVCOMP = COS (RVON01) 04660099 ! 470: GO TO 49550 04670099 ! 471: 39550 IVDELE = IVDELE + 1 04680099 ! 472: WRITE (I02,80003) IVTNUM 04690099 ! 473: IF (ICZERO) 49550, 9561, 49550 04700099 ! 474: 49550 IF (RVCOMP - .995) 29550,19550,49551 04710099 ! 475: 49551 IF (RVCOMP - 1.005) 19550,19550,29550 04720099 ! 476: 19550 IVPASS = IVPASS + 1 04730099 ! 477: WRITE (I02,80001) IVTNUM 04740099 ! 478: GO TO 9561 04750099 ! 479: 29550 IVFAIL = IVFAIL + 1 04760099 ! 480: RVCORR = 1.000 04770099 ! 481: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 04780099 ! 482: 9561 CONTINUE 04790099 ! 483: IVTNUM = 956 04800099 ! 484: C 04810099 ! 485: C **** TEST 956 **** 04820099 ! 486: C 04830099 ! 487: IF (ICZERO) 39560, 9560, 39560 04840099 ! 488: 9560 CONTINUE 04850099 ! 489: RVON01 = 1.0E0 04860099 ! 490: RVCOMP = COS (RVON01) 04870099 ! 491: GO TO 49560 04880099 ! 492: 39560 IVDELE = IVDELE + 1 04890099 ! 493: WRITE (I02,80003) IVTNUM 04900099 ! 494: IF (ICZERO) 49560, 9571, 49560 04910099 ! 495: 49560 IF (RVCOMP - .535) 29560,19560,49561 04920099 ! 496: 49561 IF (RVCOMP - .545) 19560,19560,29560 04930099 ! 497: 19560 IVPASS = IVPASS + 1 04940099 ! 498: WRITE (I02,80001) IVTNUM 04950099 ! 499: GO TO 9571 04960099 ! 500: 29560 IVFAIL = IVFAIL + 1 04970099 ! 501: RVCORR = 0.540 04980099 ! 502: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 04990099 ! 503: 9571 CONTINUE 05000099 ! 504: IVTNUM = 957 05010099 ! 505: C 05020099 ! 506: C **** TEST 957 **** 05030099 ! 507: C 05040099 ! 508: IF (ICZERO) 39570, 9570, 39570 05050099 ! 509: 9570 CONTINUE 05060099 ! 510: RVCOMP = COS (4.0) 05070099 ! 511: GO TO 49570 05080099 ! 512: 39570 IVDELE = IVDELE + 1 05090099 ! 513: WRITE (I02,80003) IVTNUM 05100099 ! 514: IF (ICZERO) 49570, 9581, 49570 05110099 ! 515: 49570 IF (RVCOMP + .659) 29570,19570,49571 05120099 ! 516: 49571 IF (RVCOMP + .649) 19570,19570,29570 05130099 ! 517: 19570 IVPASS = IVPASS + 1 05140099 ! 518: WRITE (I02,80001) IVTNUM 05150099 ! 519: GO TO 9581 05160099 ! 520: 29570 IVFAIL = IVFAIL + 1 05170099 ! 521: RVCORR = -0.654 05180099 ! 522: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 05190099 ! 523: 9581 CONTINUE 05200099 ! 524: C 05210099 ! 525: C TEST 958 THROUGH TEST 960 CONTAIN FUNCTION TESTS FOR HYPERBOLIC 05220099 ! 526: C TANGENT FUNCTIONS WHERE THE ARGUMENT AND FUNCTION ARE REAL 05230099 ! 527: C 05240099 ! 528: IVTNUM = 958 05250099 ! 529: C 05260099 ! 530: C **** TEST 958 **** 05270099 ! 531: C 05280099 ! 532: IF (ICZERO) 39580, 9580, 39580 05290099 ! 533: 9580 CONTINUE 05300099 ! 534: RVCOMP = TANH (0.0) 05310099 ! 535: GO TO 49580 05320099 ! 536: 39580 IVDELE = IVDELE + 1 05330099 ! 537: WRITE (I02,80003) IVTNUM 05340099 ! 538: IF (ICZERO) 49580, 9591, 49580 05350099 ! 539: 49580 IF (RVCOMP + .00005) 29580,19580,49581 05360099 ! 540: 49581 IF (RVCOMP - .00005) 19580,19580,29580 05370099 ! 541: 19580 IVPASS = IVPASS + 1 05380099 ! 542: WRITE (I02,80001) IVTNUM 05390099 ! 543: GO TO 9591 05400099 ! 544: 29580 IVFAIL = IVFAIL + 1 05410099 ! 545: RVCORR = 0.00000 05420099 ! 546: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 05430099 ! 547: 9591 CONTINUE 05440099 ! 548: IVTNUM = 959 05450099 ! 549: C 05460099 ! 550: C **** TEST 959 **** 05470099 ! 551: C 05480099 ! 552: IF (ICZERO) 39590, 9590, 39590 05490099 ! 553: 9590 CONTINUE 05500099 ! 554: RVON01 = .5E0 05510099 ! 555: RVCOMP = TANH (RVON01) 05520099 ! 556: GO TO 49590 05530099 ! 557: 39590 IVDELE = IVDELE + 1 05540099 ! 558: WRITE (I02,80003) IVTNUM 05550099 ! 559: IF (ICZERO) 49590, 9601, 49590 05560099 ! 560: 49590 IF (RVCOMP - .457) 29590,19590,49591 05570099 ! 561: 49591 IF (RVCOMP - .467) 19590,19590,29590 05580099 ! 562: 19590 IVPASS = IVPASS + 1 05590099 ! 563: WRITE (I02,80001) IVTNUM 05600099 ! 564: GO TO 9601 05610099 ! 565: 29590 IVFAIL = IVFAIL + 1 05620099 ! 566: RVCORR = 0.462 05630099 ! 567: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 05640099 ! 568: 9601 CONTINUE 05650099 ! 569: IVTNUM = 960 05660099 ! 570: C 05670099 ! 571: C **** TEST 960 **** 05680099 ! 572: C 05690099 ! 573: IF (ICZERO) 39600, 9600, 39600 05700099 ! 574: 9600 CONTINUE 05710099 ! 575: RVON01 = .25 05720099 ! 576: RVCOMP = TANH (RVON01) 05730099 ! 577: GO TO 49600 05740099 ! 578: 39600 IVDELE = IVDELE + 1 05750099 ! 579: WRITE (I02,80003) IVTNUM 05760099 ! 580: IF (ICZERO) 49600, 9611, 49600 05770099 ! 581: 49600 IF (RVCOMP - .240) 29600,19600,49601 05780099 ! 582: 49601 IF (RVCOMP - .250) 19600,19600,29600 05790099 ! 583: 19600 IVPASS = IVPASS + 1 05800099 ! 584: WRITE (I02,80001) IVTNUM 05810099 ! 585: GO TO 9611 05820099 ! 586: 29600 IVFAIL = IVFAIL + 1 05830099 ! 587: RVCORR = 0.245 05840099 ! 588: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 05850099 ! 589: 9611 CONTINUE 05860099 ! 590: C 05870099 ! 591: C TESTS 961 AND 962 CONTAIN TESTS FOR ARCTANGENT OF THE FORM 05880099 ! 592: C ATAN (A) WHERE THE ARGUMENT AND FUNCTION ARE REAL 05890099 ! 593: C 05900099 ! 594: IVTNUM = 961 05910099 ! 595: C 05920099 ! 596: C **** TEST 961 **** 05930099 ! 597: C 05940099 ! 598: IF (ICZERO) 39610, 9610, 39610 05950099 ! 599: 9610 CONTINUE 05960099 ! 600: RVCOMP = ATAN (0.0) 05970099 ! 601: GO TO 49610 05980099 ! 602: 39610 IVDELE = IVDELE + 1 05990099 ! 603: WRITE (I02,80003) IVTNUM 06000099 ! 604: IF (ICZERO) 49610, 9621, 49610 06010099 ! 605: 49610 IF (RVCOMP + .00005) 29610,19610,49611 06020099 ! 606: 49611 IF (RVCOMP - .00005) 19610,19610,29610 06030099 ! 607: 19610 IVPASS = IVPASS + 1 06040099 ! 608: WRITE (I02,80001) IVTNUM 06050099 ! 609: GO TO 9621 06060099 ! 610: 29610 IVFAIL = IVFAIL + 1 06070099 ! 611: RVCORR = 0.00000 06080099 ! 612: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 06090099 ! 613: 9621 CONTINUE 06100099 ! 614: IVTNUM = 962 06110099 ! 615: C 06120099 ! 616: C **** TEST 962 **** 06130099 ! 617: C 06140099 ! 618: IF (ICZERO) 39620, 9620, 39620 06150099 ! 619: 9620 CONTINUE 06160099 ! 620: RVON01 = 5E-1 06170099 ! 621: RVCOMP = ATAN (RVON01) 06180099 ! 622: GO TO 49620 06190099 ! 623: 39620 IVDELE = IVDELE + 1 06200099 ! 624: WRITE (I02,80003) IVTNUM 06210099 ! 625: IF (ICZERO) 49620, 9631, 49620 06220099 ! 626: 49620 IF (RVCOMP - .459) 29620,19620,49621 06230099 ! 627: 49621 IF (RVCOMP - .469) 19620,19620,29620 06240099 ! 628: 19620 IVPASS = IVPASS + 1 06250099 ! 629: WRITE (I02,80001) IVTNUM 06260099 ! 630: GO TO 9631 06270099 ! 631: 29620 IVFAIL = IVFAIL + 1 06280099 ! 632: RVCORR = 0.464 06290099 ! 633: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 06300099 ! 634: 9631 CONTINUE 06310099 ! 635: C 06320099 ! 636: C TESTS 963 AND 964 CONTAIN TESTS FOR ARCTANGENT OF THE FORM 06330099 ! 637: C ATAN2 (A1,A2) WHERE THE ARGUMENTS AND FUNCTION ARE REAL 06340099 ! 638: C 06350099 ! 639: IVTNUM = 963 06360099 ! 640: C 06370099 ! 641: C **** TEST 963 **** 06380099 ! 642: C 06390099 ! 643: IF (ICZERO) 39630, 9630, 39630 06400099 ! 644: 9630 CONTINUE 06410099 ! 645: RVON01 = 0.0 06420099 ! 646: RVON02 = 1E0 06430099 ! 647: RVCOMP = ATAN2 (RVON01,RVON02) 06440099 ! 648: GO TO 49630 06450099 ! 649: 39630 IVDELE = IVDELE + 1 06460099 ! 650: WRITE (I02,80003) IVTNUM 06470099 ! 651: IF (ICZERO) 49630, 9641, 49630 06480099 ! 652: 49630 IF (RVCOMP + .00005) 29630,19630,49631 06490099 ! 653: 49631 IF (RVCOMP - .00005) 19630,19630,29630 06500099 ! 654: 19630 IVPASS = IVPASS + 1 06510099 ! 655: WRITE (I02,80001) IVTNUM 06520099 ! 656: GO TO 9641 06530099 ! 657: 29630 IVFAIL = IVFAIL + 1 06540099 ! 658: RVCORR = 0.00000 06550099 ! 659: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 06560099 ! 660: 9641 CONTINUE 06570099 ! 661: IVTNUM = 964 06580099 ! 662: C 06590099 ! 663: C **** TEST 964 **** 06600099 ! 664: C 06610099 ! 665: IF (ICZERO) 39640, 9640, 39640 06620099 ! 666: 9640 CONTINUE 06630099 ! 667: RVON01 = 2E1 06640099 ! 668: RVCOMP = ATAN2 (-1.0,RVON01) 06650099 ! 669: GO TO 49640 06660099 ! 670: 39640 IVDELE = IVDELE + 1 06670099 ! 671: WRITE (I02,80003) IVTNUM 06680099 ! 672: IF (ICZERO) 49640, 9651, 49640 06690099 ! 673: 49640 IF (RVCOMP + .05001) 29640,19640,49641 06700099 ! 674: 49641 IF (RVCOMP + .04991) 19640,19640,29640 06710099 ! 675: 19640 IVPASS = IVPASS + 1 06720099 ! 676: WRITE (I02,80001) IVTNUM 06730099 ! 677: GO TO 9651 06740099 ! 678: 29640 IVFAIL = IVFAIL + 1 06750099 ! 679: RVCORR = -.04996 06760099 ! 680: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 06770099 ! 681: 9651 CONTINUE 06780099 ! 682: C 06790099 ! 683: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 06800099 ! 684: 99999 CONTINUE 06810099 ! 685: WRITE (I02,90002) 06820099 ! 686: WRITE (I02,90006) 06830099 ! 687: WRITE (I02,90002) 06840099 ! 688: WRITE (I02,90002) 06850099 ! 689: WRITE (I02,90007) 06860099 ! 690: WRITE (I02,90002) 06870099 ! 691: WRITE (I02,90008) IVFAIL 06880099 ! 692: WRITE (I02,90009) IVPASS 06890099 ! 693: WRITE (I02,90010) IVDELE 06900099 ! 694: C 06910099 ! 695: C 06920099 ! 696: C TERMINATE ROUTINE EXECUTION 06930099 ! 697: STOP 06940099 ! 698: C 06950099 ! 699: C FORMAT STATEMENTS FOR PAGE HEADERS 06960099 ! 700: 90000 FORMAT (1H1) 06970099 ! 701: 90002 FORMAT (1H ) 06980099 ! 702: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 06990099 ! 703: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 07000099 ! 704: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 07010099 ! 705: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 07020099 ! 706: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 07030099 ! 707: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 07040099 ! 708: C 07050099 ! 709: C FORMAT STATEMENTS FOR RUN SUMMARIES 07060099 ! 710: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 07070099 ! 711: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 07080099 ! 712: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 07090099 ! 713: C 07100099 ! 714: C FORMAT STATEMENTS FOR TEST RESULTS 07110099 ! 715: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 07120099 ! 716: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 07130099 ! 717: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 07140099 ! 718: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 07150099 ! 719: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 07160099 ! 720: C 07170099 ! 721: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM099) 07180099 ! 722: END 07190099
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.