|
|
1.1 ! root 1: c comment section ! 2: c ! 3: c fm062 ! 4: c ! 5: c this routine tests arithmetic assignment statements where ! 6: c an arithmetic expression formed from real variables and ! 7: c constants connected by arithmetic operators is assigned to ! 8: c a real variable. in cases involving the exponentiation ! 9: c operator, real values are raised to integer powers only. ! 10: c ! 11: c a real datum is a processor approximation to the value of a ! 12: c real number. it may assume positive, negative and zero values. ! 13: c ! 14: c a basic real constant is written as an integer part, a ! 15: c decimal point, and a decimal fraction part in that order. both ! 16: c the integer part and the decimal part are strings of digits; ! 17: c either one of these strings may be empty but not both. the ! 18: c constant is an approximation to the digit string interpreted as a ! 19: c decimal numeral. ! 20: c ! 21: c a decimal exponent is written as the letter e, followed by an ! 22: c optionally signed integer constant. ! 23: c ! 24: c a real constant is indicated by writing a basic real constant, ! 25: c a basic real constant followed by a decimal exponent, or an ! 26: c integer constant followed by a decimal exponent. ! 27: c ! 28: c references ! 29: c american national standard programming language fortran, ! 30: c x3.9-1978 ! 31: c ! 32: c section 4.4, real type ! 33: c section 4.4.1, real constant ! 34: c section 6.1, arithmetic expressions ! 35: c section 6.6, evaluation of expressions ! 36: c section 10.1, arithmetic assignment statement ! 37: c ! 38: c ********************************************************** ! 39: c ! 40: c a compiler validation system for the fortran language ! 41: c based on specifications as defined in american national standard ! 42: c programming language fortran x3.9-1978, has been developed by the ! 43: c federal cobol compiler testing service. the fortran compiler ! 44: c validation system (fcvs) consists of audit routines, their related ! 45: c data, and an executive system. each audit routine is a fortran ! 46: c program, subprogram or function which includes tests of specific ! 47: c language elements and supporting procedures indicating the result ! 48: c of executing these tests. ! 49: c ! 50: c this particular program/subprogram/function contains features ! 51: c found only in the subset as defined in x3.9-1978. ! 52: c ! 53: c suggestions and comments should be forwarded to - ! 54: c ! 55: c department of the navy ! 56: c federal cobol compiler testing service ! 57: c washington, d.c. 20376 ! 58: c ! 59: c ********************************************************** ! 60: c ! 61: c ! 62: c ! 63: c initialization section ! 64: c ! 65: c initialize constants ! 66: c ************** ! 67: c i01 contains the logical unit number for the card reader. ! 68: i01 = 5 ! 69: c i02 contains the logical unit number for the printer. ! 70: i02 = 6 ! 71: c system environment section ! 72: c ! 73: cx010 this card is replaced by contents of fexec x-010 control card. ! 74: c the cx010 card is for overriding the program default i01 = 5 ! 75: c (unit number for card reader). ! 76: cx011 this card is replaced by contents of fexec x-011 control card. ! 77: c the cx011 card is for systems which require additional ! 78: c fortran statements for files associated with cx010 above. ! 79: c ! 80: cx020 this card is replaced by contents of fexec x-020 control card. ! 81: c the cx020 card is for overriding the program default i02 = 6 ! 82: c (unit number for printer). ! 83: cx021 this card is replaced by contents of fexec x-021 control card. ! 84: c the cx021 card is for systems which require additional ! 85: c fortran statements for files associated with cx020 above. ! 86: c ! 87: ivpass=0 ! 88: ivfail=0 ! 89: ivdele=0 ! 90: iczero=0 ! 91: c ! 92: c write page headers ! 93: write (i02,90000) ! 94: write (i02,90001) ! 95: write (i02,90002) ! 96: write (i02, 90002) ! 97: write (i02,90003) ! 98: write (i02,90002) ! 99: write (i02,90004) ! 100: write (i02,90002) ! 101: write (i02,90011) ! 102: write (i02,90002) ! 103: write (i02,90002) ! 104: write (i02,90005) ! 105: write (i02,90006) ! 106: write (i02,90002) ! 107: c ! 108: c test section ! 109: c ! 110: c arithmetic assignment statement ! 111: c ! 112: c ! 113: c tests 62 through 70 use a mixture of real variables and real ! 114: c constants connected by two identical arithmetic operators. ! 115: c tests occur in pairs, one without parentheses and one with ! 116: c parentheses to alter the normal order of evaluation. ! 117: c ! 118: c tests 71 through 90 use three real variables connected by a ! 119: c pair of dissimilar operators. all combinations and orderings ! 120: c of operators are exercized. where exponentiation is tested, ! 121: c integer variables are used for the power primaries. ! 122: c ! 123: c tests 91 and 92 use a series of real variables connected by one ! 124: c each of the arithmetic opertors. parenthetical notations are ! 125: c also tested. ! 126: c ! 127: c ! 128: c ! 129: c ! 130: c ! 131: ivtnum = 62 ! 132: c ! 133: c **** test 62 **** ! 134: c ! 135: if (iczero) 30620, 620, 30620 ! 136: 620 continue ! 137: rvon01 = 7.5 ! 138: rvon02 = 5e2 ! 139: rvcomp = rvon01 + rvon02 + 33e-1 ! 140: go to 40620 ! 141: 30620 ivdele = ivdele + 1 ! 142: write (i02,80003) ivtnum ! 143: if (iczero) 40620, 631, 40620 ! 144: 40620 if (rvcomp - 510.75) 20620,10620,40621 ! 145: 40621 if (rvcomp - 510.85) 10620,10620,20620 ! 146: 10620 ivpass = ivpass + 1 ! 147: write (i02,80001) ivtnum ! 148: go to 631 ! 149: 20620 ivfail = ivfail + 1 ! 150: rvcorr = 510.8 ! 151: write (i02,80005) ivtnum, rvcomp, rvcorr ! 152: 631 continue ! 153: ivtnum = 63 ! 154: c ! 155: c **** test 63 **** ! 156: c ! 157: if (iczero) 30630, 630, 30630 ! 158: 630 continue ! 159: rvon01 = 75e-1 ! 160: rvon02 = 500.0 ! 161: rvcomp = rvon01 + (rvon02 + 3.3) ! 162: go to 40630 ! 163: 30630 ivdele = ivdele + 1 ! 164: write (i02,80003) ivtnum ! 165: if (iczero) 40630, 641, 40630 ! 166: 40630 if (rvcomp - 510.75) 20630,10630,40631 ! 167: 40631 if (rvcomp - 510.85) 10630,10630,20630 ! 168: 10630 ivpass = ivpass + 1 ! 169: write (i02,80001) ivtnum ! 170: go to 641 ! 171: 20630 ivfail = ivfail + 1 ! 172: rvcorr = 510.8 ! 173: write (i02,80005) ivtnum, rvcomp, rvcorr ! 174: 641 continue ! 175: ivtnum = 64 ! 176: c ! 177: c **** test 64 **** ! 178: c ! 179: if (iczero) 30640, 640, 30640 ! 180: 640 continue ! 181: rvcomp = 7.5 - 500. - 3.3 ! 182: go to 40640 ! 183: 30640 ivdele = ivdele + 1 ! 184: write (i02,80003) ivtnum ! 185: if (iczero) 40640, 651, 40640 ! 186: 40640 if (rvcomp + 495.85) 20640,10640,40641 ! 187: 40641 if (rvcomp + 495.75) 10640,10640,20640 ! 188: 10640 ivpass = ivpass + 1 ! 189: write (i02,80001) ivtnum ! 190: go to 651 ! 191: 20640 ivfail = ivfail + 1 ! 192: rvcorr = -495.8 ! 193: write (i02,80005) ivtnum, rvcomp, rvcorr ! 194: 651 continue ! 195: ivtnum = 65 ! 196: c ! 197: c **** test 65 **** ! 198: c ! 199: if (iczero) 30650, 650, 30650 ! 200: 650 continue ! 201: rvon01 = 7.5 ! 202: rvon02 = 5e2 ! 203: rvcomp = rvon01 - (33e-1 - rvon02) ! 204: go to 40650 ! 205: 30650 ivdele = ivdele + 1 ! 206: write (i02,80003) ivtnum ! 207: if (iczero) 40650, 661, 40650 ! 208: 40650 if (rvcomp - 504.15) 20650,10650,40651 ! 209: 40651 if (rvcomp - 504.25) 10650,10650,20650 ! 210: 10650 ivpass = ivpass + 1 ! 211: write (i02,80001) ivtnum ! 212: go to 661 ! 213: 20650 ivfail = ivfail + 1 ! 214: rvcorr = 504.2 ! 215: write (i02,80005) ivtnum, rvcomp, rvcorr ! 216: 661 continue ! 217: ivtnum = 66 ! 218: c ! 219: c **** test 66 **** ! 220: c ! 221: if (iczero) 30660, 660, 30660 ! 222: 660 continue ! 223: rvon01 = 7.5 ! 224: rvcomp = 5e2 * 33e-1 * rvon01 ! 225: go to 40660 ! 226: 30660 ivdele = ivdele + 1 ! 227: write (i02,80003) ivtnum ! 228: if (iczero) 40660, 671, 40660 ! 229: 40660 if (rvcomp - 12370) 20660,10660,40661 ! 230: 40661 if (rvcomp - 12380) 10660,10660,20660 ! 231: 10660 ivpass = ivpass + 1 ! 232: write (i02,80001) ivtnum ! 233: go to 671 ! 234: 20660 ivfail = ivfail + 1 ! 235: rvcorr = 12375. ! 236: write (i02,80005) ivtnum, rvcomp, rvcorr ! 237: 671 continue ! 238: ivtnum = 67 ! 239: c ! 240: c **** test 67 **** ! 241: c ! 242: if (iczero) 30670, 670, 30670 ! 243: 670 continue ! 244: rvon01 = 7.5 ! 245: rvcomp = 5e2 * (rvon01 * 33e-1) ! 246: go to 40670 ! 247: 30670 ivdele = ivdele + 1 ! 248: write (i02,80003) ivtnum ! 249: if (iczero) 40670, 681, 40670 ! 250: 40670 if (rvcomp - 12370) 20670,10670,40671 ! 251: 40671 if (rvcomp - 12380) 10670,10670,20670 ! 252: 10670 ivpass = ivpass + 1 ! 253: write (i02,80001) ivtnum ! 254: go to 681 ! 255: 20670 ivfail = ivfail + 1 ! 256: rvcorr = 12375. ! 257: write (i02,80005) ivtnum, rvcomp, rvcorr ! 258: 681 continue ! 259: ivtnum = 68 ! 260: c ! 261: c **** test 68 **** ! 262: c ! 263: if (iczero) 30680, 680, 30680 ! 264: 680 continue ! 265: rvon01 = 7.5 ! 266: rvon02 = 33e-1 ! 267: rvon03 = -5e+2 ! 268: rvcomp = rvon01 / rvon02 / rvon03 ! 269: go to 40680 ! 270: 30680 ivdele = ivdele + 1 ! 271: write (i02,80003) ivtnum ! 272: if (iczero) 40680, 691, 40680 ! 273: 40680 if (rvcomp + .00459) 20680,10680,40681 ! 274: 40681 if (rvcomp + .00449) 10680,10680,20680 ! 275: 10680 ivpass = ivpass + 1 ! 276: write (i02,80001) ivtnum ! 277: go to 691 ! 278: 20680 ivfail = ivfail + 1 ! 279: rvcorr = -.0045454 ! 280: write (i02,80005) ivtnum, rvcomp, rvcorr ! 281: 691 continue ! 282: ivtnum = 69 ! 283: c ! 284: c **** test 69 **** ! 285: c ! 286: if (iczero) 30690, 690, 30690 ! 287: 690 continue ! 288: rvon01 = 7.5 ! 289: rvon02 = 33e-1 ! 290: rvon03 = -5e+2 ! 291: rvcomp = rvon01 / (rvon02 / rvon03) ! 292: go to 40690 ! 293: 30690 ivdele = ivdele + 1 ! 294: write (i02,80003) ivtnum ! 295: if (iczero) 40690, 701, 40690 ! 296: 40690 if (rvcomp + 1180.) 20690,10690,40691 ! 297: 40691 if (rvcomp + 1080.) 10690,10690,20690 ! 298: 10690 ivpass = ivpass + 1 ! 299: write (i02,80001) ivtnum ! 300: go to 701 ! 301: 20690 ivfail = ivfail + 1 ! 302: rvcorr = -1136.4 ! 303: write (i02,80005) ivtnum, rvcomp, rvcorr ! 304: 701 continue ! 305: ivtnum = 70 ! 306: c ! 307: c **** test 70 **** ! 308: c ! 309: if (iczero) 30700, 700, 30700 ! 310: 700 continue ! 311: rvon01 = 3.835e3 ! 312: ivon01 = 5 ! 313: rvcomp = rvon01 ** ivon01 ! 314: go to 40700 ! 315: 30700 ivdele = ivdele + 1 ! 316: write (i02,80003) ivtnum ! 317: if (iczero) 40700, 711, 40700 ! 318: 40700 if (rvcomp - 8.29e17) 20700,10700,40701 ! 319: 40701 if (rvcomp - 8.30e17) 10700,10700,20700 ! 320: 10700 ivpass = ivpass + 1 ! 321: write (i02,80001) ivtnum ! 322: go to 711 ! 323: 20700 ivfail = ivfail + 1 ! 324: rvcorr = 8.295e17 ! 325: write (i02,80005) ivtnum, rvcomp, rvcorr ! 326: 711 continue ! 327: c ! 328: c tests 71 through 74 test rv1 + rv2 <op2> rv3 ! 329: c ! 330: ivtnum = 71 ! 331: c ! 332: c **** test 71 **** ! 333: c ! 334: if (iczero) 30710, 710, 30710 ! 335: 710 continue ! 336: rvon01 = 524.87 ! 337: rvon02 = 3.35 ! 338: rvon03 = .005679 ! 339: rvcomp = rvon01 + rvon02 - rvon03 ! 340: go to 40710 ! 341: 30710 ivdele = ivdele + 1 ! 342: write (i02,80003) ivtnum ! 343: if (iczero) 40710, 721, 40710 ! 344: 40710 if (rvcomp - 528.16) 20710,10710,40711 ! 345: 40711 if (rvcomp - 528.26) 10710,10710,20710 ! 346: 10710 ivpass = ivpass + 1 ! 347: write (i02,80001) ivtnum ! 348: go to 721 ! 349: 20710 ivfail = ivfail + 1 ! 350: rvcorr = 528.21 ! 351: write (i02,80005) ivtnum, rvcomp, rvcorr ! 352: 721 continue ! 353: ivtnum = 72 ! 354: c ! 355: c **** test 72 **** ! 356: c ! 357: if (iczero) 30720, 720, 30720 ! 358: 720 continue ! 359: rvon01 = 524.87 ! 360: rvon02 = 3.35 ! 361: rvon03 = .005679 ! 362: rvcomp = rvon01 + rvon02 * rvon03 ! 363: go to 40720 ! 364: 30720 ivdele = ivdele + 1 ! 365: write (i02,80003) ivtnum ! 366: if (iczero) 40720, 731, 40720 ! 367: 40720 if (rvcomp - 524.84) 20720,10720,40721 ! 368: 40721 if (rvcomp - 524.94) 10720,10720,20720 ! 369: 10720 ivpass = ivpass + 1 ! 370: write (i02,80001) ivtnum ! 371: go to 731 ! 372: 20720 ivfail = ivfail + 1 ! 373: rvcorr = 524.89 ! 374: write (i02,80005) ivtnum, rvcomp, rvcorr ! 375: 731 continue ! 376: ivtnum = 73 ! 377: c ! 378: c **** test 73 **** ! 379: c ! 380: if (iczero) 30730, 730, 30730 ! 381: 730 continue ! 382: rvon01 = 524.87 ! 383: rvon02 = 3.35 ! 384: rvon03 = .005679 ! 385: rvcomp = rvon01 + rvon02 / rvon03 ! 386: go to 40730 ! 387: 30730 ivdele = ivdele + 1 ! 388: write (i02,80003) ivtnum ! 389: if (iczero) 40730, 741, 40730 ! 390: 40730 if (rvcomp - 1114.2) 20730,10730,40731 ! 391: 40731 if (rvcomp - 1115.2) 10730,10730,20730 ! 392: 10730 ivpass = ivpass + 1 ! 393: write (i02,80001) ivtnum ! 394: go to 741 ! 395: 20730 ivfail = ivfail + 1 ! 396: rvcorr = 1114.8 ! 397: write (i02,80005) ivtnum, rvcomp, rvcorr ! 398: 741 continue ! 399: ivtnum = 74 ! 400: c ! 401: c **** test 74 **** ! 402: c ! 403: if (iczero) 30740, 740, 30740 ! 404: 740 continue ! 405: rvon01 = 524.87 ! 406: rvon02 = 3.35 ! 407: ivon01 = 7 ! 408: rvcomp = rvon01 + rvon02 ** ivon01 ! 409: go to 40740 ! 410: 30740 ivdele = ivdele + 1 ! 411: write (i02,80003) ivtnum ! 412: if (iczero) 40740, 751, 40740 ! 413: 40740 if (rvcomp - 5259.3) 20740,10740,40741 ! 414: 40741 if (rvcomp - 5260.3) 10740,10740,20740 ! 415: 10740 ivpass = ivpass + 1 ! 416: write (i02,80001) ivtnum ! 417: go to 751 ! 418: 20740 ivfail = ivfail + 1 ! 419: rvcorr = 5259.8 ! 420: write (i02,80005) ivtnum, rvcomp, rvcorr ! 421: 751 continue ! 422: c ! 423: c tests 75 through 78 check rv1 - rv2 <op2> rv3 ! 424: c ! 425: ivtnum = 75 ! 426: c ! 427: c **** test 75 **** ! 428: c ! 429: if (iczero) 30750, 750, 30750 ! 430: 750 continue ! 431: rvon01 = 524.87 ! 432: rvon02 = 3.35 ! 433: rvon03 = .5679 ! 434: rvcomp = rvon01 - rvon02 + rvon03 ! 435: go to 40750 ! 436: 30750 ivdele = ivdele + 1 ! 437: write (i02,80003) ivtnum ! 438: if (iczero) 40750, 761, 40750 ! 439: 40750 if (rvcomp - 522.03) 20750,10750,40751 ! 440: 40751 if (rvcomp - 522.13) 10750,10750,20750 ! 441: 10750 ivpass = ivpass + 1 ! 442: write (i02,80001) ivtnum ! 443: go to 761 ! 444: 20750 ivfail = ivfail + 1 ! 445: rvcorr = 522.09 ! 446: write (i02,80005) ivtnum, rvcomp, rvcorr ! 447: 761 continue ! 448: ivtnum = 76 ! 449: c ! 450: c **** test 76 **** ! 451: c ! 452: if (iczero) 30760, 760, 30760 ! 453: 760 continue ! 454: rvon01 = 524.87 ! 455: rvon02 = 3.35 ! 456: rvon03 = .5679 ! 457: rvcomp = rvon01 - rvon02 * rvon03 ! 458: go to 40760 ! 459: 30760 ivdele = ivdele + 1 ! 460: write (i02,80003) ivtnum ! 461: if (iczero) 40760, 771, 40760 ! 462: 40760 if (rvcomp - 522.92) 20760,10760,40761 ! 463: 40761 if (rvcomp - 523.02) 10760,10760,20760 ! 464: 10760 ivpass = ivpass + 1 ! 465: write (i02,80001) ivtnum ! 466: go to 771 ! 467: 20760 ivfail = ivfail + 1 ! 468: rvcorr = 522.97 ! 469: write (i02,80005) ivtnum, rvcomp, rvcorr ! 470: 771 continue ! 471: ivtnum = 77 ! 472: c ! 473: c **** test 77 **** ! 474: c ! 475: if (iczero) 30770, 770, 30770 ! 476: 770 continue ! 477: rvon01 = 524.87 ! 478: rvon02 = 3.35 ! 479: rvon03 = .5679 ! 480: rvcomp = rvon01 - rvon02 / rvon03 ! 481: go to 40770 ! 482: 30770 ivdele = ivdele + 1 ! 483: write (i02,80003) ivtnum ! 484: if (iczero) 40770, 781, 40770 ! 485: 40770 if (rvcomp - 518.92) 20770,10770,40771 ! 486: 40771 if (rvcomp - 519.02) 10770,10770,20770 ! 487: 10770 ivpass = ivpass + 1 ! 488: write (i02,80001) ivtnum ! 489: go to 781 ! 490: 20770 ivfail = ivfail + 1 ! 491: rvcorr = 518.97 ! 492: write (i02,80005) ivtnum, rvcomp, rvcorr ! 493: 781 continue ! 494: ivtnum = 78 ! 495: c ! 496: c **** test 78 **** ! 497: c ! 498: if (iczero) 30780, 780, 30780 ! 499: 780 continue ! 500: rvon01 = 524.87 ! 501: rvon02 = 3.35 ! 502: ivon01 = 7 ! 503: rvcomp = rvon01 - rvon02 ** ivon01 ! 504: go to 40780 ! 505: 30780 ivdele = ivdele + 1 ! 506: write (i02,80003) ivtnum ! 507: if (iczero) 40780, 791, 40780 ! 508: 40780 if (rvcomp + 4210.6) 20780,10780,40781 ! 509: 40781 if (rvcomp + 4209.6) 10780,10780,20780 ! 510: 10780 ivpass = ivpass + 1 ! 511: write (i02,80001) ivtnum ! 512: go to 791 ! 513: 20780 ivfail = ivfail + 1 ! 514: rvcorr = -4210.1 ! 515: write (i02,80005) ivtnum, rvcomp, rvcorr ! 516: 791 continue ! 517: c ! 518: c tests 79 through 82 check rv1 * rv2 <op2> rv3 ! 519: c ! 520: ivtnum = 79 ! 521: c ! 522: c **** test 79 **** ! 523: c ! 524: if (iczero) 30790, 790, 30790 ! 525: 790 continue ! 526: rvon01 = 524.87 ! 527: rvon02 = .5679 ! 528: rvon03 = 3.35 ! 529: rvcomp = rvon01 * rvon02 + rvon03 ! 530: go to 40790 ! 531: 30790 ivdele = ivdele + 1 ! 532: write (i02,80003) ivtnum ! 533: if (iczero) 40790, 801, 40790 ! 534: 40790 if (rvcomp - 301.37) 20790,10790,40791 ! 535: 40791 if (rvcomp - 301.47) 10790,10790,20790 ! 536: 10790 ivpass = ivpass + 1 ! 537: write (i02,80001) ivtnum ! 538: go to 801 ! 539: 20790 ivfail = ivfail + 1 ! 540: rvcorr = 301.42 ! 541: write (i02,80005) ivtnum, rvcomp, rvcorr ! 542: 801 continue ! 543: ivtnum = 80 ! 544: c ! 545: c **** test 80 **** ! 546: c ! 547: if (iczero) 30800, 800, 30800 ! 548: 800 continue ! 549: rvon01 = 524.87 ! 550: rvon02 = .5679 ! 551: rvon03 = 3.35 ! 552: rvcomp = rvon01 * rvon02 - rvon03 ! 553: go to 40800 ! 554: 30800 ivdele = ivdele + 1 ! 555: write (i02,80003) ivtnum ! 556: if (iczero) 40800, 811, 40800 ! 557: 40800 if (rvcomp - 294.67) 20800,10800,40801 ! 558: 40801 if (rvcomp - 294.77) 10800,10800,20800 ! 559: 10800 ivpass = ivpass + 1 ! 560: write (i02,80001) ivtnum ! 561: go to 811 ! 562: 20800 ivfail = ivfail + 1 ! 563: rvcorr = 294.72 ! 564: write (i02,80005) ivtnum, rvcomp, rvcorr ! 565: 811 continue ! 566: ivtnum = 81 ! 567: c ! 568: c **** test 81 **** ! 569: c ! 570: if (iczero) 30810, 810, 30810 ! 571: 810 continue ! 572: rvon01 = 524.87 ! 573: rvon02 = .5679 ! 574: rvon03 = 3.35 ! 575: rvcomp = rvon01 * rvon02 / rvon03 ! 576: go to 40810 ! 577: 30810 ivdele = ivdele + 1 ! 578: write (i02,80003) ivtnum ! 579: if (iczero) 40810, 821, 40810 ! 580: 40810 if (rvcomp - 88.92) 20810,10810,40811 ! 581: 40811 if (rvcomp - 89.02) 10810,10810,20810 ! 582: 10810 ivpass = ivpass + 1 ! 583: write (i02,80001) ivtnum ! 584: go to 821 ! 585: 20810 ivfail = ivfail + 1 ! 586: rvcorr = 88.977 ! 587: write (i02,80005) ivtnum, rvcomp, rvcorr ! 588: 821 continue ! 589: ivtnum = 82 ! 590: c ! 591: c **** test 82 **** ! 592: c ! 593: if (iczero) 30820, 820, 30820 ! 594: 820 continue ! 595: rvon01 = 524.87 ! 596: rvon02 = .5679 ! 597: ivon01 = 7 ! 598: rvcomp = rvon01 * rvon02 ** ivon01 ! 599: go to 40820 ! 600: 30820 ivdele = ivdele + 1 ! 601: write (i02,80003) ivtnum ! 602: if (iczero) 40820, 831, 40820 ! 603: 40820 if (rvcomp - 9.94) 20820,10820,40821 ! 604: 40821 if (rvcomp - 10.04) 10820,10820,20820 ! 605: 10820 ivpass = ivpass + 1 ! 606: write (i02,80001) ivtnum ! 607: go to 831 ! 608: 20820 ivfail = ivfail + 1 ! 609: rvcorr = 9.999 ! 610: write (i02,80005) ivtnum, rvcomp, rvcorr ! 611: 831 continue ! 612: c ! 613: c tests 83 through 86 check rv1 / rv2 <op2> rv3 ! 614: c ! 615: ivtnum = 83 ! 616: c ! 617: c **** test 83 **** ! 618: c ! 619: if (iczero) 30830, 830, 30830 ! 620: 830 continue ! 621: rvon01 = 524.87 ! 622: rvon02 = 3.35 ! 623: rvon03 = .5679 ! 624: rvcomp = rvon01 / rvon02 + rvon03 ! 625: go to 40830 ! 626: 30830 ivdele = ivdele + 1 ! 627: write (i02,80003) ivtnum ! 628: if (iczero) 40830, 841, 40830 ! 629: 40830 if (rvcomp - 157.19) 20830,10830,40831 ! 630: 40831 if (rvcomp - 157.29) 10830,10830,20830 ! 631: 10830 ivpass = ivpass + 1 ! 632: write (i02,80001) ivtnum ! 633: go to 841 ! 634: 20830 ivfail = ivfail + 1 ! 635: rvcorr = 157.25 ! 636: write (i02,80005) ivtnum, rvcomp, rvcorr ! 637: 841 continue ! 638: ivtnum = 84 ! 639: c ! 640: c **** test 84 **** ! 641: c ! 642: if (iczero) 30840, 840, 30840 ! 643: 840 continue ! 644: rvon01 = 524.87 ! 645: rvon02 = 3.35 ! 646: rvon03 = .8507 ! 647: rvcomp = rvon01 / rvon02 - rvon03 ! 648: go to 40840 ! 649: 30840 ivdele = ivdele + 1 ! 650: write (i02,80003) ivtnum ! 651: if (iczero) 40840, 851, 40840 ! 652: 40840 if (rvcomp - 155.77) 20840,10840,40841 ! 653: 40841 if (rvcomp - 155.87) 10840,10840,20840 ! 654: 10840 ivpass = ivpass + 1 ! 655: write (i02,80001) ivtnum ! 656: go to 851 ! 657: 20840 ivfail = ivfail + 1 ! 658: rvcorr = 155.83 ! 659: write (i02,80005) ivtnum, rvcomp, rvcorr ! 660: 851 continue ! 661: ivtnum = 85 ! 662: c ! 663: c **** test 85 **** ! 664: c ! 665: if (iczero) 30850, 850, 30850 ! 666: 850 continue ! 667: rvon01 = 524.87 ! 668: rvon02 = 3.35 ! 669: rvon03 = .8507 ! 670: rvcomp = rvon01 / rvon02 * rvon03 ! 671: go to 40850 ! 672: 30850 ivdele = ivdele + 1 ! 673: write (i02,80003) ivtnum ! 674: if (iczero) 40850, 861, 40850 ! 675: 40850 if (rvcomp - 132.7) 20850,10850,40851 ! 676: 40851 if (rvcomp - 133.7) 10850,10850,20850 ! 677: 10850 ivpass = ivpass + 1 ! 678: write (i02,80001) ivtnum ! 679: go to 861 ! 680: 20850 ivfail = ivfail + 1 ! 681: rvcorr = 133.29 ! 682: write (i02,80005) ivtnum, rvcomp, rvcorr ! 683: 861 continue ! 684: ivtnum = 86 ! 685: c ! 686: c **** test 86 **** ! 687: c ! 688: if (iczero) 30860, 860, 30860 ! 689: 860 continue ! 690: rvon01 = 524.87 ! 691: rvon02 = 3.35 ! 692: ivon01 = 7 ! 693: rvcomp = rvon01 / rvon02 ** ivon01 ! 694: go to 40860 ! 695: 30860 ivdele = ivdele + 1 ! 696: write (i02,80003) ivtnum ! 697: if (iczero) 40860, 871, 40860 ! 698: 40860 if (rvcomp - .106) 20860,10860,40861 ! 699: 40861 if (rvcomp - .116) 10860,10860,20860 ! 700: 10860 ivpass = ivpass + 1 ! 701: write (i02,80001) ivtnum ! 702: go to 871 ! 703: 20860 ivfail = ivfail + 1 ! 704: rvcorr = .11085 ! 705: write (i02,80005) ivtnum, rvcomp, rvcorr ! 706: 871 continue ! 707: c ! 708: c tests 87 through 90 check rv1 ** iv1 <op2> rv2 ! 709: c ! 710: ivtnum = 87 ! 711: c ! 712: c **** test 87 **** ! 713: c ! 714: if (iczero) 30870, 870, 30870 ! 715: 870 continue ! 716: rvon01 = 3.35 ! 717: ivon01 = 7 ! 718: rvon02 = 524.87 ! 719: rvcomp = rvon01 ** ivon01 + rvon02 ! 720: go to 40870 ! 721: 30870 ivdele = ivdele + 1 ! 722: write (i02,80003) ivtnum ! 723: if (iczero) 40870, 881, 40870 ! 724: 40870 if (rvcomp - 5210.) 20870,10870,40871 ! 725: 40871 if (rvcomp - 5310.) 10870,10870,20870 ! 726: 10870 ivpass = ivpass + 1 ! 727: write (i02,80001) ivtnum ! 728: go to 881 ! 729: 20870 ivfail = ivfail + 1 ! 730: rvcorr = 5259.8 ! 731: write (i02,80005) ivtnum, rvcomp, rvcorr ! 732: 881 continue ! 733: ivtnum = 88 ! 734: c ! 735: c **** test 88 **** ! 736: c ! 737: if (iczero) 30880, 880, 30880 ! 738: 880 continue ! 739: rvon01 = 3.35 ! 740: ivon01 = 7 ! 741: rvon02 = 524.87 ! 742: rvcomp = rvon01 ** ivon01 - rvon02 ! 743: go to 40880 ! 744: 30880 ivdele = ivdele + 1 ! 745: write (i02,80003) ivtnum ! 746: if (iczero) 40880, 891, 40880 ! 747: 40880 if (rvcomp - 4160.) 20880,10880,40881 ! 748: 40881 if (rvcomp - 4260.) 10880,10880,20880 ! 749: 10880 ivpass = ivpass + 1 ! 750: write (i02,80001) ivtnum ! 751: go to 891 ! 752: 20880 ivfail = ivfail + 1 ! 753: rvcorr = 4210.1 ! 754: write (i02,80005) ivtnum, rvcomp, rvcorr ! 755: 891 continue ! 756: ivtnum = 89 ! 757: c ! 758: c **** test 89 **** ! 759: c ! 760: if (iczero) 30890, 890, 30890 ! 761: 890 continue ! 762: rvon01 = 3.35 ! 763: ivon01 = 7 ! 764: rvon02 = 524.87 ! 765: rvcomp = rvon01 ** ivon01 * rvon02 ! 766: go to 40890 ! 767: 30890 ivdele = ivdele + 1 ! 768: write (i02,80003) ivtnum ! 769: if (iczero) 40890, 901, 40890 ! 770: 40890 if (rvcomp - 2.43e6) 20890,10890,40891 ! 771: 40891 if (rvcomp - 2.53e6) 10890,10890,20890 ! 772: 10890 ivpass = ivpass + 1 ! 773: write (i02,80001) ivtnum ! 774: go to 901 ! 775: 20890 ivfail = ivfail + 1 ! 776: rvcorr = 2.4852e6 ! 777: write (i02,80005) ivtnum, rvcomp, rvcorr ! 778: 901 continue ! 779: ivtnum = 90 ! 780: c ! 781: c **** test 90 **** ! 782: c ! 783: if (iczero) 30900, 900, 30900 ! 784: 900 continue ! 785: rvon01 = 3.35 ! 786: ivon01 = 7 ! 787: rvon02 = 524.87 ! 788: rvcomp = rvon01 ** ivon01 / rvon02 ! 789: go to 40900 ! 790: 30900 ivdele = ivdele + 1 ! 791: write (i02,80003) ivtnum ! 792: if (iczero) 40900, 911, 40900 ! 793: 40900 if (rvcomp - 8.97) 20900,10900,40901 ! 794: 40901 if (rvcomp - 9.07) 10900,10900,20900 ! 795: 10900 ivpass = ivpass + 1 ! 796: write (i02,80001) ivtnum ! 797: go to 911 ! 798: 20900 ivfail = ivfail + 1 ! 799: rvcorr = 9.0211 ! 800: write (i02,80005) ivtnum, rvcomp, rvcorr ! 801: 911 continue ! 802: c ! 803: c tests 91 and 92 check all arithmetic operators used together ! 804: c ! 805: ivtnum = 91 ! 806: c ! 807: c **** test 91 **** ! 808: c ! 809: if (iczero) 30910, 910, 30910 ! 810: 910 continue ! 811: rvon01 = 780.56 ! 812: rvon02 = .803 ! 813: rvon03 = 3.35 ! 814: ivon01 = 7 ! 815: rvon04 = 20.07 ! 816: rvon05 = 511.9 ! 817: rvcomp = - rvon01 + rvon02 * rvon03 ** ivon01 / rvon04 - rvon05 ! 818: go to 40910 ! 819: 30910 ivdele = ivdele + 1 ! 820: write (i02,80003) ivtnum ! 821: if (iczero) 40910, 921, 40910 ! 822: 40910 if (rvcomp + 1113.0) 20910,10910,40911 ! 823: 40911 if (rvcomp + 1093.0) 10910,10910,20910 ! 824: 10910 ivpass = ivpass + 1 ! 825: write (i02,80001) ivtnum ! 826: go to 921 ! 827: 20910 ivfail = ivfail + 1 ! 828: rvcorr = -1103.0 ! 829: write (i02,80005) ivtnum, rvcomp, rvcorr ! 830: 921 continue ! 831: ivtnum = 92 ! 832: c ! 833: c **** test 92 **** ! 834: c ! 835: if (iczero) 30920, 920, 30920 ! 836: 920 continue ! 837: rvon01 = 780.56 ! 838: rvon02 = .803 ! 839: rvon03 = 3.35 ! 840: ivon01 = 7 ! 841: rvon04 = 20.07 ! 842: rvon05 = 511.9 ! 843: rvcomp = (-rvon01) + (rvon02 * rvon03) ** ivon01 / (rvon04-rvon05) ! 844: go to 40920 ! 845: 30920 ivdele = ivdele + 1 ! 846: write (i02,80003) ivtnum ! 847: if (iczero) 40920, 931, 40920 ! 848: 40920 if (rvcomp + 788.) 20920,10920,40921 ! 849: 40921 if (rvcomp + 777.) 10920,10920,20920 ! 850: 10920 ivpass = ivpass + 1 ! 851: write (i02,80001) ivtnum ! 852: go to 931 ! 853: 20920 ivfail = ivfail + 1 ! 854: rvcorr = -782.63 ! 855: write (i02,80005) ivtnum, rvcomp, rvcorr ! 856: 931 continue ! 857: c ! 858: c write page footings and run summaries ! 859: 99999 continue ! 860: write (i02,90002) ! 861: write (i02,90006) ! 862: write (i02,90002) ! 863: write (i02,90002) ! 864: write (i02,90007) ! 865: write (i02,90002) ! 866: write (i02,90008) ivfail ! 867: write (i02,90009) ivpass ! 868: write (i02,90010) ivdele ! 869: c ! 870: c ! 871: c terminate routine execution ! 872: stop ! 873: c ! 874: c format statements for page headers ! 875: 90000 format (1h1) ! 876: 90002 format (1h ) ! 877: 90001 format (1h ,10x,34hfortran compiler validation system) ! 878: 90003 format (1h ,21x,11hversion 1.0) ! 879: 90004 format (1h ,10x,38hfor official use only - copyright 1978) ! 880: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) ! 881: 90006 format (1h ,5x,46h----------------------------------------------) ! 882: 90011 format (1h ,18x,17hsubset level test) ! 883: c ! 884: c format statements for run summaries ! 885: 90008 format (1h ,15x,i5,19h errors encountered) ! 886: 90009 format (1h ,15x,i5,13h tests passed) ! 887: 90010 format (1h ,15x,i5,14h tests deleted) ! 888: c ! 889: c format statements for test results ! 890: 80001 format (1h ,4x,i5,7x,4hpass) ! 891: 80002 format (1h ,4x,i5,7x,4hfail) ! 892: 80003 format (1h ,4x,i5,7x,7hdeleted) ! 893: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) ! 894: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) ! 895: c ! 896: 90007 format (1h ,20x,20hend of program fm062) ! 897: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.