|
|
1.1 ! root 1: C COMMENT SECTION 00010002 ! 2: C DATE***82/08/02*18.33.46 ! 3: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/ ! 4: C AUDIT FCVS78 V2.0 ! 5: C 00020002 ! 6: C FM002 00030002 ! 7: C 00040002 ! 8: C THIS ROUTINE CHECKS THAT COMMENT LINES WHICH HAVE VALID 00050002 ! 9: C FORTRAN STATEMENTS DO NOT AFFECT THE EXECUTION OF THE PROGRAM 00060002 ! 10: C IN ANY WAY. 00070002 ! 11: C 00080002 ! 12: C REFERENCES 00090002 ! 13: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00100002 ! 14: C X3.9-1978 00110002 ! 15: C 00120002 ! 16: C SECTION 3.2.1, COMMENT LINE 00130002 ! 17: C 00140002 ! 18: C ********************************************************** 00150002 ! 19: C 00160002 ! 20: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00170002 ! 21: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00180002 ! 22: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00190002 ! 23: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00200002 ! 24: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00210002 ! 25: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00220002 ! 26: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00230002 ! 27: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00240002 ! 28: C OF EXECUTING THESE TESTS. 00250002 ! 29: C 00260002 ! 30: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00270002 ! 31: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00280002 ! 32: C 00290002 ! 33: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00300002 ! 34: C 00310002 ! 35: C DEPARTMENT OF THE NAVY 00320002 ! 36: C FEDERAL COBOL COMPILER TESTING SERVICE 00330002 ! 37: C WASHINGTON, D.C. 20376 00340002 ! 38: C 00350002 ! 39: C ********************************************************** 00360002 ! 40: C 00370002 ! 41: C 00380002 ! 42: C 00390002 ! 43: C INITIALIZATION SECTION 00400002 ! 44: C 00410002 ! 45: C INITIALIZE CONSTANTS 00420002 ! 46: C ************** 00430002 ! 47: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00440002 ! 48: I01 = 5 00450002 ! 49: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00460002 ! 50: I02 = 6 00470002 ! 51: C SYSTEM ENVIRONMENT SECTION 00480002 ! 52: C 00490002 ! 53: I01 = 5 00500002 ! 54: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00510002 ! 55: C (UNIT NUMBER FOR CARD READER). 00520002 ! 56: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00530002 ! 57: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00540002 ! 58: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00550002 ! 59: C 00560002 ! 60: I02 = 6 00570002 ! 61: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00580002 ! 62: C (UNIT NUMBER FOR PRINTER). 00590002 ! 63: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00600002 ! 64: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00610002 ! 65: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00620002 ! 66: C 00630002 ! 67: IVPASS=0 00640002 ! 68: IVFAIL=0 00650002 ! 69: IVDELE=0 00660002 ! 70: ICZERO=0 00670002 ! 71: C 00680002 ! 72: C WRITE PAGE HEADERS 00690002 ! 73: WRITE (I02,90000) 00700002 ! 74: WRITE (I02,90001) 00710002 ! 75: WRITE (I02,90002) 00720002 ! 76: WRITE (I02, 90002) 00730002 ! 77: WRITE (I02,90003) 00740002 ! 78: WRITE (I02,90002) 00750002 ! 79: WRITE (I02,90004) 00760002 ! 80: WRITE (I02,90002) 00770002 ! 81: WRITE (I02,90011) 00780002 ! 82: WRITE (I02,90002) 00790002 ! 83: WRITE (I02,90002) 00800002 ! 84: WRITE (I02,90005) 00810002 ! 85: WRITE (I02,90006) 00820002 ! 86: WRITE (I02,90002) 00830002 ! 87: C TEST SECTION 00840002 ! 88: C 00850002 ! 89: 41 CONTINUE 00860002 ! 90: IVTNUM=4 00870002 ! 91: C 00880002 ! 92: C **** TEST 004 **** 00890002 ! 93: C TEST 004 - BLANK COMMENT LINE 00900002 ! 94: C 00910002 ! 95: IF (ICZERO) 30040,40,30040 00920002 ! 96: 40 CONTINUE 00930002 ! 97: IVON01=4 00940002 ! 98: C 00950002 ! 99: GO TO 40040 00960002 ! 100: 30040 IVDELE=IVDELE+1 00970002 ! 101: WRITE (I02,80003) IVTNUM 00980002 ! 102: IF (ICZERO) 40040, 51, 40040 00990002 ! 103: 40040 IF (IVON01 - 4) 20040, 10040, 20040 01000002 ! 104: 10040 IVPASS=IVPASS+1 01010002 ! 105: WRITE (I02,80001) IVTNUM 01020002 ! 106: GO TO 51 01030002 ! 107: 20040 IVFAIL=IVFAIL+1 01040002 ! 108: IVCOMP=IVON01 01050002 ! 109: IVCORR=4 01060002 ! 110: WRITE (I02,80004) IVTNUM,IVCOMP,IVCORR 01070002 ! 111: 51 CONTINUE 01080002 ! 112: IVTNUM=5 01090002 ! 113: C 01100002 ! 114: C **** TEST 005 **** 01110002 ! 115: C TEST 005 - GO TO IN COMMENT LINE 01120002 ! 116: C 01130002 ! 117: IF (ICZERO) 30050, 50, 30050 01140002 ! 118: 50 CONTINUE 01150002 ! 119: IVON01 = 3 01160002 ! 120: C GO TO 20050 01170002 ! 121: IVON01=5 01180002 ! 122: GO TO 40050 01190002 ! 123: 30050 IVDELE=IVDELE+1 01200002 ! 124: WRITE (I02,80003) IVTNUM 01210002 ! 125: IF (ICZERO) 40050, 61, 40050 01220002 ! 126: 40050 IF (IVON01 - 5) 20050,10050,20050 01230002 ! 127: 10050 IVPASS=IVPASS+1 01240002 ! 128: WRITE (I02,80001) IVTNUM 01250002 ! 129: GO TO 61 01260002 ! 130: 20050 IVFAIL=IVFAIL+1 01270002 ! 131: IVCOMP=IVON01 01280002 ! 132: IVCORR=5 01290002 ! 133: WRITE (I02,80004) IVTNUM,IVCOMP,IVCORR 01300002 ! 134: 61 CONTINUE 01310002 ! 135: IVTNUM=6 01320002 ! 136: C 01330002 ! 137: C **** TEST 006 **** 01340002 ! 138: C TEST 006 - INTEGER ASSIGNMENT STATEMENT IN COMMENT LINE 01350002 ! 139: C 01360002 ! 140: IF (ICZERO) 30060,60,30060 01370002 ! 141: 60 CONTINUE 01380002 ! 142: IVON01=6 01390002 ! 143: C IVON01=1 01400002 ! 144: GO TO 40060 01410002 ! 145: 30060 IVDELE=IVDELE+1 01420002 ! 146: WRITE (I02,80003) IVTNUM 01430002 ! 147: IF (ICZERO) 40060,71,40060 01440002 ! 148: 40060 IF (IVON01-6) 20060,10060,20060 01450002 ! 149: 10060 IVPASS=IVPASS+1 01460002 ! 150: WRITE (I02,80001) IVTNUM 01470002 ! 151: GO TO 71 01480002 ! 152: 20060 IVFAIL=IVFAIL+1 01490002 ! 153: IVCOMP=IVON01 01500002 ! 154: IVCORR=6 01510002 ! 155: WRITE (I02,80004) IVTNUM,IVCOMP,IVCORR 01520002 ! 156: 71 CONTINUE 01530002 ! 157: IVTNUM=7 01540002 ! 158: C 01550002 ! 159: C **** TEST 007 **** 01560002 ! 160: C TEST 007 - INTEGER ASSIGNMENT STATEMENT IN COMMENT LINE 01570002 ! 161: C INTEGER EXPRESSION TO RIGHT OF = 01580002 ! 162: C 01590002 ! 163: IF (ICZERO) 30070,70,30070 01600002 ! 164: 70 CONTINUE 01610002 ! 165: IVON02=6 01620002 ! 166: IVON01=7 01630002 ! 167: C IVON01= 3*IVON02 01640002 ! 168: GO TO 40070 01650002 ! 169: 30070 IVDELE=IVDELE+1 01660002 ! 170: WRITE (I02,80003) IVTNUM 01670002 ! 171: IF (ICZERO) 40070,81,40070 01680002 ! 172: 40070 IF (IVON01-7) 20070,10070,20070 01690002 ! 173: 10070 IVPASS=IVPASS+1 01700002 ! 174: WRITE (I02,80001) IVTNUM 01710002 ! 175: GO TO 81 01720002 ! 176: 20070 IVFAIL=IVFAIL+1 01730002 ! 177: IVCOMP=IVON01 01740002 ! 178: IVCORR=7 01750002 ! 179: WRITE (I02,80004) IVTNUM,IVCOMP,IVCORR 01760002 ! 180: 81 CONTINUE 01770002 ! 181: IVTNUM=8 01780002 ! 182: C 01790002 ! 183: C **** TEST 008 **** 01800002 ! 184: C TEST 008 - IF STATEMENT IN COMMENT LINE 01810002 ! 185: C 01820002 ! 186: IF (ICZERO) 30080,80,30080 01830002 ! 187: 80 CONTINUE 01840002 ! 188: IVON01=300 01850002 ! 189: C IF (IVON01) 20080,20080,20080 01860002 ! 190: IVON01=8 01870002 ! 191: GO TO 40080 01880002 ! 192: 30080 IVDELE=IVDELE+1 01890002 ! 193: WRITE (I02,80003) IVTNUM 01900002 ! 194: IF (ICZERO) 40080,91,40080 01910002 ! 195: 40080 IF (IVON01-8) 20080,10080,20080 01920002 ! 196: 10080 IVPASS=IVPASS+1 01930002 ! 197: WRITE (I02,80001) IVTNUM 01940002 ! 198: GO TO 91 01950002 ! 199: 20080 IVFAIL=IVFAIL+1 01960002 ! 200: IVCOMP=IVON01 01970002 ! 201: IVCORR=8 01980002 ! 202: WRITE (I02,80004) IVTNUM,IVCOMP,IVCORR 01990002 ! 203: 91 CONTINUE 02000002 ! 204: IVTNUM=9 02010002 ! 205: C 02020002 ! 206: C **** TEST 009 **** 02030002 ! 207: C TEST 009 - WRITE STATEMENT IN A COMMENT LINE 02040002 ! 208: C 02050002 ! 209: IF (ICZERO) 30090,90,30090 02060002 ! 210: 90 CONTINUE 02070002 ! 211: IVON01=200 02080002 ! 212: C 92 WRITE (I02,80002) IVTNUM 02090002 ! 213: IVON01=9 02100002 ! 214: GO TO 40090 02110002 ! 215: 30090 IVDELE=IVDELE+1 02120002 ! 216: WRITE (I02,80003) IVTNUM 02130002 ! 217: IF (ICZERO) 40090,101,40090 02140002 ! 218: 40090 IF (IVON01-9) 20090,10090,20090 02150002 ! 219: 10090 IVPASS=IVPASS+1 02160002 ! 220: WRITE (I02,80001) IVTNUM 02170002 ! 221: GO TO 101 02180002 ! 222: 20090 IVFAIL=IVFAIL+1 02190002 ! 223: IVCOMP=IVON01 02200002 ! 224: IVCORR=9 02210002 ! 225: WRITE (I02,80004) IVTNUM,IVCOMP,IVCORR 02220002 ! 226: 101 IVTNUM=10 02230002 ! 227: C 02240002 ! 228: C **** TEST 010 **** 02250002 ! 229: C TEST 010 - STATEMENT LABEL IN COMMENT LINE 02260002 ! 230: C 02270002 ! 231: IF (ICZERO) 30100,100,30100 02280002 ! 232: 100 CONTINUE 02290002 ! 233: GO TO 102 02300002 ! 234: C 102 WRITE (I02,80002) 02310002 ! 235: C GO TO 111 02320002 ! 236: 102 IVON01=10 02330002 ! 237: GO TO 40100 02340002 ! 238: 30100 IVDELE=IVDELE+1 02350002 ! 239: WRITE (I02,80003) IVTNUM 02360002 ! 240: IF (ICZERO) 40100,111,40100 02370002 ! 241: 40100 IF (IVON01-10) 20100,10100,20100 02380002 ! 242: 10100 IVPASS=IVPASS+1 02390002 ! 243: WRITE (I02,80001) IVTNUM 02400002 ! 244: GO TO 111 02410002 ! 245: 20100 IVFAIL=IVFAIL+1 02420002 ! 246: IVCOMP=IVON01 02430002 ! 247: IVCORR=10 02440002 ! 248: WRITE (I02,80004) IVTNUM,IVCOMP,IVCORR 02450002 ! 249: 111 CONTINUE 02460002 ! 250: IVTNUM=11 02470002 ! 251: C 02480002 ! 252: C **** TEST 011 **** 02490002 ! 253: C TEST 011 - CONTINUE IN COMMENT LINE 02500002 ! 254: C FOLLOWED BY INTEGER ASSIGNMENT STATEMENT IN COMMENT 02510002 ! 255: C 02520002 ! 256: IF (ICZERO) 30110,110,30110 02530002 ! 257: 110 IVON01=11 02540002 ! 258: C CONTINUE 02550002 ! 259: C IVON01=7000 02560002 ! 260: GO TO 40110 02570002 ! 261: 30110 IVDELE=IVDELE+1 02580002 ! 262: WRITE (I02,80003) IVTNUM 02590002 ! 263: IF (ICZERO) 40110,121,40110 02600002 ! 264: 40110 IF (IVON01 -11) 20110,10110,20110 02610002 ! 265: 10110 IVPASS=IVPASS+1 02620002 ! 266: WRITE (I02,80001) IVTNUM 02630002 ! 267: GO TO 121 02640002 ! 268: 20110 IVFAIL=IVFAIL+1 02650002 ! 269: IVCOMP=IVON01 02660002 ! 270: IVCORR=11 02670002 ! 271: WRITE (I02,80004) IVTNUM,IVCOMP,IVCORR 02680002 ! 272: 121 CONTINUE 02690002 ! 273: IVTNUM=12 02700002 ! 274: C 02710002 ! 275: C **** TEST 012 **** 02720002 ! 276: C TEST 012 - INTEGER ASSIGNMENT STATEMENT IN COMMENT LINE 02730002 ! 277: C 02740002 ! 278: IF (ICZERO) 30120,120,30120 02750002 ! 279: 120 CONTINUE 02760002 ! 280: IVON01=12 02770002 ! 281: C IVON01=IVON01+1 02780002 ! 282: GO TO 40120 02790002 ! 283: 30120 IVDELE=IVDELE+1 02800002 ! 284: WRITE (I02,80003) IVTNUM 02810002 ! 285: IF (ICZERO) 40120,99999,40120 02820002 ! 286: 40120 IF (IVON01 - 12) 20120,10120,20120 02830002 ! 287: 10120 IVPASS=IVPASS+1 02840002 ! 288: WRITE (I02,80001) IVTNUM 02850002 ! 289: GO TO 99999 02860002 ! 290: 20120 IVFAIL=IVFAIL+1 02870002 ! 291: IVCOMP=IVON01 02880002 ! 292: IVCORR=12 02890002 ! 293: WRITE (I02,80004) IVTNUM,IVCOMP,IVCORR 02900002 ! 294: C 02910002 ! 295: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 02920002 ! 296: 99999 CONTINUE 02930002 ! 297: WRITE (I02,90002) 02940002 ! 298: WRITE (I02,90006) 02950002 ! 299: WRITE (I02,90002) 02960002 ! 300: WRITE (I02,90002) 02970002 ! 301: WRITE (I02,90007) 02980002 ! 302: WRITE (I02,90002) 02990002 ! 303: WRITE (I02,90008) IVFAIL 03000002 ! 304: WRITE (I02,90009) IVPASS 03010002 ! 305: WRITE (I02,90010) IVDELE 03020002 ! 306: C 03030002 ! 307: C 03040002 ! 308: C TERMINATE ROUTINE EXECUTION 03050002 ! 309: STOP 03060002 ! 310: C 03070002 ! 311: C FORMAT STATEMENTS FOR PAGE HEADERS 03080002 ! 312: 90000 FORMAT (1H1) 03090002 ! 313: 90002 FORMAT (1H ) 03100002 ! 314: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 03110002 ! 315: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 03120002 ! 316: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 03130002 ! 317: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 03140002 ! 318: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 03150002 ! 319: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 03160002 ! 320: C 03170002 ! 321: C FORMAT STATEMENTS FOR RUN SUMMARIES 03180002 ! 322: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 03190002 ! 323: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 03200002 ! 324: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 03210002 ! 325: C 03220002 ! 326: C FORMAT STATEMENTS FOR TEST RESULTS 03230002 ! 327: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 03240002 ! 328: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 03250002 ! 329: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 03260002 ! 330: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 03270002 ! 331: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 03280002 ! 332: C 03290002 ! 333: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM002) 03300002 ! 334: C COMMENT LINE BEFORE END STATEMENT 03310002 ! 335: END 03320002
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.