|
|
1.1 ! root 1: c comment section ! 2: c ! 3: c fm097 ! 4: c ! 5: c this routine tests intrinsic functions where the function type is ! 6: c real and the arguments are either integer or real. the real and ! 7: c integer variables and the real and integer constants contain both ! 8: c positive and negative values. the intrinsic functions tested by ! 9: c fm097 include ! 10: c type of ! 11: c intrinsic function name argument function ! 12: c ------------------ ---- -------- -------- ! 13: c absolute value abs real real ! 14: c truncation aint real real ! 15: c remaindering amod real real ! 16: c choosing largest value amax0 integer real ! 17: c amax1 real real ! 18: c choosing smallest value amin0 integer real ! 19: c amin1 real real ! 20: c float float integer real ! 21: c transfer of sign sign real real ! 22: c positive difference dim real real ! 23: c ! 24: c references ! 25: c american national standard programming language fortran, ! 26: c x3.9-1978 ! 27: c ! 28: c section 4.1.2, type rules for data and procedure identifiers ! 29: c section 15.3, intrinsic function ! 30: c section 15.3.2, intrinsic functions and their reference ! 31: c ! 32: c ! 33: c ********************************************************** ! 34: c ! 35: c a compiler validation system for the fortran language ! 36: c based on specifications as defined in american national standard ! 37: c programming language fortran x3.9-1978, has been developed by the ! 38: c federal cobol compiler testing service. the fortran compiler ! 39: c validation system (fcvs) consists of audit routines, their related ! 40: c data, and an executive system. each audit routine is a fortran ! 41: c program, subprogram or function which includes tests of specific ! 42: c language elements and supporting procedures indicating the result ! 43: c of executing these tests. ! 44: c ! 45: c this particular program/subprogram/function contains features ! 46: c found only in the subset as defined in x3.9-1978. ! 47: c ! 48: c suggestions and comments should be forwarded to - ! 49: c ! 50: c department of the navy ! 51: c federal cobol compiler testing service ! 52: c washington, d.c. 20376 ! 53: c ! 54: c ********************************************************** ! 55: c ! 56: c ! 57: c ! 58: c initialization section ! 59: c ! 60: c initialize constants ! 61: c ************** ! 62: c i01 contains the logical unit number for the card reader. ! 63: i01 = 5 ! 64: c i02 contains the logical unit number for the printer. ! 65: i02 = 6 ! 66: c system environment section ! 67: c ! 68: cx010 this card is replaced by contents of fexec x-010 control card. ! 69: c the cx010 card is for overriding the program default i01 = 5 ! 70: c (unit number for card reader). ! 71: cx011 this card is replaced by contents of fexec x-011 control card. ! 72: c the cx011 card is for systems which require additional ! 73: c fortran statements for files associated with cx010 above. ! 74: c ! 75: cx020 this card is replaced by contents of fexec x-020 control card. ! 76: c the cx020 card is for overriding the program default i02 = 6 ! 77: c (unit number for printer). ! 78: cx021 this card is replaced by contents of fexec x-021 control card. ! 79: c the cx021 card is for systems which require additional ! 80: c fortran statements for files associated with cx020 above. ! 81: c ! 82: ivpass=0 ! 83: ivfail=0 ! 84: ivdele=0 ! 85: iczero=0 ! 86: c ! 87: c write page headers ! 88: write (i02,90000) ! 89: write (i02,90001) ! 90: write (i02,90002) ! 91: write (i02, 90002) ! 92: write (i02,90003) ! 93: write (i02,90002) ! 94: write (i02,90004) ! 95: write (i02,90002) ! 96: write (i02,90011) ! 97: write (i02,90002) ! 98: write (i02,90002) ! 99: write (i02,90005) ! 100: write (i02,90006) ! 101: write (i02,90002) ! 102: c ! 103: c test section ! 104: c ! 105: c test 875 through test 878 contain intrinsic function tests for ! 106: c absolute value where argument and function are real ! 107: c ! 108: ivtnum = 875 ! 109: c ! 110: c **** test 875 **** ! 111: c ! 112: if (iczero) 38750, 8750, 38750 ! 113: 8750 continue ! 114: rvcomp = abs (-38.2) ! 115: go to 48750 ! 116: 38750 ivdele = ivdele + 1 ! 117: write (i02,80003) ivtnum ! 118: if (iczero) 48750, 8761, 48750 ! 119: 48750 if (rvcomp - 38.195) 28750,18750,48751 ! 120: 48751 if (rvcomp - 38.205) 18750,18750,28750 ! 121: 18750 ivpass = ivpass + 1 ! 122: write (i02,80001) ivtnum ! 123: go to 8761 ! 124: 28750 ivfail = ivfail + 1 ! 125: rvcorr = 38.200 ! 126: write (i02,80005) ivtnum, rvcomp, rvcorr ! 127: 8761 continue ! 128: ivtnum = 876 ! 129: c ! 130: c **** test 876 **** ! 131: c ! 132: if (iczero) 38760, 8760, 38760 ! 133: 8760 continue ! 134: rvon01 = 445.06 ! 135: rvcomp = abs (rvon01) ! 136: go to 48760 ! 137: 38760 ivdele = ivdele + 1 ! 138: write (i02,80003) ivtnum ! 139: if (iczero) 48760, 8771, 48760 ! 140: 48760 if (rvcomp - 445.01) 28760,18760,48761 ! 141: 48761 if (rvcomp - 445.11) 18760,18760,28760 ! 142: 18760 ivpass = ivpass + 1 ! 143: write (i02,80001) ivtnum ! 144: go to 8771 ! 145: 28760 ivfail = ivfail + 1 ! 146: rvcorr = 445.06 ! 147: write (i02,80005) ivtnum, rvcomp, rvcorr ! 148: 8771 continue ! 149: ivtnum = 877 ! 150: c ! 151: c **** test 877 **** ! 152: c ! 153: if (iczero) 38770, 8770, 38770 ! 154: 8770 continue ! 155: rvon01 = -32.176 ! 156: rvcomp = abs (rvon01) ! 157: go to 48770 ! 158: 38770 ivdele = ivdele + 1 ! 159: write (i02,80003) ivtnum ! 160: if (iczero) 48770, 8781, 48770 ! 161: 48770 if (rvcomp - 32.171) 28770,18770,48771 ! 162: 48771 if (rvcomp - 32.181) 18770,18770,28770 ! 163: 18770 ivpass = ivpass + 1 ! 164: write (i02,80001) ivtnum ! 165: go to 8781 ! 166: 28770 ivfail = ivfail + 1 ! 167: rvcorr = 32.176 ! 168: write (i02,80005) ivtnum, rvcomp, rvcorr ! 169: 8781 continue ! 170: ivtnum = 878 ! 171: c ! 172: c **** test 878 **** ! 173: c ! 174: if (iczero) 38780, 8780, 38780 ! 175: 8780 continue ! 176: rvon01 = -2.2e+2 ! 177: rvcomp = abs (rvon01) ! 178: go to 48780 ! 179: 38780 ivdele = ivdele + 1 ! 180: write (i02,80003) ivtnum ! 181: if (iczero) 48780, 8791, 48780 ! 182: 48780 if (rvcomp - 219.95) 28780,18780,48781 ! 183: 48781 if (rvcomp - 220.05) 18780,18780,28780 ! 184: 18780 ivpass = ivpass + 1 ! 185: write (i02,80001) ivtnum ! 186: go to 8791 ! 187: 28780 ivfail = ivfail + 1 ! 188: rvcorr = 220.00 ! 189: write (i02,80005) ivtnum, rvcomp, rvcorr ! 190: 8791 continue ! 191: ivtnum = 879 ! 192: c ! 193: c **** test 879 **** ! 194: c ! 195: c test 879 through test 882 contain intrinsic function tests for ! 196: c truncation where argument and function are real ! 197: c ! 198: c ! 199: if (iczero) 38790, 8790, 38790 ! 200: 8790 continue ! 201: rvcomp = aint (38.2) ! 202: go to 48790 ! 203: 38790 ivdele = ivdele + 1 ! 204: write (i02,80003) ivtnum ! 205: if (iczero) 48790, 8801, 48790 ! 206: 48790 if (rvcomp - 37.995) 28790,18790,48791 ! 207: 48791 if (rvcomp - 38.005) 18790,18790,28790 ! 208: 18790 ivpass = ivpass + 1 ! 209: write (i02,80001) ivtnum ! 210: go to 8801 ! 211: 28790 ivfail = ivfail + 1 ! 212: rvcorr = 38.000 ! 213: write (i02,80005) ivtnum, rvcomp, rvcorr ! 214: 8801 continue ! 215: ivtnum = 880 ! 216: c ! 217: c **** test 880 **** ! 218: c ! 219: if (iczero) 38800, 8800, 38800 ! 220: 8800 continue ! 221: rvon01 = -445.95 ! 222: rvcomp = aint (rvon01) ! 223: go to 48800 ! 224: 38800 ivdele = ivdele + 1 ! 225: write (i02,80003) ivtnum ! 226: if (iczero) 48800, 8811, 48800 ! 227: 48800 if (rvcomp + 445.05) 28800,18800,48801 ! 228: 48801 if (rvcomp + 444.95) 18800,18800,28800 ! 229: 18800 ivpass = ivpass + 1 ! 230: write (i02,80001) ivtnum ! 231: go to 8811 ! 232: 28800 ivfail = ivfail + 1 ! 233: rvcorr = -445.00 ! 234: write (i02,80005) ivtnum, rvcomp, rvcorr ! 235: 8811 continue ! 236: ivtnum = 881 ! 237: c ! 238: c **** test 881 **** ! 239: c ! 240: if (iczero) 38810, 8810, 38810 ! 241: 8810 continue ! 242: rvon01 = 466.01 ! 243: rvcomp = aint (rvon01) ! 244: go to 48810 ! 245: 38810 ivdele = ivdele + 1 ! 246: write (i02,80003) ivtnum ! 247: if (iczero) 48810, 8821, 48810 ! 248: 48810 if (rvcomp - 465.95) 28810,18810,48811 ! 249: 48811 if (rvcomp - 466.05) 18810,18810,28810 ! 250: 18810 ivpass = ivpass + 1 ! 251: write (i02,80001) ivtnum ! 252: go to 8821 ! 253: 28810 ivfail = ivfail + 1 ! 254: rvcomp = 466.00 ! 255: write (i02,80005) ivtnum, rvcomp, rvcorr ! 256: 8821 continue ! 257: ivtnum = 882 ! 258: c ! 259: c **** test 882 **** ! 260: c ! 261: if (iczero) 38820, 8820, 38820 ! 262: 8820 continue ! 263: rvon01 = 382e-1 ! 264: rvcomp = aint (rvon01) ! 265: go to 48820 ! 266: 38820 ivdele = ivdele + 1 ! 267: write (i02,80003) ivtnum ! 268: if (iczero) 48820, 8831, 48820 ! 269: 48820 if (rvcomp - 37.995) 28820,18820,48821 ! 270: 48821 if (rvcomp - 38.005) 18820,18820,28820 ! 271: 18820 ivpass = ivpass + 1 ! 272: write (i02,80001) ivtnum ! 273: go to 8831 ! 274: 28820 ivfail = ivfail + 1 ! 275: rvcorr = 38.000 ! 276: write (i02,80005) ivtnum, rvcomp, rvcorr ! 277: 8831 continue ! 278: c ! 279: c test 883 through 886 contain intrinsic function tests for ! 280: c remaindering where argument and function are real ! 281: c ! 282: ivtnum = 883 ! 283: c ! 284: c **** test 883 **** ! 285: c ! 286: if (iczero) 38830, 8830, 38830 ! 287: 8830 continue ! 288: rvcomp = amod (42.0,19.0) ! 289: go to 48830 ! 290: 38830 ivdele = ivdele + 1 ! 291: write (i02,80003) ivtnum ! 292: if (iczero) 48830, 8841, 48830 ! 293: 48830 if (rvcomp - 3.9995) 28830,18830,48831 ! 294: 48831 if (rvcomp - 4.0005) 18830,18830,28830 ! 295: 18830 ivpass = ivpass + 1 ! 296: write (i02,80001) ivtnum ! 297: go to 8841 ! 298: 28830 ivfail = ivfail + 1 ! 299: rvcorr = 4.0000 ! 300: write (i02,80005) ivtnum, rvcomp, rvcorr ! 301: 8841 continue ! 302: ivtnum = 884 ! 303: c ! 304: c **** test 884 **** ! 305: c ! 306: if (iczero) 38840, 8840, 38840 ! 307: 8840 continue ! 308: rvon01 = 16.27 ! 309: rvon02 = 2.0 ! 310: rvcomp = amod (rvon01,rvon02) ! 311: go to 48840 ! 312: 38840 ivdele = ivdele + 1 ! 313: write (i02,80003) ivtnum ! 314: if (iczero) 48840, 8851, 48840 ! 315: 48840 if (rvcomp - .26995) 28840,18840,48841 ! 316: 48841 if (rvcomp - .27005) 18840,18840,28840 ! 317: 18840 ivpass = ivpass + 1 ! 318: write (i02,80001) ivtnum ! 319: go to 8851 ! 320: 28840 ivfail = ivfail + 1 ! 321: rvcorr = .27000 ! 322: write (i02,80005) ivtnum, rvcomp, rvcorr ! 323: 8851 continue ! 324: ivtnum = 885 ! 325: c ! 326: c **** test 885 **** ! 327: c ! 328: if (iczero) 38850, 8850, 38850 ! 329: 8850 continue ! 330: rvon01 = 225.0 ! 331: rvon02 = 5.0e1 ! 332: rvcomp = amod (rvon01,rvon02) ! 333: go to 48850 ! 334: 38850 ivdele = ivdele + 1 ! 335: write (i02,80003) ivtnum ! 336: if (iczero) 48850, 8861, 48850 ! 337: 48850 if (rvcomp - 24.995) 28850,18850,48851 ! 338: 48851 if (rvcomp - 25.005) 18850,18850,28850 ! 339: 18850 ivpass = ivpass + 1 ! 340: write (i02,80001) ivtnum ! 341: go to 8861 ! 342: 28850 ivfail = ivfail + 1 ! 343: rvcorr = 25.000 ! 344: write (i02,80005) ivtnum, rvcomp, rvcorr ! 345: 8861 continue ! 346: ivtnum = 886 ! 347: c ! 348: c **** test 886 **** ! 349: c ! 350: if (iczero) 38860, 8860, 38860 ! 351: 8860 continue ! 352: rvon01 = -0.390e+2 ! 353: rvon02 = 5e2 ! 354: rvcomp = amod (rvon01,rvon02) ! 355: go to 48860 ! 356: 38860 ivdele = ivdele + 1 ! 357: write (i02,80003) ivtnum ! 358: if (iczero) 48860, 8871, 48860 ! 359: 48860 if (rvcomp + 39.005) 28860,18860,48861 ! 360: 48861 if (rvcomp + 38.995) 18860,18860,28860 ! 361: 18860 ivpass = ivpass + 1 ! 362: write (i02,80001) ivtnum ! 363: go to 8871 ! 364: 28860 ivfail = ivfail + 1 ! 365: rvcorr = -39.000 ! 366: write (i02,80005) ivtnum, rvcomp, rvcorr ! 367: 8871 continue ! 368: c ! 369: c test 887 and 888 contain intrinsic function tests for choosing ! 370: c largest value where arguments are integer and function is real ! 371: c ! 372: ivtnum = 887 ! 373: c ! 374: c **** test 887 **** ! 375: c ! 376: if (iczero) 38870, 8870, 38870 ! 377: 8870 continue ! 378: ivon01 = 317 ! 379: ivon02 = -99 ! 380: ivon03 = 1 ! 381: rvcomp = amax0 (263,ivon01,ivon02,ivon03) ! 382: go to 48870 ! 383: 38870 ivdele = ivdele + 1 ! 384: write (i02,80003) ivtnum ! 385: if (iczero) 48870, 8881, 48870 ! 386: 48870 if (rvcomp - 316.95) 28870,18870,48871 ! 387: 48871 if (rvcomp - 317.05) 18870,18870,28870 ! 388: 18870 ivpass = ivpass + 1 ! 389: write (i02,80001) ivtnum ! 390: go to 8881 ! 391: 28870 ivfail = ivfail + 1 ! 392: rvcorr = 317.00 ! 393: write (i02,80005) ivtnum, rvcomp, rvcorr ! 394: 8881 continue ! 395: ivtnum = 888 ! 396: c ! 397: c **** test 888 **** ! 398: c ! 399: if (iczero) 38880, 8880, 38880 ! 400: 8880 continue ! 401: ivon01 = 2572 ! 402: ivon02 = 2570 ! 403: rvcomp = amax0 (ivon01,ivon02) ! 404: go to 48880 ! 405: 38880 ivdele = ivdele + 1 ! 406: write (i02,80003) ivtnum ! 407: if (iczero) 48880, 8891, 48880 ! 408: 48880 if (rvcomp - 2571.5) 28880,18880,48881 ! 409: 48881 if (rvcomp - 2572.5) 18880,18880,28880 ! 410: 18880 ivpass = ivpass + 1 ! 411: write (i02,80001) ivtnum ! 412: go to 8891 ! 413: 28880 ivfail = ivfail + 1 ! 414: rvcorr = 2572.0 ! 415: write (i02,80005) ivtnum, rvcomp, rvcorr ! 416: 8891 continue ! 417: c ! 418: c test 889 and 890 contain intrinsic function tests for choosing ! 419: c largest value where the arguments and function are real ! 420: c ! 421: ivtnum = 889 ! 422: c ! 423: c **** test 889 **** ! 424: c ! 425: if (iczero) 38890, 8890, 38890 ! 426: 8890 continue ! 427: rvon01 = .326e+2 ! 428: rvon02 = 22.075 ! 429: rvon03 = 76e-1 ! 430: rvcomp = amax1 (rvon01,rvon02,rvon03) ! 431: go to 48890 ! 432: 38890 ivdele = ivdele + 1 ! 433: write (i02,80003) ivtnum ! 434: if (iczero) 48890, 8901, 48890 ! 435: 48890 if (rvcomp - 32.595) 28890,18890,48891 ! 436: 48891 if (rvcomp - 32.605) 18890,18890,28890 ! 437: 18890 ivpass = ivpass + 1 ! 438: write (i02,80001) ivtnum ! 439: go to 8901 ! 440: 28890 ivfail = ivfail + 1 ! 441: rvcorr = 32.600 ! 442: write (i02,80005) ivtnum, rvcomp, rvcorr ! 443: 8901 continue ! 444: ivtnum = 890 ! 445: c ! 446: c **** test 890 **** ! 447: c ! 448: if (iczero) 38900, 8900, 38900 ! 449: 8900 continue ! 450: rvon01 = -6.3e2 ! 451: rvon02 = -21.0 ! 452: rvcomp = amax1 (-463.3,rvon01,rvon02) ! 453: go to 48900 ! 454: 38900 ivdele = ivdele + 1 ! 455: write (i02,80003) ivtnum ! 456: if (iczero) 48900, 8911, 48900 ! 457: 48900 if (rvcomp + 21.005) 28900,18900,48901 ! 458: 48901 if (rvcomp + 20.995) 18900,18900,28900 ! 459: 18900 ivpass = ivpass + 1 ! 460: write (i02,80001) ivtnum ! 461: go to 8911 ! 462: 28900 ivfail = ivfail + 1 ! 463: rvcorr = -21.000 ! 464: write (i02,80005) ivtnum, rvcomp, rvcorr ! 465: 8911 continue ! 466: c ! 467: c tests 891 and 892 contain intrinsic function tests for choosing ! 468: c smallest value where arguments are integer and function is real ! 469: c ! 470: ivtnum = 891 ! 471: c ! 472: c **** test 891 **** ! 473: c ! 474: if (iczero) 38910, 8910, 38910 ! 475: 8910 continue ! 476: ivon01 = -75 ! 477: ivon02 = -243 ! 478: rvcomp = amin0 (ivon01,ivon02) ! 479: go to 48910 ! 480: 38910 ivdele = ivdele + 1 ! 481: write (i02,80003) ivtnum ! 482: if (iczero) 48910, 8921, 48910 ! 483: 48910 if (rvcomp + 243.05) 28910,18910,48911 ! 484: 48911 if (rvcomp + 242.95) 18910,18910,28910 ! 485: 18910 ivpass = ivpass + 1 ! 486: write (i02,80001) ivtnum ! 487: go to 8921 ! 488: 28910 ivfail = ivfail + 1 ! 489: rvcorr = -243.00 ! 490: write (i02,80005) ivtnum, rvcomp, rvcorr ! 491: 8921 continue ! 492: ivtnum = 892 ! 493: c ! 494: c **** test 892 **** ! 495: c ! 496: if (iczero) 38920, 8920, 38920 ! 497: 8920 continue ! 498: ivon01 = -11 ! 499: ivon02 = 11 ! 500: rvcomp = amin0 (0,ivon01,ivon02) ! 501: go to 48920 ! 502: 38920 ivdele = ivdele + 1 ! 503: write (i02,80003) ivtnum ! 504: if (iczero) 48920, 8931, 48920 ! 505: 48920 if (rvcomp + 11.005) 28920,18920,48921 ! 506: 48921 if (rvcomp + 10.995) 18920,18920,28920 ! 507: 18920 ivpass = ivpass + 1 ! 508: write (i02,80001) ivtnum ! 509: go to 8931 ! 510: 28920 ivfail = ivfail + 1 ! 511: rvcorr = -11.000 ! 512: write (i02,80005) ivtnum, rvcomp, rvcorr ! 513: 8931 continue ! 514: c ! 515: c tests 893 and 894 contain intrinsic function tests for choosing ! 516: c smallest value where arguments and function are real ! 517: c ! 518: ivtnum = 893 ! 519: c ! 520: c **** test 893 **** ! 521: c ! 522: if (iczero) 38930, 8930, 38930 ! 523: 8930 continue ! 524: rvon01 = 1.1111 ! 525: rvon02 = 22.222 ! 526: rvon03 = 333.33 ! 527: rvcomp = amin1 (rvon01,rvon02,rvon03) ! 528: go to 48930 ! 529: 38930 ivdele = ivdele + 1 ! 530: write (i02,80003) ivtnum ! 531: if (iczero) 48930, 8941, 48930 ! 532: 48930 if (rvcomp - 1.1106) 28930,18930,48931 ! 533: 48931 if (rvcomp - 1.1116) 18930,18930,28930 ! 534: 18930 ivpass = ivpass + 1 ! 535: write (i02,80001) ivtnum ! 536: go to 8941 ! 537: 28930 ivfail = ivfail + 1 ! 538: rvcorr = 1.1111 ! 539: write (i02,80005) ivtnum, rvcomp, rvcorr ! 540: 8941 continue ! 541: ivtnum = 894 ! 542: c ! 543: c **** test 894 **** ! 544: c ! 545: if (iczero) 38940, 8940, 38940 ! 546: 8940 continue ! 547: rvon01 = 28.8 ! 548: rvon02 = 2.88e1 ! 549: rvon03 = 288e-1 ! 550: rvon04 = 35.0 ! 551: rvcomp = amin1 (rvon01,rvon02,rvon03,rvon04) ! 552: go to 48940 ! 553: 38940 ivdele = ivdele + 1 ! 554: write (i02,80003) ivtnum ! 555: if (iczero) 48940, 8951, 48940 ! 556: 48940 if (rvcomp - 28.795) 28940,18940,48941 ! 557: 48941 if (rvcomp - 28.805) 18940,18940,28940 ! 558: 18940 ivpass = ivpass + 1 ! 559: write (i02,80001) ivtnum ! 560: go to 8951 ! 561: 28940 ivfail = ivfail + 1 ! 562: rvcorr = 28.800 ! 563: write (i02,80005) ivtnum, rvcomp, rvcorr ! 564: 8951 continue ! 565: c ! 566: c test 895 through test 897 contain intrinsic function tests for ! 567: c float - conversion of an integer argument to real function ! 568: c ! 569: ivtnum = 895 ! 570: c ! 571: c **** test 895 **** ! 572: c ! 573: if (iczero) 38950, 8950, 38950 ! 574: 8950 continue ! 575: rvcomp = float (-606) ! 576: go to 48950 ! 577: 38950 ivdele = ivdele + 1 ! 578: write (i02,80003) ivtnum ! 579: if (iczero) 48950, 8961, 48950 ! 580: 48950 if (rvcomp + 606.05) 28950,18950,48951 ! 581: 48951 if (rvcomp + 605.95) 18950,18950,28950 ! 582: 18950 ivpass = ivpass + 1 ! 583: write (i02,80001) ivtnum ! 584: go to 8961 ! 585: 28950 ivfail = ivfail + 1 ! 586: rvcorr = -606.00 ! 587: write (i02,80005) ivtnum, rvcomp, rvcorr ! 588: 8961 continue ! 589: ivtnum = 896 ! 590: c ! 591: c **** test 896 **** ! 592: c ! 593: if (iczero) 38960, 8960, 38960 ! 594: 8960 continue ! 595: ivon01 = 71 ! 596: rvcomp = float (ivon01) ! 597: go to 48960 ! 598: 38960 ivdele = ivdele + 1 ! 599: write (i02,80003) ivtnum ! 600: if (iczero) 48960, 8971, 48960 ! 601: 48960 if (rvcomp - 70.995) 28960,18960,48961 ! 602: 48961 if (rvcomp - 71.005) 18960,18960,28960 ! 603: 18960 ivpass = ivpass + 1 ! 604: write (i02,80001) ivtnum ! 605: go to 8971 ! 606: 28960 ivfail = ivfail + 1 ! 607: rvcorr = 71.000 ! 608: write (i02,80005) ivtnum, rvcomp, rvcorr ! 609: 8971 continue ! 610: ivtnum = 897 ! 611: c ! 612: c **** test 897 **** ! 613: c ! 614: if (iczero) 38970, 8970, 38970 ! 615: 8970 continue ! 616: ivon01 = 321 ! 617: rvcomp = float (-ivon01) ! 618: go to 48970 ! 619: 38970 ivdele = ivdele + 1 ! 620: write (i02,80003) ivtnum ! 621: if (iczero) 48970, 8981, 48970 ! 622: 48970 if (rvcomp + 321.05) 28970,18970,48971 ! 623: 48971 if (rvcomp + 320.95) 18970,18970,28970 ! 624: 18970 ivpass = ivpass + 1 ! 625: write (i02,80001) ivtnum ! 626: go to 8981 ! 627: 28970 ivfail = ivfail + 1 ! 628: rvcorr = -321.00 ! 629: write (i02,80005) ivtnum, rvcomp, rvcorr ! 630: 8981 continue ! 631: c ! 632: c test 898 through test 900 contain intrinsic function tests for ! 633: c transfer of sign - both arguments and function are real ! 634: c ! 635: ivtnum = 898 ! 636: c ! 637: c **** test 898 **** ! 638: c ! 639: if (iczero) 38980, 8980, 38980 ! 640: 8980 continue ! 641: rvon01 = 64.3 ! 642: rvcomp = sign (rvon01,-1.0) ! 643: go to 48980 ! 644: 38980 ivdele = ivdele + 1 ! 645: write (i02,80003) ivtnum ! 646: if (iczero) 48980, 8991, 48980 ! 647: 48980 if (rvcomp + 64.305) 28980,18980,48981 ! 648: 48981 if (rvcomp + 64.295) 18980,18980,28980 ! 649: 18980 ivpass = ivpass + 1 ! 650: write (i02,80001) ivtnum ! 651: go to 8991 ! 652: 28980 ivfail = ivfail + 1 ! 653: rvcorr = -64.300 ! 654: write (i02,80005) ivtnum, rvcomp, rvcorr ! 655: 8991 continue ! 656: ivtnum = 899 ! 657: c ! 658: c **** test 899 **** ! 659: c ! 660: if (iczero) 38990, 8990, 38990 ! 661: 8990 continue ! 662: rvon01 = -2.2 ! 663: rvon02 = 7.23e1 ! 664: rvcomp = sign (rvon01,rvon02) ! 665: go to 48990 ! 666: 38990 ivdele = ivdele + 1 ! 667: write (i02,80003) ivtnum ! 668: if (iczero) 48990, 9001, 48990 ! 669: 48990 if (rvcomp - 2.1995) 28990,18990,48991 ! 670: 48991 if (rvcomp - 2.2005) 18990,18990,28990 ! 671: 18990 ivpass = ivpass + 1 ! 672: write (i02,80001) ivtnum ! 673: go to 9001 ! 674: 28990 ivfail = ivfail + 1 ! 675: rvcorr = 2.2000 ! 676: write (i02,80005) ivtnum, rvcomp, rvcorr ! 677: 9001 continue ! 678: ivtnum = 900 ! 679: c ! 680: c **** test 900 **** ! 681: c ! 682: if (iczero) 39000, 9000, 39000 ! 683: 9000 continue ! 684: rvon01 = 35.32e+1 ! 685: rvon02 = 1.0 ! 686: rvcomp = sign (rvon01,rvon02) ! 687: go to 49000 ! 688: 39000 ivdele = ivdele + 1 ! 689: write (i02,80003) ivtnum ! 690: if (iczero) 49000, 9011, 49000 ! 691: 49000 if (rvcomp - 353.15) 29000,19000,49001 ! 692: 49001 if (rvcomp - 353.25) 19000,19000,29000 ! 693: 19000 ivpass = ivpass + 1 ! 694: write (i02,80001) ivtnum ! 695: go to 9011 ! 696: 29000 ivfail = ivfail + 1 ! 697: rvcorr = 353.20 ! 698: write (i02,80005) ivtnum, rvcomp, rvcorr ! 699: 9011 continue ! 700: c ! 701: c test 901 through test 904 contain intrinsic function tests for ! 702: c positive difference where arguments and function are real ! 703: c ! 704: ivtnum = 901 ! 705: c ! 706: c **** test 901 **** ! 707: c ! 708: if (iczero) 39010, 9010, 39010 ! 709: 9010 continue ! 710: rvon01 = 22.2 ! 711: rvcomp = dim (rvon01,1.0) ! 712: go to 49010 ! 713: 39010 ivdele = ivdele + 1 ! 714: write (i02,80003) ivtnum ! 715: if (iczero) 49010, 9021, 49010 ! 716: 49010 if (rvcomp - 21.195) 29010,19010,49011 ! 717: 49011 if (rvcomp - 21.205) 19010,19010,29010 ! 718: 19010 ivpass = ivpass + 1 ! 719: write (i02,80001) ivtnum ! 720: go to 9021 ! 721: 29010 ivfail = ivfail + 1 ! 722: rvcorr = 21.200 ! 723: write (i02,80005) ivtnum, rvcomp, rvcorr ! 724: 9021 continue ! 725: ivtnum = 902 ! 726: c ! 727: c **** test 902 **** ! 728: c ! 729: if (iczero) 39020, 9020, 39020 ! 730: 9020 continue ! 731: rvon01 = 4.5e1 ! 732: rvon02 = 41.0 ! 733: rvcomp = dim (rvon01,rvon02) ! 734: go to 49020 ! 735: 39020 ivdele = ivdele + 1 ! 736: write (i02,80003) ivtnum ! 737: if (iczero) 49020, 9031, 49020 ! 738: 49020 if (rvcomp - 3.9995) 29020,19020,49021 ! 739: 49021 if (rvcomp - 4.0005) 19020,19020,29020 ! 740: 19020 ivpass = ivpass + 1 ! 741: write (i02,80001) ivtnum ! 742: go to 9031 ! 743: 29020 ivfail = ivfail + 1 ! 744: rvcorr = 4.0000 ! 745: write (i02,80005) ivtnum, rvcomp, rvcorr ! 746: 9031 continue ! 747: ivtnum = 903 ! 748: c ! 749: c **** test 903 **** ! 750: c ! 751: if (iczero) 39030, 9030, 39030 ! 752: 9030 continue ! 753: rvon01 = 2.0 ! 754: rvon02 = 10.0 ! 755: rvcomp = dim (rvon01,rvon02) ! 756: go to 49030 ! 757: 39030 ivdele = ivdele + 1 ! 758: write (i02,80003) ivtnum ! 759: if (iczero) 49030, 9041, 49030 ! 760: 49030 if (rvcomp) 29030,19030,29030 ! 761: 19030 ivpass = ivpass + 1 ! 762: write (i02,80001) ivtnum ! 763: go to 9041 ! 764: 29030 ivfail = ivfail + 1 ! 765: rvcorr = 0.0000 ! 766: write (i02,80005) ivtnum, rvcomp, rvcorr ! 767: 9041 continue ! 768: ivtnum = 904 ! 769: c ! 770: c **** test 904 **** ! 771: c ! 772: if (iczero) 39040, 9040, 39040 ! 773: 9040 continue ! 774: rvon01 = 1.65e+1 ! 775: rvon02 = -2.0 ! 776: rvcomp = dim (rvon01,rvon02) ! 777: go to 49040 ! 778: 39040 ivdele = ivdele + 1 ! 779: write (i02,80003) ivtnum ! 780: if (iczero) 49040, 9051, 49040 ! 781: 49040 if (rvcomp - 18.495) 29040,19040,49041 ! 782: 49041 if (rvcomp - 18.505) 19040,19040,29040 ! 783: 19040 ivpass = ivpass + 1 ! 784: write (i02,80001) ivtnum ! 785: go to 9051 ! 786: 29040 ivfail = ivfail + 1 ! 787: rvcorr = 18.500 ! 788: write (i02,80005) ivtnum, rvcomp, rvcorr ! 789: 9051 continue ! 790: c ! 791: c tests 905 and 906 contain expressions containing more than one ! 792: c intrinsic function - all arguments and functions are real ! 793: c ! 794: ivtnum = 905 ! 795: c ! 796: c **** test 905 **** ! 797: c ! 798: if (iczero) 39050, 9050, 39050 ! 799: 9050 continue ! 800: rvon01 = 33.3 ! 801: rvon02 = -12.1 ! 802: rvcomp = aint (rvon01) + abs (rvon02) ! 803: go to 49050 ! 804: 39050 ivdele = ivdele + 1 ! 805: write (i02,80003) ivtnum ! 806: if (iczero) 49050, 9061, 49050 ! 807: 49050 if (rvcomp - 45.095) 29050,19050,49051 ! 808: 49051 if (rvcomp - 45.105) 19050,19050,29050 ! 809: 19050 ivpass = ivpass + 1 ! 810: write (i02,80001) ivtnum ! 811: go to 9061 ! 812: 29050 ivfail = ivfail + 1 ! 813: rvcorr = 45.100 ! 814: write (i02,80005) ivtnum, rvcomp, rvcorr ! 815: 9061 continue ! 816: ivtnum = 906 ! 817: c ! 818: c **** test 906 **** ! 819: c ! 820: if (iczero) 39060, 9060, 39060 ! 821: 9060 continue ! 822: rvon01 = 76.3 ! 823: rvon02 = 2.1e1 ! 824: rvon03 = 3e1 ! 825: rvcomp = amax1(rvon01,rvon02,rvon03)-amin1(rvon01,rvon02,rvon03) ! 826: go to 49060 ! 827: 39060 ivdele = ivdele + 1 ! 828: write (i02,80003) ivtnum ! 829: if (iczero) 49060, 9071, 49060 ! 830: 49060 if (rvcomp - 55.295) 29060,19060,49061 ! 831: 49061 if (rvcomp - 55.305) 19060,19060,29060 ! 832: 19060 ivpass = ivpass + 1 ! 833: write (i02,80001) ivtnum ! 834: go to 9071 ! 835: 29060 ivfail = ivfail + 1 ! 836: rvcorr = 55.300 ! 837: write (i02,80005) ivtnum, rvcomp, rvcorr ! 838: 9071 continue ! 839: c ! 840: c write page footings and run summaries ! 841: 99999 continue ! 842: write (i02,90002) ! 843: write (i02,90006) ! 844: write (i02,90002) ! 845: write (i02,90002) ! 846: write (i02,90007) ! 847: write (i02,90002) ! 848: write (i02,90008) ivfail ! 849: write (i02,90009) ivpass ! 850: write (i02,90010) ivdele ! 851: c ! 852: c ! 853: c terminate routine execution ! 854: stop ! 855: c ! 856: c format statements for page headers ! 857: 90000 format (1h1) ! 858: 90002 format (1h ) ! 859: 90001 format (1h ,10x,34hfortran compiler validation system) ! 860: 90003 format (1h ,21x,11hversion 1.0) ! 861: 90004 format (1h ,10x,38hfor official use only - copyright 1978) ! 862: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) ! 863: 90006 format (1h ,5x,46h----------------------------------------------) ! 864: 90011 format (1h ,18x,17hsubset level test) ! 865: c ! 866: c format statements for run summaries ! 867: 90008 format (1h ,15x,i5,19h errors encountered) ! 868: 90009 format (1h ,15x,i5,13h tests passed) ! 869: 90010 format (1h ,15x,i5,14h tests deleted) ! 870: c ! 871: c format statements for test results ! 872: 80001 format (1h ,4x,i5,7x,4hpass) ! 873: 80002 format (1h ,4x,i5,7x,4hfail) ! 874: 80003 format (1h ,4x,i5,7x,7hdeleted) ! 875: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) ! 876: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) ! 877: c ! 878: 90007 format (1h ,20x,20hend of program fm097) ! 879: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.