|
|
1.1 ! root 1: c ! 2: c comment section. ! 3: c ! 4: c fm016 ! 5: c ! 6: c this routine begins a series of tests of the fortran ! 7: c logical if statement in all of the various forms. the ! 8: c following logical operands are used for this routine - logical ! 9: c constants, logical variables, logical array elements, and ! 10: c arithmetic expressions with various relational operators. both ! 11: c the true and false branches are tested in the series of tests. ! 12: c ! 13: c references ! 14: c american national standard programming language fortran, ! 15: c x3.9-1978 ! 16: c ! 17: c section 4.7.1, logical constant ! 18: c section 6, expressions ! 19: c section 6.1, arithmetic expressions ! 20: c section 6.3, relational expressions ! 21: c section 6.4, logical expressions ! 22: c section 6.6, evaluation of expressions ! 23: c section 10, assignment statements ! 24: c section 10.2, logical assignment statement ! 25: c section 11.5, logical if statement ! 26: c ! 27: logical lctnt1, lctnf1, lvtntf, lvtnft, latn1a(2) ! 28: logical ladn1d, ladn1b ! 29: dimension ladn1d(2), ladn1b(2) ! 30: data ladn1d/.true., .false./ ! 31: c ! 32: c ********************************************************** ! 33: c ! 34: c a compiler validation system for the fortran language ! 35: c based on specifications as defined in american national standard ! 36: c programming language fortran x3.9-1978, has been developed by the ! 37: c federal cobol compiler testing service. the fortran compiler ! 38: c validation system (fcvs) consists of audit routines, their related ! 39: c data, and an executive system. each audit routine is a fortran ! 40: c program, subprogram or function which includes tests of specific ! 41: c language elements and supporting procedures indicating the result ! 42: c of executing these tests. ! 43: c ! 44: c this particular program/subprogram/function contains features ! 45: c found only in the subset as defined in x3.9-1978. ! 46: c ! 47: c suggestions and comments should be forwarded to - ! 48: c ! 49: c department of the navy ! 50: c federal cobol compiler testing service ! 51: c washington, d.c. 20376 ! 52: c ! 53: c ********************************************************** ! 54: c ! 55: c ! 56: c ! 57: c initialization section ! 58: c ! 59: c initialize constants ! 60: c ************** ! 61: c i01 contains the logical unit number for the card reader. ! 62: i01 = 5 ! 63: c i02 contains the logical unit number for the printer. ! 64: i02 = 6 ! 65: c system environment section ! 66: c ! 67: cx010 this card is replaced by contents of fexec x-010 control card. ! 68: c the cx010 card is for overriding the program default i01 = 5 ! 69: c (unit number for card reader). ! 70: cx011 this card is replaced by contents of fexec x-011 control card. ! 71: c the cx011 card is for systems which require additional ! 72: c fortran statements for files associated with cx010 above. ! 73: c ! 74: cx020 this card is replaced by contents of fexec x-020 control card. ! 75: c the cx020 card is for overriding the program default i02 = 6 ! 76: c (unit number for printer). ! 77: cx021 this card is replaced by contents of fexec x-021 control card. ! 78: c the cx021 card is for systems which require additional ! 79: c fortran statements for files associated with cx020 above. ! 80: c ! 81: ivpass=0 ! 82: ivfail=0 ! 83: ivdele=0 ! 84: iczero=0 ! 85: c ! 86: c write page headers ! 87: write (i02,90000) ! 88: write (i02,90001) ! 89: write (i02,90002) ! 90: write (i02, 90002) ! 91: write (i02,90003) ! 92: write (i02,90002) ! 93: write (i02,90004) ! 94: write (i02,90002) ! 95: write (i02,90011) ! 96: write (i02,90002) ! 97: write (i02,90002) ! 98: write (i02,90005) ! 99: write (i02,90006) ! 100: write (i02,90002) ! 101: ivtnum = 139 ! 102: c test 139 - this tests the logical constant .true. ! 103: c ! 104: if (iczero) 31390, 1390, 31390 ! 105: 1390 continue ! 106: ivon01=0 ! 107: if ( .true. ) ivon01 = 1 ! 108: go to 41390 ! 109: 31390 ivdele = ivdele + 1 ! 110: write (i02,80003) ivtnum ! 111: if (iczero) 41390, 1401, 41390 ! 112: 41390 if ( ivon01 - 1 ) 21390, 11390, 21390 ! 113: 11390 ivpass = ivpass + 1 ! 114: write (i02,80001) ivtnum ! 115: go to 1401 ! 116: 21390 ivfail = ivfail + 1 ! 117: ivcomp=ivon01 ! 118: ivcorr=1 ! 119: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 120: 1401 continue ! 121: ivtnum = 140 ! 122: c test 140 - this tests the logical constant .false. ! 123: c ! 124: if (iczero) 31400, 1400, 31400 ! 125: 1400 continue ! 126: ivon01=1 ! 127: if ( .false. ) ivon01=0 ! 128: go to 41400 ! 129: 31400 ivdele = ivdele + 1 ! 130: write (i02,80003) ivtnum ! 131: if (iczero) 41400, 1411, 41400 ! 132: 41400 if ( ivon01 - 1 ) 21400, 11400, 21400 ! 133: 11400 ivpass = ivpass + 1 ! 134: write (i02,80001) ivtnum ! 135: go to 1411 ! 136: 21400 ivfail = ivfail + 1 ! 137: ivcomp=ivon01 ! 138: ivcorr=1 ! 139: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 140: 1411 continue ! 141: ivtnum = 141 ! 142: c test 141 - this tests the logical variable = .true. ! 143: c ! 144: if (iczero) 31410, 1410, 31410 ! 145: 1410 continue ! 146: lctnt1=.true. ! 147: ivon01 = 0 ! 148: if ( lctnt1 ) ivon01 = 1 ! 149: go to 41410 ! 150: 31410 ivdele = ivdele + 1 ! 151: write (i02,80003) ivtnum ! 152: if (iczero) 41410, 1421, 41410 ! 153: 41410 if ( ivon01 - 1 ) 21410, 11410, 21410 ! 154: 11410 ivpass = ivpass + 1 ! 155: write (i02,80001) ivtnum ! 156: go to 1421 ! 157: 21410 ivfail = ivfail + 1 ! 158: ivcomp=ivon01 ! 159: ivcorr=1 ! 160: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 161: 1421 continue ! 162: ivtnum = 142 ! 163: c test 142 - this tests the logical variable = .false. ! 164: c ! 165: if (iczero) 31420, 1420, 31420 ! 166: 1420 continue ! 167: ivon01=1 ! 168: lctnf1=.false. ! 169: if ( lctnf1 ) ivon01=0 ! 170: go to 41420 ! 171: 31420 ivdele = ivdele + 1 ! 172: write (i02,80003) ivtnum ! 173: if (iczero) 41420, 1431, 41420 ! 174: 41420 if ( ivon01 - 1 ) 21420, 11420, 21420 ! 175: 11420 ivpass = ivpass + 1 ! 176: write (i02,80001) ivtnum ! 177: go to 1431 ! 178: 21420 ivfail = ivfail + 1 ! 179: ivcomp=ivon01 ! 180: ivcorr=1 ! 181: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 182: 1431 continue ! 183: ivtnum = 143 ! 184: c test 143 - this tests changing the value of a logical variable ! 185: c from .true. to .false. ! 186: c ! 187: if (iczero) 31430, 1430, 31430 ! 188: 1430 continue ! 189: lvtntf=.true. ! 190: lvtntf=.false. ! 191: ivon01 = 1 ! 192: if ( lvtntf ) ivon01 = 0 ! 193: go to 41430 ! 194: 31430 ivdele = ivdele + 1 ! 195: write (i02,80003) ivtnum ! 196: if (iczero) 41430, 1441, 41430 ! 197: 41430 if ( ivon01 - 1 ) 21430, 11430, 21430 ! 198: 11430 ivpass = ivpass + 1 ! 199: write (i02,80001) ivtnum ! 200: go to 1441 ! 201: 21430 ivfail = ivfail + 1 ! 202: ivcomp=ivon01 ! 203: ivcorr=1 ! 204: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 205: 1441 continue ! 206: ivtnum = 144 ! 207: c test 144 - this tests changing the value of a logical variable ! 208: c from .false. to .true. ! 209: c ! 210: if (iczero) 31440, 1440, 31440 ! 211: 1440 continue ! 212: lvtnft=.false. ! 213: lvtnft=.true. ! 214: ivon01=0 ! 215: if ( lvtnft ) ivon01=1 ! 216: go to 41440 ! 217: 31440 ivdele = ivdele + 1 ! 218: write (i02,80003) ivtnum ! 219: if (iczero) 41440, 1451, 41440 ! 220: 41440 if ( ivon01 - 1 ) 21440, 11440, 21440 ! 221: 11440 ivpass = ivpass + 1 ! 222: write (i02,80001) ivtnum ! 223: go to 1451 ! 224: 21440 ivfail = ivfail + 1 ! 225: ivcomp=ivon01 ! 226: ivcorr=1 ! 227: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 228: 1451 continue ! 229: ivtnum = 145 ! 230: c test 145 - test of a logical array element set to .true. ! 231: c ! 232: if (iczero) 31450, 1450, 31450 ! 233: 1450 continue ! 234: latn1a(1)=.true. ! 235: ivon01=0 ! 236: if ( latn1a(1) ) ivon01=1 ! 237: go to 41450 ! 238: 31450 ivdele = ivdele + 1 ! 239: write (i02,80003) ivtnum ! 240: if (iczero) 41450, 1461, 41450 ! 241: 41450 if ( ivon01 - 1 ) 21450, 11450, 21450 ! 242: 11450 ivpass = ivpass + 1 ! 243: write (i02,80001) ivtnum ! 244: go to 1461 ! 245: 21450 ivfail = ivfail + 1 ! 246: ivcomp=ivon01 ! 247: ivcorr=1 ! 248: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 249: 1461 continue ! 250: ivtnum = 146 ! 251: c test 146 - test of a logical array element set to .false. ! 252: c ! 253: if (iczero) 31460, 1460, 31460 ! 254: 1460 continue ! 255: latn1a(2) = .false. ! 256: ivon01=1 ! 257: if ( latn1a(2) ) ivon01=0 ! 258: go to 41460 ! 259: 31460 ivdele = ivdele + 1 ! 260: write (i02,80003) ivtnum ! 261: if (iczero) 41460, 1471, 41460 ! 262: 41460 if ( ivon01 - 1 ) 21460, 11460, 21460 ! 263: 11460 ivpass = ivpass + 1 ! 264: write (i02,80001) ivtnum ! 265: go to 1471 ! 266: 21460 ivfail = ivfail + 1 ! 267: ivcomp=ivon01 ! 268: ivcorr=1 ! 269: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 270: 1471 continue ! 271: ivtnum = 147 ! 272: c test 147 - test of a logical array element set .true. ! 273: c in a data initialization statement. ! 274: c ! 275: if (iczero) 31470, 1470, 31470 ! 276: 1470 continue ! 277: ivon01=0 ! 278: if ( ladn1d(1) ) ivon01=1 ! 279: go to 41470 ! 280: 31470 ivdele = ivdele + 1 ! 281: write (i02,80003) ivtnum ! 282: if (iczero) 41470, 1481, 41470 ! 283: 41470 if ( ivon01 - 1 ) 21470, 11470, 21470 ! 284: 11470 ivpass = ivpass + 1 ! 285: write (i02,80001) ivtnum ! 286: go to 1481 ! 287: 21470 ivfail = ivfail + 1 ! 288: ivcomp=ivon01 ! 289: ivcorr=1 ! 290: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 291: 1481 continue ! 292: ivtnum = 148 ! 293: c test 148 - test of a logical array element set .false. ! 294: c in a data initialization statement. ! 295: c ! 296: if (iczero) 31480, 1480, 31480 ! 297: 1480 continue ! 298: ivon01=1 ! 299: if ( ladn1d(2) ) ivon01=0 ! 300: go to 41480 ! 301: 31480 ivdele = ivdele + 1 ! 302: write (i02,80003) ivtnum ! 303: if (iczero) 41480, 1491, 41480 ! 304: 41480 if ( ivon01 - 1 ) 21480, 11480, 21480 ! 305: 11480 ivpass = ivpass + 1 ! 306: write (i02,80001) ivtnum ! 307: go to 1491 ! 308: 21480 ivfail = ivfail + 1 ! 309: ivcomp=ivon01 ! 310: ivcorr=1 ! 311: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 312: 1491 continue ! 313: ivtnum = 149 ! 314: c test 149 - like test 145 except that the array declaration was ! 315: c in a dimension statement rather than in the type statement. ! 316: c ! 317: if (iczero) 31490, 1490, 31490 ! 318: 1490 continue ! 319: ladn1b(1)=.true. ! 320: ivon01=0 ! 321: if ( ladn1b(1) ) ivon01=1 ! 322: go to 41490 ! 323: 31490 ivdele = ivdele + 1 ! 324: write (i02,80003) ivtnum ! 325: if (iczero) 41490, 1501, 41490 ! 326: 41490 if ( ivon01 - 1 ) 21490, 11490, 21490 ! 327: 11490 ivpass = ivpass + 1 ! 328: write (i02,80001) ivtnum ! 329: go to 1501 ! 330: 21490 ivfail = ivfail + 1 ! 331: ivcomp=ivon01 ! 332: ivcorr=1 ! 333: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 334: c ! 335: c for tests 150 thru 156 the true path is used.. ! 336: c ! 337: 1501 continue ! 338: ivtnum = 150 ! 339: c test 150 - relational expression with integer constants .lt. ! 340: c ! 341: if (iczero) 31500, 1500, 31500 ! 342: 1500 continue ! 343: ivon01=0 ! 344: if ( 3 .lt. 76 ) ivon01=1 ! 345: go to 41500 ! 346: 31500 ivdele = ivdele + 1 ! 347: write (i02,80003) ivtnum ! 348: if (iczero) 41500, 1511, 41500 ! 349: 41500 if ( ivon01 - 1 ) 21500, 11500, 21500 ! 350: 11500 ivpass = ivpass + 1 ! 351: write (i02,80001) ivtnum ! 352: go to 1511 ! 353: 21500 ivfail = ivfail + 1 ! 354: ivcomp=ivon01 ! 355: ivcorr=1 ! 356: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 357: 1511 continue ! 358: ivtnum = 151 ! 359: c test 151 - test with relational expression .le. ! 360: c ! 361: if (iczero) 31510, 1510, 31510 ! 362: 1510 continue ! 363: ivon01=0 ! 364: if ( 587 .le. 587 ) ivon01=1 ! 365: go to 41510 ! 366: 31510 ivdele = ivdele + 1 ! 367: write (i02,80003) ivtnum ! 368: if (iczero) 41510, 1521, 41510 ! 369: 41510 if ( ivon01 - 1 ) 21510, 11510, 21510 ! 370: 11510 ivpass = ivpass + 1 ! 371: write (i02,80001) ivtnum ! 372: go to 1521 ! 373: 21510 ivfail = ivfail + 1 ! 374: ivcomp=ivon01 ! 375: ivcorr=1 ! 376: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 377: 1521 continue ! 378: ivtnum = 152 ! 379: c test 152 - test of relational expression with integer constants ! 380: c relational operator is .eq. ! 381: c ! 382: if (iczero) 31520, 1520, 31520 ! 383: 1520 continue ! 384: ivon01=0 ! 385: if ( 9999 .eq. 9999 ) ivon01=1 ! 386: go to 41520 ! 387: 31520 ivdele = ivdele + 1 ! 388: write (i02,80003) ivtnum ! 389: if (iczero) 41520, 1531, 41520 ! 390: 41520 if ( ivon01 - 1 ) 21520, 11520, 21520 ! 391: 11520 ivpass = ivpass + 1 ! 392: write (i02,80001) ivtnum ! 393: go to 1531 ! 394: 21520 ivfail = ivfail + 1 ! 395: ivcomp=ivon01 ! 396: ivcorr=1 ! 397: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 398: 1531 continue ! 399: ivtnum = 153 ! 400: c test 153 - test of relational expression with integer constants ! 401: c relational operator is .ne. ! 402: c ! 403: if (iczero) 31530, 1530, 31530 ! 404: 1530 continue ! 405: ivon01=0 ! 406: if ( 0 .ne. 32767 ) ivon01=1 ! 407: go to 41530 ! 408: 31530 ivdele = ivdele + 1 ! 409: write (i02,80003) ivtnum ! 410: if (iczero) 41530, 1541, 41530 ! 411: 41530 if ( ivon01 - 1 ) 21530, 11530, 21530 ! 412: 11530 ivpass = ivpass + 1 ! 413: write (i02,80001) ivtnum ! 414: go to 1541 ! 415: 21530 ivfail = ivfail + 1 ! 416: ivcomp=ivon01 ! 417: ivcorr=1 ! 418: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 419: 1541 continue ! 420: ivtnum = 154 ! 421: c test 154 - test of relational expression with integer constants ! 422: c relational operator is .gt. ! 423: c ! 424: if (iczero) 31540, 1540, 31540 ! 425: 1540 continue ! 426: ivon01=0 ! 427: if ( 32767 .gt. 76 ) ivon01=1 ! 428: go to 41540 ! 429: 31540 ivdele = ivdele + 1 ! 430: write (i02,80003) ivtnum ! 431: if (iczero) 41540, 1551, 41540 ! 432: 41540 if ( ivon01 - 1 ) 21540, 11540, 21540 ! 433: 11540 ivpass = ivpass + 1 ! 434: write (i02,80001) ivtnum ! 435: go to 1551 ! 436: 21540 ivfail = ivfail + 1 ! 437: ivcomp=ivon01 ! 438: ivcorr=1 ! 439: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 440: 1551 continue ! 441: ivtnum = 155 ! 442: c test 155 - test of relational expression with integer constants ! 443: c relational operator is .ge. ! 444: c ! 445: if (iczero) 31550, 1550, 31550 ! 446: 1550 continue ! 447: ivon01=0 ! 448: if ( 32767 .ge. 76 ) ivon01=1 ! 449: go to 41550 ! 450: 31550 ivdele = ivdele + 1 ! 451: write (i02,80003) ivtnum ! 452: if (iczero) 41550, 1561, 41550 ! 453: 41550 if ( ivon01 - 1 ) 21550, 11550, 21550 ! 454: 11550 ivpass = ivpass + 1 ! 455: write (i02,80001) ivtnum ! 456: go to 1561 ! 457: 21550 ivfail = ivfail + 1 ! 458: ivcomp=ivon01 ! 459: ivcorr=1 ! 460: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 461: 1561 continue ! 462: ivtnum = 156 ! 463: c test 156 - test of relational expression with integer constants ! 464: c relational operator is .ge. ! 465: c ! 466: if (iczero) 31560, 1560, 31560 ! 467: 1560 continue ! 468: ivon01=0 ! 469: if ( 32767 .ge. 32767 ) ivon01=1 ! 470: go to 41560 ! 471: 31560 ivdele = ivdele + 1 ! 472: write (i02,80003) ivtnum ! 473: if (iczero) 41560, 1571, 41560 ! 474: 41560 if ( ivon01 - 1 ) 21560, 11560, 21560 ! 475: 11560 ivpass = ivpass + 1 ! 476: write (i02,80001) ivtnum ! 477: go to 1571 ! 478: 21560 ivfail = ivfail + 1 ! 479: ivcomp=ivon01 ! 480: ivcorr=1 ! 481: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 482: c ! 483: c for tests 157 thru 162 the false path is used.. ! 484: c ! 485: 1571 continue ! 486: ivtnum = 157 ! 487: c test 157 - relational expression integer constants false path ! 488: c relational operator is .lt. ! 489: c ! 490: if (iczero) 31570, 1570, 31570 ! 491: 1570 continue ! 492: ivon01=1 ! 493: if ( 76 .lt. 3 ) ivon01=0 ! 494: go to 41570 ! 495: 31570 ivdele = ivdele + 1 ! 496: write (i02,80003) ivtnum ! 497: if (iczero) 41570, 1581, 41570 ! 498: 41570 if ( ivon01 - 1 ) 21570, 11570, 21570 ! 499: 11570 ivpass = ivpass + 1 ! 500: write (i02,80001) ivtnum ! 501: go to 1581 ! 502: 21570 ivfail = ivfail + 1 ! 503: ivcomp=ivon01 ! 504: ivcorr=1 ! 505: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 506: 1581 continue ! 507: ivtnum = 158 ! 508: c test 158 - relational expression integer constants false path ! 509: c relational operator is .le. ! 510: c ! 511: if (iczero) 31580, 1580, 31580 ! 512: 1580 continue ! 513: ivon01=1 ! 514: if ( 76 .le. 3 ) ivon01=0 ! 515: go to 41580 ! 516: 31580 ivdele = ivdele + 1 ! 517: write (i02,80003) ivtnum ! 518: if (iczero) 41580, 1591, 41580 ! 519: 41580 if ( ivon01 - 1 ) 21580, 11580, 21580 ! 520: 11580 ivpass = ivpass + 1 ! 521: write (i02,80001) ivtnum ! 522: go to 1591 ! 523: 21580 ivfail = ivfail + 1 ! 524: ivcomp=ivon01 ! 525: ivcorr=1 ! 526: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 527: 1591 continue ! 528: ivtnum = 159 ! 529: c test 159 - relational expression integer constants false path ! 530: c relational operator is .eq. ! 531: c ! 532: if (iczero) 31590, 1590, 31590 ! 533: 1590 continue ! 534: ivon01=1 ! 535: if ( 9999 .eq. 587 ) ivon01=0 ! 536: go to 41590 ! 537: 31590 ivdele = ivdele + 1 ! 538: write (i02,80003) ivtnum ! 539: if (iczero) 41590, 1601, 41590 ! 540: 41590 if ( ivon01 - 1 ) 21590, 11590, 21590 ! 541: 11590 ivpass = ivpass + 1 ! 542: write (i02,80001) ivtnum ! 543: go to 1601 ! 544: 21590 ivfail = ivfail + 1 ! 545: ivcomp=ivon01 ! 546: ivcorr=1 ! 547: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 548: 1601 continue ! 549: ivtnum = 160 ! 550: c test 160 - relational expression integer constants false path ! 551: c relational operator is .ne. ! 552: c ! 553: if (iczero) 31600, 1600, 31600 ! 554: 1600 continue ! 555: ivon01=1 ! 556: if ( 3 .ne. 3 ) ivon01=0 ! 557: go to 41600 ! 558: 31600 ivdele = ivdele + 1 ! 559: write (i02,80003) ivtnum ! 560: if (iczero) 41600, 1611, 41600 ! 561: 41600 if ( ivon01 - 1 ) 21600, 11600, 21600 ! 562: 11600 ivpass = ivpass + 1 ! 563: write (i02,80001) ivtnum ! 564: go to 1611 ! 565: 21600 ivfail = ivfail + 1 ! 566: ivcomp=ivon01 ! 567: ivcorr=1 ! 568: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 569: 1611 continue ! 570: ivtnum=161 ! 571: c ! 572: c test 161 - relational expression integer constants false path ! 573: c relational operator is .gt. ! 574: c ! 575: if ( iczero ) 31610, 1610, 31610 ! 576: 1610 continue ! 577: ivon01=1 ! 578: if ( 76 .gt. 32767 ) ivon01=0 ! 579: go to 41610 ! 580: 31610 ivdele = ivdele + 1 ! 581: write (i02,80003) ivtnum ! 582: if ( iczero ) 41610, 1621, 41610 ! 583: 41610 if ( ivon01 - 1 ) 21610, 11610, 21610 ! 584: 11610 ivpass = ivpass+ 1 ! 585: write (i02,80001) ivtnum ! 586: go to 1621 ! 587: 21610 ivfail = ivfail + 1 ! 588: ivcomp=ivon01 ! 589: ivcorr=1 ! 590: write (i02,80004) ivtnum, ivcomp, ivcorr ! 591: 1621 continue ! 592: ivtnum = 162 ! 593: c ! 594: c ! 595: c **** test 162 **** ! 596: c ! 597: c test 162 - relational expression integer constants false path ! 598: c relational operator is .ge. ! 599: c ! 600: if (iczero) 31620, 1620, 31620 ! 601: 1620 continue ! 602: ivon01=1 ! 603: if ( 76 .ge. 32767 ) ivon01 = 0 ! 604: go to 41620 ! 605: 31620 ivdele = ivdele + 1 ! 606: write (i02,80003) ivtnum ! 607: if (iczero) 41620, 1631, 41620 ! 608: 41620 if ( ivon01 - 1 ) 21620, 11620, 21620 ! 609: 11620 ivpass = ivpass + 1 ! 610: write (i02,80001) ivtnum ! 611: go to 1631 ! 612: 21620 ivfail = ivfail + 1 ! 613: ivcomp=ivon01 ! 614: ivcorr=1 ! 615: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 616: 1631 continue ! 617: ivtnum = 163 ! 618: c ! 619: c **** test 163 **** ! 620: c test 163 - relational expression with integer variable ! 621: c references (ic) (ro) (ivr). true path. use .lt. ! 622: c ! 623: c ! 624: if (iczero) 31630, 1630, 31630 ! 625: 1630 continue ! 626: ivon01 = 76 ! 627: ivon02 = 0 ! 628: if ( 3 .lt. ivon01 ) ivon02 = 1 ! 629: go to 41630 ! 630: 31630 ivdele = ivdele + 1 ! 631: write (i02,80003) ivtnum ! 632: if (iczero) 41630, 1641, 41630 ! 633: 41630 if ( ivon02 - 1 ) 21630, 11630, 21630 ! 634: 11630 ivpass = ivpass + 1 ! 635: write (i02,80001) ivtnum ! 636: go to 1641 ! 637: 21630 ivfail = ivfail + 1 ! 638: ivcomp = ivon02 ! 639: ivcorr = 1 ! 640: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 641: 1641 continue ! 642: ivtnum = 164 ! 643: c ! 644: c **** test 164 **** ! 645: c test 164 - relational expression. integer variable references. ! 646: c true path. .le. ! 647: c ! 648: c ! 649: if (iczero) 31640, 1640, 31640 ! 650: 1640 continue ! 651: ivon01 = 587 ! 652: ivon02 = 0 ! 653: if ( 587 .le. ivon01 ) ivon02 = 1 ! 654: go to 41640 ! 655: 31640 ivdele = ivdele + 1 ! 656: write (i02,80003) ivtnum ! 657: if (iczero) 41640, 1651, 41640 ! 658: 41640 if ( ivon02 - 1 ) 21640, 11640, 21640 ! 659: 11640 ivpass = ivpass + 1 ! 660: write (i02,80001) ivtnum ! 661: go to 1651 ! 662: 21640 ivfail = ivfail + 1 ! 663: ivcomp = ivon02 ! 664: ivcorr = 1 ! 665: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 666: 1651 continue ! 667: ivtnum = 165 ! 668: c ! 669: c **** test 165 **** ! 670: c test 165 - relational expression. integer variable reference. ! 671: c true path. .eq. ! 672: c ! 673: c ! 674: if (iczero) 31650, 1650, 31650 ! 675: 1650 continue ! 676: ivon01 = 9999 ! 677: ivon02 = 0 ! 678: if ( 9999 .eq. ivon01 ) ivon02 = 1 ! 679: go to 41650 ! 680: 31650 ivdele = ivdele + 1 ! 681: write (i02,80003) ivtnum ! 682: if (iczero) 41650, 1661, 41650 ! 683: 41650 if ( ivon02 - 1 ) 21650, 11650, 21650 ! 684: 11650 ivpass = ivpass + 1 ! 685: write (i02,80001) ivtnum ! 686: go to 1661 ! 687: 21650 ivfail = ivfail + 1 ! 688: ivcomp = ivon02 ! 689: ivcorr = 1 ! 690: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 691: 1661 continue ! 692: ivtnum = 166 ! 693: c ! 694: c **** test 166 **** ! 695: c test 166 - relational expression. integer variable reference. ! 696: c true path. .ne. ! 697: c ! 698: c ! 699: if (iczero) 31660, 1660, 31660 ! 700: 1660 continue ! 701: ivon01 = 32767 ! 702: ivon02 = 0 ! 703: if ( 0 .ne. ivon01 ) ivon02 = 1 ! 704: go to 41660 ! 705: 31660 ivdele = ivdele + 1 ! 706: write (i02,80003) ivtnum ! 707: if (iczero) 41660, 1671, 41660 ! 708: 41660 if ( ivon02 - 1 ) 21660, 11660, 21660 ! 709: 11660 ivpass = ivpass + 1 ! 710: write (i02,80001) ivtnum ! 711: go to 1671 ! 712: 21660 ivfail = ivfail + 1 ! 713: ivcomp = ivon02 ! 714: ivcorr = 1 ! 715: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 716: 1671 continue ! 717: ivtnum = 167 ! 718: c ! 719: c **** test 167 **** ! 720: c test 167 - relational expression. integer variable reference. ! 721: c true path. .gt. ! 722: c ! 723: c ! 724: if (iczero) 31670, 1670, 31670 ! 725: 1670 continue ! 726: ivon01 = 76 ! 727: ivon02 = 0 ! 728: if ( 32767 .gt. ivon01 ) ivon02 = 1 ! 729: go to 41670 ! 730: 31670 ivdele = ivdele + 1 ! 731: write (i02,80003) ivtnum ! 732: if (iczero) 41670, 1681, 41670 ! 733: 41670 if ( ivon02 - 1 ) 21670, 11670, 21670 ! 734: 11670 ivpass = ivpass + 1 ! 735: write (i02,80001) ivtnum ! 736: go to 1681 ! 737: 21670 ivfail = ivfail + 1 ! 738: ivcomp = ivon02 ! 739: ivcorr = 1 ! 740: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 741: 1681 continue ! 742: ivtnum = 168 ! 743: c ! 744: c **** test 168 **** ! 745: c test 168 - relational expression. integer variable reference. ! 746: c true path. .ge. ! 747: c ! 748: c ! 749: if (iczero) 31680, 1680, 31680 ! 750: 1680 continue ! 751: ivon01 = 76 ! 752: ivon02 = 0 ! 753: if ( 32767 .ge. ivon01 ) ivon02 = 1 ! 754: go to 41680 ! 755: 31680 ivdele = ivdele + 1 ! 756: write (i02,80003) ivtnum ! 757: if (iczero) 41680, 1691, 41680 ! 758: 41680 if ( ivon02 - 1 ) 21680, 11680, 21680 ! 759: 11680 ivpass = ivpass + 1 ! 760: write (i02,80001) ivtnum ! 761: go to 1691 ! 762: 21680 ivfail = ivfail + 1 ! 763: ivcomp = ivon02 ! 764: ivcorr = 1 ! 765: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 766: 1691 continue ! 767: ivtnum = 169 ! 768: c ! 769: c **** test 169 **** ! 770: c test 169 - relational expression. integer variable reference. ! 771: c true path. .eq. ! 772: c ! 773: c ! 774: if (iczero) 31690, 1690, 31690 ! 775: 1690 continue ! 776: ivon01 = 32767 ! 777: ivon02 = 0 ! 778: if ( 32767 .eq. ivon01 ) ivon02 = 1 ! 779: go to 41690 ! 780: 31690 ivdele = ivdele + 1 ! 781: write (i02,80003) ivtnum ! 782: if (iczero) 41690, 1701, 41690 ! 783: 41690 if ( ivon02 - 1 ) 21690, 11690, 21690 ! 784: 11690 ivpass = ivpass + 1 ! 785: write (i02,80001) ivtnum ! 786: go to 1701 ! 787: 21690 ivfail = ivfail + 1 ! 788: ivcomp = ivon02 ! 789: ivcorr = 1 ! 790: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 791: 1701 continue ! 792: c ! 793: c write page footings and run summaries ! 794: 99999 continue ! 795: write (i02,90002) ! 796: write (i02,90006) ! 797: write (i02,90002) ! 798: write (i02,90002) ! 799: write (i02,90007) ! 800: write (i02,90002) ! 801: write (i02,90008) ivfail ! 802: write (i02,90009) ivpass ! 803: write (i02,90010) ivdele ! 804: c ! 805: c ! 806: c terminate routine execution ! 807: stop ! 808: c ! 809: c format statements for page headers ! 810: 90000 format (1h1) ! 811: 90002 format (1h ) ! 812: 90001 format (1h ,10x,34hfortran compiler validation system) ! 813: 90003 format (1h ,21x,11hversion 1.0) ! 814: 90004 format (1h ,10x,38hfor official use only - copyright 1978) ! 815: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) ! 816: 90006 format (1h ,5x,46h----------------------------------------------) ! 817: 90011 format (1h ,18x,17hsubset level test) ! 818: c ! 819: c format statements for run summaries ! 820: 90008 format (1h ,15x,i5,19h errors encountered) ! 821: 90009 format (1h ,15x,i5,13h tests passed) ! 822: 90010 format (1h ,15x,i5,14h tests deleted) ! 823: c ! 824: c format statements for test results ! 825: 80001 format (1h ,4x,i5,7x,4hpass) ! 826: 80002 format (1h ,4x,i5,7x,4hfail) ! 827: 80003 format (1h ,4x,i5,7x,7hdeleted) ! 828: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) ! 829: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) ! 830: c ! 831: 90007 format (1h ,20x,20hend of program fm016) ! 832: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.