|
|
1.1 ! root 1: c comment section ! 2: c ! 3: c fm038 ! 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 constants and an integer variable. both ! 9: c positive and negative values are used for the integer constants ! 10: c and the integer variable. ! 11: c ! 12: c there are tests which require no truncation of the result ! 13: c and tests where the result must be truncated before being stored ! 14: c in 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 constant/integer constant)/integer constant ! 19: c (2) integer constant/(integer constant/integer constant) ! 20: c (3) integer variable/integer constant ! 21: c (4) integer constant/integer variable ! 22: c ! 23: c references ! 24: c american national standard programming language fortran, ! 25: c x3.9-1978 ! 26: c ! 27: c section 4.3, integer type ! 28: c section 4.3.1, integer constant ! 29: c section 6.1, arithmetic expressions ! 30: c section 6.6, evaluation of expressions ! 31: c section 10.1, arithmetic assignment statement ! 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 arithmetic assignment statement ! 106: c ! 107: c test 520 through test 525 contain arithmetic assignment statements ! 108: c of the form integer variable = (int.con./int.con.)/int.con. ! 109: c no truncation of the result is required. both positive and ! 110: c negative constants are included. ! 111: c ! 112: 5201 continue ! 113: ivtnum = 520 ! 114: c ! 115: c **** test 520 **** ! 116: c ! 117: if (iczero) 35200, 5200, 35200 ! 118: 5200 continue ! 119: ivcomp = (24/3)/4 ! 120: go to 45200 ! 121: 35200 ivdele = ivdele + 1 ! 122: write (i02,80003) ivtnum ! 123: if (iczero) 45200, 5211, 45200 ! 124: 45200 if (ivcomp - 2) 25200,15200,25200 ! 125: 15200 ivpass = ivpass + 1 ! 126: write (i02,80001) ivtnum ! 127: go to 5211 ! 128: 25200 ivfail = ivfail + 1 ! 129: ivcorr = 2 ! 130: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 131: 5211 continue ! 132: ivtnum = 521 ! 133: c ! 134: c **** test 521 **** ! 135: c ! 136: if (iczero) 35210, 5210, 35210 ! 137: 5210 continue ! 138: ivcomp = (7150/2)/25 ! 139: go to 45210 ! 140: 35210 ivdele = ivdele + 1 ! 141: write (i02,80003) ivtnum ! 142: if (iczero) 45210, 5221, 45210 ! 143: 45210 if (ivcomp - 143) 25210,15210,25210 ! 144: 15210 ivpass = ivpass + 1 ! 145: write (i02,80001) ivtnum ! 146: go to 5221 ! 147: 25210 ivfail = ivfail + 1 ! 148: ivcorr = 143 ! 149: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 150: 5221 continue ! 151: ivtnum = 522 ! 152: c ! 153: c **** test 522 **** ! 154: c ! 155: if (iczero) 35220, 5220, 35220 ! 156: ! 157: 5220 continue ! 158: ivcomp = (-24/3)/4 ! 159: go to 45220 ! 160: 35220 ivdele = ivdele + 1 ! 161: write (i02,80003) ivtnum ! 162: if (iczero) 45220, 5231, 45220 ! 163: 45220 if (ivcomp + 2) 25220,15220,25220 ! 164: 15220 ivpass = ivpass + 1 ! 165: write (i02,80001) ivtnum ! 166: go to 5231 ! 167: 25220 ivfail = ivfail + 1 ! 168: ivcorr = -2 ! 169: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 170: 5231 continue ! 171: ivtnum = 523 ! 172: c ! 173: c **** test 523 **** ! 174: c ! 175: if (iczero) 35230, 5230, 35230 ! 176: 5230 continue ! 177: ivcomp = (330/(-3))/2 ! 178: go to 45230 ! 179: 35230 ivdele = ivdele + 1 ! 180: write (i02,80003) ivtnum ! 181: if (iczero) 45230, 5241, 45230 ! 182: 45230 if (ivcomp + 55) 25230,15230,25230 ! 183: 15230 ivpass = ivpass + 1 ! 184: write (i02,80001) ivtnum ! 185: go to 5241 ! 186: 25230 ivfail = ivfail + 1 ! 187: ivcorr = -55 ! 188: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 189: 5241 continue ! 190: ivtnum = 524 ! 191: c ! 192: c **** test 524 **** ! 193: c ! 194: if (iczero) 35240, 5240, 35240 ! 195: 5240 continue ! 196: ivcomp = ((-7150)/(-2))/(-25) ! 197: go to 45240 ! 198: 35240 ivdele = ivdele + 1 ! 199: write (i02,80003) ivtnum ! 200: if (iczero) 45240, 5251, 45240 ! 201: 45240 if (ivcomp + 143) 25240,15240,25240 ! 202: 15240 ivpass = ivpass + 1 ! 203: write (i02,80001) ivtnum ! 204: go to 5251 ! 205: 25240 ivfail = ivfail + 1 ! 206: ivcorr = -143 ! 207: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 208: 5251 continue ! 209: ivtnum = 525 ! 210: c ! 211: c **** test 525 **** ! 212: c ! 213: if (iczero) 35250, 5250, 35250 ! 214: 5250 continue ! 215: ivcomp = (15249/(-13))/(-51) ! 216: go to 45250 ! 217: 35250 ivdele = ivdele + 1 ! 218: write (i02,80003) ivtnum ! 219: if (iczero) 45250, 5261, 45250 ! 220: 45250 if (ivcomp - 23) 25250,15250,25250 ! 221: 15250 ivpass = ivpass + 1 ! 222: write (i02,80001) ivtnum ! 223: go to 5261 ! 224: 25250 ivfail = ivfail + 1 ! 225: ivcorr = 23 ! 226: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 227: c ! 228: c test 526 through test 531 contain arithmetic assignment statements ! 229: c of the form iv = (ic/ic)/ic. ! 230: c truncation of the result is required. both positive and ! 231: c negative constants are included. ! 232: c ! 233: 5261 continue ! 234: ivtnum = 526 ! 235: c ! 236: c **** test 526 **** ! 237: c ! 238: if (iczero) 35260, 5260, 35260 ! 239: 5260 continue ! 240: ivcomp = (24/3)/3 ! 241: go to 45260 ! 242: 35260 ivdele = ivdele + 1 ! 243: write (i02,80003) ivtnum ! 244: if (iczero) 45260, 5271, 45260 ! 245: 45260 if (ivcomp - 2) 25260,15260,25260 ! 246: 15260 ivpass = ivpass + 1 ! 247: write (i02,80001) ivtnum ! 248: go to 5271 ! 249: 25260 ivfail = ivfail + 1 ! 250: ivcorr = 2 ! 251: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 252: 5271 continue ! 253: ivtnum = 527 ! 254: c ! 255: c **** test 527 **** ! 256: c ! 257: if (iczero) 35270, 5270, 35270 ! 258: 5270 continue ! 259: ivcomp = (7151/3)/10 ! 260: go to 45270 ! 261: 35270 ivdele = ivdele + 1 ! 262: write (i02,80003) ivtnum ! 263: if (iczero) 45270, 5281, 45270 ! 264: 45270 if (ivcomp - 238) 25270,15270,25270 ! 265: 15270 ivpass = ivpass + 1 ! 266: write (i02,80001) ivtnum ! 267: go to 5281 ! 268: 25270 ivfail = ivfail + 1 ! 269: ivcorr = 238 ! 270: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 271: 5281 continue ! 272: ivtnum = 528 ! 273: c ! 274: c **** test 528 **** ! 275: c ! 276: if (iczero) 35280, 5280, 35280 ! 277: 5280 continue ! 278: ivcomp = (-24/3)/3 ! 279: go to 45280 ! 280: 35280 ivdele = ivdele + 1 ! 281: write (i02,80003) ivtnum ! 282: if (iczero) 45280, 5291, 45280 ! 283: 45280 if (ivcomp + 2) 25280,15280,25280 ! 284: 15280 ivpass = ivpass + 1 ! 285: write (i02,80001) ivtnum ! 286: go to 5291 ! 287: 25280 ivfail = ivfail + 1 ! 288: ivcorr = -2 ! 289: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 290: 5291 continue ! 291: ivtnum = 529 ! 292: c ! 293: c **** test 529 **** ! 294: c ! 295: if (iczero) 35290, 5290, 35290 ! 296: 5290 continue ! 297: ivcomp = (7151/(-3))/10 ! 298: go to 45290 ! 299: 35290 ivdele = ivdele + 1 ! 300: write (i02,80003) ivtnum ! 301: if (iczero) 45290, 5301, 45290 ! 302: 45290 if (ivcomp + 238) 25290,15290,25290 ! 303: 15290 ivpass = ivpass + 1 ! 304: write (i02,80001) ivtnum ! 305: go to 5301 ! 306: 25290 ivfail = ivfail + 1 ! 307: ivcorr = -238 ! 308: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 309: 5301 continue ! 310: ivtnum = 530 ! 311: c ! 312: c **** test 530 **** ! 313: c ! 314: if (iczero) 35300, 5300, 35300 ! 315: 5300 continue ! 316: ivcomp = (15248/(-51))/(-23) ! 317: go to 45300 ! 318: 35300 ivdele = ivdele + 1 ! 319: write (i02,80003) ivtnum ! 320: if (iczero) 45300, 5311, 45300 ! 321: 45300 if (ivcomp - 12) 25300,15300,25300 ! 322: 15300 ivpass = ivpass + 1 ! 323: write (i02,80001) ivtnum ! 324: go to 5311 ! 325: 25300 ivfail = ivfail + 1 ! 326: ivcorr = 12 ! 327: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 328: 5311 continue ! 329: ivtnum = 531 ! 330: c ! 331: c **** test 531 **** ! 332: c ! 333: if (iczero) 35310, 5310, 35310 ! 334: 5310 continue ! 335: ivcomp = ((-27342)/(-4))/(-3) ! 336: go to 45310 ! 337: 35310 ivdele = ivdele + 1 ! 338: write (i02,80003) ivtnum ! 339: if (iczero) 45310, 5321, 45310 ! 340: 45310 if (ivcomp + 2278) 25310,15310,25310 ! 341: 15310 ivpass = ivpass + 1 ! 342: write (i02,80001) ivtnum ! 343: go to 5321 ! 344: 25310 ivfail = ivfail + 1 ! 345: ivcorr = -2278 ! 346: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 347: c ! 348: c test 532 through test 537 contain arithmetic assignment statements ! 349: c of the form iv = ic/(ic/ic). ! 350: c no truncation of the result is required. both positive and ! 351: c negative constants are included. ! 352: c ! 353: 5321 continue ! 354: ivtnum = 532 ! 355: c ! 356: c **** test 532 **** ! 357: c ! 358: if (iczero) 35320, 5320, 35320 ! 359: 5320 continue ! 360: ivcomp = 24/(8/4) ! 361: go to 45320 ! 362: 35320 ivdele = ivdele + 1 ! 363: write (i02,80003) ivtnum ! 364: if (iczero) 45320, 5331, 45320 ! 365: 45320 if (ivcomp - 12) 25320,15320,25320 ! 366: 15320 ivpass = ivpass + 1 ! 367: write (i02,80001) ivtnum ! 368: go to 5331 ! 369: 25320 ivfail = ivfail + 1 ! 370: ivcorr = 12 ! 371: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 372: 5331 continue ! 373: ivtnum = 533 ! 374: c ! 375: c **** test 533 **** ! 376: c ! 377: if (iczero) 35330, 5330, 35330 ! 378: 5330 continue ! 379: ivcomp = 7150/(25/5) ! 380: go to 45330 ! 381: 35330 ivdele = ivdele + 1 ! 382: write (i02,80003) ivtnum ! 383: if (iczero) 45330, 5341, 45330 ! 384: 45330 if (ivcomp - 1430) 25330,15330,25330 ! 385: 15330 ivpass = ivpass + 1 ! 386: write (i02,80001) ivtnum ! 387: go to 5341 ! 388: 25330 ivfail = ivfail + 1 ! 389: ivcorr = 1430 ! 390: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 391: 5341 continue ! 392: ivtnum = 534 ! 393: c ! 394: c **** test 534 **** ! 395: c ! 396: if (iczero) 35340, 5340, 35340 ! 397: 5340 continue ! 398: ivcomp = -24/(8/4) ! 399: go to 45340 ! 400: 35340 ivdele = ivdele + 1 ! 401: write (i02,80003) ivtnum ! 402: if (iczero) 45340, 5351, 45340 ! 403: 45340 if (ivcomp + 12) 25340,15340,25340 ! 404: 15340 ivpass = ivpass + 1 ! 405: write (i02,80001) ivtnum ! 406: go to 5351 ! 407: 25340 ivfail = ivfail + 1 ! 408: ivcorr = -12 ! 409: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 410: 5351 continue ! 411: ivtnum = 535 ! 412: c ! 413: c **** test 535 **** ! 414: c ! 415: if (iczero) 35350, 5350, 35350 ! 416: 5350 continue ! 417: ivcomp = 24/((-8)/4) ! 418: go to 45350 ! 419: 35350 ivdele = ivdele + 1 ! 420: write (i02,80003) ivtnum ! 421: if (iczero) 45350, 5361, 45350 ! 422: 45350 if (ivcomp + 12) 25350,15350,25350 ! 423: 15350 ivpass = ivpass + 1 ! 424: write (i02,80001) ivtnum ! 425: go to 5361 ! 426: 25350 ivfail = ivfail + 1 ! 427: ivcorr = -12 ! 428: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 429: 5361 continue ! 430: ivtnum = 536 ! 431: c ! 432: c **** test 536 **** ! 433: c ! 434: if (iczero) 35360, 5360, 35360 ! 435: 5360 continue ! 436: ivcomp = (-7150)/((-25)/(-5)) ! 437: go to 45360 ! 438: 35360 ivdele = ivdele + 1 ! 439: write (i02,80003) ivtnum ! 440: if (iczero) 45360, 5371, 45360 ! 441: 45360 if (ivcomp + 1430) 25360,15360,25360 ! 442: 15360 ivpass = ivpass + 1 ! 443: write (i02,80001) ivtnum ! 444: go to 5371 ! 445: 25360 ivfail = ivfail + 1 ! 446: ivcorr = -1430 ! 447: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 448: 5371 continue ! 449: ivtnum = 537 ! 450: c ! 451: c **** test 537 **** ! 452: c ! 453: if (iczero) 35370, 5370, 35370 ! 454: 5370 continue ! 455: ivcomp = -7150/(25/(-5)) ! 456: go to 45370 ! 457: 35370 ivdele = ivdele + 1 ! 458: write (i02,80003) ivtnum ! 459: if (iczero) 45370, 5381, 45370 ! 460: 45370 if (ivcomp - 1430) 25370,15370,25370 ! 461: 15370 ivpass = ivpass + 1 ! 462: write (i02,80001) ivtnum ! 463: go to 5381 ! 464: 25370 ivfail = ivfail + 1 ! 465: ivcorr = 1430 ! 466: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 467: c ! 468: c test 538 through test 543 contain arithmetic assigmment statements ! 469: c of the form iv = ic/(ic/ic). ! 470: c truncation of the result is required. both positive and ! 471: c negative constants are included. ! 472: c ! 473: 5381 continue ! 474: ivtnum = 538 ! 475: c ! 476: c **** test 538 **** ! 477: c ! 478: if (iczero) 35380, 5380, 35380 ! 479: 5380 continue ! 480: ivcomp = 29/(5/2) ! 481: go to 45380 ! 482: 35380 ivdele = ivdele + 1 ! 483: write (i02,80003) ivtnum ! 484: if (iczero) 45380, 5391, 45380 ! 485: 45380 if (ivcomp - 14) 25380,15380,25380 ! 486: 15380 ivpass = ivpass + 1 ! 487: write (i02,80001) ivtnum ! 488: go to 5391 ! 489: 25380 ivfail = ivfail + 1 ! 490: ivcorr = 14 ! 491: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 492: 5391 continue ! 493: ivtnum = 539 ! 494: c ! 495: c **** test 539 **** ! 496: c ! 497: if (iczero) 35390, 5390, 35390 ! 498: 5390 continue ! 499: ivcomp = 7154/(26/5) ! 500: go to 45390 ! 501: 35390 ivdele = ivdele + 1 ! 502: write (i02,80003) ivtnum ! 503: if (iczero) 45390, 5401, 45390 ! 504: 45390 if (ivcomp - 1430) 25390,15390,25390 ! 505: 15390 ivpass = ivpass + 1 ! 506: write (i02,80001) ivtnum ! 507: go to 5401 ! 508: 25390 ivfail = ivfail + 1 ! 509: ivcorr = 1430 ! 510: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 511: 5401 continue ! 512: ivtnum = 540 ! 513: c ! 514: c **** test 540 **** ! 515: c ! 516: if (iczero) 35400, 5400, 35400 ! 517: 5400 continue ! 518: ivcomp = -7154/(26/5) ! 519: go to 45400 ! 520: 35400 ivdele = ivdele + 1 ! 521: write (i02,80003) ivtnum ! 522: if (iczero) 45400, 5411, 45400 ! 523: 45400 if (ivcomp + 1430) 25400,15400,25400 ! 524: 15400 ivpass = ivpass + 1 ! 525: write (i02,80001) ivtnum ! 526: go to 5411 ! 527: 25400 ivfail = ivfail + 1 ! 528: ivcorr = -1430 ! 529: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 530: 5411 continue ! 531: ivtnum = 541 ! 532: c ! 533: c **** test 541 **** ! 534: c ! 535: if (iczero) 35410, 5410, 35410 ! 536: 5410 continue ! 537: ivcomp = (-7154)/((-26)/5) ! 538: go to 45410 ! 539: 35410 ivdele = ivdele + 1 ! 540: write (i02,80003) ivtnum ! 541: if (iczero) 45410, 5421, 45410 ! 542: 45410 if (ivcomp - 1430) 25410,15410,25410 ! 543: 15410 ivpass = ivpass + 1 ! 544: write (i02,80001) ivtnum ! 545: go to 5421 ! 546: 25410 ivfail = ivfail + 1 ! 547: ivcorr = 1430 ! 548: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 549: 5421 continue ! 550: ivtnum = 542 ! 551: c ! 552: c **** test 542 **** ! 553: c ! 554: if (iczero) 35420, 5420, 35420 ! 555: 5420 continue ! 556: ivcomp = 7154/((-26)/(-5)) ! 557: go to 45420 ! 558: 35420 ivdele = ivdele + 1 ! 559: write (i02,80003) ivtnum ! 560: if (iczero) 45420, 5431, 45420 ! 561: 45420 if (ivcomp - 1430) 25420,15420,25420 ! 562: 15420 ivpass = ivpass + 1 ! 563: write (i02,80001) ivtnum ! 564: go to 5431 ! 565: 25420 ivfail = ivfail + 1 ! 566: ivcorr = 1430 ! 567: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 568: 5431 continue ! 569: ivtnum = 543 ! 570: c ! 571: c **** test 543 **** ! 572: c ! 573: if (iczero) 35430, 5430, 35430 ! 574: 5430 continue ! 575: ivcomp = (-7154)/((-26)/(-5)) ! 576: go to 45430 ! 577: 35430 ivdele = ivdele + 1 ! 578: write (i02,80003) ivtnum ! 579: if (iczero) 45430, 5441, 45430 ! 580: 45430 if (ivcomp + 1430) 25430,15430,25430 ! 581: 15430 ivpass = ivpass + 1 ! 582: write (i02,80001) ivtnum ! 583: go to 5441 ! 584: 25430 ivfail = ivfail + 1 ! 585: ivcorr = -1430 ! 586: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 587: c ! 588: c test 544 through test 547 contain arithmetic assignment statements ! 589: c of the form integer variable = integer variable/integer constant ! 590: c ! 591: 5441 continue ! 592: ivtnum = 544 ! 593: c ! 594: c **** test 544 **** ! 595: c ! 596: if (iczero) 35440, 5440, 35440 ! 597: 5440 continue ! 598: ivon01 = 75 ! 599: ivcomp = ivon01/25 ! 600: go to 45440 ! 601: 35440 ivdele = ivdele + 1 ! 602: write (i02,80003) ivtnum ! 603: if (iczero) 45440, 5451, 45440 ! 604: 45440 if (ivcomp - 3) 25440,15440,25440 ! 605: 15440 ivpass = ivpass + 1 ! 606: write (i02,80001) ivtnum ! 607: go to 5451 ! 608: 25440 ivfail = ivfail + 1 ! 609: ivcorr = 3 ! 610: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 611: 5451 continue ! 612: ivtnum = 545 ! 613: c ! 614: c **** test 545 **** ! 615: c ! 616: if (iczero) 35450, 5450, 35450 ! 617: 5450 continue ! 618: ivon01 = -3575 ! 619: ivcomp = ivon01/25 ! 620: go to 45450 ! 621: 35450 ivdele = ivdele + 1 ! 622: write (i02,80003) ivtnum ! 623: if (iczero) 45450, 5461, 45450 ! 624: 45450 if (ivcomp + 143) 25450,15450,25450 ! 625: 15450 ivpass = ivpass + 1 ! 626: write (i02,80001) ivtnum ! 627: go to 5461 ! 628: 25450 ivfail = ivfail + 1 ! 629: ivcorr = -143 ! 630: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 631: 5461 continue ! 632: ivtnum = 546 ! 633: c ! 634: c **** test 546 **** ! 635: c ! 636: if (iczero) 35460, 5460, 35460 ! 637: 5460 continue ! 638: ivon01 = 3575 ! 639: ivcomp = ivon01/(-143) ! 640: go to 45460 ! 641: 35460 ivdele = ivdele + 1 ! 642: write (i02,80003) ivtnum ! 643: if (iczero) 45460, 5471, 45460 ! 644: 45460 if (ivcomp + 25) 25460,15460,25460 ! 645: 15460 ivpass = ivpass + 1 ! 646: write (i02,80001) ivtnum ! 647: go to 5471 ! 648: 25460 ivfail = ivfail + 1 ! 649: ivcorr = -25 ! 650: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 651: 5471 continue ! 652: ivtnum = 547 ! 653: c ! 654: c **** test 547 **** ! 655: c ! 656: if (iczero) 35470, 5470, 35470 ! 657: 5470 continue ! 658: ivon01 = 959 ! 659: ivcomp = ivon01/120 ! 660: go to 45470 ! 661: 35470 ivdele = ivdele + 1 ! 662: write (i02,80003) ivtnum ! 663: if (iczero) 45470, 5481, 45470 ! 664: 45470 if (ivcomp -7) 25470,15470,25470 ! 665: 15470 ivpass = ivpass + 1 ! 666: write (i02,80001) ivtnum ! 667: go to 5481 ! 668: 25470 ivfail = ivfail + 1 ! 669: ivcorr = 7 ! 670: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 671: c ! 672: c test 548 through test 551 contain arithmetic assignment statements ! 673: c of the form integer variable =integer constant/integer variable. ! 674: c ! 675: 5481 continue ! 676: ivtnum = 548 ! 677: c ! 678: c **** test 548 **** ! 679: c ! 680: if (iczero) 35480, 5480, 35480 ! 681: 5480 continue ! 682: ivon02 = 25 ! 683: ivcomp = 75/ivon02 ! 684: go to 45480 ! 685: 35480 ivdele = ivdele + 1 ! 686: write (i02,80003) ivtnum ! 687: if (iczero) 45480, 5491, 45480 ! 688: 45480 if (ivcomp - 3) 25480,15480,25480 ! 689: 15480 ivpass = ivpass + 1 ! 690: write (i02,80001) ivtnum ! 691: go to 5491 ! 692: 25480 ivfail = ivfail + 1 ! 693: ivcorr = 3 ! 694: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 695: 5491 continue ! 696: ivtnum = 549 ! 697: c ! 698: c **** test 549 **** ! 699: c ! 700: if (iczero) 35490, 5490, 35490 ! 701: 5490 continue ! 702: ivon02 = -25 ! 703: ivcomp = 3579/ivon02 ! 704: go to 45490 ! 705: 35490 ivdele = ivdele + 1 ! 706: write (i02,80003) ivtnum ! 707: if (iczero) 45490, 5501, 45490 ! 708: 45490 if (ivcomp + 143) 25490,15490,25490 ! 709: 15490 ivpass = ivpass + 1 ! 710: write (i02,80001) ivtnum ! 711: go to 5501 ! 712: 25490 ivfail = ivfail + 1 ! 713: ivcorr = -143 ! 714: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 715: 5501 continue ! 716: ivtnum = 550 ! 717: c ! 718: c **** test 550 **** ! 719: c ! 720: if (iczero) 35500, 5500, 35500 ! 721: 5500 continue ! 722: ivon02 = -143 ! 723: ivcomp = (-3575)/ivon02 ! 724: go to 45500 ! 725: 35500 ivdele = ivdele + 1 ! 726: write (i02,80003) ivtnum ! 727: if (iczero) 45500, 5511, 45500 ! 728: 45500 if (ivcomp - 25) 25500,15500,25500 ! 729: 15500 ivpass = ivpass + 1 ! 730: write (i02,80001) ivtnum ! 731: go to 5511 ! 732: 25500 ivfail = ivfail + 1 ! 733: ivcorr = 25 ! 734: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 735: 5511 continue ! 736: ivtnum = 551 ! 737: c ! 738: c **** test 551 **** ! 739: c ! 740: if (iczero) 35510, 5510, 35510 ! 741: 5510 continue ! 742: ivon02 = 120 ! 743: ivcomp = -959/ivon02 ! 744: go to 45510 ! 745: 35510 ivdele = ivdele + 1 ! 746: write (i02,80003) ivtnum ! 747: if (iczero) 45510, 5521, 45510 ! 748: 45510 if (ivcomp + 7) 25510,15510,25510 ! 749: 15510 ivpass = ivpass + 1 ! 750: write (i02,80001) ivtnum ! 751: go to 5521 ! 752: 25510 ivfail = ivfail + 1 ! 753: ivcorr = -7 ! 754: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 755: c **** end of tests **** ! 756: 5521 continue ! 757: c ! 758: c write page footings and run summaries ! 759: 99999 continue ! 760: write (i02,90002) ! 761: write (i02,90006) ! 762: write (i02,90002) ! 763: write (i02,90002) ! 764: write (i02,90007) ! 765: write (i02,90002) ! 766: write (i02,90008) ivfail ! 767: write (i02,90009) ivpass ! 768: write (i02,90010) ivdele ! 769: c ! 770: c ! 771: c terminate routine execution ! 772: stop ! 773: c ! 774: c format statements for page headers ! 775: 90000 format (1h1) ! 776: 90002 format (1h ) ! 777: 90001 format (1h ,10x,34hfortran compiler validation system) ! 778: 90003 format (1h ,21x,11hversion 1.0) ! 779: 90004 format (1h ,10x,38hfor official use only - copyright 1978) ! 780: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) ! 781: 90006 format (1h ,5x,46h----------------------------------------------) ! 782: 90011 format (1h ,18x,17hsubset level test) ! 783: c ! 784: c format statements for run summaries ! 785: 90008 format (1h ,15x,i5,19h errors encountered) ! 786: 90009 format (1h ,15x,i5,13h tests passed) ! 787: 90010 format (1h ,15x,i5,14h tests deleted) ! 788: c ! 789: c format statements for test results ! 790: 80001 format (1h ,4x,i5,7x,4hpass) ! 791: 80002 format (1h ,4x,i5,7x,4hfail) ! 792: 80003 format (1h ,4x,i5,7x,7hdeleted) ! 793: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) ! 794: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) ! 795: c ! 796: 90007 format (1h ,20x,20hend of program fm038) ! 797: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.