|
|
1.1 root 1: C 00010018
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 COMMENT SECTION. 00020018
6: C 00030018
7: C FM018 00040018
8: C 00050018
9: C THIS ROUTINE CONTINUES TESTS OF THE FORTRAN 00060018
10: C LOGICAL IF STATEMENT IN ALL OF THE VARIOUS FORMS. THE 00070018
11: C FOLLOWING LOGICAL OPERANDS ARE USED FOR THIS ROUTINE - LOGICAL 00080018
12: C CONSTANTS, LOGICAL VARIABLES, LOGICAL ARRAY ELEMENTS, AND 00090018
13: C ARITHMETIC EXPRESSIONS WITH VARIOUS RELATIONAL OPERATORS. BOTH 00100018
14: C THE TRUE AND FALSE BRANCHES ARE TESTED IN THE SERIES OF TESTS. 00110018
15: C 00120018
16: C REFERENCES 00130018
17: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00140018
18: C X3.9-1978 00150018
19: C 00160018
20: C SECTION 4.7.1, LOGICAL CONSTANT 00170018
21: C SECTION 6, EXPRESSIONS 00180018
22: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00190018
23: C SECTION 6.3, RELATIONAL EXPRESSIONS 00200018
24: C SECTION 6.4, LOGICAL EXPRESSIONS 00210018
25: C SECTION 6.6, EVALUATION OF EXPRESSIONS 00220018
26: C SECTION 10, ASSIGNMENT STATEMENTS 00230018
27: C SECTION 10.2, LOGICAL ASSIGNMENT STATEMENT 00240018
28: C SECTION 11.5, LOGICAL IF STATEMENT 00250018
29: C 00260018
30: LOGICAL LCTNT1, LCTNT2, LATN1A(2) 00270018
31: DIMENSION IADN11(2) 00280018
32: C 00290018
33: C ********************************************************** 00300018
34: C 00310018
35: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00320018
36: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00330018
37: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00340018
38: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00350018
39: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00360018
40: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00370018
41: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00380018
42: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00390018
43: C OF EXECUTING THESE TESTS. 00400018
44: C 00410018
45: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00420018
46: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00430018
47: C 00440018
48: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00450018
49: C 00460018
50: C DEPARTMENT OF THE NAVY 00470018
51: C FEDERAL COBOL COMPILER TESTING SERVICE 00480018
52: C WASHINGTON, D.C. 20376 00490018
53: C 00500018
54: C ********************************************************** 00510018
55: C 00520018
56: C 00530018
57: C 00540018
58: C INITIALIZATION SECTION 00550018
59: C 00560018
60: C INITIALIZE CONSTANTS 00570018
61: C ************** 00580018
62: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00590018
63: I01 = 5 00600018
64: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00610018
65: I02 = 6 00620018
66: C SYSTEM ENVIRONMENT SECTION 00630018
67: C 00640018
68: I01 = 5 00650018
69: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00660018
70: C (UNIT NUMBER FOR CARD READER). 00670018
71: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00680018
72: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00690018
73: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00700018
74: C 00710018
75: I02 = 6 00720018
76: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00730018
77: C (UNIT NUMBER FOR PRINTER). 00740018
78: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00750018
79: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00760018
80: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00770018
81: C 00780018
82: IVPASS=0 00790018
83: IVFAIL=0 00800018
84: IVDELE=0 00810018
85: ICZERO=0 00820018
86: C 00830018
87: C WRITE PAGE HEADERS 00840018
88: WRITE (I02,90000) 00850018
89: WRITE (I02,90001) 00860018
90: WRITE (I02,90002) 00870018
91: WRITE (I02, 90002) 00880018
92: WRITE (I02,90003) 00890018
93: WRITE (I02,90002) 00900018
94: WRITE (I02,90004) 00910018
95: WRITE (I02,90002) 00920018
96: WRITE (I02,90011) 00930018
97: WRITE (I02,90002) 00940018
98: WRITE (I02,90002) 00950018
99: WRITE (I02,90005) 00960018
100: WRITE (I02,90006) 00970018
101: WRITE (I02,90002) 00980018
102: IVTNUM = 500 00990018
103: C 01000018
104: C **** TEST 500 **** 01010018
105: C TEST 500 - LIKE TEST 197. TRUE .OR. TRUE TRUE PATH 01020018
106: C TEST OF THE FORTRAN INCLUSIVE OR (LE) .OR. (LT) 01030018
107: C 01040018
108: C 01050018
109: IF (ICZERO) 35000, 5000, 35000 01060018
110: 5000 CONTINUE 01070018
111: IVON01 = 0 01080018
112: LCTNT1 = .TRUE. 01090018
113: LCTNT2 = .TRUE. 01100018
114: IF ( LCTNT1 .OR. LCTNT2 ) IVON01 = 1 01110018
115: GO TO 45000 01120018
116: 35000 IVDELE = IVDELE + 1 01130018
117: WRITE (I02,80003) IVTNUM 01140018
118: IF (ICZERO) 45000, 5011, 45000 01150018
119: 45000 IF ( IVON01 - 1 ) 25000, 15000, 25000 01160018
120: 15000 IVPASS = IVPASS + 1 01170018
121: WRITE (I02,80001) IVTNUM 01180018
122: GO TO 5011 01190018
123: 25000 IVFAIL = IVFAIL + 1 01200018
124: IVCOMP = IVON01 01210018
125: IVCORR = 1 01220018
126: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01230018
127: 5011 CONTINUE 01240018
128: IVTNUM = 501 01250018
129: C 01260018
130: C **** TEST 501 **** 01270018
131: C TEST 501 - TEST OF PARENTHESES AROUND A LOGICAL EXPRESSION 01280018
132: C ( (LE) ) .OR. (LT) 01290018
133: C USES LOGICAL VARIABLES SET IN LOGICAL ASSIGNMENT STATEMENTS01300018
134: C ( FALSE ) .OR. FALSE FALSE PATH 01310018
135: C 01320018
136: C 01330018
137: IF (ICZERO) 35010, 5010, 35010 01340018
138: 5010 CONTINUE 01350018
139: IVON01 = 1 01360018
140: LCTNT1 = .FALSE. 01370018
141: LCTNT2 = .FALSE. 01380018
142: IF ( (LCTNT1) .OR. LCTNT2 ) IVON01 = 0 01390018
143: GO TO 45010 01400018
144: 35010 IVDELE = IVDELE + 1 01410018
145: WRITE (I02,80003) IVTNUM 01420018
146: IF (ICZERO) 45010, 5021, 45010 01430018
147: 45010 IF ( IVON01 - 1 ) 25010, 15010, 25010 01440018
148: 15010 IVPASS = IVPASS + 1 01450018
149: WRITE (I02,80001) IVTNUM 01460018
150: GO TO 5021 01470018
151: 25010 IVFAIL = IVFAIL + 1 01480018
152: IVCOMP = IVON01 01490018
153: IVCORR = 1 01500018
154: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01510018
155: 5021 CONTINUE 01520018
156: IVTNUM = 502 01530018
157: C 01540018
158: C **** TEST 502 **** 01550018
159: C TEST 502 - LIKE TEST 501 EXCEPT THAT IT IT IS OF THE FORM 01560018
160: C (LE) .OR. ( (LT) ) TRUE .OR. (TRUE) 01570018
161: C TRUE PATH 01580018
162: C 01590018
163: C 01600018
164: IF (ICZERO) 35020, 5020, 35020 01610018
165: 5020 CONTINUE 01620018
166: IVON01 = 0 01630018
167: LCTNT1 = .TRUE. 01640018
168: LCTNT2 = .TRUE. 01650018
169: IF ( LCTNT1 .OR. ( LCTNT2 ) ) IVON01 = 1 01660018
170: GO TO 45020 01670018
171: 35020 IVDELE = IVDELE + 1 01680018
172: WRITE (I02,80003) IVTNUM 01690018
173: IF (ICZERO) 45020, 5031, 45020 01700018
174: 45020 IF ( IVON01 - 1 ) 25020, 15020, 25020 01710018
175: 15020 IVPASS = IVPASS + 1 01720018
176: WRITE (I02,80001) IVTNUM 01730018
177: GO TO 5031 01740018
178: 25020 IVFAIL = IVFAIL + 1 01750018
179: IVCOMP = IVON01 01760018
180: IVCORR = 1 01770018
181: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01780018
182: 5031 CONTINUE 01790018
183: IVTNUM = 503 01800018
184: C 01810018
185: C **** TEST 503 **** 01820018
186: C TEST 503 - TEST OF PARENTHESES IN LOGICAL EXPRESSIONS 01830018
187: C ( (LE) ) .OR. ( (LT) ) 01840018
188: C (FALSE) .OR. (TRUE) TRUE PATH 01850018
189: C 01860018
190: C 01870018
191: IF (ICZERO) 35030, 5030, 35030 01880018
192: 5030 CONTINUE 01890018
193: IVON01 = 0 01900018
194: LCTNT1 = .FALSE. 01910018
195: LCTNT2 = .TRUE. 01920018
196: IF ( (LCTNT1) .OR. (LCTNT2) ) IVON01 = 1 01930018
197: GO TO 45030 01940018
198: 35030 IVDELE = IVDELE + 1 01950018
199: WRITE (I02,80003) IVTNUM 01960018
200: IF (ICZERO) 45030, 5041, 45030 01970018
201: 45030 IF ( IVON01 - 1 ) 25030, 15030, 25030 01980018
202: 15030 IVPASS = IVPASS + 1 01990018
203: WRITE (I02,80001) IVTNUM 02000018
204: GO TO 5041 02010018
205: 25030 IVFAIL = IVFAIL + 1 02020018
206: IVCOMP = IVON01 02030018
207: IVCORR = 1 02040018
208: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02050018
209: 5041 CONTINUE 02060018
210: IVTNUM = 504 02070018
211: C 02080018
212: C **** TEST 504 **** 02090018
213: C TEST 504 - LIKE TEST 503 ONLY MORE PARENTHESES TRUE PATH 02100018
214: C 02110018
215: C 02120018
216: IF (ICZERO) 35040, 5040, 35040 02130018
217: 5040 CONTINUE 02140018
218: IVON01 = 0 02150018
219: LCTNT1 = .TRUE. 02160018
220: LCTNT2 = .FALSE. 02170018
221: IF ( ( (LCTNT1) .OR. (LCTNT2) ) ) IVON01 = 1 02180018
222: GO TO 45040 02190018
223: 35040 IVDELE = IVDELE + 1 02200018
224: WRITE (I02,80003) IVTNUM 02210018
225: IF (ICZERO) 45040, 5051, 45040 02220018
226: 45040 IF ( IVON01 - 1 ) 25040, 15040, 25040 02230018
227: 15040 IVPASS = IVPASS + 1 02240018
228: WRITE (I02,80001) IVTNUM 02250018
229: GO TO 5051 02260018
230: 25040 IVFAIL = IVFAIL + 1 02270018
231: IVCOMP = IVON01 02280018
232: IVCORR = 1 02290018
233: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02300018
234: 5051 CONTINUE 02310018
235: IVTNUM = 505 02320018
236: C 02330018
237: C **** TEST 505 **** 02340018
238: C TEST 505 - TEST OF PARENTHESES WITH .AND. FALSE PATH 02350018
239: C 02360018
240: C 02370018
241: IF (ICZERO) 35050, 5050, 35050 02380018
242: 5050 CONTINUE 02390018
243: IVON01 = 1 02400018
244: LCTNT1 = .FALSE. 02410018
245: LCTNT2 = .FALSE. 02420018
246: IF ( (LCTNT1) .AND. LCTNT2 ) IVON01 = 0 02430018
247: GO TO 45050 02440018
248: 35050 IVDELE = IVDELE + 1 02450018
249: WRITE (I02,80003) IVTNUM 02460018
250: IF (ICZERO) 45050, 5061, 45050 02470018
251: 45050 IF ( IVON01 - 1 ) 25050, 15050, 25050 02480018
252: 15050 IVPASS = IVPASS + 1 02490018
253: WRITE (I02,80001) IVTNUM 02500018
254: GO TO 5061 02510018
255: 25050 IVFAIL = IVFAIL + 1 02520018
256: IVCOMP = IVON01 02530018
257: IVCORR = 1 02540018
258: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02550018
259: 5061 CONTINUE 02560018
260: IVTNUM = 506 02570018
261: C 02580018
262: C **** TEST 506 **** 02590018
263: C TEST 506 - LIKE TEST 505 FALSE PATH 02600018
264: C 02610018
265: C 02620018
266: IF (ICZERO) 35060, 5060, 35060 02630018
267: 5060 CONTINUE 02640018
268: IVON01 = 1 02650018
269: LCTNT1 = .FALSE. 02660018
270: LCTNT2 = .TRUE. 02670018
271: IF ( LCTNT1 .AND. (LCTNT2) ) IVON01 = 0 02680018
272: GO TO 45060 02690018
273: 35060 IVDELE = IVDELE + 1 02700018
274: WRITE (I02,80003) IVTNUM 02710018
275: IF (ICZERO) 45060, 5071, 45060 02720018
276: 45060 IF ( IVON01 - 1 ) 25060, 15060, 25060 02730018
277: 15060 IVPASS = IVPASS + 1 02740018
278: WRITE (I02,80001) IVTNUM 02750018
279: GO TO 5071 02760018
280: 25060 IVFAIL = IVFAIL + 1 02770018
281: IVCOMP = IVON01 02780018
282: IVCORR = 1 02790018
283: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02800018
284: 5071 CONTINUE 02810018
285: IVTNUM = 507 02820018
286: C 02830018
287: C **** TEST 507 **** 02840018
288: C TEST 507 - MORE PARENTHESES WITH LOGICAL .AND. FALSE PATH 02850018
289: C 02860018
290: C 02870018
291: IF (ICZERO) 35070, 5070, 35070 02880018
292: 5070 CONTINUE 02890018
293: IVON01 = 1 02900018
294: LCTNT1 = .TRUE. 02910018
295: LCTNT2 = .FALSE. 02920018
296: IF ( (LCTNT1) .AND. (LCTNT2) ) IVON01 = 0 02930018
297: GO TO 45070 02940018
298: 35070 IVDELE = IVDELE + 1 02950018
299: WRITE (I02,80003) IVTNUM 02960018
300: IF (ICZERO) 45070, 5081, 45070 02970018
301: 45070 IF ( IVON01 - 1 ) 25070, 15070, 25070 02980018
302: 15070 IVPASS = IVPASS + 1 02990018
303: WRITE (I02,80001) IVTNUM 03000018
304: GO TO 5081 03010018
305: 25070 IVFAIL = IVFAIL + 1 03020018
306: IVCOMP = IVON01 03030018
307: IVCORR = 1 03040018
308: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03050018
309: 5081 CONTINUE 03060018
310: IVTNUM = 508 03070018
311: C 03080018
312: C **** TEST 508 **** 03090018
313: C TEST 508 - TEST OF LOGICAL .NOT. WITH PARENTHESES AROUND A LOGIC03100018
314: C PRIMARY. FOR THIS TEST A LOGICAL ARRAY ELEMENT IS USED AS 03110018
315: C THE LOGICAL PRIMARY. .NOT. (FALSE) TRUE PATH. 03120018
316: C 03130018
317: C 03140018
318: IF (ICZERO) 35080, 5080, 35080 03150018
319: 5080 CONTINUE 03160018
320: IVON01 = 0 03170018
321: LATN1A(1) = .FALSE. 03180018
322: IF ( .NOT. (LATN1A(1)) ) IVON01 = 1 03190018
323: GO TO 45080 03200018
324: 35080 IVDELE = IVDELE + 1 03210018
325: WRITE (I02,80003) IVTNUM 03220018
326: IF (ICZERO) 45080, 5091, 45080 03230018
327: 45080 IF ( IVON01 - 1 ) 25080, 15080, 25080 03240018
328: 15080 IVPASS = IVPASS + 1 03250018
329: WRITE (I02,80001) IVTNUM 03260018
330: GO TO 5091 03270018
331: 25080 IVFAIL = IVFAIL + 1 03280018
332: IVCOMP = IVON01 03290018
333: IVCORR = 1 03300018
334: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03310018
335: 5091 CONTINUE 03320018
336: IVTNUM = 509 03330018
337: C 03340018
338: C **** TEST 509 **** 03350018
339: C TEST 509 - LIKE TEST 508 EXCEPT THAT THE WHOLE EXPRESSION 03360018
340: C IS IN PARENTHESES. FALSE PATH 03370018
341: C 03380018
342: C 03390018
343: IF (ICZERO) 35090, 5090, 35090 03400018
344: 5090 CONTINUE 03410018
345: IVON01 = 1 03420018
346: LATN1A(2) = .TRUE. 03430018
347: IF ( ( .NOT. (LATN1A(2)) ) ) IVON01 = 0 03440018
348: GO TO 45090 03450018
349: 35090 IVDELE = IVDELE + 1 03460018
350: WRITE (I02,80003) IVTNUM 03470018
351: IF (ICZERO) 45090, 5101, 45090 03480018
352: 45090 IF ( IVON01 - 1 ) 25090, 15090, 25090 03490018
353: 15090 IVPASS = IVPASS + 1 03500018
354: WRITE (I02,80001) IVTNUM 03510018
355: GO TO 5101 03520018
356: 25090 IVFAIL = IVFAIL + 1 03530018
357: IVCOMP = IVON01 03540018
358: IVCORR = 1 03550018
359: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03560018
360: 5101 CONTINUE 03570018
361: IVTNUM = 510 03580018
362: C 03590018
363: C **** TEST 510 **** 03600018
364: C TEST 510 - INTEGER CONSTANT EXPONIENTATION 03610018
365: C RELATIONAL EXPRESSION USING .EQ. TRUE PATH 03620018
366: C 03630018
367: C 03640018
368: IF (ICZERO) 35100, 5100, 35100 03650018
369: 5100 CONTINUE 03660018
370: IVON01 = 0 03670018
371: IF ( 3 ** 3 .EQ. 27 ) IVON01 = 1 03680018
372: GO TO 45100 03690018
373: 35100 IVDELE = IVDELE + 1 03700018
374: WRITE (I02,80003) IVTNUM 03710018
375: IF (ICZERO) 45100, 5111, 45100 03720018
376: 45100 IF ( IVON01 - 1 ) 25100, 15100, 25100 03730018
377: 15100 IVPASS = IVPASS + 1 03740018
378: WRITE (I02,80001) IVTNUM 03750018
379: GO TO 5111 03760018
380: 25100 IVFAIL = IVFAIL + 1 03770018
381: IVCOMP = IVON01 03780018
382: IVCORR = 1 03790018
383: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03800018
384: 5111 CONTINUE 03810018
385: IVTNUM = 511 03820018
386: C 03830018
387: C **** TEST 511 **** 03840018
388: C TEST 511 - EXPONIENTIATION USING AN INTEGER VARIABLE 03850018
389: C RELATIONAL EXPRESSION USING .NE. FALSE PATH 03860018
390: C 03870018
391: C 03880018
392: IF (ICZERO) 35110, 5110, 35110 03890018
393: 5110 CONTINUE 03900018
394: IVON01 = 1 03910018
395: IVON02 = 3 03920018
396: IF ( IVON02 ** 3 .NE. 27 ) IVON01 = 0 03930018
397: GO TO 45110 03940018
398: 35110 IVDELE = IVDELE + 1 03950018
399: WRITE (I02,80003) IVTNUM 03960018
400: IF (ICZERO) 45110, 5121, 45110 03970018
401: 45110 IF ( IVON01 - 1 ) 25110, 15110, 25110 03980018
402: 15110 IVPASS = IVPASS + 1 03990018
403: WRITE (I02,80001) IVTNUM 04000018
404: GO TO 5121 04010018
405: 25110 IVFAIL = IVFAIL + 1 04020018
406: IVCOMP = IVON01 04030018
407: IVCORR = 1 04040018
408: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04050018
409: 5121 CONTINUE 04060018
410: IVTNUM = 512 04070018
411: C 04080018
412: C **** TEST 512 **** 04090018
413: C TEST 512 - LIKE TEST 511 USES .LE. TRUE PATH 04100018
414: C 04110018
415: C 04120018
416: IF (ICZERO) 35120, 5120, 35120 04130018
417: 5120 CONTINUE 04140018
418: IVON01 = 0 04150018
419: IVON02 = 3 04160018
420: IF ( 3 ** IVON02 .LE. 27 ) IVON01 = 1 04170018
421: GO TO 45120 04180018
422: 35120 IVDELE = IVDELE + 1 04190018
423: WRITE (I02,80003) IVTNUM 04200018
424: IF (ICZERO) 45120, 5131, 45120 04210018
425: 45120 IF ( IVON01 - 1 ) 25120, 15120, 25120 04220018
426: 15120 IVPASS = IVPASS + 1 04230018
427: WRITE (I02,80001) IVTNUM 04240018
428: GO TO 5131 04250018
429: 25120 IVFAIL = IVFAIL + 1 04260018
430: IVCOMP = IVON01 04270018
431: IVCORR = 1 04280018
432: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04290018
433: 5131 CONTINUE 04300018
434: IVTNUM = 513 04310018
435: C 04320018
436: C **** TEST 513 **** 04330018
437: C TEST 513 - LIKE TEST 511 BUT USES ALL INTEGER VARIABLES 04340018
438: C RELATIONAL EXPRESSION USES .LT. FALSE PATH 04350018
439: C 04360018
440: C 04370018
441: IF (ICZERO) 35130, 5130, 35130 04380018
442: 5130 CONTINUE 04390018
443: IVON01 = 1 04400018
444: IVON02 = 3 04410018
445: IVON03 = 27 04420018
446: IF ( IVON02 ** IVON02 .LT. IVON03 ) IVON01 = 0 04430018
447: GO TO 45130 04440018
448: 35130 IVDELE = IVDELE + 1 04450018
449: WRITE (I02,80003) IVTNUM 04460018
450: IF (ICZERO) 45130, 5141, 45130 04470018
451: 45130 IF ( IVON01 - 1 ) 25130, 15130, 25130 04480018
452: 15130 IVPASS = IVPASS + 1 04490018
453: WRITE (I02,80001) IVTNUM 04500018
454: GO TO 5141 04510018
455: 25130 IVFAIL = IVFAIL + 1 04520018
456: IVCOMP = IVON01 04530018
457: IVCORR = 1 04540018
458: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04550018
459: 5141 CONTINUE 04560018
460: IVTNUM = 514 04570018
461: C 04580018
462: C **** TEST 514 **** 04590018
463: C TEST 514 - LIKE TEST 511 BUT USES INTEGER ARRAY ELEMENTS 04600018
464: C RELATIONAL EXPRESSION USES .GE. TRUE PATH 04610018
465: C 04620018
466: C 04630018
467: IF (ICZERO) 35140, 5140, 35140 04640018
468: 5140 CONTINUE 04650018
469: IVON01 = 0 04660018
470: IVON02 = 3 04670018
471: IADN11(1) = 3 04680018
472: IADN11(2) = 27 04690018
473: IF ( IADN11(1) ** IVON02 .GE. IADN11(2) ) IVON01 = 1 04700018
474: GO TO 45140 04710018
475: 35140 IVDELE = IVDELE + 1 04720018
476: WRITE (I02,80003) IVTNUM 04730018
477: IF (ICZERO) 45140, 5151, 45140 04740018
478: 45140 IF ( IVON01 - 1 ) 25140, 15140, 25140 04750018
479: 15140 IVPASS = IVPASS + 1 04760018
480: WRITE (I02,80001) IVTNUM 04770018
481: GO TO 5151 04780018
482: 25140 IVFAIL = IVFAIL + 1 04790018
483: IVCOMP = IVON01 04800018
484: IVCORR = 1 04810018
485: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04820018
486: 5151 CONTINUE 04830018
487: IVTNUM = 515 04840018
488: C 04850018
489: C **** TEST 515 **** 04860018
490: C TEST 515 - LIKE TEST 514 BUT USES ALL INTEGER ARRAY ELEMENTS 04870018
491: C RELATIONAL EXPRESSION USES .GT. FALSE PATH 04880018
492: C 04890018
493: C 04900018
494: IF (ICZERO) 35150, 5150, 35150 04910018
495: 5150 CONTINUE 04920018
496: IVON01 = 1 04930018
497: IADN11(1) = 3 04940018
498: IADN11(2) = 27 04950018
499: IF ( IADN11(1) ** IADN11(1) .GT. IADN11(2) ) IVON01 = 0 04960018
500: GO TO 45150 04970018
501: 35150 IVDELE = IVDELE + 1 04980018
502: WRITE (I02,80003) IVTNUM 04990018
503: IF (ICZERO) 45150, 5161, 45150 05000018
504: 45150 IF ( IVON01 - 1 ) 25150, 15150, 25150 05010018
505: 15150 IVPASS = IVPASS + 1 05020018
506: WRITE (I02,80001) IVTNUM 05030018
507: GO TO 5161 05040018
508: 25150 IVFAIL = IVFAIL + 1 05050018
509: IVCOMP = IVON01 05060018
510: IVCORR = 1 05070018
511: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05080018
512: 5161 CONTINUE 05090018
513: IVTNUM = 516 05100018
514: C 05110018
515: C **** TEST 516 **** 05120018
516: C TEST 516 - TEST OF INTEGER MULTIPLICATION USING INTEGER 05130018
517: C CONSTANTS. RELATIONAL EXPRESSION USES .LT. TRUE PATH 05140018
518: C 05150018
519: C 05160018
520: IF (ICZERO) 35160, 5160, 35160 05170018
521: 5160 CONTINUE 05180018
522: IVON01 = 0 05190018
523: IVON02 = 587 05200018
524: IF ( 3 * 3 .LT. IVON02 ) IVON01 = 1 05210018
525: GO TO 45160 05220018
526: 35160 IVDELE = IVDELE + 1 05230018
527: WRITE (I02,80003) IVTNUM 05240018
528: IF (ICZERO) 45160, 5171, 45160 05250018
529: 45160 IF ( IVON01 - 1 ) 25160, 15160, 25160 05260018
530: 15160 IVPASS = IVPASS + 1 05270018
531: WRITE (I02,80001) IVTNUM 05280018
532: GO TO 5171 05290018
533: 25160 IVFAIL = IVFAIL + 1 05300018
534: IVCOMP = IVON01 05310018
535: IVCORR = 1 05320018
536: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05330018
537: 5171 CONTINUE 05340018
538: IVTNUM = 517 05350018
539: C 05360018
540: C **** TEST 517 **** 05370018
541: C TEST 517 - INTEGER MULTIPLICATION WITH INTEGER CONSTANTS, 05380018
542: C VARIABLES, AND ARRAY ELEMENTS. RELATIONAL EXPRESSION USES 05390018
543: C .GT. FALSE PATH 05400018
544: C 05410018
545: C 05420018
546: IF (ICZERO) 35170, 5170, 35170 05430018
547: 5170 CONTINUE 05440018
548: IVON01 = 1 05450018
549: IVON02 = 32767 05460018
550: IADN11(1) = 3 05470018
551: IF ( IADN11(1) * 587 .GT. IVON02 ) IVON01 = 0 05480018
552: GO TO 45170 05490018
553: 35170 IVDELE = IVDELE + 1 05500018
554: WRITE (I02,80003) IVTNUM 05510018
555: IF (ICZERO) 45170, 5181, 45170 05520018
556: 45170 IF ( IVON01 - 1 ) 25170, 15170, 25170 05530018
557: 15170 IVPASS = IVPASS + 1 05540018
558: WRITE (I02,80001) IVTNUM 05550018
559: GO TO 5181 05560018
560: 25170 IVFAIL = IVFAIL + 1 05570018
561: IVCOMP = IVON01 05580018
562: IVCORR = 1 05590018
563: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05600018
564: 5181 CONTINUE 05610018
565: IVTNUM = 518 05620018
566: C 05630018
567: C **** TEST 518 **** 05640018
568: C TEST 518 - INTEGER MULTIPLICATION AND EXPONIENTATION 05650018
569: C RELATIONAL EXPRESSION USES .EQ. TRUE PATH 05660018
570: C 05670018
571: C 05680018
572: IF (ICZERO) 35180, 5180, 35180 05690018
573: 5180 CONTINUE 05700018
574: IVON01 = 0 05710018
575: IVON02 = 3 05720018
576: IVON03 = 27 05730018
577: IADN11(2) = 3 05740018
578: IF ( IADN11(2) ** 2 * IVON02 .EQ. IVON03 ) IVON01 = 1 05750018
579: GO TO 45180 05760018
580: 35180 IVDELE = IVDELE + 1 05770018
581: WRITE (I02,80003) IVTNUM 05780018
582: IF (ICZERO) 45180, 5191, 45180 05790018
583: 45180 IF ( IVON01 - 1 ) 25180, 15180, 25180 05800018
584: 15180 IVPASS = IVPASS + 1 05810018
585: WRITE (I02,80001) IVTNUM 05820018
586: GO TO 5191 05830018
587: 25180 IVFAIL = IVFAIL + 1 05840018
588: IVCOMP = IVON01 05850018
589: IVCORR = 1 05860018
590: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05870018
591: 5191 CONTINUE 05880018
592: IVTNUM = 519 05890018
593: C 05900018
594: C **** TEST 519 **** 05910018
595: C TEST 519 - INTEGER DIVISION. RELATIONAL EXPRESSION .NE. 05920018
596: C FALSE PATH 05930018
597: C 05940018
598: C 05950018
599: IF (ICZERO) 35190, 5190, 35190 05960018
600: 5190 CONTINUE 05970018
601: IVON01 = 1 05980018
602: IVON02 = 27 05990018
603: IADN11(1) = 3 06000018
604: IF ( IVON02 / 9 .NE. IADN11(1) ) IVON01 = 0 06010018
605: GO TO 45190 06020018
606: 35190 IVDELE = IVDELE + 1 06030018
607: WRITE (I02,80003) IVTNUM 06040018
608: IF (ICZERO) 45190, 5201, 45190 06050018
609: 45190 IF ( IVON01 - 1 ) 25190, 15190, 25190 06060018
610: 15190 IVPASS = IVPASS + 1 06070018
611: WRITE (I02,80001) IVTNUM 06080018
612: GO TO 5201 06090018
613: 25190 IVFAIL = IVFAIL + 1 06100018
614: IVCOMP = IVON01 06110018
615: IVCORR = 1 06120018
616: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06130018
617: 5201 CONTINUE 06140018
618: IVTNUM = 520 06150018
619: C 06160018
620: C **** TEST 520 **** 06170018
621: C TEST 520 - INTEGER VARIABLE DIVISION. RELATIONAL EXPRESSION 06180018
622: C USES .GE. TRUE PATH 06190018
623: C 06200018
624: C 06210018
625: IF (ICZERO) 35200, 5200, 35200 06220018
626: 5200 CONTINUE 06230018
627: IVON01 = 0 06240018
628: IVON02 = 32767 06250018
629: IVON03 = 3 06260018
630: IVON04 = 9999 06270018
631: IVON05 = 587 06280018
632: IF ( IVON02 / IVON03 .GE. IVON04 / IVON05 ) IVON01 = 1 06290018
633: GO TO 45200 06300018
634: 35200 IVDELE = IVDELE + 1 06310018
635: WRITE (I02,80003) IVTNUM 06320018
636: IF (ICZERO) 45200, 5211, 45200 06330018
637: 45200 IF ( IVON01 - 1 ) 25200, 15200, 25200 06340018
638: 15200 IVPASS = IVPASS + 1 06350018
639: WRITE (I02,80001) IVTNUM 06360018
640: GO TO 5211 06370018
641: 25200 IVFAIL = IVFAIL + 1 06380018
642: IVCOMP = IVON01 06390018
643: IVCORR = 1 06400018
644: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06410018
645: 5211 CONTINUE 06420018
646: IVTNUM = 521 06430018
647: C 06440018
648: C **** TEST 521 **** 06450018
649: C TEST 521 - INTEGER DIVISION AND EXPONIENTATION 06460018
650: C RELATIONAL EXPRESSION USES .LT. FALSE PATH 06470018
651: C 06480018
652: C 06490018
653: IF (ICZERO) 35210, 5210, 35210 06500018
654: 5210 CONTINUE 06510018
655: IVON01 = 1 06520018
656: IVON02 = 587 06530018
657: IVON03 = 3 06540018
658: IADN11(2) = 3 06550018
659: IF ( IVON02 / IADN11(2) ** 3 .LT. 3 ** IVON03 / IVON02 ) IVON01 =006560018
660: IF ( IVON02 / IADN11(2) ** 3 .LT. 3 ** IVON03 / IVON02 ) IVON01=006570018
661: GO TO 45210 06580018
662: 35210 IVDELE = IVDELE + 1 06590018
663: WRITE (I02,80003) IVTNUM 06600018
664: IF (ICZERO) 45210, 5221, 45210 06610018
665: 45210 IF ( IVON01 - 1 ) 25210, 15210, 25210 06620018
666: 15210 IVPASS = IVPASS + 1 06630018
667: WRITE (I02,80001) IVTNUM 06640018
668: GO TO 5221 06650018
669: 25210 IVFAIL = IVFAIL + 1 06660018
670: IVCOMP = IVON01 06670018
671: IVCORR = 1 06680018
672: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06690018
673: 5221 CONTINUE 06700018
674: IVTNUM = 522 06710018
675: C 06720018
676: C **** TEST 522 **** 06730018
677: C TEST 522 - TESTS 522 THRU 535 ARE TESTS OF SIGNED TERMS 06740018
678: C +(T) ALSO -(T) 06750018
679: C RELATIONAL EXPRESSION USES .GT. TRUE PATH 06760018
680: C 06770018
681: C 06780018
682: IF (ICZERO) 35220, 5220, 35220 06790018
683: 5220 CONTINUE 06800018
684: IVON01 = 0 06810018
685: IF ( 3 .GT. -3 ) IVON01 = 1 06820018
686: GO TO 45220 06830018
687: 35220 IVDELE = IVDELE + 1 06840018
688: WRITE (I02,80003) IVTNUM 06850018
689: IF (ICZERO) 45220, 5231, 45220 06860018
690: 45220 IF ( IVON01 - 1 ) 25220, 15220, 25220 06870018
691: 15220 IVPASS = IVPASS + 1 06880018
692: WRITE (I02,80001) IVTNUM 06890018
693: GO TO 5231 06900018
694: 25220 IVFAIL = IVFAIL + 1 06910018
695: IVCOMP = IVON01 06920018
696: IVCORR = 1 06930018
697: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06940018
698: 5231 CONTINUE 06950018
699: IVTNUM = 523 06960018
700: C 06970018
701: C **** TEST 523 **** 06980018
702: C TEST 523 - TEST OF SIGNED ZERO .LT. FALSE PATH 06990018
703: C 07000018
704: C 07010018
705: IF (ICZERO) 35230, 5230, 35230 07020018
706: 5230 CONTINUE 07030018
707: IVON01 = 1 07040018
708: IF ( 0 .LT. -0 ) IVON01 = 0 07050018
709: GO TO 45230 07060018
710: 35230 IVDELE = IVDELE + 1 07070018
711: WRITE (I02,80003) IVTNUM 07080018
712: IF (ICZERO) 45230, 5241, 45230 07090018
713: 45230 IF ( IVON01 - 1 ) 25230, 15230, 25230 07100018
714: 15230 IVPASS = IVPASS + 1 07110018
715: WRITE (I02,80001) IVTNUM 07120018
716: GO TO 5241 07130018
717: 25230 IVFAIL = IVFAIL + 1 07140018
718: IVCOMP = IVON01 07150018
719: IVCORR = 1 07160018
720: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07170018
721: 5241 CONTINUE 07180018
722: IVTNUM = 524 07190018
723: C 07200018
724: C **** TEST 524 **** 07210018
725: C TEST 524 - TEST OF SIGNED ZERO .LE. TRUE PATH 07220018
726: C 07230018
727: C 07240018
728: IF (ICZERO) 35240, 5240, 35240 07250018
729: 5240 CONTINUE 07260018
730: IVON01 = 0 07270018
731: IF ( 0 .LE. -0 ) IVON01 = 1 07280018
732: GO TO 45240 07290018
733: 35240 IVDELE = IVDELE + 1 07300018
734: WRITE (I02,80003) IVTNUM 07310018
735: IF (ICZERO) 45240, 5251, 45240 07320018
736: 45240 IF ( IVON01 - 1 ) 25240, 15240, 25240 07330018
737: 15240 IVPASS = IVPASS + 1 07340018
738: WRITE (I02,80001) IVTNUM 07350018
739: GO TO 5251 07360018
740: 25240 IVFAIL = IVFAIL + 1 07370018
741: IVCOMP = IVON01 07380018
742: IVCORR = 1 07390018
743: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07400018
744: 5251 CONTINUE 07410018
745: IVTNUM = 525 07420018
746: C 07430018
747: C **** TEST 525 **** 07440018
748: C TEST 525 - TEST OF SIGNED ZERO .EQ. TRUE PATH 07450018
749: C 07460018
750: C 07470018
751: IF (ICZERO) 35250, 5250, 35250 07480018
752: 5250 CONTINUE 07490018
753: IVON01 = 0 07500018
754: IF ( 0 .EQ. -0 ) IVON01 = 1 07510018
755: GO TO 45250 07520018
756: 35250 IVDELE = IVDELE + 1 07530018
757: WRITE (I02,80003) IVTNUM 07540018
758: IF (ICZERO) 45250, 5261, 45250 07550018
759: 45250 IF ( IVON01 - 1 ) 25250, 15250, 25250 07560018
760: 15250 IVPASS = IVPASS + 1 07570018
761: WRITE (I02,80001) IVTNUM 07580018
762: GO TO 5261 07590018
763: 25250 IVFAIL = IVFAIL + 1 07600018
764: IVCOMP = IVON01 07610018
765: IVCORR = 1 07620018
766: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07630018
767: 5261 CONTINUE 07640018
768: IVTNUM = 526 07650018
769: C 07660018
770: C **** TEST 526 **** 07670018
771: C TEST 526 - TEST OF SIGNED ZERO .NE. FALSE PATH 07680018
772: C 07690018
773: C 07700018
774: IF (ICZERO) 35260, 5260, 35260 07710018
775: 5260 CONTINUE 07720018
776: IVON01 = 1 07730018
777: IF ( 0 .NE. -0 ) IVON01 = 0 07740018
778: GO TO 45260 07750018
779: 35260 IVDELE = IVDELE + 1 07760018
780: WRITE (I02,80003) IVTNUM 07770018
781: IF (ICZERO) 45260, 5271, 45260 07780018
782: 45260 IF ( IVON01 - 1 ) 25260, 15260, 25260 07790018
783: 15260 IVPASS = IVPASS + 1 07800018
784: WRITE (I02,80001) IVTNUM 07810018
785: GO TO 5271 07820018
786: 25260 IVFAIL = IVFAIL + 1 07830018
787: IVCOMP = IVON01 07840018
788: IVCORR = 1 07850018
789: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07860018
790: 5271 CONTINUE 07870018
791: IVTNUM = 527 07880018
792: C 07890018
793: C **** TEST 527 **** 07900018
794: C TEST 527 - TEST OF SIGNED ZERO .GE. TRUE PATH 07910018
795: C 07920018
796: C 07930018
797: IF (ICZERO) 35270, 5270, 35270 07940018
798: 5270 CONTINUE 07950018
799: IVON01 = 0 07960018
800: IF ( 0 .GE. -0 ) IVON01 = 1 07970018
801: GO TO 45270 07980018
802: 35270 IVDELE = IVDELE + 1 07990018
803: WRITE (I02,80003) IVTNUM 08000018
804: IF (ICZERO) 45270, 5281, 45270 08010018
805: 45270 IF ( IVON01 - 1 ) 25270, 15270, 25270 08020018
806: 15270 IVPASS = IVPASS + 1 08030018
807: WRITE (I02,80001) IVTNUM 08040018
808: GO TO 5281 08050018
809: 25270 IVFAIL = IVFAIL + 1 08060018
810: IVCOMP = IVON01 08070018
811: IVCORR = 1 08080018
812: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 08090018
813: 5281 CONTINUE 08100018
814: IVTNUM = 528 08110018
815: C 08120018
816: C **** TEST 528 **** 08130018
817: C TEST 528 - TEST OF SIGNED ZERO .GT. FALSE PATH 08140018
818: C 08150018
819: C 08160018
820: IF (ICZERO) 35280, 5280, 35280 08170018
821: 5280 CONTINUE 08180018
822: IVON01 = 1 08190018
823: IF ( 0 .GT. -0 ) IVON01 = 0 08200018
824: GO TO 45280 08210018
825: 35280 IVDELE = IVDELE + 1 08220018
826: WRITE (I02,80003) IVTNUM 08230018
827: IF (ICZERO) 45280, 5291, 45280 08240018
828: 45280 IF ( IVON01 - 1 ) 25280, 15280, 25280 08250018
829: 15280 IVPASS = IVPASS + 1 08260018
830: WRITE (I02,80001) IVTNUM 08270018
831: GO TO 5291 08280018
832: 25280 IVFAIL = IVFAIL + 1 08290018
833: IVCOMP = IVON01 08300018
834: IVCORR = 1 08310018
835: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 08320018
836: 5291 CONTINUE 08330018
837: IVTNUM = 529 08340018
838: C 08350018
839: C **** TEST 529 **** 08360018
840: C TEST 529 - TEST OF 32767 AND -32766 .GT. TRUE PATH 08370018
841: C 08380018
842: C 08390018
843: IF (ICZERO) 35290, 5290, 35290 08400018
844: 5290 CONTINUE 08410018
845: IVON01 = 0 08420018
846: IF ( 32767 .GT. -32766 ) IVON01 = 1 08430018
847: GO TO 45290 08440018
848: 35290 IVDELE = IVDELE + 1 08450018
849: WRITE (I02,80003) IVTNUM 08460018
850: IF (ICZERO) 45290, 5301, 45290 08470018
851: 45290 IF ( IVON01 - 1 ) 25290, 15290, 25290 08480018
852: 15290 IVPASS = IVPASS + 1 08490018
853: WRITE (I02,80001) IVTNUM 08500018
854: GO TO 5301 08510018
855: 25290 IVFAIL = IVFAIL + 1 08520018
856: IVCOMP = IVON01 08530018
857: IVCORR = 1 08540018
858: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 08550018
859: 5301 CONTINUE 08560018
860: C 08570018
861: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 08580018
862: 99999 CONTINUE 08590018
863: WRITE (I02,90002) 08600018
864: WRITE (I02,90006) 08610018
865: WRITE (I02,90002) 08620018
866: WRITE (I02,90002) 08630018
867: WRITE (I02,90007) 08640018
868: WRITE (I02,90002) 08650018
869: WRITE (I02,90008) IVFAIL 08660018
870: WRITE (I02,90009) IVPASS 08670018
871: WRITE (I02,90010) IVDELE 08680018
872: C 08690018
873: C 08700018
874: C TERMINATE ROUTINE EXECUTION 08710018
875: STOP 08720018
876: C 08730018
877: C FORMAT STATEMENTS FOR PAGE HEADERS 08740018
878: 90000 FORMAT (1H1) 08750018
879: 90002 FORMAT (1H ) 08760018
880: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 08770018
881: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 08780018
882: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 08790018
883: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 08800018
884: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 08810018
885: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 08820018
886: C 08830018
887: C FORMAT STATEMENTS FOR RUN SUMMARIES 08840018
888: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 08850018
889: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 08860018
890: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 08870018
891: C 08880018
892: C FORMAT STATEMENTS FOR TEST RESULTS 08890018
893: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 08900018
894: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 08910018
895: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 08920018
896: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 08930018
897: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 08940018
898: C 08950018
899: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM018) 08960018
900: END 08970018
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.