|
|
1.1 root 1: C COMMENT SECTION 00010003
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 00020003
6: C FM003 00030003
7: C 00040003
8: C THIS ROUTINE CONTAINS THE BASIC CONTINUE TESTS. THESE TESTS 00050003
9: C ENSURE THAT EXECUTION OF A CONTINUE STATEMENT CAUSES CONTINUATION 00060003
10: C OF THE NORMAL PROGRAM EXECUTION SEQUENCE. ONLY THE STATEMENTS IN 00070003
11: C THE BASIC ASSUMPTIONS ARE INCLUDED IN THESE TESTS. OTHER CONTINUE00080003
12: C TESTS ARE CONTAINED IN OTHER ROUTINES AS PART OF THE TESTS FOR 00090003
13: C OTHER LANGUAGE FEATURES SUCH AS THE DO STATEMENTS TESTS. 00100003
14: C 00110003
15: C REFERENCES 00120003
16: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00130003
17: C X3.9-1978 00140003
18: C 00150003
19: C SECTION 3.6, NORMAL EXECUTION SEQUENCE AND TRANSFER OF CONTROL 00160003
20: C SECTION 11.11, CONTINUE STATEMENT 00170003
21: C 00180003
22: C 00190003
23: C ********************************************************** 00200003
24: C 00210003
25: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00220003
26: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00230003
27: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00240003
28: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00250003
29: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00260003
30: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00270003
31: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00280003
32: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00290003
33: C OF EXECUTING THESE TESTS. 00300003
34: C 00310003
35: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00320003
36: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00330003
37: C 00340003
38: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00350003
39: C 00360003
40: C DEPARTMENT OF THE NAVY 00370003
41: C FEDERAL COBOL COMPILER TESTING SERVICE 00380003
42: C WASHINGTON, D.C. 20376 00390003
43: C 00400003
44: C ********************************************************** 00410003
45: C 00420003
46: C 00430003
47: C 00440003
48: C INITIALIZATION SECTION 00450003
49: C 00460003
50: C INITIALIZE CONSTANTS 00470003
51: C ************** 00480003
52: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00490003
53: I01 = 5 00500003
54: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00510003
55: I02 = 6 00520003
56: C SYSTEM ENVIRONMENT SECTION 00530003
57: C 00540003
58: I01 = 5 00550003
59: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00560003
60: C (UNIT NUMBER FOR CARD READER). 00570003
61: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00580003
62: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00590003
63: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00600003
64: C 00610003
65: I02 = 6 00620003
66: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00630003
67: C (UNIT NUMBER FOR PRINTER). 00640003
68: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00650003
69: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00660003
70: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00670003
71: C 00680003
72: IVPASS=0 00690003
73: IVFAIL=0 00700003
74: IVDELE=0 00710003
75: ICZERO=0 00720003
76: C 00730003
77: C WRITE PAGE HEADERS 00740003
78: WRITE (I02,90000) 00750003
79: WRITE (I02,90001) 00760003
80: WRITE (I02,90002) 00770003
81: WRITE (I02, 90002) 00780003
82: WRITE (I02,90003) 00790003
83: WRITE (I02,90002) 00800003
84: WRITE (I02,90004) 00810003
85: WRITE (I02,90002) 00820003
86: WRITE (I02,90011) 00830003
87: WRITE (I02,90002) 00840003
88: WRITE (I02,90002) 00850003
89: WRITE (I02,90005) 00860003
90: WRITE (I02,90006) 00870003
91: WRITE (I02,90002) 00880003
92: 131 CONTINUE 00890003
93: IVTNUM = 13 00900003
94: C 00910003
95: C **** TEST 013 **** 00920003
96: C TEST 13 - CONTINUE TEST 00930003
97: C CONTINUE STATEMENT FOLLOWING INTEGER ASSIGNMENT 00940003
98: C STATEMENTS. 00950003
99: C 00960003
100: IF (ICZERO) 30130, 130, 30130 00970003
101: 130 CONTINUE 00980003
102: IVON01=5 00990003
103: IVON02=6 01000003
104: CONTINUE 01010003
105: GO TO 40130 01020003
106: 30130 IVDELE = IVDELE + 1 01030003
107: WRITE (I02,80003) IVTNUM 01040003
108: IF (ICZERO) 40130, 141, 40130 01050003
109: 40130 IF (IVON01-5) 20131,40131,20131 01060003
110: 40131 IF (IVON02-6) 20132,10130,20132 01070003
111: 10130 IVPASS = IVPASS + 1 01080003
112: WRITE (I02,80001) IVTNUM 01090003
113: GO TO 141 01100003
114: 20131 IVCOMP=IVON01 01110003
115: IVCORR=5 01120003
116: GO TO 20130 01130003
117: 20132 IVCOMP=IVON02 01140003
118: IVCORR=6 01150003
119: 20130 IVFAIL = IVFAIL + 1 01160003
120: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01170003
121: 141 CONTINUE 01180003
122: IVTNUM = 14 01190003
123: C 01200003
124: C **** TEST 014 **** 01210003
125: C TEST 14 - CONTINUE TEST 01220003
126: C CONTINUE STATEMENT BETWEEN INTEGER ASSIGNMENT 01230003
127: C STATEMENTS 01240003
128: C 01250003
129: IF (ICZERO) 30140, 140, 30140 01260003
130: 140 CONTINUE 01270003
131: IVON01=14 01280003
132: CONTINUE 01290003
133: IVON02=15 01300003
134: GO TO 40140 01310003
135: 30140 IVDELE = IVDELE + 1 01320003
136: WRITE (I02,80003) IVTNUM 01330003
137: IF (ICZERO) 40140, 151, 40140 01340003
138: 40140 IF (IVON01 - 14) 20141,40141,20141 01350003
139: 40141 IF (IVON02 - 15) 20142, 10140, 20142 01360003
140: 10140 IVPASS = IVPASS + 1 01370003
141: WRITE (I02,80001) IVTNUM 01380003
142: GO TO 151 01390003
143: 20141 IVCOMP=IVON01 01400003
144: IVCORR=14 01410003
145: GO TO 20140 01420003
146: 20142 IVCOMP=IVON02 01430003
147: IVCORR=15 01440003
148: 20140 IVFAIL = IVFAIL + 1 01450003
149: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01460003
150: 151 CONTINUE 01470003
151: IVTNUM = 15 01480003
152: C 01490003
153: C **** TEST 015 **** 01500003
154: C TEST 15 - CONTINUE TEST 01510003
155: C TWO CONSECUTIVE CONTINUE STATEMENTS 01520003
156: C 01530003
157: IF (ICZERO) 30150, 150, 30150 01540003
158: 150 CONTINUE 01550003
159: CONTINUE 01560003
160: IVON01=19 01570003
161: IVON02=20 01580003
162: GO TO 40150 01590003
163: 30150 IVDELE = IVDELE + 1 01600003
164: WRITE (I02,80003) IVTNUM 01610003
165: IF (ICZERO) 40150, 161, 40150 01620003
166: 40150 IF (IVON01 - 19) 20151,40151,20151 01630003
167: 40151 IF (IVON02 -20) 20152,10150,20152 01640003
168: 10150 IVPASS = IVPASS + 1 01650003
169: WRITE (I02,80001) IVTNUM 01660003
170: GO TO 161 01670003
171: 20151 IVCOMP=IVON01 01680003
172: IVCORR=19 01690003
173: GO TO 20150 01700003
174: 20152 IVCOMP=IVON02 01710003
175: IVCORR=20 01720003
176: 20150 IVFAIL = IVFAIL + 1 01730003
177: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01740003
178: 161 CONTINUE 01750003
179: IVTNUM = 16 01760003
180: C 01770003
181: C **** TEST 016 **** 01780003
182: C TEST 16 - CONTINUE TEST 01790003
183: C BRANCH TO CONTINUE STATEMENT FROM IF STATEMENT 01800003
184: C 01810003
185: IF (ICZERO) 30160, 160, 30160 01820003
186: 160 CONTINUE 01830003
187: IVON01=16 01840003
188: IF (IVON01 - 16) 162,163,162 01850003
189: 162 IVCORR=16 01860003
190: GO TO 20160 01870003
191: 163 CONTINUE 01880003
192: IVON01=160 01890003
193: GO TO 40160 01900003
194: 30160 IVDELE = IVDELE + 1 01910003
195: WRITE (I02,80003) IVTNUM 01920003
196: IF (ICZERO) 40160, 171, 40160 01930003
197: 40160 IF (IVON01-160) 20161,10160,20161 01940003
198: 10160 IVPASS = IVPASS + 1 01950003
199: WRITE (I02,80001) IVTNUM 01960003
200: GO TO 171 01970003
201: 20161 IVCORR=160 01980003
202: 20160 IVFAIL = IVFAIL + 1 01990003
203: IVCOMP=IVON01 02000003
204: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02010003
205: 171 CONTINUE 02020003
206: IVTNUM = 17 02030003
207: C 02040003
208: C **** TEST 017 **** 02050003
209: C TEST 17 - CONTINUE TEST 02060003
210: C TWO OF THE BRANCHES OF AN IF STATEMENT ARE TO THE SAME 02070003
211: C CONTINUE STATEMENT. THE THIRD BRANCH ALSO IS MADE TO 02080003
212: C A CONTINUE STATEMENT. 02090003
213: C 02100003
214: IF (ICZERO) 30170, 170, 30170 02110003
215: 170 CONTINUE 02120003
216: IVON01=17 02130003
217: IF (IVON01-19) 173,172,172 02140003
218: 172 CONTINUE 02150003
219: IVCORR=17 02160003
220: GO TO 20170 02170003
221: 173 CONTINUE 02180003
222: IVON01=170 02190003
223: GO TO 40170 02200003
224: 30170 IVDELE = IVDELE + 1 02210003
225: WRITE (I02,80003) IVTNUM 02220003
226: IF (ICZERO) 40170, 181, 40170 02230003
227: 40170 IF (IVON01 - 170) 20171,10170,20171 02240003
228: 10170 IVPASS = IVPASS + 1 02250003
229: WRITE (I02,80001) IVTNUM 02260003
230: GO TO 181 02270003
231: 20171 IVCORR=170 02280003
232: 20170 IVFAIL = IVFAIL + 1 02290003
233: IVCOMP=IVON01 02300003
234: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02310003
235: 181 CONTINUE 02320003
236: IVTNUM = 18 02330003
237: C 02340003
238: C **** TEST 018 **** 02350003
239: C TEST 18 - CONTINUE TEST 02360003
240: C BRANCH TO CONTINUE STATEMENT FROM GO TO STATEMENT 02370003
241: C 02380003
242: IF (ICZERO) 30180, 180, 30180 02390003
243: 180 CONTINUE 02400003
244: IF (ICZERO) 184,182,184 02410003
245: 182 IVON01=18 02420003
246: GO TO 183 02430003
247: 184 IVON01=20 02440003
248: 183 CONTINUE 02450003
249: IVON02=180 02460003
250: GO TO 40180 02470003
251: 30180 IVDELE = IVDELE + 1 02480003
252: WRITE (I02,80003) IVTNUM 02490003
253: IF (ICZERO) 40180, 191, 40180 02500003
254: 40180 IF (IVON01 - 18) 20181,40181,20181 02510003
255: 40181 IF (IVON02 -180) 20182,10180,20182 02520003
256: 10180 IVPASS = IVPASS + 1 02530003
257: WRITE (I02,80001) IVTNUM 02540003
258: GO TO 191 02550003
259: 20181 IVCORR=18 02560003
260: IVCOMP=IVON01 02570003
261: GO TO 20180 02580003
262: 20182 IVCOMP=IVON02 02590003
263: IVCORR=180 02600003
264: 20180 IVFAIL = IVFAIL + 1 02610003
265: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02620003
266: 191 CONTINUE 02630003
267: IVTNUM = 19 02640003
268: C 02650003
269: C **** TEST 019 **** 02660003
270: C TEST 19 - CONTINUE TEST 02670003
271: C BRANCH TO THREE CONTINUE STATEMENTS FROM IF STATEMENT. 02680003
272: C CONTINUE STATEMENTS FOLLOW EACH OTHER. 02690003
273: C 02700003
274: IF (ICZERO) 30190, 190, 30190 02710003
275: 190 CONTINUE 02720003
276: ICONE = 1 02730003
277: IF (ICONE) 194,192,193 02740003
278: 193 CONTINUE 02750003
279: 192 CONTINUE 02760003
280: 194 CONTINUE 02770003
281: IVON01=19 02780003
282: GO TO 40190 02790003
283: 30190 IVDELE = IVDELE + 1 02800003
284: WRITE (I02,80003) IVTNUM 02810003
285: IF (ICZERO) 40190, 201, 40190 02820003
286: 40190 IF (IVON01 - 19) 20190,10190,20190 02830003
287: 10190 IVPASS = IVPASS + 1 02840003
288: WRITE (I02,80001) IVTNUM 02850003
289: GO TO 201 02860003
290: 20190 IVFAIL = IVFAIL + 1 02870003
291: IVCOMP=IVON01 02880003
292: IVCORR=19 02890003
293: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02900003
294: 201 CONTINUE 02910003
295: IVTNUM = 20 02920003
296: C 02930003
297: C **** TEST 020 **** 02940003
298: C TEST 20 - CONTINUE TEST 02950003
299: C THREE SEPARATE BRANCHES OF AN IF STATEMENT ARE TO 02960003
300: C CONTINUE STATEMENTS. 02970003
301: C 02980003
302: IF (ICZERO) 30200, 200, 30200 02990003
303: 200 CONTINUE 03000003
304: ICON02=-2 03010003
305: IF (ICON02) 204,202,203 03020003
306: 203 CONTINUE 03030003
307: IVON01=203 03040003
308: GO TO 40200 03050003
309: 204 CONTINUE 03060003
310: IVON01 = 204 03070003
311: GO TO 40200 03080003
312: 202 CONTINUE 03090003
313: IVON01=202 03100003
314: GO TO 40200 03110003
315: 30200 IVDELE = IVDELE + 1 03120003
316: WRITE (I02,80003) IVTNUM 03130003
317: IF (ICZERO) 40200, 211, 40200 03140003
318: 40200 IF (IVON01 - 204) 20200,10200,20200 03150003
319: 10200 IVPASS = IVPASS + 1 03160003
320: WRITE (I02,80001) IVTNUM 03170003
321: GO TO 211 03180003
322: 20200 IVFAIL = IVFAIL + 1 03190003
323: IVCOMP=IVON01 03200003
324: IVCORR=204 03210003
325: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03220003
326: 211 CONTINUE 03230003
327: C 03240003
328: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 03250003
329: 99999 CONTINUE 03260003
330: WRITE (I02,90002) 03270003
331: WRITE (I02,90006) 03280003
332: WRITE (I02,90002) 03290003
333: WRITE (I02,90002) 03300003
334: WRITE (I02,90007) 03310003
335: WRITE (I02,90002) 03320003
336: WRITE (I02,90008) IVFAIL 03330003
337: WRITE (I02,90009) IVPASS 03340003
338: WRITE (I02,90010) IVDELE 03350003
339: C 03360003
340: C 03370003
341: C TERMINATE ROUTINE EXECUTION 03380003
342: STOP 03390003
343: C 03400003
344: C FORMAT STATEMENTS FOR PAGE HEADERS 03410003
345: 90000 FORMAT (1H1) 03420003
346: 90002 FORMAT (1H ) 03430003
347: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 03440003
348: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 03450003
349: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 03460003
350: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 03470003
351: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 03480003
352: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 03490003
353: C 03500003
354: C FORMAT STATEMENTS FOR RUN SUMMARIES 03510003
355: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 03520003
356: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 03530003
357: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 03540003
358: C 03550003
359: C FORMAT STATEMENTS FOR TEST RESULTS 03560003
360: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 03570003
361: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 03580003
362: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 03590003
363: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 03600003
364: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 03610003
365: C 03620003
366: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM003) 03630003
367: END 03640003
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.