|
|
1.1 ! root 1: c comment section ! 2: c ! 3: c fm061 ! 4: c ! 5: c this routine tests arithmetic assignment statements of the ! 6: c form ! 7: c integer variable = real constant ! 8: c integer variable = real variable ! 9: c real variable = integer variable ! 10: c real variable = integer constant ! 11: c ! 12: c the constants and variables contain both positive and negative ! 13: c values. ! 14: c ! 15: c a real datum is a processor approximation to the value of a ! 16: c real number. it may assume positive, negative and zero values. ! 17: c ! 18: c a basic real constant is written as an integer part, a ! 19: c decimal point, and a decimal fraction part in that order. both ! 20: c the integer part and the decimal part are strings of digits; ! 21: c either one of these strings may be empty but not both. the ! 22: c constant is an approximation to the digit string interpreted as a ! 23: c decimal numeral. ! 24: c ! 25: c a decimal exponent is written as the letter e, followed by an ! 26: c optionally signed integer constant. ! 27: c ! 28: c a real constant is indicated by writing a basic real constant, ! 29: c a basic real constant followed by a decimal exponent, or an ! 30: c integer constant followed by a decimal exponent. ! 31: c ! 32: c references ! 33: c american national standard programming language fortran, ! 34: c x3.9-1978 ! 35: c ! 36: c section 4.4, real type ! 37: c section 4.4.1, real constant ! 38: c section 6.1, arithmetic expressions ! 39: c section 6.6, evaluation of expressions ! 40: c section 10.1, arithmetic assignment statement ! 41: c section 11.4, arithmetic if statement ! 42: c ! 43: c ********************************************************** ! 44: c ! 45: c a compiler validation system for the fortran language ! 46: c based on specifications as defined in american national standard ! 47: c programming language fortran x3.9-1978, has been developed by the ! 48: c federal cobol compiler testing service. the fortran compiler ! 49: c validation system (fcvs) consists of audit routines, their related ! 50: c data, and an executive system. each audit routine is a fortran ! 51: c program, subprogram or function which includes tests of specific ! 52: c language elements and supporting procedures indicating the result ! 53: c of executing these tests. ! 54: c ! 55: c this particular program/subprogram/function contains features ! 56: c found only in the subset as defined in x3.9-1978. ! 57: c ! 58: c suggestions and comments should be forwarded to - ! 59: c ! 60: c department of the navy ! 61: c federal cobol compiler testing service ! 62: c washington, d.c. 20376 ! 63: c ! 64: c ********************************************************** ! 65: c ! 66: c ! 67: c ! 68: c initialization section ! 69: c ! 70: c initialize constants ! 71: c ************** ! 72: c i01 contains the logical unit number for the card reader. ! 73: i01 = 5 ! 74: c i02 contains the logical unit number for the printer. ! 75: i02 = 6 ! 76: c system environment section ! 77: c ! 78: cx010 this card is replaced by contents of fexec x-010 control card. ! 79: c the cx010 card is for overriding the program default i01 = 5 ! 80: c (unit number for card reader). ! 81: cx011 this card is replaced by contents of fexec x-011 control card. ! 82: c the cx011 card is for systems which require additional ! 83: c fortran statements for files associated with cx010 above. ! 84: c ! 85: cx020 this card is replaced by contents of fexec x-020 control card. ! 86: c the cx020 card is for overriding the program default i02 = 6 ! 87: c (unit number for printer). ! 88: cx021 this card is replaced by contents of fexec x-021 control card. ! 89: c the cx021 card is for systems which require additional ! 90: c fortran statements for files associated with cx020 above. ! 91: c ! 92: ivpass=0 ! 93: ivfail=0 ! 94: ivdele=0 ! 95: iczero=0 ! 96: c ! 97: c write page headers ! 98: write (i02,90000) ! 99: write (i02,90001) ! 100: write (i02,90002) ! 101: write (i02, 90002) ! 102: write (i02,90003) ! 103: write (i02,90002) ! 104: write (i02,90004) ! 105: write (i02,90002) ! 106: write (i02,90011) ! 107: write (i02,90002) ! 108: write (i02,90002) ! 109: write (i02,90005) ! 110: write (i02,90006) ! 111: write (i02,90002) ! 112: c ! 113: c test section ! 114: c ! 115: c test 32 through test 42 contain arithmetic assignment ! 116: c statements of the form ! 117: c ! 118: c integer variable = real variable ! 119: c ! 120: ivtnum = 32 ! 121: c ! 122: c **** test 32 **** ! 123: c ! 124: if (iczero) 30320, 320, 30320 ! 125: 320 continue ! 126: rvon01 = 44.5 ! 127: ivcomp = rvon01 ! 128: go to 40320 ! 129: 30320 ivdele = ivdele + 1 ! 130: write (i02,80003) ivtnum ! 131: if (iczero) 40320, 331, 40320 ! 132: 40320 if (ivcomp - 44) 20320,10320,20320 ! 133: 10320 ivpass = ivpass + 1 ! 134: write (i02,80001) ivtnum ! 135: go to 331 ! 136: 20320 ivfail = ivfail + 1 ! 137: ivcorr = 44 ! 138: write (i02,80004) ivtnum, ivcomp, ivcorr ! 139: 331 continue ! 140: ivtnum = 33 ! 141: c ! 142: c **** test 33 **** ! 143: c ! 144: if (iczero) 30330, 330, 30330 ! 145: 330 continue ! 146: rvon01 = -2.0005 ! 147: ivcomp = rvon01 ! 148: go to 40330 ! 149: 30330 ivdele = ivdele + 1 ! 150: write (i02,80003) ivtnum ! 151: if (iczero) 40330, 341, 40330 ! 152: 40330 if (ivcomp + 2) 20330,10330,20330 ! 153: 10330 ivpass = ivpass + 1 ! 154: write (i02,80001) ivtnum ! 155: go to 341 ! 156: 20330 ivfail = ivfail + 1 ! 157: ivcorr = -2 ! 158: write (i02,80004) ivtnum, ivcomp, ivcorr ! 159: 341 continue ! 160: ivtnum = 34 ! 161: c ! 162: c **** test 34 **** ! 163: c ! 164: if (iczero) 30340, 340, 30340 ! 165: 340 continue ! 166: rvon01 = .32767 ! 167: ivcomp = rvon01 ! 168: go to 40340 ! 169: 30340 ivdele = ivdele + 1 ! 170: write (i02,80003) ivtnum ! 171: if (iczero) 40340, 351, 40340 ! 172: 40340 if (ivcomp) 20340,10340,20340 ! 173: 10340 ivpass = ivpass + 1 ! 174: write (i02,80001) ivtnum ! 175: go to 351 ! 176: 20340 ivfail = ivfail + 1 ! 177: ivcorr = 0 ! 178: write (i02,80004) ivtnum, ivcomp, ivcorr ! 179: 351 continue ! 180: ivtnum = 35 ! 181: c ! 182: c **** test 35 **** ! 183: c ! 184: if (iczero) 30350, 350, 30350 ! 185: 350 continue ! 186: rvon01 = 1.999 ! 187: ivcomp = rvon01 ! 188: go to 40350 ! 189: 30350 ivdele = ivdele + 1 ! 190: write (i02,80003) ivtnum ! 191: if (iczero) 40350, 361, 40350 ! 192: 40350 if (ivcomp - 1) 20350,10350,20350 ! 193: 10350 ivpass = ivpass + 1 ! 194: write (i02,80001) ivtnum ! 195: go to 361 ! 196: 20350 ivfail = ivfail + 1 ! 197: ivcorr = 1 ! 198: write (i02,80004) ivtnum, ivcomp, ivcorr ! 199: 361 continue ! 200: ivtnum = 36 ! 201: c ! 202: c **** test 36 **** ! 203: c ! 204: if (iczero) 30360, 360, 30360 ! 205: 360 continue ! 206: rvon01 = .25e+1 ! 207: ivcomp = rvon01 ! 208: go to 40360 ! 209: 30360 ivdele = ivdele + 1 ! 210: write (i02,80003) ivtnum ! 211: if (iczero) 40360, 371, 40360 ! 212: 40360 if (ivcomp - 2) 20360,10360,20360 ! 213: 10360 ivpass = ivpass + 1 ! 214: write (i02,80001) ivtnum ! 215: go to 371 ! 216: 20360 ivfail = ivfail + 1 ! 217: ivcorr = 2 ! 218: write (i02,80004) ivtnum, ivcomp, ivcorr ! 219: 371 continue ! 220: ivtnum = 37 ! 221: c ! 222: c **** test 37 **** ! 223: c ! 224: if (iczero) 30370, 370, 30370 ! 225: 370 continue ! 226: rvon01 = 445.0e-01 ! 227: ivcomp = rvon01 ! 228: go to 40370 ! 229: 30370 ivdele = ivdele + 1 ! 230: write (i02,80003) ivtnum ! 231: if (iczero) 40370, 381, 40370 ! 232: 40370 if (ivcomp - 44) 20370,10370,20370 ! 233: 10370 ivpass = ivpass + 1 ! 234: write (i02,80001) ivtnum ! 235: go to 381 ! 236: 20370 ivfail = ivfail + 1 ! 237: ivcorr = 44 ! 238: write (i02,80004) ivtnum, ivcomp, ivcorr ! 239: 381 continue ! 240: ivtnum = 38 ! 241: c ! 242: c **** test 38 **** ! 243: c ! 244: if (iczero) 30380, 380, 30380 ! 245: 380 continue ! 246: rvon01 = -651.1e-0 ! 247: ivcomp = rvon01 ! 248: go to 40380 ! 249: 30380 ivdele = ivdele + 1 ! 250: write (i02,80003) ivtnum ! 251: if (iczero) 40380, 391, 40380 ! 252: 40380 if (ivcomp + 651) 20380,10380,20380 ! 253: 10380 ivpass = ivpass + 1 ! 254: write (i02,80001) ivtnum ! 255: go to 391 ! 256: 20380 ivfail = ivfail + 1 ! 257: ivcorr = -651 ! 258: write (i02,80004) ivtnum, ivcomp, ivcorr ! 259: 391 continue ! 260: ivtnum = 39 ! 261: c ! 262: c **** test 39 **** ! 263: c ! 264: if (iczero) 30390, 390, 30390 ! 265: 390 continue ! 266: rvon01 = .3266e4 ! 267: ivcomp = rvon01 ! 268: go to 40390 ! 269: 30390 ivdele = ivdele + 1 ! 270: write (i02,80003) ivtnum ! 271: if (iczero) 40390, 401, 40390 ! 272: 40390 if (ivcomp - 3266) 20390,10390,20390 ! 273: 10390 ivpass = ivpass + 1 ! 274: write (i02,80001) ivtnum ! 275: go to 401 ! 276: 20390 ivfail = ivfail + 1 ! 277: ivcorr = 3266 ! 278: write (i02,80004) ivtnum, ivcomp, ivcorr ! 279: 401 continue ! 280: ivtnum = 40 ! 281: c ! 282: c **** test 40 **** ! 283: c ! 284: if (iczero) 30400, 400, 30400 ! 285: 400 continue ! 286: rvon01 = 35.43e-01 ! 287: ivcomp = rvon01 ! 288: go to 40400 ! 289: 30400 ivdele = ivdele + 1 ! 290: write (i02,80003) ivtnum ! 291: if (iczero) 40400, 411, 40400 ! 292: 40400 if (ivcomp - 3) 20400,10400,20400 ! 293: 10400 ivpass = ivpass + 1 ! 294: write (i02,80001) ivtnum ! 295: go to 411 ! 296: 20400 ivfail = ivfail + 1 ! 297: ivcorr = 3 ! 298: write (i02,80004) ivtnum, ivcomp, ivcorr ! 299: 411 continue ! 300: ivtnum = 41 ! 301: c ! 302: c **** test 41 **** ! 303: c ! 304: if (iczero) 30410, 410, 30410 ! 305: 410 continue ! 306: rvon01 = -7.001e2 ! 307: ivcomp = rvon01 ! 308: go to 40410 ! 309: 30410 ivdele = ivdele + 1 ! 310: write (i02,80003) ivtnum ! 311: if (iczero) 40410, 421, 40410 ! 312: 40410 if (ivcomp + 700) 20410,10410,20410 ! 313: 10410 ivpass = ivpass + 1 ! 314: write (i02,80001) ivtnum ! 315: go to 421 ! 316: 20410 ivfail = ivfail + 1 ! 317: ivcorr = -700 ! 318: write (i02,80004) ivtnum, ivcomp, ivcorr ! 319: 421 continue ! 320: ivtnum = 42 ! 321: c ! 322: c **** test 42 **** ! 323: c ! 324: if (iczero) 30420, 420, 30420 ! 325: 420 continue ! 326: rvon01 = 4.45e-02 ! 327: ivcomp = rvon01 ! 328: go to 40420 ! 329: 30420 ivdele = ivdele + 1 ! 330: write (i02,80003) ivtnum ! 331: if (iczero) 40420, 431, 40420 ! 332: 40420 if (ivcomp) 20420,10420,20420 ! 333: 10420 ivpass = ivpass + 1 ! 334: write (i02,80001) ivtnum ! 335: go to 431 ! 336: 20420 ivfail = ivfail + 1 ! 337: ivcorr = 0 ! 338: write (i02,80004) ivtnum, ivcomp, ivcorr ! 339: c test 43 through test 48 contain arithmetic assignment ! 340: c statements of the form ! 341: c ! 342: c real variable = integer variable ! 343: c ! 344: 431 continue ! 345: ivtnum = 43 ! 346: c ! 347: c **** test 43 **** ! 348: c ! 349: if (iczero) 30430, 430, 30430 ! 350: 430 continue ! 351: ivon01 = 2 ! 352: rvcomp = ivon01 ! 353: go to 40430 ! 354: 30430 ivdele = ivdele + 1 ! 355: write (i02,80003) ivtnum ! 356: if (iczero) 40430, 441, 40430 ! 357: 40430 if (rvcomp - 1.9995) 20430,10430,40431 ! 358: 40431 if (rvcomp - 2.0005) 10430,10430,20430 ! 359: 10430 ivpass = ivpass + 1 ! 360: write (i02,80001) ivtnum ! 361: go to 441 ! 362: 20430 ivfail = ivfail + 1 ! 363: rvcorr = 2.0000 ! 364: write (i02,80005) ivtnum, rvcomp, rvcorr ! 365: 441 continue ! 366: ivtnum = 44 ! 367: c ! 368: c **** test 44 **** ! 369: c ! 370: if (iczero) 30440, 440, 30440 ! 371: 440 continue ! 372: ivon01 = 25 ! 373: rvcomp = ivon01 ! 374: go to 40440 ! 375: 30440 ivdele = ivdele + 1 ! 376: write (i02,80003) ivtnum ! 377: if (iczero) 40440, 451, 40440 ! 378: 40440 if (rvcomp - 24.995) 20440,10440,40441 ! 379: 40441 if (rvcomp - 25.005) 10440,10440,20440 ! 380: 10440 ivpass = ivpass + 1 ! 381: write (i02,80001) ivtnum ! 382: go to 451 ! 383: 20440 ivfail = ivfail + 1 ! 384: rvcorr = 25.000 ! 385: write (i02,80005) ivtnum, rvcomp, rvcorr ! 386: 451 continue ! 387: ivtnum = 45 ! 388: c ! 389: c **** test 45 **** ! 390: c ! 391: if (iczero) 30450, 450, 30450 ! 392: 450 continue ! 393: ivon01 = 357 ! 394: rvcomp = ivon01 ! 395: go to 40450 ! 396: 30450 ivdele = ivdele + 1 ! 397: write (i02,80003) ivtnum ! 398: if (iczero) 40450, 461, 40450 ! 399: 40450 if (rvcomp - 356.95) 20450,10450,40451 ! 400: 40451 if (rvcomp - 357.05) 10450,10450,20450 ! 401: 10450 ivpass = ivpass + 1 ! 402: write (i02,80001) ivtnum ! 403: go to 461 ! 404: 20450 ivfail = ivfail + 1 ! 405: rvcorr = 357.00 ! 406: write (i02,80005) ivtnum, rvcomp, rvcorr ! 407: 461 continue ! 408: ivtnum = 46 ! 409: c ! 410: c **** test 46 **** ! 411: c ! 412: if (iczero) 30460, 460, 30460 ! 413: 460 continue ! 414: ivon01 = 4968 ! 415: rvcomp = ivon01 ! 416: go to 40460 ! 417: 30460 ivdele = ivdele + 1 ! 418: write (i02,80003) ivtnum ! 419: if (iczero) 40460, 471, 40460 ! 420: 40460 if (rvcomp - 4967.5) 20460,10460,40461 ! 421: 40461 if (rvcomp - 4968.5) 10460,10460,20460 ! 422: 10460 ivpass = ivpass + 1 ! 423: write (i02,80001) ivtnum ! 424: go to 471 ! 425: 20460 ivfail = ivfail + 1 ! 426: rvcorr = 4968.0 ! 427: write (i02,80005) ivtnum, rvcomp, rvcorr ! 428: 471 continue ! 429: ivtnum = 47 ! 430: c ! 431: c **** test 47 **** ! 432: c ! 433: if (iczero) 30470, 470, 30470 ! 434: 470 continue ! 435: ivon01 = 32767 ! 436: rvcomp = ivon01 ! 437: go to 40470 ! 438: 30470 ivdele = ivdele + 1 ! 439: write (i02,80003) ivtnum ! 440: if (iczero) 40470, 481, 40470 ! 441: 40470 if (rvcomp - 32762.) 20470,10470,40471 ! 442: 40471 if (rvcomp - 32772.) 10470,10470,20470 ! 443: 10470 ivpass = ivpass + 1 ! 444: write (i02,80001) ivtnum ! 445: go to 481 ! 446: 20470 ivfail = ivfail + 1 ! 447: rvcorr = 32767. ! 448: write (i02,80005) ivtnum, rvcomp, rvcorr ! 449: 481 continue ! 450: ivtnum = 48 ! 451: c ! 452: c **** test 48 **** ! 453: c ! 454: if (iczero) 30480, 480, 30480 ! 455: 480 continue ! 456: ivon01 = -2 ! 457: rvcomp = ivon01 ! 458: go to 40480 ! 459: 30480 ivdele = ivdele + 1 ! 460: write (i02,80003) ivtnum ! 461: if (iczero) 40480, 491, 40480 ! 462: 40480 if (rvcomp + 2.0005) 20480,10480,40481 ! 463: 40481 if (rvcomp + 1.9995) 10480,10480,20450 ! 464: 10480 ivpass = ivpass + 1 ! 465: write (i02,80001) ivtnum ! 466: go to 491 ! 467: 20480 ivfail = ivfail + 1 ! 468: rvcorr = -2.0000 ! 469: write (i02,80005) ivtnum, rvcomp, rvcorr ! 470: c ! 471: c test 49 through test 51 contain arithmetic assignment statements ! 472: c of the form ! 473: c integer variable = real constant ! 474: c where constant is basic real constant ! 475: c ! 476: 491 continue ! 477: ivtnum = 49 ! 478: c ! 479: c **** test 49 **** ! 480: c ! 481: if (iczero) 30490, 490, 30490 ! 482: 490 continue ! 483: ivcomp = 44.5 ! 484: go to 40490 ! 485: 30490 ivdele = ivdele + 1 ! 486: write (i02,80003) ivtnum ! 487: if (iczero) 40490, 501, 40490 ! 488: 40490 if (ivcomp - 44) 20490,10490,20490 ! 489: 10490 ivpass = ivpass + 1 ! 490: write (i02,80001) ivtnum ! 491: go to 501 ! 492: 20490 ivfail = ivfail + 1 ! 493: ivcorr = 44 ! 494: write (i02,80004) ivtnum, ivcomp, ivcorr ! 495: 501 continue ! 496: ivtnum = 50 ! 497: c ! 498: c **** test 50 **** ! 499: c ! 500: if (iczero) 30500, 500, 30500 ! 501: 500 continue ! 502: ivcomp = 6500.1 ! 503: go to 40500 ! 504: 30500 ivdele = ivdele + 1 ! 505: write (i02,80003) ivtnum ! 506: if (iczero) 40500, 511, 40500 ! 507: 40500 if (ivcomp - 6500) 20500,10500,20500 ! 508: 10500 ivpass = ivpass + 1 ! 509: write (i02,80001) ivtnum ! 510: go to 511 ! 511: 20500 ivfail = ivfail + 1 ! 512: ivcorr = 6500 ! 513: write (i02,80004) ivtnum, ivcomp, ivcorr ! 514: 511 continue ! 515: ivtnum = 51 ! 516: c ! 517: c **** test 51 **** ! 518: c ! 519: if (iczero) 30510, 510, 30510 ! 520: 510 continue ! 521: ivcomp = -.33333 ! 522: go to 40510 ! 523: 30510 ivdele = ivdele + 1 ! 524: write (i02,80003) ivtnum ! 525: if (iczero) 40510, 521, 40510 ! 526: 40510 if (ivcomp) 20510,10510,20510 ! 527: 10510 ivpass = ivpass + 1 ! 528: write (i02,80001) ivtnum ! 529: go to 521 ! 530: 20510 ivfail = ivfail + 1 ! 531: ivcorr = 0 ! 532: write (i02,80004) ivtnum, ivcomp, ivcorr ! 533: c ! 534: c test 52 through test 55 contain arithmetic assignment statements ! 535: c of the form ! 536: c integer variable = real constant ! 537: c ! 538: c where constant is basic real constant followed by decimal exponent ! 539: c ! 540: 521 continue ! 541: ivtnum = 52 ! 542: c ! 543: c **** test 52 **** ! 544: c ! 545: if (iczero) 30520, 520, 30520 ! 546: 520 continue ! 547: ivcomp = .21e+1 ! 548: go to 40520 ! 549: 30520 ivdele = ivdele + 1 ! 550: write (i02,80003) ivtnum ! 551: if (iczero) 40520, 531, 40520 ! 552: 40520 if (ivcomp - 2) 20520,10520,20520 ! 553: 10520 ivpass = ivpass + 1 ! 554: write (i02,80001) ivtnum ! 555: go to 531 ! 556: 20520 ivfail = ivfail + 1 ! 557: ivcorr = 2 ! 558: write (i02,80004) ivtnum, ivcomp, ivcorr ! 559: 531 continue ! 560: ivtnum = 53 ! 561: c ! 562: c **** test 53 **** ! 563: c ! 564: if (iczero) 30530, 530, 30530 ! 565: 530 continue ! 566: ivcomp = 445.0e-01 ! 567: go to 40530 ! 568: 30530 ivdele = ivdele + 1 ! 569: write (i02,80003) ivtnum ! 570: if (iczero) 40530, 541, 40530 ! 571: 40530 if (ivcomp - 44) 20530,10530,20530 ! 572: 10530 ivpass = ivpass + 1 ! 573: write (i02,80001) ivtnum ! 574: go to 541 ! 575: 20530 ivfail = ivfail + 1 ! 576: ivcorr = 44 ! 577: write (i02,80004) ivtnum, ivcomp, ivcorr ! 578: 541 continue ! 579: ivtnum = 54 ! 580: c ! 581: c **** test 54 **** ! 582: c ! 583: if (iczero) 30540, 540, 30540 ! 584: 540 continue ! 585: ivcomp = 4.450e1 ! 586: go to 40540 ! 587: 30540 ivdele = ivdele + 1 ! 588: write (i02,80003) ivtnum ! 589: if (iczero) 40540, 551, 40540 ! 590: 40540 if (ivcomp - 44) 20540,10540,20540 ! 591: 10540 ivpass = ivpass + 1 ! 592: write (i02,80001) ivtnum ! 593: go to 551 ! 594: 20540 ivfail = ivfail + 1 ! 595: ivcorr = 44 ! 596: write (i02,80004) ivtnum, ivcomp, ivcorr ! 597: 551 continue ! 598: ivtnum = 55 ! 599: c ! 600: c **** test 55 **** ! 601: c ! 602: if (iczero) 30550, 550, 30550 ! 603: 550 continue ! 604: ivcomp = -4.45e0 ! 605: go to 40550 ! 606: 30550 ivdele = ivdele + 1 ! 607: write (i02,80003) ivtnum ! 608: if (iczero) 40550, 561, 40550 ! 609: 40550 if (ivcomp + 4) 20550,10550,20550 ! 610: 10550 ivpass = ivpass + 1 ! 611: write (i02,80001) ivtnum ! 612: go to 561 ! 613: 20550 ivfail = ivfail + 1 ! 614: ivcorr = -4 ! 615: write (i02,80004) ivtnum, ivcomp, ivcorr ! 616: c ! 617: c test 56 and 57 contain arithmetic assignment statements of the ! 618: c form integer variable = real constant ! 619: c where constant is integer constant followed by decimal exponent ! 620: c ! 621: 561 continue ! 622: ivtnum = 56 ! 623: c ! 624: c **** test 56 **** ! 625: c ! 626: if (iczero) 30560, 560, 30560 ! 627: 560 continue ! 628: ivcomp = 445e-02 ! 629: go to 40560 ! 630: 30560 ivdele = ivdele + 1 ! 631: write (i02,80003) ivtnum ! 632: if (iczero) 40560, 571, 40560 ! 633: 40560 if (ivcomp - 4) 20560,10560,20560 ! 634: 10560 ivpass = ivpass + 1 ! 635: write (i02,80001) ivtnum ! 636: go to 571 ! 637: 20560 ivfail = ivfail + 1 ! 638: ivcorr = 4 ! 639: write (i02,80004) ivtnum, ivcomp, ivcorr ! 640: 571 continue ! 641: ivtnum = 57 ! 642: c ! 643: c **** test 57 **** ! 644: c ! 645: if (iczero) 30570, 570, 30570 ! 646: 570 continue ! 647: ivcomp = -701e-1 ! 648: go to 40570 ! 649: 30570 ivdele = ivdele + 1 ! 650: write (i02,80003) ivtnum ! 651: if (iczero) 40570, 581, 40570 ! 652: 40570 if (ivcomp + 70) 20570,10570,20570 ! 653: 10570 ivpass = ivpass + 1 ! 654: write (i02,80001) ivtnum ! 655: go to 581 ! 656: 20570 ivfail = ivfail + 1 ! 657: ivcorr = -70 ! 658: write (i02,80004) ivtnum, ivcomp, ivcorr ! 659: c ! 660: c test 58 through test 62 contain arithmetic assignment statements ! 661: c of the form real variable = integer constant ! 662: c ! 663: 581 continue ! 664: ivtnum = 58 ! 665: c ! 666: c **** test 58 **** ! 667: c ! 668: if (iczero) 30580, 580, 30580 ! 669: 580 continue ! 670: rvcomp = 23 ! 671: go to 40580 ! 672: 30580 ivdele = ivdele + 1 ! 673: write (i02,80003) ivtnum ! 674: if (iczero) 40580, 591, 40580 ! 675: 40580 if (rvcomp - 22.995) 20580,10580,40581 ! 676: 40581 if (rvcomp - 23.005) 10580,10580,20580 ! 677: 10580 ivpass = ivpass + 1 ! 678: write (i02,80001) ivtnum ! 679: go to 591 ! 680: 20580 ivfail = ivfail + 1 ! 681: rvcorr = 23.000 ! 682: write (i02,80005) ivtnum, rvcomp, rvcorr ! 683: 591 continue ! 684: ivtnum = 59 ! 685: c ! 686: c **** test 59 **** ! 687: c ! 688: if (iczero) 30590, 590, 30590 ! 689: 590 continue ! 690: rvcomp = 32645 ! 691: go to 40590 ! 692: 30590 ivdele = ivdele + 1 ! 693: write (i02,80003) ivtnum ! 694: if (iczero) 40590, 601, 40590 ! 695: 40590 if (rvcomp - 32640.) 20590,10590,40591 ! 696: 40591 if (rvcomp - 32650.) 10590,10590,20590 ! 697: 10590 ivpass = ivpass + 1 ! 698: write (i02,80001) ivtnum ! 699: go to 601 ! 700: 20590 ivfail = ivfail + 1 ! 701: rvcorr = 32645. ! 702: write (i02,80005) ivtnum, rvcomp, rvcorr ! 703: 601 continue ! 704: ivtnum = 60 ! 705: c ! 706: c **** test 60 **** ! 707: c ! 708: if (iczero) 30600, 600, 30600 ! 709: 600 continue ! 710: rvcomp = 0 ! 711: go to 40600 ! 712: 30600 ivdele = ivdele + 1 ! 713: write (i02,80003) ivtnum ! 714: if (iczero) 40600, 611, 40600 ! 715: 40600 if (rvcomp) 20600,10600,20600 ! 716: 10600 ivpass = ivpass + 1 ! 717: write (i02,80001) ivtnum ! 718: go to 611 ! 719: 20600 ivfail = ivfail + 1 ! 720: rvcorr = 00000. ! 721: write (i02,80005) ivtnum, rvcomp, rvcorr ! 722: 611 continue ! 723: ivtnum = 61 ! 724: c ! 725: c **** test 61 **** ! 726: c ! 727: if (iczero) 30610, 610, 30610 ! 728: 610 continue ! 729: rvcomp = -15 ! 730: go to 40610 ! 731: 30610 ivdele = ivdele + 1 ! 732: write (i02,80003) ivtnum ! 733: if (iczero) 40610, 621, 40610 ! 734: 40610 if (rvcomp -14.995) 40611,10610,20610 ! 735: 40611 if (rvcomp + 15.005) 20610,10610,10610 ! 736: 10610 ivpass = ivpass + 1 ! 737: write (i02,80001) ivtnum ! 738: go to 621 ! 739: 20610 ivfail = ivfail + 1 ! 740: rvcorr = -15.000 ! 741: write (i02,80005) ivtnum, rvcomp, rvcorr ! 742: 621 continue ! 743: c ! 744: c **** end of tests **** ! 745: c ! 746: c ! 747: c write page footings and run summaries ! 748: 99999 continue ! 749: write (i02,90002) ! 750: write (i02,90006) ! 751: write (i02,90002) ! 752: write (i02,90002) ! 753: write (i02,90007) ! 754: write (i02,90002) ! 755: write (i02,90008) ivfail ! 756: write (i02,90009) ivpass ! 757: write (i02,90010) ivdele ! 758: c ! 759: c ! 760: c terminate routine execution ! 761: stop ! 762: c ! 763: c format statements for page headers ! 764: 90000 format (1h1) ! 765: 90002 format (1h ) ! 766: 90001 format (1h ,10x,34hfortran compiler validation system) ! 767: 90003 format (1h ,21x,11hversion 1.0) ! 768: 90004 format (1h ,10x,38hfor official use only - copyright 1978) ! 769: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) ! 770: 90006 format (1h ,5x,46h----------------------------------------------) ! 771: 90011 format (1h ,18x,17hsubset level test) ! 772: c ! 773: c format statements for run summaries ! 774: 90008 format (1h ,15x,i5,19h errors encountered) ! 775: 90009 format (1h ,15x,i5,13h tests passed) ! 776: 90010 format (1h ,15x,i5,14h tests deleted) ! 777: c ! 778: c format statements for test results ! 779: 80001 format (1h ,4x,i5,7x,4hpass) ! 780: 80002 format (1h ,4x,i5,7x,4hfail) ! 781: 80003 format (1h ,4x,i5,7x,7hdeleted) ! 782: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) ! 783: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) ! 784: c ! 785: 90007 format (1h ,20x,20hend of program fm061) ! 786: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.