|
|
1.1 ! root 1: c comment section ! 2: c ! 3: c fm040 ! 4: c ! 5: c this routine tests arithmetic assignment statements of the ! 6: c form integer variable = arithmetic expression ! 7: c where the arithmetic expression is formed with the arithmetic ! 8: c operator /, integer variables and an integer constant. both ! 9: c positive and negative values are used for the integer variables ! 10: c and the integer constant. ! 11: c ! 12: c there are tests which require no truncation of the result and ! 13: c tests where the result must be truncated before being stored in ! 14: c the resultant integer variable. some of the tests use parens ! 15: c to group elements in the arithmetic expression. ! 16: c ! 17: c there are tests where the arithmetic expression contains ! 18: c (1) integer variable/integer variable ! 19: c (2) integer variable/integer variable/integer constant ! 20: c integer variable/integer constant/integer variable ! 21: c integer constant/integer variable/integer variable ! 22: c (3) same as (2) but with parentheses to group elements ! 23: c in the arithmetic expression. ! 24: c ! 25: c references ! 26: c american national standard programming language fortran, ! 27: c x3.9-1978 ! 28: c ! 29: c section 4.3, integer type ! 30: c section 4.3.1, integer constant ! 31: c section 6.1, arithmetic expressions ! 32: c section 6.6, evaluation of expressions ! 33: c section 10.1, arithmetic assignment statement ! 34: c ! 35: c ********************************************************** ! 36: c ! 37: c a compiler validation system for the fortran language ! 38: c based on specifications as defined in american national standard ! 39: c programming language fortran x3.9-1978, has been developed by the ! 40: c federal cobol compiler testing service. the fortran compiler ! 41: c validation system (fcvs) consists of audit routines, their related ! 42: c data, and an executive system. each audit routine is a fortran ! 43: c program, subprogram or function which includes tests of specific ! 44: c language elements and supporting procedures indicating the result ! 45: c of executing these tests. ! 46: c ! 47: c this particular program/subprogram/function contains features ! 48: c found only in the subset as defined in x3.9-1978. ! 49: c ! 50: c suggestions and comments should be forwarded to - ! 51: c ! 52: c department of the navy ! 53: c federal cobol compiler testing service ! 54: c washington, d.c. 20376 ! 55: c ! 56: c ********************************************************** ! 57: c ! 58: c ! 59: c ! 60: c initialization section ! 61: c ! 62: c initialize constants ! 63: c ************** ! 64: c i01 contains the logical unit number for the card reader. ! 65: i01 = 5 ! 66: c i02 contains the logical unit number for the printer. ! 67: i02 = 6 ! 68: c system environment section ! 69: c ! 70: cx010 this card is replaced by contents of fexec x-010 control card. ! 71: c the cx010 card is for overriding the program default i01 = 5 ! 72: c (unit number for card reader). ! 73: cx011 this card is replaced by contents of fexec x-011 control card. ! 74: c the cx011 card is for systems which require additional ! 75: c fortran statements for files associated with cx010 above. ! 76: c ! 77: cx020 this card is replaced by contents of fexec x-020 control card. ! 78: c the cx020 card is for overriding the program default i02 = 6 ! 79: c (unit number for printer). ! 80: cx021 this card is replaced by contents of fexec x-021 control card. ! 81: c the cx021 card is for systems which require additional ! 82: c fortran statements for files associated with cx020 above. ! 83: c ! 84: ivpass=0 ! 85: ivfail=0 ! 86: ivdele=0 ! 87: iczero=0 ! 88: c ! 89: c write page headers ! 90: write (i02,90000) ! 91: write (i02,90001) ! 92: write (i02,90002) ! 93: write (i02, 90002) ! 94: write (i02,90003) ! 95: write (i02,90002) ! 96: write (i02,90004) ! 97: write (i02,90002) ! 98: write (i02,90011) ! 99: write (i02,90002) ! 100: write (i02,90002) ! 101: write (i02,90005) ! 102: write (i02,90006) ! 103: write (i02,90002) ! 104: c ! 105: c test section ! 106: c ! 107: c arithmetic assignment statement ! 108: c ! 109: c test 582 through test 597 contain arithmetic assignment statements ! 110: c of the form integer variable=integer variable/integer var. ! 111: c ! 112: c test 582 through test 585 - positive values ! 113: c no truncation required ! 114: c ! 115: 5821 continue ! 116: ivtnum = 582 ! 117: c ! 118: c **** test 582 **** ! 119: c ! 120: if (iczero) 35820, 5820, 35820 ! 121: 5820 continue ! 122: ivon01 = 4 ! 123: ivon02 = 2 ! 124: ivcomp = ivon01 / ivon02 ! 125: go to 45820 ! 126: 35820 ivdele = ivdele + 1 ! 127: write (i02,80003) ivtnum ! 128: if (iczero) 45820, 5831, 45820 ! 129: 45820 if (ivcomp -2) 25820,15820,25820 ! 130: 15820 ivpass = ivpass + 1 ! 131: write (i02,80001) ivtnum ! 132: go to 5831 ! 133: 25820 ivfail = ivfail + 1 ! 134: ivcorr = 2 ! 135: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 136: 5831 continue ! 137: ivtnum = 583 ! 138: c ! 139: c **** test 583 **** ! 140: c ! 141: if (iczero) 35830, 5830, 35830 ! 142: 5830 continue ! 143: ivon01 = 3575 ! 144: ivon02 = 25 ! 145: ivcomp = ivon01/ivon02 ! 146: go to 45830 ! 147: 35830 ivdele = ivdele + 1 ! 148: write (i02,80003) ivtnum ! 149: if (iczero) 45830, 5841, 45830 ! 150: 45830 if (ivcomp - 143) 25830,15830,25830 ! 151: 15830 ivpass = ivpass + 1 ! 152: write (i02,80001) ivtnum ! 153: go to 5841 ! 154: 25830 ivfail = ivfail + 1 ! 155: ivcorr = 143 ! 156: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 157: 5841 continue ! 158: ivtnum = 584 ! 159: c ! 160: c **** test 584 **** ! 161: c ! 162: if (iczero) 35840, 5840, 35840 ! 163: 5840 continue ! 164: ivon01 = 6170 ! 165: ivon02 = 1234 ! 166: ivcomp = ivon01/ivon02 ! 167: go to 45840 ! 168: 35840 ivdele = ivdele + 1 ! 169: write (i02,80003) ivtnum ! 170: if (iczero) 45840, 5851, 45840 ! 171: 45840 if (ivcomp - 5) 25840,15840,25840 ! 172: 15840 ivpass = ivpass + 1 ! 173: write (i02,80001) ivtnum ! 174: go to 5851 ! 175: 25840 ivfail = ivfail + 1 ! 176: ivcorr = 5 ! 177: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 178: 5851 continue ! 179: ivtnum = 585 ! 180: c ! 181: c **** test 585 **** ! 182: c ! 183: if (iczero) 35850, 5850, 35850 ! 184: 5850 continue ! 185: ivon01 = 32767 ! 186: ivon02 = 1 ! 187: ivcomp = ivon01/ivon02 ! 188: go to 45850 ! 189: 35850 ivdele = ivdele + 1 ! 190: write (i02,80003) ivtnum ! 191: if (iczero) 45850, 5861, 45850 ! 192: 45850 if (ivcomp - 32767) 25850,15850,25850 ! 193: 15850 ivpass = ivpass + 1 ! 194: write (i02,80001) ivtnum ! 195: go to 5861 ! 196: 25850 ivfail = ivfail + 1 ! 197: ivcorr = 32767 ! 198: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 199: c ! 200: c test 586 through test 589 - positive values ! 201: c truncation of result required ! 202: c ! 203: 5861 continue ! 204: ivtnum = 586 ! 205: c ! 206: c **** test 586 **** ! 207: c ! 208: if (iczero) 35860, 5860, 35860 ! 209: 5860 continue ! 210: ivon01 = 2 ! 211: ivon02 = 3 ! 212: ivcomp = ivon01/ivon02 ! 213: go to 45860 ! 214: 35860 ivdele = ivdele + 1 ! 215: write (i02,80003) ivtnum ! 216: if (iczero) 45860, 5871, 45860 ! 217: 45860 if (ivcomp) 25860,15860,25860 ! 218: 15860 ivpass = ivpass + 1 ! 219: write (i02,80001) ivtnum ! 220: go to 5871 ! 221: 25860 ivfail = ivfail + 1 ! 222: ivcorr = 0 ! 223: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 224: 5871 continue ! 225: ivtnum = 587 ! 226: c ! 227: c **** test 587 **** ! 228: c ! 229: if (iczero) 35870, 5870, 35870 ! 230: 5870 continue ! 231: ivon01 = 959 ! 232: ivon02 = 120 ! 233: ivcomp = ivon01/ivon02 ! 234: go to 45870 ! 235: 35870 ivdele = ivdele + 1 ! 236: write (i02,80003) ivtnum ! 237: if (iczero) 45870, 5881, 45870 ! 238: 45870 if (ivcomp - 7) 25870,15870,25870 ! 239: 15870 ivpass = ivpass + 1 ! 240: write (i02,80001) ivtnum ! 241: go to 5881 ! 242: 25870 ivfail = ivfail + 1 ! 243: ivcorr = 7 ! 244: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 245: 5881 continue ! 246: ivtnum = 588 ! 247: c ! 248: c **** test 588 **** ! 249: c ! 250: if (iczero) 35880, 5880, 35880 ! 251: 5880 continue ! 252: ivon01 = 26606 ! 253: ivon02 = 8 ! 254: ivcomp = ivon01/ivon02 ! 255: go to 45880 ! 256: 35880 ivdele = ivdele + 1 ! 257: write (i02,80003) ivtnum ! 258: if (iczero) 45880, 5891, 45880 ! 259: 45880 if (ivcomp - 3325) 25880,15880,25880 ! 260: 15880 ivpass = ivpass + 1 ! 261: write (i02,80001) ivtnum ! 262: go to 5891 ! 263: 25880 ivfail = ivfail + 1 ! 264: ivcorr = 3325 ! 265: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 266: 5891 continue ! 267: ivtnum = 589 ! 268: c ! 269: c **** test 589 **** ! 270: c ! 271: if (iczero) 35890, 5890, 35890 ! 272: 5890 continue ! 273: ivon01 = 25603 ! 274: ivon02 = 10354 ! 275: ivcomp = ivon01/ivon02 ! 276: go to 45890 ! 277: 35890 ivdele = ivdele + 1 ! 278: write (i02,80003) ivtnum ! 279: if (iczero) 45890, 5901, 45890 ! 280: 45890 if (ivcomp - 2) 25890,15890,25890 ! 281: 15890 ivpass = ivpass + 1 ! 282: write (i02,80001) ivtnum ! 283: go to 5901 ! 284: 25890 ivfail = ivfail + 1 ! 285: ivcorr = 2 ! 286: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 287: c ! 288: c test 590 through test 593 - negative values included ! 289: c no truncation required ! 290: c ! 291: 5901 continue ! 292: ivtnum = 590 ! 293: c ! 294: c **** test 590 **** ! 295: c ! 296: if (iczero) 35900, 5900, 35900 ! 297: 5900 continue ! 298: ivon01 = 75 ! 299: ivon02 = -25 ! 300: ivcomp = ivon01/ivon02 ! 301: go to 45900 ! 302: 35900 ivdele = ivdele + 1 ! 303: write (i02,80003) ivtnum ! 304: if (iczero) 45900, 5911, 45900 ! 305: 45900 if (ivcomp + 3) 25900,15900,25900 ! 306: 15900 ivpass = ivpass + 1 ! 307: write (i02,80001) ivtnum ! 308: go to 5911 ! 309: 25900 ivfail = ivfail + 1 ! 310: ivcorr = -3 ! 311: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 312: 5911 continue ! 313: ivtnum = 591 ! 314: c ! 315: c **** test 591 **** ! 316: c ! 317: if (iczero) 35910, 5910, 35910 ! 318: 5910 continue ! 319: ivon01 = -6170 ! 320: ivon02 = -1234 ! 321: ivcomp = ivon01/ivon02 ! 322: go to 45910 ! 323: 35910 ivdele = ivdele + 1 ! 324: write (i02,80003) ivtnum ! 325: if (iczero) 45910, 5921, 45910 ! 326: 45910 if (ivcomp -5) 25910,15910,25910 ! 327: 15910 ivpass = ivpass + 1 ! 328: write (i02,80001) ivtnum ! 329: go to 5921 ! 330: 25910 ivfail = ivfail + 1 ! 331: ivcorr = 5 ! 332: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 333: 5921 continue ! 334: ivtnum = 592 ! 335: c ! 336: c **** test 592 **** ! 337: c ! 338: if (iczero) 35920, 5920, 35920 ! 339: 5920 continue ! 340: ivon01 = 32766 ! 341: ivon02 = -2 ! 342: ivcomp =-ivon01/ivon02 ! 343: go to 45920 ! 344: 35920 ivdele = ivdele + 1 ! 345: write (i02,80003) ivtnum ! 346: if (iczero) 45920, 5931, 45920 ! 347: 45920 if (ivcomp - 16383) 25920,15920,25920 ! 348: 15920 ivpass = ivpass + 1 ! 349: write (i02,80001) ivtnum ! 350: go to 5931 ! 351: 25920 ivfail = ivfail + 1 ! 352: ivcorr = 16383 ! 353: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 354: 5931 continue ! 355: ivtnum = 593 ! 356: c ! 357: c **** test 593 **** ! 358: c ! 359: if (iczero) 35930, 5930, 35930 ! 360: 5930 continue ! 361: ivon01 = 4 ! 362: ivon02 = 2 ! 363: ivcomp = ivon01/(-ivon02) ! 364: go to 45930 ! 365: 35930 ivdele = ivdele + 1 ! 366: write (i02,80003) ivtnum ! 367: if (iczero) 45930, 5941, 45930 ! 368: 45930 if (ivcomp + 2) 25930,15930,25930 ! 369: 15930 ivpass = ivpass + 1 ! 370: write (i02,80001) ivtnum ! 371: go to 5941 ! 372: 25930 ivfail = ivfail + 1 ! 373: ivcorr = -2 ! 374: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 375: c ! 376: c test 594 through test 597 - negative values included ! 377: c truncation of result required ! 378: c ! 379: 5941 continue ! 380: ivtnum = 594 ! 381: c ! 382: c **** test 594 **** ! 383: c ! 384: if (iczero) 35940, 5940, 35940 ! 385: 5940 continue ! 386: ivon01 = -5 ! 387: ivon02 = 2 ! 388: ivcomp = ivon01/ivon02 ! 389: go to 45940 ! 390: 35940 ivdele = ivdele + 1 ! 391: write (i02,80003) ivtnum ! 392: if (iczero) 45940, 5951, 45940 ! 393: 45940 if (ivcomp + 2) 25940,15940,25940 ! 394: 15940 ivpass = ivpass + 1 ! 395: write (i02,80001) ivtnum ! 396: go to 5951 ! 397: 25940 ivfail = ivfail + 1 ! 398: ivcorr = -2 ! 399: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 400: 5951 continue ! 401: ivtnum = 595 ! 402: c ! 403: c **** test 595 **** ! 404: c ! 405: if (iczero) 35950, 5950, 35950 ! 406: 5950 continue ! 407: ivon01 = -25603 ! 408: ivon02 = -10354 ! 409: ivcomp = ivon01/ivon02 ! 410: go to 45950 ! 411: 35950 ivdele = ivdele + 1 ! 412: write (i02,80003) ivtnum ! 413: if (iczero) 45950, 5961, 45950 ! 414: 45950 if (ivcomp -2) 25950,15950,25950 ! 415: 15950 ivpass = ivpass + 1 ! 416: write (i02,80001) ivtnum ! 417: go to 5961 ! 418: 25950 ivfail = ivfail + 1 ! 419: ivcorr =2 ! 420: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 421: 5961 continue ! 422: ivtnum = 596 ! 423: c ! 424: c **** test 596 **** ! 425: c ! 426: if (iczero) 35960, 5960, 35960 ! 427: 5960 continue ! 428: ivon01 = 25603 ! 429: ivon02 = 10354 ! 430: ivcomp = -ivon01/ivon02 ! 431: go to 45960 ! 432: 35960 ivdele = ivdele + 1 ! 433: write (i02,80003) ivtnum ! 434: if (iczero) 45960, 5971, 45960 ! 435: 45960 if (ivcomp +2) 25960,15960,25960 ! 436: 15960 ivpass = ivpass + 1 ! 437: write (i02,80001) ivtnum ! 438: go to 5971 ! 439: 25960 ivfail = ivfail + 1 ! 440: ivcorr = -2 ! 441: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 442: 5971 continue ! 443: ivtnum = 597 ! 444: c ! 445: c **** test 597 **** ! 446: c ! 447: if (iczero) 35970, 5970, 35970 ! 448: 5970 continue ! 449: ivon01 = 25603 ! 450: ivon02 = -2 ! 451: ivcomp = -(ivon01/ivon02) ! 452: go to 45970 ! 453: 35970 ivdele = ivdele + 1 ! 454: write (i02,80003) ivtnum ! 455: if (iczero) 45970, 5981, 45970 ! 456: 45970 if (ivcomp - 12801) 25970,15970,25970 ! 457: 15970 ivpass = ivpass + 1 ! 458: write (i02,80001) ivtnum ! 459: go to 5981 ! 460: 25970 ivfail = ivfail + 1 ! 461: ivcorr = 12801 ! 462: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 463: c ! 464: c test 598 through test 614 contain two integer variables, an ! 465: c integer constant and operator / in an arithmetic expression. ! 466: c ! 467: c test 598 through test 603 - no parens to group elements but ! 468: c there are parens surrounding negative constants ! 469: c ! 470: c test 598 and test 599 - iv = iv/iv/ic. ! 471: c ! 472: 5981 continue ! 473: ivtnum = 598 ! 474: c ! 475: c **** test 598 **** ! 476: c ! 477: if (iczero) 35980, 5980, 35980 ! 478: 5980 continue ! 479: ivon01 = 32766 ! 480: ivon02 = 2 ! 481: ivcomp = ivon01/ivon02/3 ! 482: go to 45980 ! 483: 35980 ivdele = ivdele + 1 ! 484: write (i02,80003) ivtnum ! 485: if (iczero) 45980, 5991, 45980 ! 486: 45980 if (ivcomp - 5461) 25980,15980,25980 ! 487: 15980 ivpass = ivpass + 1 ! 488: write (i02,80001) ivtnum ! 489: go to 5991 ! 490: 25980 ivfail = ivfail + 1 ! 491: ivcorr = 5461 ! 492: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 493: 5991 continue ! 494: ivtnum = 599 ! 495: c ! 496: c **** test 599 **** ! 497: c ! 498: if (iczero) 35990, 5990, 35990 ! 499: 5990 continue ! 500: ivon01 = 7151 ! 501: ivon02 = 3 ! 502: ivcomp = ivon01/ivon02/10 ! 503: go to 45990 ! 504: 35990 ivdele = ivdele + 1 ! 505: write (i02,80003) ivtnum ! 506: if (iczero) 45990, 6001, 45990 ! 507: 45990 if (ivcomp -238) 25990,15990,25990 ! 508: 15990 ivpass = ivpass + 1 ! 509: write (i02,80001) ivtnum ! 510: go to 6001 ! 511: 25990 ivfail = ivfail + 1 ! 512: ivcorr = 238 ! 513: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 514: c ! 515: c test 600 and test 601 - iv= iv/ic/iv. ! 516: c ! 517: 6001 continue ! 518: ivtnum = 600 ! 519: c ! 520: c **** test 600 **** ! 521: c ! 522: if (iczero) 36000, 6000, 36000 ! 523: 6000 continue ! 524: ivon01 = -7150 ! 525: ivon03 = -25 ! 526: ivcomp = ivon01/(-2)/ivon03 ! 527: go to 46000 ! 528: 36000 ivdele = ivdele + 1 ! 529: write (i02,80003) ivtnum ! 530: if (iczero) 46000, 6011, 46000 ! 531: 46000 if (ivcomp + 143) 26000,16000,26000 ! 532: 16000 ivpass = ivpass + 1 ! 533: write (i02,80001) ivtnum ! 534: go to 6011 ! 535: 26000 ivfail = ivfail + 1 ! 536: ivcorr = -143 ! 537: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 538: 6011 continue ! 539: ivtnum = 601 ! 540: c ! 541: c **** test 601 **** ! 542: c ! 543: if (iczero) 36010, 6010, 36010 ! 544: 6010 continue ! 545: ivon01 = 32767 ! 546: ivon03 = -1 ! 547: ivcomp = ivon01/2/ivon03 ! 548: go to 46010 ! 549: 36010 ivdele = ivdele + 1 ! 550: write (i02,80003) ivtnum ! 551: if (iczero) 46010, 6021, 46010 ! 552: 46010 if (ivcomp + 16383) 26010,16010,26010 ! 553: 16010 ivpass = ivpass + 1 ! 554: write (i02,80001) ivtnum ! 555: go to 6021 ! 556: 26010 ivfail = ivfail + 1 ! 557: ivcorr = -16383 ! 558: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 559: 6021 continue ! 560: ivtnum = 602 ! 561: c ! 562: c **** test 602 **** ! 563: c ! 564: c test 602 and test 603 - iv=ic/iv/iv ! 565: c ! 566: c ! 567: if (iczero) 36020, 6020, 36020 ! 568: 6020 continue ! 569: ivon02 = 13 ! 570: ivon03 = 51 ! 571: ivcomp = 15249/ivon02/ivon03 ! 572: go to 46020 ! 573: 36020 ivdele = ivdele + 1 ! 574: write (i02,80003) ivtnum ! 575: if (iczero) 46020, 6031, 46020 ! 576: 46020 if (ivcomp - 23) 26020,16020,26020 ! 577: 16020 ivpass = ivpass + 1 ! 578: write (i02,80001) ivtnum ! 579: go to 6031 ! 580: 26020 ivfail = ivfail + 1 ! 581: ivcorr = 23 ! 582: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 583: 6031 continue ! 584: ivtnum = 603 ! 585: c ! 586: c **** test 603 **** ! 587: c ! 588: if (iczero) 36030, 6030, 36030 ! 589: 6030 continue ! 590: ivon02 = -13 ! 591: ivon03 = -51 ! 592: ivcomp = -15249/ivon02/ivon03 ! 593: go to 46030 ! 594: 36030 ivdele = ivdele + 1 ! 595: write (i02,80003) ivtnum ! 596: if (iczero) 46030, 6041, 46030 ! 597: 46030 if (ivcomp +23) 26030,16030,26030 ! 598: 16030 ivpass = ivpass + 1 ! 599: write (i02,80001) ivtnum ! 600: go to 6041 ! 601: 26030 ivfail = ivfail + 1 ! 602: ivcorr = -23 ! 603: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 604: c ! 605: c test 604 through test 614 - parentheses are used to group ! 606: c elements in the arithmetic expressions. ! 607: c ! 608: c test 604 and test 605 - iv=(iv/iv)/ic. ! 609: c ! 610: 6041 continue ! 611: ivtnum = 604 ! 612: c ! 613: c **** test 604 **** ! 614: c ! 615: if (iczero) 36040, 6040, 36040 ! 616: 6040 continue ! 617: ivon01 = 32766 ! 618: ivon02 = 2 ! 619: ivcomp =(ivon01/ivon02)/3 ! 620: go to 46040 ! 621: 36040 ivdele = ivdele + 1 ! 622: write (i02,80003) ivtnum ! 623: if (iczero) 46040, 6051, 46040 ! 624: 46040 if (ivcomp -5461) 26040,16040,26040 ! 625: 16040 ivpass = ivpass + 1 ! 626: write (i02,80001) ivtnum ! 627: go to 6051 ! 628: 26040 ivfail = ivfail + 1 ! 629: ivcorr = 5461 ! 630: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 631: 6051 continue ! 632: ivtnum = 605 ! 633: c ! 634: c **** test 605 **** ! 635: c ! 636: if (iczero) 36050, 6050, 36050 ! 637: 6050 continue ! 638: ivon01 = 7151 ! 639: ivon02 = 3 ! 640: ivcomp = (ivon01/ivon02)/10 ! 641: go to 46050 ! 642: 36050 ivdele = ivdele + 1 ! 643: write (i02,80003) ivtnum ! 644: if (iczero) 46050, 6061, 46050 ! 645: 46050 if (ivcomp - 238) 26050,16050,26050 ! 646: 16050 ivpass = ivpass + 1 ! 647: write (i02,80001) ivtnum ! 648: go to 6061 ! 649: 26050 ivfail = ivfail + 1 ! 650: ivcorr = 238 ! 651: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 652: c ! 653: c test 606 and test 607 - iv=iv/(iv/ic). ! 654: c ! 655: 6061 continue ! 656: ivtnum = 606 ! 657: c ! 658: c **** test 606 **** ! 659: c ! 660: if (iczero) 36060, 6060, 36060 ! 661: 6060 continue ! 662: ivon01 = -7154 ! 663: ivon02 = 26 ! 664: ivcomp = ivon01/(ivon02/5) ! 665: go to 46060 ! 666: 36060 ivdele = ivdele + 1 ! 667: write (i02,80003) ivtnum ! 668: if (iczero) 46060, 6071, 46060 ! 669: 46060 if (ivcomp + 1430) 26060,16060,26060 ! 670: 16060 ivpass = ivpass + 1 ! 671: write (i02,80001) ivtnum ! 672: go to 6071 ! 673: 26060 ivfail = ivfail + 1 ! 674: ivcorr = -1430 ! 675: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 676: 6071 continue ! 677: ivtnum = 607 ! 678: c ! 679: c **** test 607 **** ! 680: c ! 681: if (iczero) 36070, 6070, 36070 ! 682: 6070 continue ! 683: ivon01 = 29 ! 684: ivon02 = -5 ! 685: ivcomp = ivon01/(ivon02/2) ! 686: go to 46070 ! 687: 36070 ivdele = ivdele + 1 ! 688: write (i02,80003) ivtnum ! 689: if (iczero) 46070, 6081, 46070 ! 690: 46070 if (ivcomp + 14) 26070,16070,26070 ! 691: 16070 ivpass = ivpass + 1 ! 692: write (i02,80001) ivtnum ! 693: go to 6081 ! 694: 26070 ivfail = ivfail + 1 ! 695: ivcorr = -14 ! 696: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 697: c ! 698: c test 608 and test 609 - iv = (iv/ic)/iv. ! 699: c ! 700: 6081 continue ! 701: ivtnum = 608 ! 702: c ! 703: c **** test 608 **** ! 704: c ! 705: if (iczero) 36080, 6080, 36080 ! 706: 6080 continue ! 707: ivon01 = 24 ! 708: ivon03 = 3 ! 709: ivcomp = (ivon01/3)/ivon03 ! 710: go to 46080 ! 711: 36080 ivdele = ivdele + 1 ! 712: write (i02,80003) ivtnum ! 713: if (iczero) 46080, 6091, 46080 ! 714: 46080 if (ivcomp -2) 26080,16080,26080 ! 715: 16080 ivpass = ivpass + 1 ! 716: write (i02,80001) ivtnum ! 717: go to 6091 ! 718: 26080 ivfail = ivfail + 1 ! 719: ivcorr = 2 ! 720: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 721: 6091 continue ! 722: ivtnum = 609 ! 723: c ! 724: c **** test 609 **** ! 725: c ! 726: if (iczero) 36090, 6090, 36090 ! 727: 6090 continue ! 728: ivon01 = 7151 ! 729: ivon03 = 10 ! 730: ivcomp = (ivon01/(-3))/ivon03 ! 731: go to 46090 ! 732: 36090 ivdele = ivdele + 1 ! 733: write (i02,80003) ivtnum ! 734: if (iczero) 46090, 6101, 46090 ! 735: 46090 if (ivcomp + 238) 26090,16090,26090 ! 736: 16090 ivpass = ivpass + 1 ! 737: write (i02,80001) ivtnum ! 738: go to 6101 ! 739: 26090 ivfail = ivfail + 1 ! 740: ivcorr = -238 ! 741: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 742: c ! 743: c test 610 and test 611 - iv=iv(ic/iv) ! 744: c ! 745: 6101 continue ! 746: ivtnum = 610 ! 747: c ! 748: c **** test 610 **** ! 749: c ! 750: if (iczero) 36100, 6100, 36100 ! 751: 6100 continue ! 752: ivon01 = -7154 ! 753: ivon03 = -5 ! 754: ivcomp = ivon01/((-26)/ivon03) ! 755: go to 46100 ! 756: 36100 ivdele = ivdele + 1 ! 757: write (i02,80003) ivtnum ! 758: if (iczero) 46100, 6111, 46100 ! 759: 46100 if (ivcomp + 1430) 26100,16100,26100 ! 760: 16100 ivpass = ivpass + 1 ! 761: write (i02,80001) ivtnum ! 762: go to 6111 ! 763: 26100 ivfail = ivfail + 1 ! 764: ivcorr = -1430 ! 765: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 766: 6111 continue ! 767: ivtnum = 611 ! 768: c ! 769: c **** test 611 **** ! 770: c ! 771: if (iczero) 36110, 6110, 36110 ! 772: 6110 continue ! 773: ivon01 = 7150 ! 774: ivon03 = 5 ! 775: ivcomp = ivon01/((+25)/ivon03) ! 776: go to 46110 ! 777: 36110 ivdele = ivdele + 1 ! 778: write (i02,80003) ivtnum ! 779: if (iczero) 46110, 6121, 46110 ! 780: 46110 if (ivcomp -1430) 26110,16110,26110 ! 781: 16110 ivpass = ivpass + 1 ! 782: write (i02,80001) ivtnum ! 783: go to 6121 ! 784: 26110 ivfail = ivfail + 1 ! 785: ivcorr = 1430 ! 786: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 787: 6121 continue ! 788: ivtnum = 612 ! 789: c ! 790: c **** test 612 **** ! 791: c test 612 - iv= (ic/iv)/iv ! 792: c ! 793: if (iczero) 36120, 6120, 36120 ! 794: 6120 continue ! 795: ivon02 = -3 ! 796: ivon03 = -10 ! 797: ivcomp = (-7154/ivon02)/ivon03 ! 798: go to 46120 ! 799: 36120 ivdele = ivdele + 1 ! 800: write (i02,80003) ivtnum ! 801: if (iczero) 46120, 6131, 46120 ! 802: 46120 if (ivcomp + 238) 26120,16120,26120 ! 803: 16120 ivpass = ivpass + 1 ! 804: write (i02,80001) ivtnum ! 805: go to 6131 ! 806: 26120 ivfail = ivfail + 1 ! 807: ivcorr = -238 ! 808: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 809: c ! 810: c test 613 and test 614 - iv=ic/(iv/iv) ! 811: c ! 812: 6131 continue ! 813: ivtnum = 613 ! 814: c ! 815: c **** test 613 **** ! 816: c ! 817: if (iczero) 36130, 6130, 36130 ! 818: 6130 continue ! 819: ivon02 = 8 ! 820: ivon03 = 4 ! 821: ivcomp = 24/(ivon02/ivon03) ! 822: go to 46130 ! 823: 36130 ivdele = ivdele + 1 ! 824: write (i02,80003) ivtnum ! 825: if (iczero) 46130, 6141, 46130 ! 826: 46130 if (ivcomp - 12) 26130,16130,26130 ! 827: 16130 ivpass = ivpass + 1 ! 828: write (i02,80001) ivtnum ! 829: go to 6141 ! 830: 26130 ivfail = ivfail + 1 ! 831: ivcorr = 12 ! 832: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 833: 6141 continue ! 834: ivtnum = 614 ! 835: c ! 836: c **** test 614 **** ! 837: c ! 838: if (iczero) 36140, 6140, 36140 ! 839: 6140 continue ! 840: ivon02 = 25 ! 841: ivon03 = 5 ! 842: ivcomp = 7150/(-(ivon02/ivon03)) ! 843: go to 46140 ! 844: 36140 ivdele = ivdele + 1 ! 845: write (i02,80003) ivtnum ! 846: if (iczero) 46140, 6151, 46140 ! 847: 46140 if (ivcomp + 1430) 26140,16140,26140 ! 848: 16140 ivpass = ivpass + 1 ! 849: write (i02,80001) ivtnum ! 850: go to 6151 ! 851: 26140 ivfail = ivfail + 1 ! 852: ivcorr = -1430 ! 853: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 854: c **** end of tests **** ! 855: 6151 continue ! 856: c ! 857: c write page footings and run summaries ! 858: 99999 continue ! 859: write (i02,90002) ! 860: write (i02,90006) ! 861: write (i02,90002) ! 862: write (i02,90002) ! 863: write (i02,90007) ! 864: write (i02,90002) ! 865: write (i02,90008) ivfail ! 866: write (i02,90009) ivpass ! 867: write (i02,90010) ivdele ! 868: c ! 869: c ! 870: c terminate routine execution ! 871: stop ! 872: c ! 873: c format statements for page headers ! 874: 90000 format (1h1) ! 875: 90002 format (1h ) ! 876: 90001 format (1h ,10x,34hfortran compiler validation system) ! 877: 90003 format (1h ,21x,11hversion 1.0) ! 878: 90004 format (1h ,10x,38hfor official use only - copyright 1978) ! 879: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) ! 880: 90006 format (1h ,5x,46h----------------------------------------------) ! 881: 90011 format (1h ,18x,17hsubset level test) ! 882: c ! 883: c format statements for run summaries ! 884: 90008 format (1h ,15x,i5,19h errors encountered) ! 885: 90009 format (1h ,15x,i5,13h tests passed) ! 886: 90010 format (1h ,15x,i5,14h tests deleted) ! 887: c ! 888: c format statements for test results ! 889: 80001 format (1h ,4x,i5,7x,4hpass) ! 890: 80002 format (1h ,4x,i5,7x,4hfail) ! 891: 80003 format (1h ,4x,i5,7x,7hdeleted) ! 892: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) ! 893: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) ! 894: c ! 895: 90007 format (1h ,20x,20hend of program fm040) ! 896: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.