|
|
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.