|
|
1.1 ! root 1: C COMMENT SECTION. 00010010 ! 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 00020010 ! 6: C FM010 00030010 ! 7: C 00040010 ! 8: C THIS ROUTINE TESTS REFERENCE FORMAT OF FORTRAN STATEMENTS 00050010 ! 9: C AND STATEMENT NUMBERS. THE USE OF THE BLANK CHARACTER IS TESTED 00060010 ! 10: C BOTH WITHIN THE STATEMENT NUMBER FIELD AND WITHIN THE FORTRAN 00070010 ! 11: C STATEMENTS THEMSELVES. LEADING ZERO IS TESTED FOR STATEMENTS AND 00080010 ! 12: C INTEGER CONSTANTS. VARIABLE NAMES WHICH LOOK VERY MUCH LIKE 00090010 ! 13: C FORTRAN RESERVED WORDS ARE TESTED IN ARITHMETIC ASSIGNMENT 00100010 ! 14: C STATEMENTS. NAMING CONVENTIONS USED THROUGHOUT THE FCVS ARE 00110010 ! 15: C TESTED ALSO IN ARITHMETIC ASSIGNMENT STATEMENTS. 00120010 ! 16: C 00130010 ! 17: C REFERENCES 00140010 ! 18: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00150010 ! 19: C X3.9-1978 00160010 ! 20: C 00170010 ! 21: C SECTION 2.5, VARIABLES 00180010 ! 22: C SECTION 3.1.6, BLANK CHARACTER 00190010 ! 23: C SECTION 3.2.2, INITIAL LINES 00200010 ! 24: C SECTION 3.4, STATEMENT LABELS 00210010 ! 25: C 00220010 ! 26: C 00230010 ! 27: C ********************************************************** 00240010 ! 28: C 00250010 ! 29: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00260010 ! 30: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00270010 ! 31: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00280010 ! 32: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00290010 ! 33: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00300010 ! 34: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00310010 ! 35: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00320010 ! 36: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00330010 ! 37: C OF EXECUTING THESE TESTS. 00340010 ! 38: C 00350010 ! 39: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00360010 ! 40: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00370010 ! 41: C 00380010 ! 42: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00390010 ! 43: C 00400010 ! 44: C DEPARTMENT OF THE NAVY 00410010 ! 45: C FEDERAL COBOL COMPILER TESTING SERVICE 00420010 ! 46: C WASHINGTON, D.C. 20376 00430010 ! 47: C 00440010 ! 48: C ********************************************************** 00450010 ! 49: C 00460010 ! 50: C 00470010 ! 51: C 00480010 ! 52: C INITIALIZATION SECTION 00490010 ! 53: C 00500010 ! 54: C INITIALIZE CONSTANTS 00510010 ! 55: C ************** 00520010 ! 56: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00530010 ! 57: I01 = 5 00540010 ! 58: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00550010 ! 59: I02 = 6 00560010 ! 60: C SYSTEM ENVIRONMENT SECTION 00570010 ! 61: C 00580010 ! 62: I01 = 5 00590010 ! 63: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00600010 ! 64: C (UNIT NUMBER FOR CARD READER). 00610010 ! 65: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00620010 ! 66: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00630010 ! 67: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00640010 ! 68: C 00650010 ! 69: I02 = 6 00660010 ! 70: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00670010 ! 71: C (UNIT NUMBER FOR PRINTER). 00680010 ! 72: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00690010 ! 73: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00700010 ! 74: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00710010 ! 75: C 00720010 ! 76: IVPASS=0 00730010 ! 77: IVFAIL=0 00740010 ! 78: IVDELE=0 00750010 ! 79: ICZERO=0 00760010 ! 80: C 00770010 ! 81: C WRITE PAGE HEADERS 00780010 ! 82: WRITE (I02,90000) 00790010 ! 83: WRITE (I02,90001) 00800010 ! 84: WRITE (I02,90002) 00810010 ! 85: WRITE (I02, 90002) 00820010 ! 86: WRITE (I02,90003) 00830010 ! 87: WRITE (I02,90002) 00840010 ! 88: WRITE (I02,90004) 00850010 ! 89: WRITE (I02,90002) 00860010 ! 90: WRITE (I02,90011) 00870010 ! 91: WRITE (I02,90002) 00880010 ! 92: WRITE (I02,90002) 00890010 ! 93: WRITE (I02,90005) 00900010 ! 94: WRITE (I02,90006) 00910010 ! 95: WRITE (I02,90002) 00920010 ! 96: 1001 CONTINUE 00930010 ! 97: IVTNUM = 100 00940010 ! 98: C 00950010 ! 99: C **** TEST 100 **** 00960010 ! 100: C 00970010 ! 101: C TEST 100 - TO CHECK THE VARIOUS COMBINATIONS OF FORMING VARIABLE00980010 ! 102: C NAMES. THESE ARE ACTUALLY SYMBOLIC NAMES (ANSI X3.9-1978 00990010 ! 103: C SECTION 2.2). THIS IS BASICALLY A SYNTAX CHECK USING A 01000010 ! 104: C COMBINATION OF FROM ONE TO SIX ALPHANUMERIC CHARACTERS WITH 01010010 ! 105: C THE FIRST CHARACTER ALWAYS ALPHABETIC. REFERENCE FORMAT IS 01020010 ! 106: C ALSO CHECKED BY HAVING EACH ASSIGNMENT STATEMENT AN INITIAL 01030010 ! 107: C LINE (SECTION 3.2.2). THIS MEANS ZERO MAY APPEAR IN COLUMN 01040010 ! 108: C SIX WITHOUT EFFECT, THAT LINES MAY BEGIN ANYWHERE FROM 01050010 ! 109: C COLUMN SEVEN TO COLUMN 72, AND BLANKS MAY BE USED FREELY 01060010 ! 110: C WITHOUT MEANING (3.1.6 BLANK CHARACTERS). 01070010 ! 111: C 01080010 ! 112: IF (ICZERO) 31000, 1000, 31000 01090010 ! 113: 1000 CONTINUE 01100010 ! 114: A=1. 01110010 ! 115: B =2. 01120010 ! 116: C =3. 01130010 ! 117: D =4. 01140010 ! 118: E =5. 01150010 ! 119: F =6. 01160010 ! 120: 0G = 7. 01170010 ! 121: H=8. 01180010 ! 122: I=901190010 ! 123: J = 10 01200010 ! 124: K = 11 01210010 ! 125: L = 1201220010 ! 126: 0M=13 01230010 ! 127: N=14 01240010 ! 128: O=15. 01250010 ! 129: P=16. 01260010 ! 130: Q=17. 01270010 ! 131: R=18. 01280010 ! 132: S=19. 01290010 ! 133: T=20. 01300010 ! 134: U=21. 01310010 ! 135: V=22. 01320010 ! 136: W=23. 01330010 ! 137: X=24. 01340010 ! 138: Y=25. 01350010 ! 139: Z=26. 01360010 ! 140: AAAAAA=27. 01370010 ! 141: BBBBB=28. 01380010 ! 142: CCCC=29. 01390010 ! 143: DDD=30 01400010 ! 144: EE=31. 01410010 ! 145: F0=32. 01420010 ! 146: G12=33. 01430010 ! 147: H345 = 34. 01440010 ! 148: I6789 = 35 01450010 ! 149: J01234 = 36 01460010 ! 150: K 5 6 78 9=37 01470010 ! 151: L 2 L 2 L 2 =38 01480010 ! 152: M 3 M 3 M3 = 3901490010 ! 153: N 40 = 4 001500010 ! 154: 0 OMY = 4 1.01510010 ! 155: I PM H = 4 201520010 ! 156: GO TO 1 = 4 3. 01530010 ! 157: IF 3 = 44 01540010 ! 158: DO 3 = 53. 01550010 ! 159: CALL FL =62. 01560010 ! 160: TYPE I = 63. 01570010 ! 161: TRUE =71. 01580010 ! 162: FALSE = 72. 01590010 ! 163: GO TO 41000 01600010 ! 164: 31000 IVDELE = IVDELE + 1 01610010 ! 165: WRITE (I02,80003) IVTNUM 01620010 ! 166: IF (ICZERO) 41000, 1011, 41000 01630010 ! 167: 41000 IF (IPMH - 42) 21000,11000,21000 01640010 ! 168: 11000 IVPASS = IVPASS + 1 01650010 ! 169: WRITE (I02,80001) IVTNUM 01660010 ! 170: GO TO 1011 01670010 ! 171: 21000 IVFAIL = IVFAIL + 1 01680010 ! 172: IVCOMP = IPMH 01690010 ! 173: IVCORR = 42 01700010 ! 174: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01710010 ! 175: 1011 CONTINUE 01720010 ! 176: IVTNUM = 101 01730010 ! 177: C 01740010 ! 178: C **** TEST 101 **** 01750010 ! 179: C TEST 101 - CHECKS THE FCVS NAMING CONVENTIONS FOR INTEGER AND 01760010 ! 180: C REAL VARIABLES IN ASSIGNMENT STATEMENTS: VARIABLE = CONSTANT01770010 ! 181: C BASICALLY A SYNTAX CHECK ON SIX CHARACTER VARIABLE NAMES. 01780010 ! 182: C 01790010 ! 183: IF (ICZERO) 31010, 1010, 31010 01800010 ! 184: 1010 CONTINUE 01810010 ! 185: IACE11 = 1 01820010 ! 186: IACE21 = 2 01830010 ! 187: IACE31 = 3 01840010 ! 188: IACN11 = 4 01850010 ! 189: IADN11 = 5 01860010 ! 190: IATE31 = 6 01870010 ! 191: RACE11 = 7. 01880010 ! 192: RACE21 = 8. 01890010 ! 193: RACN31 = 9. 01900010 ! 194: RADE31 = 10. 01910010 ! 195: IVTE69 = 11 01920010 ! 196: IVON78 = 12 01930010 ! 197: RVTNAZ = 13. 01940010 ! 198: RVOEZ9 = 14. 01950010 ! 199: ICTE96 = 15 01960010 ! 200: ICON84 = 16 01970010 ! 201: RCON48 = 17. 01980010 ! 202: RCTE54 = 18. 01990010 ! 203: IDONY4 = 19 02000010 ! 204: IDOEB6 = 20 02010010 ! 205: RDON46 = 21. 02020010 ! 206: IFONS3 = 22 02030010 ! 207: RFON77 = 23. 02040010 ! 208: GO TO 41010 02050010 ! 209: 31010 IVDELE = IVDELE + 1 02060010 ! 210: WRITE (I02,80003) IVTNUM 02070010 ! 211: IF (ICZERO) 41010, 1021, 41010 02080010 ! 212: 41010 IF (IVTE69 - 11) 21010,11010,21010 02090010 ! 213: 11010 IVPASS = IVPASS + 1 02100010 ! 214: WRITE (I02,80001) IVTNUM 02110010 ! 215: GO TO 1021 02120010 ! 216: 21010 IVFAIL = IVFAIL + 1 02130010 ! 217: IVCOMP = IVTE69 02140010 ! 218: IVCORR = 11 02150010 ! 219: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02160010 ! 220: 1021 CONTINUE 02170010 ! 221: IVTNUM = 102 02180010 ! 222: C 02190010 ! 223: C **** TEST 102 **** 02200010 ! 224: C TEST 102 - REFERENCE FORMAT CHECK ON STATEMENT LABELS (SECTION 02210010 ! 225: C 3.4). THESE ARE NON-ZERO INTEGERS, FROM 1 TO 5 DIGITS, 02220010 ! 226: C MAY BEGIN ANYWHERE FROM COLS. 1 TO 5, AND LEADING ZEROS ARE 02230010 ! 227: C NOT SIGNIFICANT. BLANKS WILL BE IMBEDDED IN SOME OF THE 02240010 ! 228: C STATEMENT LABELS AND THESE SHOULD HAVE NO EFFECT. THE 02250010 ! 229: C CONTINUE STATEMENT (SECTION 11.11) IS USED FOR THIS TEST. 02260010 ! 230: C A BASIC FCVS ASSUMPTION IS THAT THE LOGIC WILL FALL THRU A 02270010 ! 231: C SERIES OF CONTINUE STATEMENTS (NORMAL EXECUTION SEQUENCE). 02280010 ! 232: C 02290010 ! 233: IF (ICZERO) 31020, 1020, 31020 02300010 ! 234: 1020 CONTINUE 02310010 ! 235: 1 CONTINUE 02320010 ! 236: 2 CONTINUE 02330010 ! 237: 3 CONTINUE 02340010 ! 238: 4 CONTINUE 02350010 ! 239: 5 CONTINUE 02360010 ! 240: 06 CONTINUE 02370010 ! 241: 007 CONTINUE 02380010 ! 242: 0008 CONTINUE 02390010 ! 243: 00009 CONTINUE 02400010 ! 244: 010 CONTINUE 02410010 ! 245: 1 1 CONTINUE 02420010 ! 246: 0 12 CONTINUE 02430010 ! 247: 0 1 3 CONTINUE 02440010 ! 248: 00 14 CONTINUE 02450010 ! 249: 0 15 CONTINUE 02460010 ! 250: 0 016 CONTINUE 02470010 ! 251: 100 CONTINUE 02480010 ! 252: 1 0 1 CONTINUE 02490010 ! 253: 10 2 IVON01 = 1 02500010 ! 254: 1 03 CONTINUE 02510010 ! 255: 1 04 CONTINUE 02520010 ! 256: 01 05 CONTINUE 02530010 ! 257: 010 6 CONTINUE 02540010 ! 258: 0107 CONTINUE 02550010 ! 259: 00108 CONTINUE 02560010 ! 260: 1 1 1 CONTINUE 02570010 ! 261: 1 111 CONTINUE 02580010 ! 262: 99 CONTINUE 02590010 ! 263: 9 9 9 CONTINUE 02600010 ! 264: 99 99 CONTINUE 02610010 ! 265: GO TO 41020 02620010 ! 266: 31020 IVDELE = IVDELE + 1 02630010 ! 267: WRITE (I02,80003) IVTNUM 02640010 ! 268: IF (ICZERO) 41020, 1031, 41020 02650010 ! 269: 41020 IF (IVON01 - 1) 21020,11020,21020 02660010 ! 270: 11020 IVPASS = IVPASS + 1 02670010 ! 271: WRITE (I02,80001) IVTNUM 02680010 ! 272: GO TO 1031 02690010 ! 273: 21020 IVFAIL = IVFAIL + 1 02700010 ! 274: IVCOMP = IVON01 02710010 ! 275: IVCORR = 1 02720010 ! 276: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02730010 ! 277: 1031 CONTINUE 02740010 ! 278: C 02750010 ! 279: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 02760010 ! 280: 99999 CONTINUE 02770010 ! 281: WRITE (I02,90002) 02780010 ! 282: WRITE (I02,90006) 02790010 ! 283: WRITE (I02,90002) 02800010 ! 284: WRITE (I02,90002) 02810010 ! 285: WRITE (I02,90007) 02820010 ! 286: WRITE (I02,90002) 02830010 ! 287: WRITE (I02,90008) IVFAIL 02840010 ! 288: WRITE (I02,90009) IVPASS 02850010 ! 289: WRITE (I02,90010) IVDELE 02860010 ! 290: C 02870010 ! 291: C 02880010 ! 292: C TERMINATE ROUTINE EXECUTION 02890010 ! 293: STOP 02900010 ! 294: C 02910010 ! 295: C FORMAT STATEMENTS FOR PAGE HEADERS 02920010 ! 296: 90000 FORMAT (1H1) 02930010 ! 297: 90002 FORMAT (1H ) 02940010 ! 298: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 02950010 ! 299: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 02960010 ! 300: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 02970010 ! 301: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 02980010 ! 302: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 02990010 ! 303: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 03000010 ! 304: C 03010010 ! 305: C FORMAT STATEMENTS FOR RUN SUMMARIES 03020010 ! 306: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 03030010 ! 307: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 03040010 ! 308: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 03050010 ! 309: C 03060010 ! 310: C FORMAT STATEMENTS FOR TEST RESULTS 03070010 ! 311: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 03080010 ! 312: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 03090010 ! 313: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 03100010 ! 314: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 03110010 ! 315: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 03120010 ! 316: C 03130010 ! 317: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM010) 03140010 ! 318: END 03150010
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.