|
|
1.1 ! root 1: c comment section ! 2: c ! 3: c fm007 ! 4: c ! 5: c this routine tests the use of data initialization statements. ! 6: c data initialization statements are used to define initial values ! 7: c of integer variables. the data statements contain unsigned, ! 8: c positive signed and negative signed integer constants. the last ! 9: c data statement contains the form ! 10: c j*integer constant ! 11: c which indicates the constant is to be specified j times. ! 12: c ! 13: c the tests in this routine check the integer variables in the ! 14: c data statement for the assigned initial values. ! 15: c ! 16: c references ! 17: c american national standard programming language fortran, ! 18: c x3.9-1978 ! 19: c ! 20: c section 4.3, integer type ! 21: c section 4.3.1, integer constant ! 22: c section 9, data statement ! 23: c ! 24: c ! 25: c data initialization statements ! 26: c ! 27: data ivon01,ivon02,ivon03,ivon04,ivon05/3,76,587,9999,21111/ ! 28: data ivon06,ivon07,ivon08,ivon09,ivon10/+3,+76,+587,+9999,+21111/ ! 29: data ivon11,ivon12,ivon13,ivon14,ivon15/-3,-76,-587,-9999,-21111/ ! 30: data ivon16,ivon17,ivon18,ivon19,ivon20/ 2*119, 2*7, -427/ ! 31: c ! 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 test section ! 103: c ! 104: c tests 80 through 84 check the values initialized by the data ! 105: c statement containing ivon01,..., ivon05. ! 106: c ! 107: 801 continue ! 108: ivtnum = 80 ! 109: c ! 110: c **** test 80 **** ! 111: c ! 112: if (iczero) 30800, 800, 30800 ! 113: 800 continue ! 114: ivcomp = ivon01 ! 115: go to 40800 ! 116: 30800 ivdele = ivdele + 1 ! 117: write (i02,80003) ivtnum ! 118: if (iczero) 40800, 811, 40800 ! 119: 40800 if (ivcomp - 3) 20800, 10800,20800 ! 120: 10800 ivpass = ivpass + 1 ! 121: write (i02,80001) ivtnum ! 122: go to 811 ! 123: 20800 ivfail = ivfail + 1 ! 124: ivcorr = 3 ! 125: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 126: 811 continue ! 127: ivtnum = 81 ! 128: c ! 129: c **** test 81 **** ! 130: c ! 131: if (iczero) 30810, 810, 30810 ! 132: 810 continue ! 133: ivcomp = ivon02 ! 134: go to 40810 ! 135: 30810 ivdele = ivdele + 1 ! 136: write (i02,80003) ivtnum ! 137: if (iczero) 40810, 821, 40810 ! 138: 40810 if (ivcomp - 76) 20810, 10810, 20810 ! 139: 10810 ivpass = ivpass + 1 ! 140: write (i02,80001) ivtnum ! 141: go to 821 ! 142: 20810 ivfail = ivfail + 1 ! 143: ivcorr = 76 ! 144: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 145: 821 continue ! 146: ivtnum = 82 ! 147: c ! 148: c **** test 82 **** ! 149: c ! 150: if (iczero) 30820, 820, 30820 ! 151: 820 continue ! 152: ivcomp = ivon03 ! 153: go to 40820 ! 154: 30820 ivdele = ivdele + 1 ! 155: write (i02,80003) ivtnum ! 156: if (iczero) 40820, 831, 40820 ! 157: 40820 if (ivcomp - 587) 20820, 10820, 20820 ! 158: 10820 ivpass = ivpass + 1 ! 159: write (i02,80001) ivtnum ! 160: go to 831 ! 161: 20820 ivfail = ivfail + 1 ! 162: ivcorr = 587 ! 163: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 164: 831 continue ! 165: ivtnum = 83 ! 166: c ! 167: c **** test 83 **** ! 168: c ! 169: if (iczero) 30830, 830, 30830 ! 170: 830 continue ! 171: ivcomp =ivon04 ! 172: go to 40830 ! 173: 30830 ivdele = ivdele + 1 ! 174: write (i02,80003) ivtnum ! 175: if (iczero) 40830, 841, 40830 ! 176: 40830 if (ivcomp - 9999) 20830, 10830, 20830 ! 177: 10830 ivpass = ivpass + 1 ! 178: write (i02,80001) ivtnum ! 179: go to 841 ! 180: 20830 ivfail = ivfail + 1 ! 181: ivcorr = 9999 ! 182: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 183: 841 continue ! 184: ivtnum = 84 ! 185: c ! 186: c **** test 84 **** ! 187: c ! 188: if (iczero) 30840, 840, 30840 ! 189: 840 continue ! 190: ivcomp = ivon05 ! 191: go to 40840 ! 192: 30840 ivdele = ivdele + 1 ! 193: write (i02,80003) ivtnum ! 194: if (iczero) 40840, 851, 40840 ! 195: 40840 if (ivcomp - 21111) 20840, 10840, 20840 ! 196: 10840 ivpass = ivpass + 1 ! 197: write (i02,80001) ivtnum ! 198: go to 851 ! 199: 20840 ivfail = ivfail + 1 ! 200: ivcorr = 21111 ! 201: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 202: c ! 203: c tests 85 through 89 check the values initialized by the data ! 204: c statement containing ivon06,...,ivon10. ! 205: c ! 206: 851 continue ! 207: ivtnum = 85 ! 208: c ! 209: c **** test 85 **** ! 210: c ! 211: if (iczero) 30850, 850, 30850 ! 212: 850 continue ! 213: ivcomp=ivon06 ! 214: go to 40850 ! 215: 30850 ivdele = ivdele + 1 ! 216: write (i02,80003) ivtnum ! 217: if (iczero) 40850, 861, 40850 ! 218: 40850 if (ivcomp - 3) 20850, 10850, 20850 ! 219: 10850 ivpass = ivpass + 1 ! 220: write (i02,80001) ivtnum ! 221: go to 861 ! 222: 20850 ivfail = ivfail + 1 ! 223: ivcorr = 3 ! 224: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 225: 861 continue ! 226: ivtnum = 86 ! 227: c ! 228: c **** test 86 **** ! 229: c ! 230: if (iczero) 30860, 860, 30860 ! 231: 860 continue ! 232: ivcomp = ivon07 ! 233: go to 40860 ! 234: 30860 ivdele = ivdele + 1 ! 235: write (i02,80003) ivtnum ! 236: if (iczero) 40860, 871, 40860 ! 237: 40860 if (ivcomp - 76) 20860, 10860, 20860 ! 238: 10860 ivpass = ivpass + 1 ! 239: write (i02,80001) ivtnum ! 240: go to 871 ! 241: 20860 ivfail = ivfail + 1 ! 242: ivcorr = 76 ! 243: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 244: 871 continue ! 245: ivtnum = 87 ! 246: c ! 247: c **** test 87 **** ! 248: c ! 249: if (iczero) 30870, 870, 30870 ! 250: 870 continue ! 251: ivcomp = ivon08 ! 252: go to 40870 ! 253: 30870 ivdele = ivdele + 1 ! 254: write (i02,80003) ivtnum ! 255: if (iczero) 40870, 881, 40870 ! 256: 40870 if (ivcomp - 587) 20870, 10870, 20870 ! 257: 10870 ivpass = ivpass + 1 ! 258: write (i02,80001) ivtnum ! 259: go to 881 ! 260: 20870 ivfail = ivfail + 1 ! 261: ivcorr = 587 ! 262: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 263: 881 continue ! 264: ivtnum = 88 ! 265: c ! 266: c **** test 88 **** ! 267: c ! 268: if (iczero) 30880, 880, 30880 ! 269: 880 continue ! 270: ivcomp = ivon09 ! 271: go to 40880 ! 272: 30880 ivdele = ivdele + 1 ! 273: write (i02,80003) ivtnum ! 274: if (iczero) 40880, 891, 40880 ! 275: 40880 if (ivcomp - 9999) 20880, 10880, 20880 ! 276: 10880 ivpass = ivpass + 1 ! 277: write (i02,80001) ivtnum ! 278: go to 891 ! 279: 20880 ivfail = ivfail + 1 ! 280: ivcorr = 9999 ! 281: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 282: 891 continue ! 283: ivtnum = 89 ! 284: c ! 285: c **** test 89 **** ! 286: c ! 287: if (iczero) 30890, 890, 30890 ! 288: 890 continue ! 289: ivcomp = ivon10 ! 290: go to 40890 ! 291: 30890 ivdele = ivdele + 1 ! 292: write (i02,80003) ivtnum ! 293: if (iczero) 40890, 901, 40890 ! 294: 40890 if (ivcomp - 21111) 20890, 10890, 20890 ! 295: 10890 ivpass = ivpass + 1 ! 296: write (i02,80001) ivtnum ! 297: go to 901 ! 298: 20890 ivfail = ivfail + 1 ! 299: ivcorr= 21111 ! 300: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 301: c ! 302: c tests 90 through 94 check the values initialized by the data ! 303: c statement containing ivon11,...,ivon15. ! 304: c ! 305: 901 continue ! 306: ivtnum = 90 ! 307: c ! 308: c **** test 90 **** ! 309: c ! 310: if (iczero) 30900, 900, 30900 ! 311: 900 continue ! 312: ivcomp = ivon11 ! 313: go to 40900 ! 314: 30900 ivdele = ivdele + 1 ! 315: write (i02,80003) ivtnum ! 316: if (iczero) 40900, 911, 40900 ! 317: 40900 if (ivcomp + 3) 20900, 10900, 20900 ! 318: 10900 ivpass = ivpass + 1 ! 319: write (i02,80001) ivtnum ! 320: go to 911 ! 321: 20900 ivfail = ivfail + 1 ! 322: ivcorr = -3 ! 323: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 324: 911 continue ! 325: ivtnum = 91 ! 326: c ! 327: c **** test 91 **** ! 328: c ! 329: if (iczero) 30910, 910, 30910 ! 330: 910 continue ! 331: ivcomp = ivon12 ! 332: go to 40910 ! 333: 30910 ivdele = ivdele + 1 ! 334: write (i02,80003) ivtnum ! 335: if (iczero) 40910, 921, 40910 ! 336: 40910 if (ivcomp + 76) 20910, 10910, 20910 ! 337: 10910 ivpass = ivpass + 1 ! 338: write (i02,80001) ivtnum ! 339: go to 921 ! 340: 20910 ivfail = ivfail + 1 ! 341: ivcorr = -76 ! 342: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 343: 921 continue ! 344: ivtnum = 92 ! 345: c ! 346: c **** test 92 **** ! 347: c ! 348: if (iczero) 30920, 920, 30920 ! 349: 920 continue ! 350: ivcomp= ivon13 ! 351: go to 40920 ! 352: 30920 ivdele = ivdele + 1 ! 353: write (i02,80003) ivtnum ! 354: if (iczero) 40920, 931, 40920 ! 355: 40920 if (ivcomp + 587) 20920, 10920, 20920 ! 356: 10920 ivpass = ivpass + 1 ! 357: write (i02,80001) ivtnum ! 358: go to 931 ! 359: 20920 ivfail = ivfail + 1 ! 360: ivcorr = -587 ! 361: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 362: 931 continue ! 363: ivtnum = 93 ! 364: c ! 365: c **** test 93 **** ! 366: c ! 367: if (iczero) 30930, 930, 30930 ! 368: 930 continue ! 369: ivcomp = ivon14 ! 370: go to 40930 ! 371: 30930 ivdele = ivdele + 1 ! 372: write (i02,80003) ivtnum ! 373: if (iczero) 40930, 941, 40930 ! 374: 40930 if (ivcomp + 9999) 20930, 10930, 20930 ! 375: 10930 ivpass = ivpass + 1 ! 376: write (i02,80001) ivtnum ! 377: go to 941 ! 378: 20930 ivfail = ivfail + 1 ! 379: ivcorr = -9999 ! 380: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 381: 941 continue ! 382: ivtnum = 94 ! 383: c ! 384: c **** test 94 **** ! 385: c ! 386: if (iczero) 30940, 940, 30940 ! 387: 940 continue ! 388: ivcomp = ivon15 ! 389: go to 40940 ! 390: 30940 ivdele = ivdele + 1 ! 391: write (i02,80003) ivtnum ! 392: if (iczero) 40940, 951, 40940 ! 393: 40940 if (ivcomp + 21111) 20940, 10940, 20940 ! 394: 10940 ivpass = ivpass + 1 ! 395: write (i02,80001) ivtnum ! 396: go to 951 ! 397: 20940 ivfail = ivfail + 1 ! 398: ivcorr = -21111 ! 399: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 400: c ! 401: c tests 95 through 99 check the values initialized by the data ! 402: c statement containing ivon16,...,ivon20. ! 403: c ! 404: 951 continue ! 405: ivtnum = 95 ! 406: c ! 407: c **** test 95 **** ! 408: c ! 409: if (iczero) 30950, 950, 30950 ! 410: 950 continue ! 411: ivcomp =ivon16 ! 412: go to 40950 ! 413: 30950 ivdele = ivdele + 1 ! 414: write (i02,80003) ivtnum ! 415: if (iczero) 40950, 961, 40950 ! 416: 40950 if (ivcomp - 119) 20950, 10950, 20950 ! 417: 10950 ivpass = ivpass + 1 ! 418: write (i02,80001) ivtnum ! 419: go to 961 ! 420: 20950 ivfail = ivfail + 1 ! 421: ivcorr = 119 ! 422: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 423: 961 continue ! 424: ivtnum = 96 ! 425: c ! 426: c **** test 96 **** ! 427: c ! 428: if (iczero) 30960, 960, 30960 ! 429: 960 continue ! 430: ivcomp=ivon17 ! 431: go to 40960 ! 432: 30960 ivdele = ivdele + 1 ! 433: write (i02,80003) ivtnum ! 434: if (iczero) 40960, 971, 40960 ! 435: 40960 if (ivcomp - 119) 20960, 10960, 20960 ! 436: 10960 ivpass = ivpass + 1 ! 437: write (i02,80001) ivtnum ! 438: go to 971 ! 439: 20960 ivfail = ivfail + 1 ! 440: ivcorr = 119 ! 441: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 442: 971 continue ! 443: ivtnum = 97 ! 444: c ! 445: c **** test 97 **** ! 446: c ! 447: if (iczero) 30970, 970, 30970 ! 448: 970 continue ! 449: ivcomp = ivon18 ! 450: go to 40970 ! 451: 30970 ivdele = ivdele + 1 ! 452: write (i02,80003) ivtnum ! 453: if (iczero) 40970, 981, 40970 ! 454: 40970 if (ivcomp - 7) 20970, 10970, 20970 ! 455: 10970 ivpass = ivpass + 1 ! 456: write (i02,80001) ivtnum ! 457: go to 981 ! 458: 20970 ivfail = ivfail + 1 ! 459: ivcorr = 7 ! 460: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 461: 981 continue ! 462: ivtnum = 98 ! 463: c ! 464: c **** test 98 **** ! 465: c ! 466: if (iczero) 30980, 980, 30980 ! 467: 980 continue ! 468: ivcomp = ivon19 ! 469: go to 40980 ! 470: 30980 ivdele = ivdele + 1 ! 471: write (i02,80003) ivtnum ! 472: if (iczero) 40980, 991, 40980 ! 473: 40980 if (ivcomp - 7) 20980, 10980, 20980 ! 474: 10980 ivpass = ivpass + 1 ! 475: write (i02,80001) ivtnum ! 476: go to 991 ! 477: 20980 ivfail = ivfail + 1 ! 478: ivcorr = 7 ! 479: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 480: 991 continue ! 481: ivtnum = 99 ! 482: c ! 483: c **** test 99 **** ! 484: c ! 485: if (iczero) 30990, 990, 30990 ! 486: 990 continue ! 487: ivcomp = ivon20 ! 488: go to 40990 ! 489: 30990 ivdele = ivdele + 1 ! 490: write (i02,80003) ivtnum ! 491: if (iczero) 40990, 1001, 40990 ! 492: 40990 if (ivcomp + 427) 20990,10990,20990 ! 493: 10990 ivpass = ivpass + 1 ! 494: write (i02,80001) ivtnum ! 495: go to 1001 ! 496: 20990 ivfail = ivfail + 1 ! 497: ivcorr = -427 ! 498: write (i02,80004) ivtnum, ivcomp ,ivcorr ! 499: 1001 continue ! 500: c ! 501: c write page footings and run summaries ! 502: 99999 continue ! 503: write (i02,90002) ! 504: write (i02,90006) ! 505: write (i02,90002) ! 506: write (i02,90002) ! 507: write (i02,90007) ! 508: write (i02,90002) ! 509: write (i02,90008) ivfail ! 510: write (i02,90009) ivpass ! 511: write (i02,90010) ivdele ! 512: c ! 513: c ! 514: c terminate routine execution ! 515: stop ! 516: c ! 517: c format statements for page headers ! 518: 90000 format (1h1) ! 519: 90002 format (1h ) ! 520: 90001 format (1h ,10x,34hfortran compiler validation system) ! 521: 90003 format (1h ,21x,11hversion 1.0) ! 522: 90004 format (1h ,10x,38hfor official use only - copyright 1978) ! 523: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect) ! 524: 90006 format (1h ,5x,46h----------------------------------------------) ! 525: 90011 format (1h ,18x,17hsubset level test) ! 526: c ! 527: c format statements for run summaries ! 528: 90008 format (1h ,15x,i5,19h errors encountered) ! 529: 90009 format (1h ,15x,i5,13h tests passed) ! 530: 90010 format (1h ,15x,i5,14h tests deleted) ! 531: c ! 532: c format statements for test results ! 533: 80001 format (1h ,4x,i5,7x,4hpass) ! 534: 80002 format (1h ,4x,i5,7x,4hfail) ! 535: 80003 format (1h ,4x,i5,7x,7hdeleted) ! 536: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6) ! 537: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5) ! 538: c ! 539: 90007 format (1h ,20x,20hend of program fm007) ! 540: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.