|
|
1.1 root 1: PROGRAM FM252 00010252
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 00020252
6: C 00030252
7: C 00040252
8: C 00050252
9: C THIS PROGRAM TESTS REDEFINITION OF STATEMENT LABELS WITH THE 00060252
10: C ASSIGN STATEMENT IN CONJUNCTION WITH THE ASSIGNED GO TO STATEMENT.00070252
11: C THE OPTIONAL COMMA IN THE SYNTAX OF THE ASSIGNED GO TO IS TESTED. 00080252
12: C THE RANGE OF STATEMENT LABELS ( FROM 00001 TO 99999 ) IS TESTED 00090252
13: C USING THE ASSIGN STATEMENT AND THE ASSIGNED GO TO STATEMENT. 00100252
14: C IT ALSO TESTS THE OPTIONAL COMMA IN THE SYNTAX OF THE COMPUTED 00110252
15: C GO TO STATEMENT AND HAS TESTS ON THE RANGE OF THE INDEX IN THE 00120252
16: C COMPUTED GO TO. 00130252
17: C 00140252
18: C 00150252
19: C REFERENCES 00160252
20: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00170252
21: C X3.9-1978 00180252
22: C SECTION 10.3, STATEMENT LABEL ASSIGNMENT (ASSIGN) 00190252
23: C SECTION 11.2, COMPUTED GO TO STATEMENT 00200252
24: C SECTION 11.3, ASSIGNED GO TO STATEMENT 00210252
25: C 00220252
26: C 00230252
27: C FM013 - SUBSET LEVEL TESTS OF THE ASSIGN STATEMENT AND THE 00240252
28: C ASSIGNED GO TO STATEMENT. 00250252
29: C 00260252
30: C FM014, FM052, AND FM053 - SUBSET LEVEL TESTS OF THE COMPUTED 00270252
31: C GO TO STATEMENT. 00280252
32: C 00290252
33: C 00300252
34: C 00310252
35: C 00320252
36: C ******************************************************************00330252
37: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00340252
38: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00350252
39: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00360252
40: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00370252
41: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00380252
42: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00390252
43: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00400252
44: C THE RESULT OF EXECUTING THESE TESTS. 00410252
45: C 00420252
46: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00430252
47: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00440252
48: C 00450252
49: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00460252
50: C DEPARTMENT OF THE NAVY 00470252
51: C FEDERAL COBOL COMPILER TESTING SERVICE 00480252
52: C WASHINGTON, D.C. 20376 00490252
53: C 00500252
54: C ******************************************************************00510252
55: C 00520252
56: C 00530252
57: IMPLICIT LOGICAL (L) 00540252
58: IMPLICIT CHARACTER*14 (C) 00550252
59: C 00560252
60: C 00570252
61: C 00580252
62: C INITIALIZATION SECTION. 00590252
63: C 00600252
64: C INITIALIZE CONSTANTS 00610252
65: C ******************** 00620252
66: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00630252
67: I01 = 5 00640252
68: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00650252
69: I02 = 6 00660252
70: C SYSTEM ENVIRONMENT SECTION 00670252
71: C 00680252
72: I01 = 5 00690252
73: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00700252
74: C (UNIT NUMBER FOR CARD READER). 00710252
75: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00720252
76: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00730252
77: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00740252
78: C 00750252
79: I02 = 6 00760252
80: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00770252
81: C (UNIT NUMBER FOR PRINTER). 00780252
82: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00790252
83: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00800252
84: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00810252
85: C 00820252
86: IVPASS = 0 00830252
87: IVFAIL = 0 00840252
88: IVDELE = 0 00850252
89: ICZERO = 0 00860252
90: C 00870252
91: C WRITE OUT PAGE HEADERS 00880252
92: C 00890252
93: WRITE (I02,90002) 00900252
94: WRITE (I02,90006) 00910252
95: WRITE (I02,90008) 00920252
96: WRITE (I02,90004) 00930252
97: WRITE (I02,90010) 00940252
98: WRITE (I02,90004) 00950252
99: WRITE (I02,90016) 00960252
100: WRITE (I02,90001) 00970252
101: WRITE (I02,90004) 00980252
102: WRITE (I02,90012) 00990252
103: WRITE (I02,90014) 01000252
104: WRITE (I02,90004) 01010252
105: C 01020252
106: C 01030252
107: C **** FCVS PROGRAM 252 - TEST 001 **** 01040252
108: C 01050252
109: C TEST 001 IS AN ASSIGN STATEMENT IN WHICH THE STATEMENT 01060252
110: C LABEL IS ACTUALLY FOR A FORMAT STATEMENT. IN 10.3 - THE STATEMENT01070252
111: C LABEL MUST BE THE LABEL OF AN EXECUTABLE STATEMENT OR A FORMAT 01080252
112: C STATEMENT. THE ASSIGN STATEMENT IS FOLLOWED BY A SIMPLE WRITE 01090252
113: C TO THE PRINTER. 01100252
114: C 01110252
115: C 01120252
116: IVTNUM = 1 01130252
117: IF (ICZERO) 30010, 0010, 30010 01140252
118: 0010 CONTINUE 01150252
119: ASSIGN 0012 TO I 01160252
120: 0012 FORMAT (51H **** ASSIGN FORMAT NUMBER TO INTEGER VARIABLE ****) 01170252
121: WRITE (I02, I) 01180252
122: C ***** VISUALLY CHECK THE OUTPUT PRINTER LISTING ***** 01190252
123: IVCOMP = 0 01200252
124: IVCORR = 0 01210252
125: 40010 IF ( IVCOMP ) 20010, 10010, 20010 01220252
126: 30010 IVDELE = IVDELE + 1 01230252
127: WRITE (I02,80000) IVTNUM 01240252
128: IF (ICZERO) 10010, 0021, 20010 01250252
129: 10010 IVPASS = IVPASS + 1 01260252
130: WRITE (I02,80002) IVTNUM 01270252
131: GO TO 0021 01280252
132: 20010 IVFAIL = IVFAIL + 1 01290252
133: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01300252
134: 0021 CONTINUE 01310252
135: C 01320252
136: C **** FCVS PROGRAM 252 - TEST 002 **** 01330252
137: C 01340252
138: C TEST 002 IS A TEST OF THE ASSIGNED GO TO STATEMENT WITH THE 01350252
139: C OPTIONAL COMMA INTENTIONALLY DELETED FROM THE SYNTAX. 01360252
140: C GO TO I (S1, S2, S3) 01370252
141: C 01380252
142: C 01390252
143: IVTNUM = 2 01400252
144: IF (ICZERO) 30020, 0020, 30020 01410252
145: 0020 CONTINUE 01420252
146: IVCOMP = 0 01430252
147: IVCORR = 1 01440252
148: ASSIGN 0023 TO J 01450252
149: GO TO 0025 01460252
150: 0022 IVCOMP = 0 01470252
151: GO TO 40020 01480252
152: 0023 IVCOMP = 1 01490252
153: GO TO 40020 01500252
154: 0024 IVCOMP = 0 01510252
155: GO TO 40020 01520252
156: 0025 GO TO J (0022, 0023, 0024) 01530252
157: C NOTE THAT THE OPTIONAL COMMA IS NOT PRESENT AFTER THE J IN 01540252
158: C PREVIOUS ASSIGNED GO TO STATEMENT. 01550252
159: 40020 IF ( IVCOMP - 1 ) 20020, 10020, 20020 01560252
160: 30020 IVDELE = IVDELE + 1 01570252
161: WRITE (I02,80000) IVTNUM 01580252
162: IF (ICZERO) 10020, 0031, 20020 01590252
163: 10020 IVPASS = IVPASS + 1 01600252
164: WRITE (I02,80002) IVTNUM 01610252
165: GO TO 0031 01620252
166: 20020 IVFAIL = IVFAIL + 1 01630252
167: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01640252
168: 0031 CONTINUE 01650252
169: C 01660252
170: C **** FCVS PROGRAM 252 - TEST 003 **** 01670252
171: C 01680252
172: C TEST 003 USES A SERIES OF ASSIGN STATEMENTS TO TEST THAT THE 01690252
173: C SAME STATEMENT LABEL AND INTEGER VARIABLE CAN BE USED IN A 01700252
174: C MULTIPLE REDEFINITION TO THE SAME VALUES. A SIMPLE ASSIGNED 01710252
175: C GO TO IS USED TO TEST THE VALUE OF THE INTEGER VARIABLE M. 01720252
176: C 01730252
177: C 01740252
178: IVTNUM = 3 01750252
179: IF (ICZERO) 30030, 0030, 30030 01760252
180: 0030 CONTINUE 01770252
181: IVCOMP = 0 01780252
182: IVCORR = 1 01790252
183: ASSIGN 0033 TO M 01800252
184: ASSIGN 0033 TO M 01810252
185: ASSIGN 0033 TO M 01820252
186: GO TO 0035 01830252
187: 0032 IVCOMP = 0 01840252
188: GO TO 40030 01850252
189: 0033 IVCOMP = 1 01860252
190: GO TO 40030 01870252
191: 0034 IVCOMP = 0 01880252
192: GO TO 40030 01890252
193: 0035 GO TO M, (0032, 0033, 0034) 01900252
194: 40030 IF ( IVCOMP - 1 ) 20030, 10030, 20030 01910252
195: 30030 IVDELE = IVDELE + 1 01920252
196: WRITE (I02,80000) IVTNUM 01930252
197: IF (ICZERO) 10030, 0041, 20030 01940252
198: 10030 IVPASS = IVPASS + 1 01950252
199: WRITE (I02,80002) IVTNUM 01960252
200: GO TO 0041 01970252
201: 20030 IVFAIL = IVFAIL + 1 01980252
202: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01990252
203: 0041 CONTINUE 02000252
204: C 02010252
205: C **** FCVS PROGRAM 252 - TEST 004 **** 02020252
206: C 02030252
207: C TEST 004 USES A SERIES OF ASSIGN STATEMENTS TO SET THE INTEGER 02040252
208: C VARIABLE K TO A STATEMENT LABEL IN THE PARENTHESIZED LIST OF 02050252
209: C STATEMENT LABELS FOR THE ASSIGNED GO TO STATEMENT, THEN TO A 02060252
210: C STATEMENT LABEL NOT IN THE LIST AND FINALLY BACK TO A PROPER 02070252
211: C STATEMENT LABEL WITHIN THE PARENTHESIZED LIST. SECTION 11.3 02080252
212: C REQUIRES - IF THE PARENTHESIZED LIST IS PRESENT, THE STATEMENT 02090252
213: C LABEL ASSIGNED TO I MUST BE ONE OF THE STATEMENT LABELS IN 02100252
214: C THE LIST. AN ASSIGNED GO TO STATEMENT IS USED TO TEST THE FINAL 02110252
215: C ASSIGNMENT OF STATEMENT LABELS TO THE INTEGER VARIABLE K. 02120252
216: C 02130252
217: C 02140252
218: IVTNUM = 4 02150252
219: IF (ICZERO) 30040, 0040, 30040 02160252
220: 0040 CONTINUE 02170252
221: IVCOMP = 0 02180252
222: IVCORR = 1 02190252
223: ASSIGN 0043 TO K 02200252
224: ASSIGN 0042 TO K 02210252
225: 0042 ASSIGN 0043 TO K 02220252
226: GO TO 0045 02230252
227: 0043 IVCOMP = 1 02240252
228: GO TO 40040 02250252
229: 0044 IVCOMP = 0 02260252
230: GO TO 40040 02270252
231: 0045 GO TO K, (0044, 0043) 02280252
232: 40040 IF ( IVCOMP - 1 ) 20040, 10040, 20040 02290252
233: 30040 IVDELE = IVDELE + 1 02300252
234: WRITE (I02,80000) IVTNUM 02310252
235: IF (ICZERO) 10040, 0051, 20040 02320252
236: 10040 IVPASS = IVPASS + 1 02330252
237: WRITE (I02,80002) IVTNUM 02340252
238: GO TO 0051 02350252
239: 20040 IVFAIL = IVFAIL + 1 02360252
240: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02370252
241: 0051 CONTINUE 02380252
242: C 02390252
243: C 02400252
244: C THE FOLLOWING TWO TESTS CHECK THE POSSIBLE RANGE OF STATEMENT 02410252
245: C LABELS ( FROM 00001 TO 99999 ) BY USING THEM IN ASSIGN STATEMENTS 02420252
246: C AND ASSIGNED GO TO STATEMENTS. 02430252
247: C 02440252
248: C 02450252
249: C 02460252
250: C **** FCVS PROGRAM 252 - TEST 005 **** 02470252
251: C 02480252
252: C TEST 005 USES A STATEMENT LABEL OF 00001 WHICH IS THE SMALLEST 02490252
253: C ALLOWABLE STATEMENT LABEL. 02500252
254: C 02510252
255: C 02520252
256: IVTNUM = 5 02530252
257: IF (ICZERO) 30050, 0050, 30050 02540252
258: 0050 CONTINUE 02550252
259: IVCOMP = 0 02560252
260: IVCORR = 1 02570252
261: ASSIGN 00001 TO I 02580252
262: GO TO 0054 02590252
263: 0052 IVCOMP = 0 02600252
264: GO TO 40050 02610252
265: 00001 IVCOMP = 1 02620252
266: GO TO 40050 02630252
267: 0053 IVCOMP = 0 02640252
268: GO TO 40050 02650252
269: 0054 GO TO I, ( 0052, 00001, 0053 ) 02660252
270: 40050 IF ( IVCOMP - 1 ) 20050, 10050, 20050 02670252
271: 30050 IVDELE = IVDELE + 1 02680252
272: WRITE (I02,80000) IVTNUM 02690252
273: IF (ICZERO) 10050, 0061, 20050 02700252
274: 10050 IVPASS = IVPASS + 1 02710252
275: WRITE (I02,80002) IVTNUM 02720252
276: GO TO 0061 02730252
277: 20050 IVFAIL = IVFAIL + 1 02740252
278: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02750252
279: 0061 CONTINUE 02760252
280: C 02770252
281: C **** FCVS PROGRAM 252 - TEST 006 **** 02780252
282: C 02790252
283: C TEST 006 USES A STATEMENT LABEL OF 99999 WHICH IS THE LARGEST 02800252
284: C ALLOWABLE STATEMENT LABEL. 02810252
285: C 02820252
286: C 02830252
287: IVTNUM = 6 02840252
288: IF (ICZERO) 30060, 0060, 30060 02850252
289: 0060 CONTINUE 02860252
290: IVCOMP = 0 02870252
291: IVCORR = 1 02880252
292: ASSIGN 99999 TO J 02890252
293: GO TO 0064 02900252
294: 0062 IVCOMP = 0 02910252
295: GO TO 40060 02920252
296: 99999 IVCOMP = 1 02930252
297: GO TO 40060 02940252
298: 0063 IVCOMP = 0 02950252
299: GO TO 40060 02960252
300: 0064 GO TO J, ( 0062, 99999, 0063 ) 02970252
301: 40060 IF ( IVCOMP - 1 ) 20060, 10060, 20060 02980252
302: 30060 IVDELE = IVDELE + 1 02990252
303: WRITE (I02,80000) IVTNUM 03000252
304: IF (ICZERO) 10060, 0071, 20060 03010252
305: 10060 IVPASS = IVPASS + 1 03020252
306: WRITE (I02,80002) IVTNUM 03030252
307: GO TO 0071 03040252
308: 20060 IVFAIL = IVFAIL + 1 03050252
309: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03060252
310: 0071 CONTINUE 03070252
311: C 03080252
312: C **** FCVS PROGRAM 252 - TEST 007 **** 03090252
313: C 03100252
314: C TEST 007 IS A SYNTAX CHECK ON THE OPTIONAL COMMA IN THE 03110252
315: C COMPUTED GO TO STATEMENT. THE COMMA FOLLOWING THE PARENTHESIZED 03120252
316: C LIST OF STATEMENT LABELS IS INTENTIONALLY OMITTED. 03130252
317: C GO TO ( S1, S2, S3 ) I 03140252
318: C 03150252
319: C 03160252
320: IVTNUM = 7 03170252
321: IF (ICZERO) 30070, 0070, 30070 03180252
322: 0070 CONTINUE 03190252
323: IVCOMP = 0 03200252
324: IVCORR = 1 03210252
325: I = 3 03220252
326: GO TO 0075 03230252
327: 0072 IVCOMP = 0 03240252
328: I = 1 03250252
329: GO TO 0075 03260252
330: 0073 IVCOMP = 1 03270252
331: GO TO 40070 03280252
332: 0074 IVCOMP = 0 03290252
333: I = 2 03300252
334: GO TO 0075 03310252
335: 0075 GO TO ( 0074, 0073, 0072 ) I 03320252
336: 40070 IF ( I - 2 ) 20070, 40071, 20070 03330252
337: 40071 IF ( IVCOMP - 1 ) 20070, 10070, 20070 03340252
338: 30070 IVDELE = IVDELE + 1 03350252
339: WRITE (I02,80000) IVTNUM 03360252
340: IF (ICZERO) 10070, 0081, 20070 03370252
341: 10070 IVPASS = IVPASS + 1 03380252
342: WRITE (I02,80002) IVTNUM 03390252
343: GO TO 0081 03400252
344: 20070 IVFAIL = IVFAIL + 1 03410252
345: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03420252
346: 0081 CONTINUE 03430252
347: C 03440252
348: C **** FCVS PROGRAM 252 - TEST 008 **** 03450252
349: C 03460252
350: C TEST 008 USES THE COMPUTED GO TO WITHOUT THE OPTIONAL COMMA 03470252
351: C AND HAS A SINGLE STATEMENT LABEL IN THE PARENTHESIZED LIST OF 03480252
352: C STATEMENT LABELS. 03490252
353: C GO TO ( S1 ) I 03500252
354: C 03510252
355: C 03520252
356: IVTNUM = 8 03530252
357: IF (ICZERO) 30080, 0080, 30080 03540252
358: 0080 CONTINUE 03550252
359: IVCOMP = 0 03560252
360: IVCORR = 1 03570252
361: J = 1 03580252
362: GO TO 0083 03590252
363: 0082 IVCOMP = 1 03600252
364: GO TO 40080 03610252
365: 0083 GO TO ( 0082 ) J 03620252
366: 40080 IF ( IVCOMP - 1 ) 20080, 10080, 20080 03630252
367: 30080 IVDELE = IVDELE + 1 03640252
368: WRITE (I02,80000) IVTNUM 03650252
369: IF (ICZERO) 10080, 0091, 20080 03660252
370: 10080 IVPASS = IVPASS + 1 03670252
371: WRITE (I02,80002) IVTNUM 03680252
372: GO TO 0091 03690252
373: 20080 IVFAIL = IVFAIL + 1 03700252
374: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03710252
375: 0091 CONTINUE 03720252
376: C 03730252
377: C 03740252
378: C THE NEXT THREE TESTS OF THE COMPUTED GO TO TEST THE RANGE OF 03750252
379: C THE INDEX. 03760252
380: C 03770252
381: C FORTRAN 77 HAS THE REQUIREMENT IN SECTION 11.2 - IF THE INDEX 03780252
382: C IS LESS THAN ONE OR GREATER THAN THE NUMBER OF STATEMENT LABELS IN03790252
383: C THE PARENTHESIZED LIST, THE EXECUTION SEQUENCE CONTINUES AS THOUGH03800252
384: C A CONTINUE STATEMENT WERE EXECUTED. 03810252
385: C 03820252
386: C 03830252
387: C 03840252
388: C **** FCVS PROGRAM 252 - TEST 009 **** 03850252
389: C 03860252
390: C 03870252
391: C TEST 009 USES A VALUE OF THE INDEX OF THE COMPUTED GO TO 03880252
392: C STATEMENT GREATER THAN THE NUMBER OF STATEMENT LABELS IN THE 03890252
393: C PARENTHESIZED LIST. 03900252
394: C 03910252
395: C 03920252
396: IVTNUM = 9 03930252
397: IF (ICZERO) 30090, 0090, 30090 03940252
398: 0090 CONTINUE 03950252
399: IVCOMP = 0 03960252
400: IVCORR = 1 03970252
401: K = 3 03980252
402: GO TO 0094 03990252
403: 0092 IVCOMP = 0 04000252
404: GO TO 40090 04010252
405: 0093 IVCOMP = 0 04020252
406: GO TO 40090 04030252
407: 0094 GO TO ( 0092, 0093 ) K 04040252
408: C 04050252
409: C TO REACH THIS STATEMENT THE COMPUTED GO TO WILL HAVE TO BE 04060252
410: C EXECUTED AS IF IT WERE A CONTINUE STATEMENT. 04070252
411: C 04080252
412: IVCOMP = 1 04090252
413: 40090 IF ( IVCOMP - 1 ) 20090, 10090, 20090 04100252
414: 30090 IVDELE = IVDELE + 1 04110252
415: WRITE (I02,80000) IVTNUM 04120252
416: IF (ICZERO) 10090, 0101, 20090 04130252
417: 10090 IVPASS = IVPASS + 1 04140252
418: WRITE (I02,80002) IVTNUM 04150252
419: GO TO 0101 04160252
420: 20090 IVFAIL = IVFAIL + 1 04170252
421: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04180252
422: 0101 CONTINUE 04190252
423: C 04200252
424: C **** FCVS PROGRAM 252 - TEST 010 **** 04210252
425: C 04220252
426: C TEST 010 USES A VALUE OF THE INDEX OF THE COMPUTED GO TO 04230252
427: C STATEMENT EQUAL TO ZERO. 04240252
428: C 04250252
429: C 04260252
430: IVTNUM = 10 04270252
431: IF (ICZERO) 30100, 0100, 30100 04280252
432: 0100 CONTINUE 04290252
433: IVCOMP = 0 04300252
434: IVCORR = 1 04310252
435: I = 0 04320252
436: GO TO 0104 04330252
437: 0102 IVCOMP = 0 04340252
438: GO TO 40100 04350252
439: 0103 IVCOMP = 0 04360252
440: GO TO 40100 04370252
441: 0104 GO TO ( 0103, 0102 ), I 04380252
442: C 04390252
443: C THIS STATEMENT CAN ONLY BE REACHED IF THE COMPUTED GO TO 04400252
444: C IS EXECUTED AS IF IT WERE A CONTINUE STATEMENT. 04410252
445: C 04420252
446: IVCOMP = 1 04430252
447: 40100 IF ( IVCOMP - 1 ) 20100, 10100, 20100 04440252
448: 30100 IVDELE = IVDELE + 1 04450252
449: WRITE (I02,80000) IVTNUM 04460252
450: IF (ICZERO) 10100, 0111, 20100 04470252
451: 10100 IVPASS = IVPASS + 1 04480252
452: WRITE (I02,80002) IVTNUM 04490252
453: GO TO 0111 04500252
454: 20100 IVFAIL = IVFAIL + 1 04510252
455: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04520252
456: 0111 CONTINUE 04530252
457: C 04540252
458: C **** FCVS PROGRAM 252 - TEST 011 **** 04550252
459: C 04560252
460: C TEST 011 USES A VALUE OF THE INDEX OF THE COMPUTED GO TO 04570252
461: C EQUAL TO -1. 04580252
462: C 04590252
463: IVTNUM = 11 04600252
464: IF (ICZERO) 30110, 0110, 30110 04610252
465: 0110 CONTINUE 04620252
466: IVCOMP = 0 04630252
467: IVCORR = 1 04640252
468: J = -1 04650252
469: GO TO 0114 04660252
470: 0112 IVCOMP = 0 04670252
471: GO TO 40110 04680252
472: 0113 IVCOMP = 0 04690252
473: GO TO 40110 04700252
474: 0114 GO TO (0112,0113),J 04710252
475: C 04720252
476: C THIS STATEMENT CAN ONLY BE REACHED IF THE COMPUTED GO TO 04730252
477: C IS EXECUTED AS IF IT WERE A CONTINUE STATEMENT. 04740252
478: C 04750252
479: IVCOMP = 1 04760252
480: 40110 IF ( IVCOMP - 1 ) 20110, 10110, 20110 04770252
481: 30110 IVDELE = IVDELE + 1 04780252
482: WRITE (I02,80000) IVTNUM 04790252
483: IF (ICZERO) 10110, 0121, 20110 04800252
484: 10110 IVPASS = IVPASS + 1 04810252
485: WRITE (I02,80002) IVTNUM 04820252
486: GO TO 0121 04830252
487: 20110 IVFAIL = IVFAIL + 1 04840252
488: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04850252
489: 0121 CONTINUE 04860252
490: C 04870252
491: C 04880252
492: C WRITE OUT TEST SUMMARY 04890252
493: C 04900252
494: WRITE (I02,90004) 04910252
495: WRITE (I02,90014) 04920252
496: WRITE (I02,90004) 04930252
497: WRITE (I02,90000) 04940252
498: WRITE (I02,90004) 04950252
499: WRITE (I02,90020) IVFAIL 04960252
500: WRITE (I02,90022) IVPASS 04970252
501: WRITE (I02,90024) IVDELE 04980252
502: STOP 04990252
503: 90001 FORMAT (1H ,24X,5HFM252) 05000252
504: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM252) 05010252
505: C 05020252
506: C FORMATS FOR TEST DETAIL LINES 05030252
507: C 05040252
508: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 05050252
509: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 05060252
510: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 05070252
511: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 05080252
512: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 05090252
513: C 05100252
514: C FORMAT STATEMENTS FOR PAGE HEADERS 05110252
515: C 05120252
516: 90002 FORMAT (1H1) 05130252
517: 90004 FORMAT (1H ) 05140252
518: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 05150252
519: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 05160252
520: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 05170252
521: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 05180252
522: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 05190252
523: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 05200252
524: C 05210252
525: C FORMAT STATEMENTS FOR RUN SUMMARY 05220252
526: C 05230252
527: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 05240252
528: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 05250252
529: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 05260252
530: END 05270252
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.