|
|
1.1 ! root 1: c ! 2: c comment section. ! 3: c ! 4: c fm017 ! 5: c ! 6: c this routine continues 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: dimension iadn11(3) ! 28: logical latn1a(2), lctnt1, lctnt2 ! 29: c ! 30: c ********************************************************** ! 31: c ! 32: c a compiler validation system for the fortran language ! 33: c based on specifications as defined in american national standard ! 34: c programming language fortran x3.9-1978, has been developed by the ! 35: c federal cobol compiler testing service. the fortran compiler ! 36: c validation system (fcvs) consists of audit routines, their related ! 37: c data, and an executive system. each audit routine is a fortran ! 38: c program, subprogram or function which includes tests of specific ! 39: c language elements and supporting procedures indicating the result ! 40: c of executing these tests. ! 41: c ! 42: c this particular program/subprogram/function contains features ! 43: c found only in the subset as defined in x3.9-1978. ! 44: c ! 45: c suggestions and comments should be forwarded to - ! 46: c ! 47: c department of the navy ! 48: c federal cobol compiler testing service ! 49: c washington, d.c. 20376 ! 50: c ! 51: c ********************************************************** ! 52: c ! 53: c ! 54: c ! 55: c initialization section ! 56: c ! 57: c initialize constants ! 58: c ************** ! 59: c i01 contains the logical unit number for the card reader. ! 60: i01 = 5 ! 61: c i02 contains the logical unit number for the printer. ! 62: i02 = 6 ! 63: c system environment section ! 64: c ! 65: cx010 this card is replaced by contents of fexec x-010 control card. ! 66: c the cx010 card is for overriding the program default i01 = 5 ! 67: c (unit number for card reader). ! 68: cx011 this card is replaced by contents of fexec x-011 control card. ! 69: c the cx011 card is for systems which require additional ! 70: c fortran statements for files associated with cx010 above. ! 71: c ! 72: cx020 this card is replaced by contents of fexec x-020 control card. ! 73: c the cx020 card is for overriding the program default i02 = 6 ! 74: c (unit number for printer). ! 75: cx021 this card is replaced by contents of fexec x-021 control card. ! 76: c the cx021 card is for systems which require additional ! 77: c fortran statements for files associated with cx020 above. ! 78: c ! 79: ivpass=0 ! 80: ivfail=0 ! 81: ivdele=0 ! 82: iczero=0 ! 83: c ! 84: c write page headers ! 85: write (i02,90000) ! 86: write (i02,90001) ! 87: write (i02,90002) ! 88: write (i02, 90002) ! 89: write (i02,90003) ! 90: write (i02,90002) ! 91: write (i02,90004) ! 92: write (i02,90002) ! 93: write (i02,90011) ! 94: write (i02,90002) ! 95: write (i02,90002) ! 96: write (i02,90005) ! 97: write (i02,90006) ! 98: write (i02,90002) ! 99: ivtnum = 170 ! 100: c ! 101: c **** test 170 **** ! 102: c test 170 - relational expression. integer variable reference. ! 103: c false path. .lt. ! 104: c ! 105: c ! 106: if (iczero) 31700, 1700, 31700 ! 107: 1700 continue ! 108: ivon01 = 3 ! 109: ivon02 = 1 ! 110: if ( 76 .lt. ivon01 ) ivon02 = 0 ! 111: go to 41700 ! 112: 31700 ivdele = ivdele + 1 ! 113: write (i02,80003) ivtnum ! 114: if (iczero) 41700, 1711, 41700 ! 115: 41700 if ( ivon02 - 1 ) 21700, 11700, 21700 ! 116: 11700 ivpass = ivpass + 1 ! 117: write (i02,80001) ivtnum ! 118: go to 1711 ! 119: 21700 ivfail = ivfail + 1 ! 120: ivcomp = ivon02 ! 121: ivcorr = 1 ! 122: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 123: 1711 continue ! 124: ivtnum = 171 ! 125: c ! 126: c **** test 171 **** ! 127: c test 171 - relational expression. integer variable reference. ! 128: c false path. .le. ! 129: c ! 130: c ! 131: if (iczero) 31710, 1710, 31710 ! 132: 1710 continue ! 133: ivon01 = 3 ! 134: ivon02 = 1 ! 135: if ( 76 .le. ivon01 ) ivon02 = 0 ! 136: go to 41710 ! 137: 31710 ivdele = ivdele + 1 ! 138: write (i02,80003) ivtnum ! 139: if (iczero) 41710, 1721, 41710 ! 140: 41710 if ( ivon02 - 1 ) 21710, 11710, 21710 ! 141: 11710 ivpass = ivpass + 1 ! 142: write (i02,80001) ivtnum ! 143: go to 1721 ! 144: 21710 ivfail = ivfail + 1 ! 145: ivcomp = ivon02 ! 146: ivcorr = 1 ! 147: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 148: 1721 continue ! 149: ivtnum = 172 ! 150: c ! 151: c **** test 172 **** ! 152: c test 172 - relational expressional. integer variable reference. ! 153: c false path. .eq. ! 154: c ! 155: c ! 156: if (iczero) 31720, 1720, 31720 ! 157: 1720 continue ! 158: ivon01 = 587 ! 159: ivon02 = 1 ! 160: if ( 9999 .eq. ivon01 ) ivon02 = 0 ! 161: go to 41720 ! 162: 31720 ivdele = ivdele + 1 ! 163: write (i02,80003) ivtnum ! 164: if (iczero) 41720, 1731, 41720 ! 165: 41720 if ( ivon02 - 1 ) 21720, 11720, 21720 ! 166: 11720 ivpass = ivpass + 1 ! 167: write (i02,80001) ivtnum ! 168: go to 1731 ! 169: 21720 ivfail = ivfail + 1 ! 170: ivcomp = ivon02 ! 171: ivcorr = 1 ! 172: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 173: 1731 continue ! 174: ivtnum = 173 ! 175: c ! 176: c **** test 173 **** ! 177: c test 173 - relational expression. integer variable reference. ! 178: c false path. .ne. ! 179: c ! 180: c ! 181: if (iczero) 31730, 1730, 31730 ! 182: 1730 continue ! 183: ivon01 = 3 ! 184: ivon02 = 1 ! 185: if ( 3 .ne. ivon01 ) ivon02 = 0 ! 186: go to 41730 ! 187: 31730 ivdele = ivdele + 1 ! 188: write (i02,80003) ivtnum ! 189: if (iczero) 41730, 1741, 41730 ! 190: 41730 if ( ivon02 - 1 ) 21730, 11730, 21730 ! 191: 11730 ivpass = ivpass + 1 ! 192: write (i02,80001) ivtnum ! 193: go to 1741 ! 194: 21730 ivfail = ivfail + 1 ! 195: ivcomp = ivon02 ! 196: ivcorr = 1 ! 197: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 198: 1741 continue ! 199: ivtnum = 174 ! 200: c ! 201: c **** test 174 **** ! 202: c test 174 - relational expression. integer variable reference. ! 203: c false path. .gt. ! 204: c ! 205: c ! 206: if (iczero) 31740, 1740, 31740 ! 207: 1740 continue ! 208: ivon01 = 32767 ! 209: ivon02 = 1 ! 210: if ( 76 .gt. ivon01 ) ivon02 = 0 ! 211: go to 41740 ! 212: 31740 ivdele = ivdele + 1 ! 213: write (i02,80003) ivtnum ! 214: if (iczero) 41740, 1751, 41740 ! 215: 41740 if ( ivon02 - 1 ) 21740, 11740, 21740 ! 216: 11740 ivpass = ivpass + 1 ! 217: write (i02,80001) ivtnum ! 218: go to 1751 ! 219: 21740 ivfail = ivfail + 1 ! 220: ivcomp = ivon02 ! 221: ivcorr = 1 ! 222: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 223: 1751 continue ! 224: ivtnum = 175 ! 225: c ! 226: c **** test 175 **** ! 227: c test 175 - relational expression. integer variable reference. ! 228: c false path. .ge. ! 229: c ! 230: c ! 231: if (iczero) 31750, 1750, 31750 ! 232: 1750 continue ! 233: ivon01 = 32767 ! 234: ivon02 = 1 ! 235: if ( 76 .ge. ivon01 ) ivon02 = 0 ! 236: go to 41750 ! 237: 31750 ivdele = ivdele + 1 ! 238: write (i02,80003) ivtnum ! 239: if (iczero) 41750, 1761, 41750 ! 240: 41750 if ( ivon02 - 1 ) 21750, 11750, 21750 ! 241: 11750 ivpass = ivpass + 1 ! 242: write (i02,80001) ivtnum ! 243: go to 1761 ! 244: 21750 ivfail = ivfail + 1 ! 245: ivcomp = ivon02 ! 246: ivcorr = 1 ! 247: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 248: 1761 continue ! 249: ivtnum = 176 ! 250: c ! 251: c **** test 176 **** ! 252: c test 176 - relational expression. (ivr) (ro) (ic) ! 253: c integer variable reference with integer constant ! 254: c true path. .lt. ! 255: c ! 256: c ! 257: if (iczero) 31760, 1760, 31760 ! 258: 1760 continue ! 259: ivon01 = 3 ! 260: ivon02 = 0 ! 261: if ( ivon01 .lt. 76 ) ivon02 = 1 ! 262: go to 41760 ! 263: 31760 ivdele = ivdele + 1 ! 264: write (i02,80003) ivtnum ! 265: if (iczero) 41760, 1771, 41760 ! 266: 41760 if ( ivon02 - 1 ) 21760, 11760, 21760 ! 267: 11760 ivpass = ivpass + 1 ! 268: write (i02,80001) ivtnum ! 269: go to 1771 ! 270: 21760 ivfail = ivfail + 1 ! 271: ivcomp = ivon02 ! 272: ivcorr = 1 ! 273: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 274: 1771 continue ! 275: ivtnum = 177 ! 276: c ! 277: c **** test 177 **** ! 278: c test 177 - like test 176. false path. .eq. ! 279: c ! 280: c ! 281: if (iczero) 31770, 1770, 31770 ! 282: 1770 continue ! 283: ivon01 = 587 ! 284: ivon02 = 1 ! 285: if ( ivon01 .eq. 9999 ) ivon02=0 ! 286: go to 41770 ! 287: 31770 ivdele = ivdele + 1 ! 288: write (i02,80003) ivtnum ! 289: if (iczero) 41770, 1781, 41770 ! 290: 41770 if ( ivon02 - 1 ) 21770, 11770, 21770 ! 291: 11770 ivpass = ivpass + 1 ! 292: write (i02,80001) ivtnum ! 293: go to 1781 ! 294: 21770 ivfail = ivfail + 1 ! 295: ivcomp = ivon02 ! 296: ivcorr = 1 ! 297: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 298: 1781 continue ! 299: ivtnum = 178 ! 300: c ! 301: c **** test 178 **** ! 302: c test 178 - like test 176. true path. .ge. ! 303: c ! 304: c ! 305: if (iczero) 31780, 1780, 31780 ! 306: 1780 continue ! 307: ivon01 = 32767 ! 308: ivon02 = 0 ! 309: if ( ivon01 .ge. 32767 ) ivon02 = 1 ! 310: go to 41780 ! 311: 31780 ivdele = ivdele + 1 ! 312: write (i02,80003) ivtnum ! 313: if (iczero) 41780, 1791, 41780 ! 314: 41780 if ( ivon02 - 1 ) 21780, 11780, 21780 ! 315: 11780 ivpass = ivpass + 1 ! 316: write (i02,80001) ivtnum ! 317: go to 1791 ! 318: 21780 ivfail = ivfail + 1 ! 319: ivcomp = ivon02 ! 320: ivcorr = 1 ! 321: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 322: 1791 continue ! 323: ivtnum = 179 ! 324: c ! 325: c **** test 179 **** ! 326: c test 179 - relational expression. integer array element ! 327: c reference. (ic) (ro) (iaer) false path. .lt. ! 328: c ! 329: c ! 330: if (iczero) 31790, 1790, 31790 ! 331: 1790 continue ! 332: ivon01 = 1 ! 333: iadn11(1) = 3 ! 334: if ( 76 .lt. iadn11(1) ) ivon01 = 0 ! 335: go to 41790 ! 336: 31790 ivdele = ivdele + 1 ! 337: write (i02,80003) ivtnum ! 338: if (iczero) 41790, 1801, 41790 ! 339: 41790 if ( ivon01 - 1 ) 21790, 11790, 21790 ! 340: 11790 ivpass = ivpass + 1 ! 341: write (i02,80001) ivtnum ! 342: go to 1801 ! 343: 21790 ivfail = ivfail + 1 ! 344: ivcomp = ivon01 ! 345: ivcorr = 1 ! 346: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 347: 1801 continue ! 348: ivtnum = 180 ! 349: c ! 350: c **** test 180 **** ! 351: c test 180 - like test 179. true path. .le. ! 352: c ! 353: c ! 354: if (iczero) 31800, 1800, 31800 ! 355: 1800 continue ! 356: ivon01 = 0 ! 357: iadn11(2) = 587 ! 358: if ( 587 .le. iadn11(2) ) ivon01 = 1 ! 359: go to 41800 ! 360: 31800 ivdele = ivdele + 1 ! 361: write (i02,80003) ivtnum ! 362: if (iczero) 41800, 1811, 41800 ! 363: 41800 if ( ivon01 - 1 ) 21800, 11800, 21800 ! 364: 11800 ivpass = ivpass + 1 ! 365: write (i02,80001) ivtnum ! 366: go to 1811 ! 367: 21800 ivfail = ivfail + 1 ! 368: ivcomp = ivon01 ! 369: ivcorr = 1 ! 370: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 371: 1811 continue ! 372: ivtnum = 181 ! 373: c ! 374: c **** test 181 **** ! 375: c test 181 - like test 179. false path. .ge. ! 376: c ! 377: c ! 378: if (iczero) 31810, 1810, 31810 ! 379: 1810 continue ! 380: ivon01 = 1 ! 381: iadn11(3) = 32767 ! 382: if ( 76 .ge. iadn11(3) ) ivon01 = 0 ! 383: go to 41810 ! 384: 31810 ivdele = ivdele + 1 ! 385: write (i02,80003) ivtnum ! 386: if (iczero) 41810, 1821, 41810 ! 387: 41810 if ( ivon01 - 1 ) 21810, 11810, 21810 ! 388: 11810 ivpass = ivpass + 1 ! 389: write (i02,80001) ivtnum ! 390: go to 1821 ! 391: 21810 ivfail = ivfail + 1 ! 392: ivcomp = ivon01 ! 393: ivcorr = 1 ! 394: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 395: 1821 continue ! 396: ivtnum = 182 ! 397: c ! 398: c **** test 182 **** ! 399: c test 182 - relational expression (iaer) (ro) (ic). true ! 400: c path. .eq. ! 401: c ! 402: c ! 403: if (iczero) 31820, 1820, 31820 ! 404: 1820 continue ! 405: ivon01 = 0 ! 406: iadn11(2) = 32767 ! 407: if ( iadn11(2) .eq. 32767 ) ivon01 = 1 ! 408: go to 41820 ! 409: 31820 ivdele = ivdele + 1 ! 410: write (i02,80003) ivtnum ! 411: if (iczero) 41820, 1831, 41820 ! 412: 41820 if ( ivon01 - 1 ) 21820, 11820, 21820 ! 413: 11820 ivpass = ivpass + 1 ! 414: write (i02,80001) ivtnum ! 415: go to 1831 ! 416: 21820 ivfail = ivfail + 1 ! 417: ivcomp = ivon01 ! 418: ivcorr = 1 ! 419: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 420: 1831 continue ! 421: ivtnum = 183 ! 422: c ! 423: c **** test 183 **** ! 424: c test 183 - relational expression (ivr) (ro) (iaer) ! 425: c false path. .ne. ! 426: c ! 427: c ! 428: if (iczero) 31830, 1830, 31830 ! 429: 1830 continue ! 430: ivon01 = 1 ! 431: ivon02 = 587 ! 432: iadn11(1) = 587 ! 433: if ( ivon02 .ne. iadn11(1) ) ivon01 = 0 ! 434: go to 41830 ! 435: 31830 ivdele = ivdele + 1 ! 436: write (i02,80003) ivtnum ! 437: if (iczero) 41830, 1841, 41830 ! 438: 41830 if ( ivon01 - 1 ) 21830, 11830, 21830 ! 439: 11830 ivpass = ivpass + 1 ! 440: write (i02,80001) ivtnum ! 441: go to 1841 ! 442: 21830 ivfail = ivfail + 1 ! 443: ivcomp = ivon01 ! 444: ivcorr = 1 ! 445: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 446: 1841 continue ! 447: ivtnum = 184 ! 448: c ! 449: c **** test 184 **** ! 450: c test 184 - relational expression (iaer) (ro) (ivr) ! 451: c true path .ne. ! 452: c ! 453: c ! 454: if (iczero) 31840, 1840, 31840 ! 455: 1840 continue ! 456: ivon01 = 0 ! 457: iadn11(3) = 3 ! 458: ivon02 = 32767 ! 459: if ( iadn11(3) .ne. ivon02 ) ivon01 = 1 ! 460: go to 41840 ! 461: 31840 ivdele = ivdele + 1 ! 462: write (i02,80003) ivtnum ! 463: if (iczero) 41840, 1851, 41840 ! 464: 41840 if ( ivon01 - 1 ) 21840, 11840, 21840 ! 465: 11840 ivpass = ivpass + 1 ! 466: write (i02,80001) ivtnum ! 467: go to 1851 ! 468: 21840 ivfail = ivfail + 1 ! 469: ivcomp = ivon01 ! 470: ivcorr = 1 ! 471: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 472: 1851 continue ! 473: ivtnum = 185 ! 474: c ! 475: c **** test 185 **** ! 476: c test 185 - test of parentheses ( (le) ) ! 477: c true path logical constant .true. ! 478: c ! 479: c ! 480: if (iczero) 31850, 1850, 31850 ! 481: 1850 continue ! 482: ivon01 = 0 ! 483: if ( ( .true. ) ) ivon01 = 1 ! 484: go to 41850 ! 485: 31850 ivdele = ivdele + 1 ! 486: write (i02,80003) ivtnum ! 487: if (iczero) 41850, 1861, 41850 ! 488: 41850 if ( ivon01 - 1 ) 21850, 11850, 21850 ! 489: 11850 ivpass = ivpass + 1 ! 490: write (i02,80001) ivtnum ! 491: go to 1861 ! 492: 21850 ivfail = ivfail + 1 ! 493: ivcomp = ivon01 ! 494: ivcorr = 1 ! 495: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 496: 1861 continue ! 497: ivtnum = 186 ! 498: c ! 499: c **** test 186 **** ! 500: c test 186 - like test 185 ! 501: c false path logical constant .false. ! 502: c ! 503: c ! 504: if (iczero) 31860, 1860, 31860 ! 505: 1860 continue ! 506: ivon01 = 1 ! 507: if ((( .false. ))) ivon01 = 0 ! 508: go to 41860 ! 509: 31860 ivdele = ivdele + 1 ! 510: write (i02,80003) ivtnum ! 511: if (iczero) 41860, 1871, 41860 ! 512: 41860 if ( ivon01 - 1 ) 21860, 11860, 21860 ! 513: 11860 ivpass = ivpass + 1 ! 514: write (i02,80001) ivtnum ! 515: go to 1871 ! 516: 21860 ivfail = ivfail + 1 ! 517: ivcomp = ivon01 ! 518: ivcorr = 1 ! 519: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 520: 1871 continue ! 521: ivtnum = 187 ! 522: c ! 523: c **** test 187 **** ! 524: c test 187 - parens around logical variable reference ( (lvr) ) ! 525: c true path ! 526: c ! 527: c ! 528: if (iczero) 31870, 1870, 31870 ! 529: 1870 continue ! 530: ivon01 = 0 ! 531: lctnt1 = .true. ! 532: if ( ( lctnt1 ) ) ivon01 = 1 ! 533: go to 41870 ! 534: 31870 ivdele = ivdele + 1 ! 535: write (i02,80003) ivtnum ! 536: if (iczero) 41870, 1881, 41870 ! 537: 41870 if ( ivon01 - 1 ) 21870, 11870, 21870 ! 538: 11870 ivpass = ivpass + 1 ! 539: write (i02,80001) ivtnum ! 540: go to 1881 ! 541: 21870 ivfail = ivfail + 1 ! 542: ivcomp = ivon01 ! 543: ivcorr = 1 ! 544: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 545: 1881 continue ! 546: ivtnum = 188 ! 547: c ! 548: c **** test 188 **** ! 549: c test 188 - parens around logical array reference ( ( laer ) ) ! 550: c false path ! 551: c ! 552: if (iczero) 31880, 1880, 31880 ! 553: 1880 continue ! 554: ivon01 = 1 ! 555: latn1a(1) = .false. ! 556: if ( ( latn1a(1) ) ) ivon01 = 0 ! 557: go to 41880 ! 558: 31880 ivdele = ivdele + 1 ! 559: write (i02,80003) ivtnum ! 560: if (iczero) 41880, 1891, 41880 ! 561: 41880 if ( ivon01 - 1 ) 21880, 11880, 21880 ! 562: 11880 ivpass = ivpass + 1 ! 563: write (i02,80001) ivtnum ! 564: go to 1891 ! 565: 21880 ivfail = ivfail + 1 ! 566: ivcomp = ivon01 ! 567: ivcorr = 1 ! 568: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 569: 1891 continue ! 570: ivtnum = 189 ! 571: c ! 572: c **** test 189 **** ! 573: c test 189 - use of .not. with a logical primary .not. (lp) ! 574: c false path .not. .true. ! 575: c ! 576: c ! 577: if (iczero) 31890, 1890, 31890 ! 578: 1890 continue ! 579: ivon01 = 1 ! 580: if ( .not. .true. ) ivon01 = 0 ! 581: go to 41890 ! 582: 31890 ivdele = ivdele + 1 ! 583: write (i02,80003) ivtnum ! 584: if (iczero) 41890, 1901, 41890 ! 585: 41890 if ( ivon01 - 1 ) 21890, 11890, 21890 ! 586: 11890 ivpass = ivpass + 1 ! 587: write (i02,80001) ivtnum ! 588: go to 1901 ! 589: 21890 ivfail = ivfail + 1 ! 590: ivcomp = ivon01 ! 591: ivcorr = 1 ! 592: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 593: 1901 continue ! 594: ivtnum = 190 ! 595: c ! 596: c **** test 190 **** ! 597: c test 190 - like test 189 true path .not. .false. ! 598: c ! 599: c ! 600: if (iczero) 31900, 1900, 31900 ! 601: 1900 continue ! 602: ivon01 = 0 ! 603: if ( .not. .false. ) ivon01 = 1 ! 604: go to 41900 ! 605: 31900 ivdele = ivdele + 1 ! 606: write (i02,80003) ivtnum ! 607: if (iczero) 41900, 1911, 41900 ! 608: 41900 if ( ivon01 - 1 ) 21900, 11900, 21900 ! 609: 11900 ivpass = ivpass + 1 ! 610: write (i02,80001) ivtnum ! 611: go to 1911 ! 612: 21900 ivfail = ivfail + 1 ! 613: ivcomp = ivon01 ! 614: ivcorr = 1 ! 615: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 616: 1911 continue ! 617: ivtnum = 191 ! 618: c ! 619: c **** test 191 **** ! 620: c test 191 - tests .not. with a logical variable set to .false. ! 621: c in a logical assignment statement true path ! 622: c ! 623: c ! 624: if (iczero) 31910, 1910, 31910 ! 625: 1910 continue ! 626: ivon01 = 0 ! 627: lctnt1 = .false. ! 628: if ( .not. lctnt1 ) ivon01 = 1 ! 629: go to 41910 ! 630: 31910 ivdele = ivdele + 1 ! 631: write (i02,80003) ivtnum ! 632: if (iczero) 41910, 1921, 41910 ! 633: 41910 if ( ivon01 - 1 ) 21910, 11910, 21910 ! 634: 11910 ivpass = ivpass + 1 ! 635: write (i02,80001) ivtnum ! 636: go to 1921 ! 637: 21910 ivfail = ivfail + 1 ! 638: ivcomp = ivon01 ! 639: ivcorr = 1 ! 640: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 641: 1921 continue ! 642: ivtnum = 192 ! 643: c ! 644: c **** test 192 **** ! 645: c test 192 - like test 191 only uses a logical array element ! 646: c set to .false. in a logical assignment statement true ! 647: c ! 648: c ! 649: if (iczero) 31920, 1920, 31920 ! 650: 1920 continue ! 651: ivon01 = 0 ! 652: latn1a(2) = .false. ! 653: if ( .not. latn1a(2) ) ivon01 = 1 ! 654: go to 41920 ! 655: 31920 ivdele = ivdele + 1 ! 656: write (i02,80003) ivtnum ! 657: if (iczero) 41920, 1931, 41920 ! 658: 41920 if ( ivon01 - 1 ) 21920, 11920, 21920 ! 659: 11920 ivpass = ivpass + 1 ! 660: write (i02,80001) ivtnum ! 661: go to 1931 ! 662: 21920 ivfail = ivfail + 1 ! 663: ivcomp = ivon01 ! 664: ivcorr = 1 ! 665: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 666: 1931 continue ! 667: ivtnum = 193 ! 668: c ! 669: c **** test 193 **** ! 670: c test 193 - use of logical .and. (lt) .and. (lf) ! 671: c uses two logical variables each set to .false. ! 672: c false .and. false false path ! 673: c ! 674: c ! 675: if (iczero) 31930, 1930, 31930 ! 676: 1930 continue ! 677: ivon01 = 1 ! 678: lctnt1 = .false. ! 679: lctnt2 = .false. ! 680: if ( lctnt1 .and. lctnt2 ) ivon01 = 0 ! 681: go to 41930 ! 682: 31930 ivdele = ivdele + 1 ! 683: write (i02,80003) ivtnum ! 684: if (iczero) 41930, 1941, 41930 ! 685: 41930 if ( ivon01 - 1 ) 21930, 11930, 21930 ! 686: 11930 ivpass = ivpass + 1 ! 687: write (i02,80001) ivtnum ! 688: go to 1941 ! 689: 21930 ivfail = ivfail + 1 ! 690: ivcomp = ivon01 ! 691: ivcorr = 1 ! 692: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 693: 1941 continue ! 694: ivtnum = 194 ! 695: c ! 696: c **** test 194 **** ! 697: c test 194 - like test 193 false .and. true false path ! 698: c ! 699: c ! 700: if (iczero) 31940, 1940, 31940 ! 701: 1940 continue ! 702: ivon01 = 1 ! 703: lctnt1 = .false. ! 704: lctnt2 = .true. ! 705: if ( lctnt1 .and. lctnt2 ) ivon01 = 0 ! 706: go to 41940 ! 707: 31940 ivdele = ivdele + 1 ! 708: write (i02,80003) ivtnum ! 709: if (iczero) 41940, 1951, 41940 ! 710: 41940 if ( ivon01 - 1 ) 21940, 11940, 21940 ! 711: 11940 ivpass = ivpass + 1 ! 712: write (i02,80001) ivtnum ! 713: go to 1951 ! 714: 21940 ivfail = ivfail + 1 ! 715: ivcomp = ivon01 ! 716: ivcorr = 1 ! 717: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 718: 1951 continue ! 719: ivtnum = 195 ! 720: c ! 721: c **** test 195 **** ! 722: c test 195 - like test 193 true .and. false false path ! 723: c ! 724: c ! 725: if (iczero) 31950, 1950, 31950 ! 726: 1950 continue ! 727: ivon01 = 1 ! 728: lctnt1 = .true. ! 729: lctnt2 = .false. ! 730: if ( lctnt1 .and. lctnt2 ) ivon01 = 0 ! 731: go to 41950 ! 732: 31950 ivdele = ivdele + 1 ! 733: write (i02,80003) ivtnum ! 734: if (iczero) 41950, 1961, 41950 ! 735: 41950 if ( ivon01 - 1 ) 21950, 11950, 21950 ! 736: 11950 ivpass = ivpass + 1 ! 737: write (i02,80001) ivtnum ! 738: go to 1961 ! 739: 21950 ivfail = ivfail + 1 ! 740: ivcomp = ivon01 ! 741: ivcorr = 1 ! 742: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 743: 1961 continue ! 744: ivtnum = 196 ! 745: c ! 746: c **** test 196 **** ! 747: c test 196 - like test 193 true .and. true true path ! 748: c ! 749: c ! 750: if (iczero) 31960, 1960, 31960 ! 751: 1960 continue ! 752: ivon01 = 0 ! 753: lctnt1 = .true. ! 754: lctnt2 = .true. ! 755: if ( lctnt1 .and. lctnt2 ) ivon01 = 1 ! 756: go to 41960 ! 757: 31960 ivdele = ivdele + 1 ! 758: write (i02,80003) ivtnum ! 759: if (iczero) 41960, 1971, 41960 ! 760: 41960 if ( ivon01 - 1 ) 21960, 11960, 21960 ! 761: 11960 ivpass = ivpass + 1 ! 762: write (i02,80001) ivtnum ! 763: go to 1971 ! 764: 21960 ivfail = ivfail + 1 ! 765: ivcomp = ivon01 ! 766: ivcorr = 1 ! 767: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 768: 1971 continue ! 769: ivtnum = 197 ! 770: c ! 771: c **** test 197 **** ! 772: c test 197 - test of the inclusive .or. . (le) .or. (lt) ! 773: c uses logical variables set in logical assignment statements ! 774: c false .or. false false path ! 775: c ! 776: c ! 777: if (iczero) 31970, 1970, 31970 ! 778: 1970 continue ! 779: ivon01 = 1 ! 780: lctnt1 = .false. ! 781: lctnt2 = .false. ! 782: if ( lctnt1 .or. lctnt2 ) ivon01 = 0 ! 783: go to 41970 ! 784: 31970 ivdele = ivdele + 1 ! 785: write (i02,80003) ivtnum ! 786: if (iczero) 41970, 1981, 41970 ! 787: 41970 if ( ivon01 - 1 ) 21970, 11970, 21970 ! 788: 11970 ivpass = ivpass + 1 ! 789: write (i02,80001) ivtnum ! 790: go to 1981 ! 791: 21970 ivfail = ivfail + 1 ! 792: ivcomp = ivon01 ! 793: ivcorr = 1 ! 794: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 795: 1981 continue ! 796: ivtnum = 198 ! 797: c ! 798: c **** test 198 **** ! 799: c test 198 - like test 197 false .or. true true path ! 800: c ! 801: c ! 802: if (iczero) 31980, 1980, 31980 ! 803: 1980 continue ! 804: ivon01 = 0 ! 805: lctnt1 = .false. ! 806: lctnt2 = .true. ! 807: if ( lctnt1 .or. lctnt2 ) ivon01 = 1 ! 808: go to 41980 ! 809: 31980 ivdele = ivdele + 1 ! 810: write (i02,80003) ivtnum ! 811: if (iczero) 41980, 1991, 41980 ! 812: 41980 if ( ivon01 - 1 ) 21980, 11980, 21980 ! 813: 11980 ivpass = ivpass + 1 ! 814: write (i02,80001) ivtnum ! 815: go to 1991 ! 816: 21980 ivfail = ivfail + 1 ! 817: ivcomp = ivon01 ! 818: ivcorr = 1 ! 819: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 820: 1991 continue ! 821: ivtnum = 199 ! 822: c ! 823: c **** test 199 **** ! 824: c test 199 - like test 197. true .or. false true path. ! 825: c ! 826: c ! 827: if (iczero) 31990, 1990, 31990 ! 828: 1990 continue ! 829: ivon01 = 0 ! 830: lctnt1 = .true. ! 831: lctnt2 = .false. ! 832: if ( lctnt1 .or. lctnt2 ) ivon01 = 1 ! 833: go to 41990 ! 834: 31990 ivdele = ivdele + 1 ! 835: write (i02,80003) ivtnum ! 836: if (iczero) 41990, 5001, 41990 ! 837: 41990 if ( ivon01 - 1 ) 21990, 11990, 21990 ! 838: 11990 ivpass = ivpass + 1 ! 839: write (i02,80001) ivtnum ! 840: go to 5001 ! 841: 21990 ivfail = ivfail + 1 ! 842: ivcomp = ivon01 ! 843: ivcorr = 1 ! 844: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 845: 5001 continue ! 846: c ! 847: c write page footings and run summaries ! 848: 99999 continue ! 849: write (i02,90002) ! 850: write (i02,90006) ! 851: write (i02,90002) ! 852: write (i02,90002) ! 853: write (i02,90007) ! 854: write (i02,90002) ! 855: write (i02,90008) ivfail ! 856: write (i02,90009) ivpass ! 857: write (i02,90010) ivdele ! 858: c ! 859: c ! 860: c terminate routine execution ! 861: stop ! 862: c ! 863: c format statements for page headers ! 864: 90000 format (1h1) ! 865: 90002 format (1h ) ! 866: 90001 format (1h ,10x,34hfortran compiler validation system) ! 867: 90003 format (1h ,21x,11hversion 1.0) ! 868: 90004 format (1h ,10x,38hfor official use only - copyright 1978) ! 869: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) ! 870: 90006 format (1h ,5x,46h----------------------------------------------) ! 871: 90011 format (1h ,18x,17hsubset level test) ! 872: c ! 873: c format statements for run summaries ! 874: 90008 format (1h ,15x,i5,19h errors encountered) ! 875: 90009 format (1h ,15x,i5,13h tests passed) ! 876: 90010 format (1h ,15x,i5,14h tests deleted) ! 877: c ! 878: c format statements for test results ! 879: 80001 format (1h ,4x,i5,7x,4hpass) ! 880: 80002 format (1h ,4x,i5,7x,4hfail) ! 881: 80003 format (1h ,4x,i5,7x,7hdeleted) ! 882: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) ! 883: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) ! 884: c ! 885: 90007 format (1h ,20x,20hend of program fm017) ! 886: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.