|
|
1.1 root 1: C COMMENT SECTION. 00010008
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 00020008
6: C FM008 00030008
7: C 00040008
8: C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050008
9: C FORM INTEGER VARIABLE = ARITHMETIC EXPRESSION 00060008
10: C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00070008
11: C OPERATOR + INTEGER CONSTANTS AND POSITIVE INTEGER VARIABLES. 00080008
12: C SOME OF THE TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE 00090008
13: C ARITHMETIC EXPRESSION. 00100008
14: C 00110008
15: C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00120008
16: C (1) TWO INTEGER CONSTANTS, 00130008
17: C (2) THREE INTEGER CONSTANTS, 00140008
18: C (3) THREE INTEGER CONSTANTS WITH PARENTHESES TO GROUP 00150008
19: C ELEMENTS, 00160008
20: C (4) ONE INTEGER VARIABLE AND ONE INTEGER CONSTANT, 00170008
21: C (5) ONE INTEGER VARIABLE AND TWO INTEGER CONSTANTS, 00180008
22: C (6) ONE INTEGER VARIABLE AND TWO INTEGER CONSTANTS WITH 00190008
23: C PARENTHESES TO GROUP ELEMENTS. 00200008
24: C 00210008
25: C 00220008
26: C REFERENCES 00230008
27: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00240008
28: C X3.9-1978 00250008
29: C 00260008
30: C SECTION 4.3, INTEGER TYPE 00270008
31: C SECTION 4.3.1, INTEGER CONSTANT 00280008
32: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00290008
33: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENTS 00300008
34: C 00310008
35: C 00320008
36: C ********************************************************** 00330008
37: C 00340008
38: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00350008
39: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00360008
40: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00370008
41: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00380008
42: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00390008
43: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00400008
44: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00410008
45: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00420008
46: C OF EXECUTING THESE TESTS. 00430008
47: C 00440008
48: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00450008
49: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00460008
50: C 00470008
51: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00480008
52: C 00490008
53: C DEPARTMENT OF THE NAVY 00500008
54: C FEDERAL COBOL COMPILER TESTING SERVICE 00510008
55: C WASHINGTON, D.C. 20376 00520008
56: C 00530008
57: C ********************************************************** 00540008
58: C 00550008
59: C 00560008
60: C 00570008
61: C INITIALIZATION SECTION 00580008
62: C 00590008
63: C INITIALIZE CONSTANTS 00600008
64: C ************** 00610008
65: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00620008
66: I01 = 5 00630008
67: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00640008
68: I02 = 6 00650008
69: C SYSTEM ENVIRONMENT SECTION 00660008
70: C 00670008
71: I01 = 5 00680008
72: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00690008
73: C (UNIT NUMBER FOR CARD READER). 00700008
74: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00710008
75: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00720008
76: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00730008
77: C 00740008
78: I02 = 6 00750008
79: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00760008
80: C (UNIT NUMBER FOR PRINTER). 00770008
81: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00780008
82: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00790008
83: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00800008
84: C 00810008
85: IVPASS=0 00820008
86: IVFAIL=0 00830008
87: IVDELE=0 00840008
88: ICZERO=0 00850008
89: C 00860008
90: C WRITE PAGE HEADERS 00870008
91: WRITE (I02,90000) 00880008
92: WRITE (I02,90001) 00890008
93: WRITE (I02,90002) 00900008
94: WRITE (I02, 90002) 00910008
95: WRITE (I02,90003) 00920008
96: WRITE (I02,90002) 00930008
97: WRITE (I02,90004) 00940008
98: WRITE (I02,90002) 00950008
99: WRITE (I02,90011) 00960008
100: WRITE (I02,90002) 00970008
101: WRITE (I02,90002) 00980008
102: WRITE (I02,90005) 00990008
103: WRITE (I02,90006) 01000008
104: WRITE (I02,90002) 01010008
105: C TEST SECTION 01020008
106: C 01030008
107: C ARITHMETIC ASSIGNMENT STATEMENT 01040008
108: C 01050008
109: C TEST 200 THROUGH TEST 214 CONTAIN INTEGER CONSTANTS AND OPERATOR +01060008
110: C IN ARITHMETIC EXPRESSION. 01070008
111: C 01080008
112: C TEST 200 THROUGH TEST 206 - TWO INTEGER CONSTANTS 01090008
113: C 01100008
114: 2001 CONTINUE 01110008
115: IVTNUM = 200 01120008
116: C 01130008
117: C **** TEST 200 **** 01140008
118: C 01150008
119: IF (ICZERO) 32000, 2000, 32000 01160008
120: 2000 CONTINUE 01170008
121: IVCOMP = 2+3 01180008
122: GO TO 42000 01190008
123: 32000 IVDELE = IVDELE + 1 01200008
124: WRITE (I02,80003) IVTNUM 01210008
125: IF (ICZERO) 42000, 2011, 42000 01220008
126: 42000 IF (IVCOMP - 5) 22000,12000,22000 01230008
127: 12000 IVPASS = IVPASS + 1 01240008
128: WRITE (I02,80001) IVTNUM 01250008
129: GO TO 2011 01260008
130: 22000 IVFAIL = IVFAIL + 1 01270008
131: IVCORR = 5 01280008
132: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01290008
133: 2011 CONTINUE 01300008
134: IVTNUM = 201 01310008
135: C 01320008
136: C **** TEST 201 **** 01330008
137: C 01340008
138: IF (ICZERO) 32010, 2010, 32010 01350008
139: 2010 CONTINUE 01360008
140: IVCOMP = 51 + 52 01370008
141: GO TO 42010 01380008
142: 32010 IVDELE = IVDELE + 1 01390008
143: WRITE (I02,80003) IVTNUM 01400008
144: IF (ICZERO) 42010, 2021, 42010 01410008
145: 42010 IF (IVCOMP - 103) 22010,12010,22010 01420008
146: 12010 IVPASS = IVPASS + 1 01430008
147: WRITE (I02,80001) IVTNUM 01440008
148: GO TO 2021 01450008
149: 22010 IVFAIL = IVFAIL + 1 01460008
150: IVCORR = 103 01470008
151: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01480008
152: 2021 CONTINUE 01490008
153: IVTNUM = 202 01500008
154: C 01510008
155: C **** TEST 202 **** 01520008
156: C 01530008
157: IF (ICZERO) 32020, 2020, 32020 01540008
158: 2020 CONTINUE 01550008
159: IVCOMP = 189 + 676 01560008
160: GO TO 42020 01570008
161: 32020 IVDELE = IVDELE + 1 01580008
162: WRITE (I02,80003) IVTNUM 01590008
163: IF (ICZERO) 42020, 2031, 42020 01600008
164: 42020 IF (IVCOMP - 865) 22020,12020,22020 01610008
165: 12020 IVPASS = IVPASS + 1 01620008
166: WRITE (I02,80001) IVTNUM 01630008
167: GO TO 2031 01640008
168: 22020 IVFAIL = IVFAIL + 1 01650008
169: IVCORR = 865 01660008
170: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01670008
171: 2031 CONTINUE 01680008
172: IVTNUM = 203 01690008
173: C 01700008
174: C **** TEST 203 **** 01710008
175: C 01720008
176: IF (ICZERO) 32030, 2030, 32030 01730008
177: 2030 CONTINUE 01740008
178: IVCOMP = 1358 + 8001 01750008
179: GO TO 42030 01760008
180: 32030 IVDELE = IVDELE + 1 01770008
181: WRITE (I02,80003) IVTNUM 01780008
182: IF (ICZERO) 42030, 2041, 42030 01790008
183: 42030 IF (IVCOMP - 9359) 22030, 12030, 22030 01800008
184: 12030 IVPASS = IVPASS + 1 01810008
185: WRITE (I02,80001) IVTNUM 01820008
186: GO TO 2041 01830008
187: 22030 IVFAIL = IVFAIL + 1 01840008
188: IVCORR = 9359 01850008
189: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01860008
190: 2041 CONTINUE 01870008
191: IVTNUM = 204 01880008
192: C 01890008
193: C **** TEST 204 **** 01900008
194: C 01910008
195: IF (ICZERO) 32040, 2040, 32040 01920008
196: 2040 CONTINUE 01930008
197: IVCOMP = 11112 + 10001 01940008
198: GO TO 42040 01950008
199: 32040 IVDELE = IVDELE + 1 01960008
200: WRITE (I02,80003) IVTNUM 01970008
201: IF (ICZERO) 42040, 2051, 42040 01980008
202: 42040 IF (IVCOMP - 21113) 22040, 12040, 22040 01990008
203: 12040 IVPASS = IVPASS + 1 02000008
204: WRITE (I02,80001) IVTNUM 02010008
205: GO TO 2051 02020008
206: 22040 IVFAIL = IVFAIL + 1 02030008
207: IVCORR=21113 02040008
208: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02050008
209: 2051 CONTINUE 02060008
210: IVTNUM = 205 02070008
211: C 02080008
212: C **** TEST 205 **** 02090008
213: C 02100008
214: IF (ICZERO) 32050, 2050, 32050 02110008
215: 2050 CONTINUE 02120008
216: IVCOMP = 189 + 9876 02130008
217: GO TO 42050 02140008
218: 32050 IVDELE = IVDELE + 1 02150008
219: WRITE (I02,80003) IVTNUM 02160008
220: IF (ICZERO) 42050, 2061, 42050 02170008
221: 42050 IF (IVCOMP - 10065) 22050,12050,22050 02180008
222: 12050 IVPASS = IVPASS + 1 02190008
223: WRITE (I02,80001) IVTNUM 02200008
224: GO TO 2061 02210008
225: 22050 IVFAIL = IVFAIL + 1 02220008
226: IVCORR = 10065 02230008
227: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02240008
228: 2061 CONTINUE 02250008
229: IVTNUM = 206 02260008
230: C 02270008
231: C **** TEST 206 **** 02280008
232: C REQUIRES 32767 02290008
233: C 02300008
234: IF (ICZERO) 32060, 2060, 32060 02310008
235: 2060 CONTINUE 02320008
236: IVCOMP = 32752 + 15 02330008
237: GO TO 42060 02340008
238: 32060 IVDELE = IVDELE + 1 02350008
239: WRITE (I02,80003) IVTNUM 02360008
240: IF (ICZERO) 42060, 2071, 42060 02370008
241: 42060 IF (IVCOMP - 32767) 22060,12060,22060 02380008
242: 12060 IVPASS = IVPASS + 1 02390008
243: WRITE (I02,80001) IVTNUM 02400008
244: GO TO 2071 02410008
245: 22060 IVFAIL = IVFAIL + 1 02420008
246: IVCORR = 32767 02430008
247: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02440008
248: C 02450008
249: C TEST 207 THROUGH TEST 210 - THREE INTEGER CONSTANTS 02460008
250: C 02470008
251: 2071 CONTINUE 02480008
252: IVTNUM = 207 02490008
253: C 02500008
254: C **** TEST 207 **** 02510008
255: C 02520008
256: IF (ICZERO) 32070, 2070, 32070 02530008
257: 2070 CONTINUE 02540008
258: IVCOMP = 2+3+4 02550008
259: GO TO 42070 02560008
260: 32070 IVDELE = IVDELE + 1 02570008
261: WRITE (I02,80003) IVTNUM 02580008
262: IF (ICZERO) 42070, 2081, 42070 02590008
263: 42070 IF (IVCOMP - 9) 22070,12070,22070 02600008
264: 12070 IVPASS = IVPASS + 1 02610008
265: WRITE (I02,80001) IVTNUM 02620008
266: GO TO 2081 02630008
267: 22070 IVFAIL = IVFAIL + 1 02640008
268: IVCORR = 9 02650008
269: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02660008
270: 2081 CONTINUE 02670008
271: IVTNUM = 208 02680008
272: C 02690008
273: C **** TEST 208 **** 02700008
274: C 02710008
275: IF (ICZERO) 32080, 2080, 32080 02720008
276: 2080 CONTINUE 02730008
277: IVCOMP = 51 + 52 + 53 02740008
278: GO TO 42080 02750008
279: 32080 IVDELE = IVDELE + 1 02760008
280: WRITE (I02,80003) IVTNUM 02770008
281: IF (ICZERO) 42080, 2091, 42080 02780008
282: 42080 IF (IVCOMP - 156) 22080,12080,22080 02790008
283: 12080 IVPASS = IVPASS + 1 02800008
284: WRITE (I02,80001) IVTNUM 02810008
285: GO TO 2091 02820008
286: 22080 IVFAIL = IVFAIL + 1 02830008
287: IVCORR = 156 02840008
288: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02850008
289: 2091 CONTINUE 02860008
290: IVTNUM = 209 02870008
291: C 02880008
292: C **** TEST 209 **** 02890008
293: C 02900008
294: IF (ICZERO) 32090, 2090, 32090 02910008
295: 2090 CONTINUE 02920008
296: IVCOMP = 189 +676+101 02930008
297: GO TO 42090 02940008
298: 32090 IVDELE = IVDELE + 1 02950008
299: WRITE (I02,80003) IVTNUM 02960008
300: IF (ICZERO) 42090, 2101, 42090 02970008
301: 42090 IF (IVCOMP - 966) 22090,12090,22090 02980008
302: 12090 IVPASS = IVPASS + 1 02990008
303: WRITE (I02,80001) IVTNUM 03000008
304: GO TO 2101 03010008
305: 22090 IVFAIL = IVFAIL + 1 03020008
306: IVCORR = 966 03030008
307: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03040008
308: 2101 CONTINUE 03050008
309: IVTNUM = 210 03060008
310: C 03070008
311: C **** TEST 210 **** 03080008
312: C 03090008
313: IF (ICZERO) 32100, 2100, 32100 03100008
314: 2100 CONTINUE 03110008
315: IVCOMP = 1358 + 8001 + 2189 03120008
316: GO TO 42100 03130008
317: 32100 IVDELE = IVDELE + 1 03140008
318: WRITE (I02,80003) IVTNUM 03150008
319: IF (ICZERO) 42100, 2111, 42100 03160008
320: 42100 IF (IVCOMP - 11548) 22100,12100,22100 03170008
321: 12100 IVPASS = IVPASS + 1 03180008
322: WRITE (I02,80001) IVTNUM 03190008
323: GO TO 2111 03200008
324: 22100 IVFAIL = IVFAIL + 1 03210008
325: IVCORR = 11548 03220008
326: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03230008
327: C 03240008
328: C TESTS 211 THROUGH 214 ARE THE SAME AS 207 THROUGH 210 EXCEPT 03250008
329: C PARENTHESES ARE USED TO GROUP THE CONSTANTS. 03260008
330: C 03270008
331: 2111 CONTINUE 03280008
332: IVTNUM = 211 03290008
333: C 03300008
334: C **** TEST 211 **** 03310008
335: C 03320008
336: IF (ICZERO) 32110, 2110, 32110 03330008
337: 2110 CONTINUE 03340008
338: IVCOMP = (2+3)+4 03350008
339: GO TO 42110 03360008
340: 32110 IVDELE = IVDELE + 1 03370008
341: WRITE (I02,80003) IVTNUM 03380008
342: IF (ICZERO) 42110, 2121, 42110 03390008
343: 42110 IF (IVCOMP -9) 22110,12110,22110 03400008
344: 12110 IVPASS = IVPASS + 1 03410008
345: WRITE (I02,80001) IVTNUM 03420008
346: GO TO 2121 03430008
347: 22110 IVFAIL = IVFAIL + 1 03440008
348: IVCORR = 9 03450008
349: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03460008
350: 2121 CONTINUE 03470008
351: IVTNUM = 212 03480008
352: C 03490008
353: C **** TEST 212 **** 03500008
354: C 03510008
355: IF (ICZERO) 32120, 2120, 32120 03520008
356: 2120 CONTINUE 03530008
357: IVCOMP = 51+(52+53) 03540008
358: GO TO 42120 03550008
359: 32120 IVDELE = IVDELE + 1 03560008
360: WRITE (I02,80003) IVTNUM 03570008
361: IF (ICZERO) 42120, 2131, 42120 03580008
362: 42120 IF (IVCOMP - 156) 22120,12120,22120 03590008
363: 12120 IVPASS = IVPASS + 1 03600008
364: WRITE (I02,80001) IVTNUM 03610008
365: GO TO 2131 03620008
366: 22120 IVFAIL = IVFAIL + 1 03630008
367: IVCORR = 156 03640008
368: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03650008
369: 2131 CONTINUE 03660008
370: IVTNUM = 213 03670008
371: C 03680008
372: C **** TEST 213 **** 03690008
373: C 03700008
374: IF (ICZERO) 32130, 2130, 32130 03710008
375: 2130 CONTINUE 03720008
376: IVCOMP = 189 +(676+101) 03730008
377: GO TO 42130 03740008
378: 32130 IVDELE = IVDELE + 1 03750008
379: WRITE (I02,80003) IVTNUM 03760008
380: IF (ICZERO) 42130, 2141, 42130 03770008
381: 42130 IF (IVCOMP - 966) 22130,12130,22130 03780008
382: 12130 IVPASS = IVPASS + 1 03790008
383: WRITE (I02,80001) IVTNUM 03800008
384: GO TO 2141 03810008
385: 22130 IVFAIL = IVFAIL + 1 03820008
386: IVCORR = 966 03830008
387: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03840008
388: 2141 CONTINUE 03850008
389: IVTNUM = 214 03860008
390: C 03870008
391: C **** TEST 214 **** 03880008
392: C 03890008
393: IF (ICZERO) 32140, 2140, 32140 03900008
394: 2140 CONTINUE 03910008
395: IVCOMP = (1358+2189) + 8001 03920008
396: GO TO 42140 03930008
397: 32140 IVDELE = IVDELE + 1 03940008
398: WRITE (I02,80003) IVTNUM 03950008
399: IF (ICZERO) 42140, 2151, 42140 03960008
400: 42140 IF (IVCOMP - 11548) 22140,12140,22140 03970008
401: 12140 IVPASS = IVPASS + 1 03980008
402: WRITE (I02,80001) IVTNUM 03990008
403: GO TO 2151 04000008
404: 22140 IVFAIL = IVFAIL + 1 04010008
405: IVCORR = 11548 04020008
406: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04030008
407: C 04040008
408: C TEST 215 THROUGH TEST 234 CONTAIN INTEGER VARIABLES, INTEGER 04050008
409: C CONSTANTS AND THE OPERATOR + IN ARITHMETIC EXPRESSION. 04060008
410: C 04070008
411: C TEST 215 THROUGH TEST 219 - ONE INTEGER VARIABLE AND ONE INTEGER 04080008
412: C CONSTANT IN ARITHMETIC EXPRESSION. 04090008
413: C 04100008
414: 2151 CONTINUE 04110008
415: IVTNUM = 215 04120008
416: C 04130008
417: C **** TEST 215 **** 04140008
418: C 04150008
419: IF (ICZERO) 32150, 2150, 32150 04160008
420: 2150 CONTINUE 04170008
421: IVON01 = 2 04180008
422: IVCOMP = IVON01 + 3 04190008
423: GO TO 42150 04200008
424: 32150 IVDELE = IVDELE + 1 04210008
425: WRITE (I02,80003) IVTNUM 04220008
426: IF (ICZERO) 42150, 2161, 42150 04230008
427: 42150 IF (IVCOMP - 5) 22150,12150,22150 04240008
428: 12150 IVPASS = IVPASS + 1 04250008
429: WRITE (I02,80001) IVTNUM 04260008
430: GO TO 2161 04270008
431: 22150 IVFAIL = IVFAIL + 1 04280008
432: IVCORR=5 04290008
433: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04300008
434: 2161 CONTINUE 04310008
435: IVTNUM = 216 04320008
436: C 04330008
437: C **** TEST 216 **** 04340008
438: C 04350008
439: IF (ICZERO) 32160, 2160, 32160 04360008
440: 2160 CONTINUE 04370008
441: IVON01 = 3 04380008
442: IVCOMP = 2 + IVON01 04390008
443: GO TO 42160 04400008
444: 32160 IVDELE = IVDELE + 1 04410008
445: WRITE (I02,80003) IVTNUM 04420008
446: IF (ICZERO) 42160, 2171, 42160 04430008
447: 42160 IF (IVCOMP - 5) 22160,12160,22160 04440008
448: 12160 IVPASS = IVPASS + 1 04450008
449: WRITE (I02,80001) IVTNUM 04460008
450: GO TO 2171 04470008
451: 22160 IVFAIL = IVFAIL + 1 04480008
452: IVCORR = 5 04490008
453: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04500008
454: 2171 CONTINUE 04510008
455: IVTNUM = 217 04520008
456: C 04530008
457: C **** TEST 217 **** 04540008
458: C 04550008
459: IF (ICZERO) 32170, 2170, 32170 04560008
460: 2170 CONTINUE 04570008
461: IVON01 = 51 04580008
462: IVCOMP = IVON01 +52 04590008
463: GO TO 42170 04600008
464: 32170 IVDELE = IVDELE + 1 04610008
465: WRITE (I02,80003) IVTNUM 04620008
466: IF (ICZERO) 42170, 2181, 42170 04630008
467: 42170 IF (IVCOMP - 103) 22170,12170,22170 04640008
468: 12170 IVPASS = IVPASS + 1 04650008
469: WRITE (I02,80001) IVTNUM 04660008
470: GO TO 2181 04670008
471: 22170 IVFAIL = IVFAIL + 1 04680008
472: IVCORR = 103 04690008
473: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04700008
474: 2181 CONTINUE 04710008
475: IVTNUM = 218 04720008
476: C 04730008
477: C **** TEST 218 **** 04740008
478: C 04750008
479: IF (ICZERO) 32180, 2180, 32180 04760008
480: 2180 CONTINUE 04770008
481: IVON01 = 676 04780008
482: IVCOMP = 189 + IVON01 04790008
483: GO TO 42180 04800008
484: 32180 IVDELE = IVDELE + 1 04810008
485: WRITE (I02,80003) IVTNUM 04820008
486: IF (ICZERO) 42180, 2191, 42180 04830008
487: 42180 IF (IVCOMP - 865) 22180,12180,22180 04840008
488: 12180 IVPASS = IVPASS + 1 04850008
489: WRITE (I02,80001) IVTNUM 04860008
490: GO TO 2191 04870008
491: 22180 IVFAIL = IVFAIL + 1 04880008
492: IVCORR = 865 04890008
493: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04900008
494: 2191 CONTINUE 04910008
495: IVTNUM = 219 04920008
496: C 04930008
497: C **** TEST 219 **** 04940008
498: C 04950008
499: IF (ICZERO) 32190, 2190, 32190 04960008
500: 2190 CONTINUE 04970008
501: IVON01 = 1358 04980008
502: IVCOMP = IVON01 + 8001 04990008
503: GO TO 42190 05000008
504: 32190 IVDELE = IVDELE + 1 05010008
505: WRITE (I02,80003) IVTNUM 05020008
506: IF (ICZERO) 42190, 2201, 42190 05030008
507: 42190 IF (IVCOMP - 9359) 22190,12190,22190 05040008
508: 12190 IVPASS = IVPASS + 1 05050008
509: WRITE (I02,80001) IVTNUM 05060008
510: GO TO 2201 05070008
511: 22190 IVFAIL = IVFAIL + 1 05080008
512: IVCORR = 9359 05090008
513: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05100008
514: C 05110008
515: C TEST 220 THROUGH TEST 224 - ONE INTEGER VARIABLE, TWO INTEGER 05120008
516: C CONSTANTS IN ARITHMETIC EXPRESSION. 05130008
517: C 05140008
518: 2201 CONTINUE 05150008
519: IVTNUM = 220 05160008
520: C 05170008
521: C **** TEST 220 **** 05180008
522: C 05190008
523: IF (ICZERO) 32200, 2200, 32200 05200008
524: 2200 CONTINUE 05210008
525: IVON01 = 2 05220008
526: IVCOMP = IVON01 +3 +4 05230008
527: GO TO 42200 05240008
528: 32200 IVDELE = IVDELE + 1 05250008
529: WRITE (I02,80003) IVTNUM 05260008
530: IF (ICZERO) 42200, 2211, 42200 05270008
531: 42200 IF (IVCOMP - 9) 22200,12200,22200 05280008
532: 12200 IVPASS = IVPASS + 1 05290008
533: WRITE (I02,80001) IVTNUM 05300008
534: GO TO 2211 05310008
535: 22200 IVFAIL = IVFAIL + 1 05320008
536: IVCORR = 9 05330008
537: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05340008
538: 2211 CONTINUE 05350008
539: IVTNUM = 221 05360008
540: C 05370008
541: C **** TEST 221 **** 05380008
542: C 05390008
543: IF (ICZERO) 32210, 2210, 32210 05400008
544: 2210 CONTINUE 05410008
545: IVON01 = 3 05420008
546: IVCOMP = 2+IVON01+4 05430008
547: GO TO 42210 05440008
548: 32210 IVDELE = IVDELE + 1 05450008
549: WRITE (I02,80003) IVTNUM 05460008
550: IF (ICZERO) 42210, 2221, 42210 05470008
551: 42210 IF (IVCOMP - 9) 22210,12210,22210 05480008
552: 12210 IVPASS = IVPASS + 1 05490008
553: WRITE (I02,80001) IVTNUM 05500008
554: GO TO 2221 05510008
555: 22210 IVFAIL = IVFAIL + 1 05520008
556: IVCORR = 9 05530008
557: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05540008
558: 2221 CONTINUE 05550008
559: IVTNUM = 222 05560008
560: C 05570008
561: C **** TEST 222 **** 05580008
562: C 05590008
563: IF (ICZERO) 32220, 2220, 32220 05600008
564: 2220 CONTINUE 05610008
565: IVON01 = 4 05620008
566: IVCOMP= 2+3+IVON01 05630008
567: GO TO 42220 05640008
568: 32220 IVDELE = IVDELE + 1 05650008
569: WRITE (I02,80003) IVTNUM 05660008
570: IF (ICZERO) 42220, 2231, 42220 05670008
571: 42220 IF (IVCOMP - 9) 22220,12220,22220 05680008
572: 12220 IVPASS = IVPASS + 1 05690008
573: WRITE (I02,80001) IVTNUM 05700008
574: GO TO 2231 05710008
575: 22220 IVFAIL = IVFAIL + 1 05720008
576: IVCORR = 9 05730008
577: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05740008
578: 2231 CONTINUE 05750008
579: IVTNUM = 223 05760008
580: C 05770008
581: C **** TEST 223 **** 05780008
582: C 05790008
583: IF (ICZERO) 32230, 2230, 32230 05800008
584: 2230 CONTINUE 05810008
585: IVON01 = 2189 05820008
586: IVCOMP = 1358+IVON01+8001 05830008
587: GO TO 42230 05840008
588: 32230 IVDELE = IVDELE + 1 05850008
589: WRITE (I02,80003) IVTNUM 05860008
590: IF (ICZERO) 42230, 2241, 42230 05870008
591: 42230 IF (IVCOMP - 11548) 22230,12230,22230 05880008
592: 12230 IVPASS = IVPASS + 1 05890008
593: WRITE (I02,80001) IVTNUM 05900008
594: GO TO 2241 05910008
595: 22230 IVFAIL = IVFAIL + 1 05920008
596: IVCORR=11548 05930008
597: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05940008
598: 2241 CONTINUE 05950008
599: IVTNUM = 224 05960008
600: C 05970008
601: C **** TEST 224 **** 05980008
602: C 05990008
603: IF (ICZERO) 32240, 2240, 32240 06000008
604: 2240 CONTINUE 06010008
605: IVON01 = 11111 06020008
606: IVCOMP = 11111 + IVON01 + 10111 06030008
607: GO TO 42240 06040008
608: 32240 IVDELE = IVDELE + 1 06050008
609: WRITE (I02,80003) IVTNUM 06060008
610: IF (ICZERO) 42240, 2251, 42240 06070008
611: 42240 IF (IVCOMP - 32333) 22240,12240,22240 06080008
612: 12240 IVPASS = IVPASS + 1 06090008
613: WRITE (I02,80001) IVTNUM 06100008
614: GO TO 2251 06110008
615: 22240 IVFAIL = IVFAIL + 1 06120008
616: IVCORR = 32333 06130008
617: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06140008
618: C 06150008
619: C TEST 225 THROUGH TEST 234 USE PARENTHESES TO GROUP ELEMENTS IN 06160008
620: C AN ARITHMETIC EXPRESSION. THE RESULTS ARE THE SAME AS TESTS 06170008
621: C 220 THROUGH 224. 06180008
622: C 06190008
623: 2251 CONTINUE 06200008
624: IVTNUM = 225 06210008
625: C 06220008
626: C **** TEST 225 **** 06230008
627: C 06240008
628: IF (ICZERO) 32250, 2250, 32250 06250008
629: 2250 CONTINUE 06260008
630: IVON01 = 2 06270008
631: IVCOMP = (IVON01 +3) + 4 06280008
632: GO TO 42250 06290008
633: 32250 IVDELE = IVDELE + 1 06300008
634: WRITE (I02,80003) IVTNUM 06310008
635: IF (ICZERO) 42250, 2261, 42250 06320008
636: 42250 IF (IVCOMP -9) 22250,12250,22250 06330008
637: 12250 IVPASS = IVPASS + 1 06340008
638: WRITE (I02,80001) IVTNUM 06350008
639: GO TO 2261 06360008
640: 22250 IVFAIL = IVFAIL + 1 06370008
641: IVCORR = 9 06380008
642: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06390008
643: 2261 CONTINUE 06400008
644: IVTNUM = 226 06410008
645: C 06420008
646: C **** TEST 226 **** 06430008
647: C 06440008
648: IF (ICZERO) 32260, 2260, 32260 06450008
649: 2260 CONTINUE 06460008
650: IVON01 = 2 06470008
651: IVCOMP = IVON01 + (3+4) 06480008
652: GO TO 42260 06490008
653: 32260 IVDELE = IVDELE + 1 06500008
654: WRITE (I02,80003) IVTNUM 06510008
655: IF (ICZERO) 42260, 2271, 42260 06520008
656: 42260 IF (IVCOMP - 9) 22260,12260,22260 06530008
657: 12260 IVPASS = IVPASS + 1 06540008
658: WRITE (I02,80001) IVTNUM 06550008
659: GO TO 2271 06560008
660: 22260 IVFAIL = IVFAIL + 1 06570008
661: IVCORR = 9 06580008
662: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06590008
663: 2271 CONTINUE 06600008
664: IVTNUM = 227 06610008
665: C 06620008
666: C **** TEST 227 **** 06630008
667: C 06640008
668: IF (ICZERO) 32270, 2270, 32270 06650008
669: 2270 CONTINUE 06660008
670: IVON01 = 3 06670008
671: IVCOMP = (2+IVON01) + 4 06680008
672: GO TO 42270 06690008
673: 32270 IVDELE = IVDELE + 1 06700008
674: WRITE (I02,80003) IVTNUM 06710008
675: IF (ICZERO) 42270, 2281, 42270 06720008
676: 42270 IF (IVCOMP - 9) 22270,12270,22270 06730008
677: 12270 IVPASS = IVPASS + 1 06740008
678: WRITE (I02,80001) IVTNUM 06750008
679: GO TO 2281 06760008
680: 22270 IVFAIL = IVFAIL + 1 06770008
681: IVCORR = 9 06780008
682: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06790008
683: 2281 CONTINUE 06800008
684: IVTNUM = 228 06810008
685: C 06820008
686: C **** TEST 228 **** 06830008
687: C 06840008
688: IF (ICZERO) 32280, 2280, 32280 06850008
689: 2280 CONTINUE 06860008
690: IVON01 = 3 06870008
691: IVCOMP = 2 +(IVON01+4) 06880008
692: GO TO 42280 06890008
693: 32280 IVDELE = IVDELE + 1 06900008
694: WRITE (I02,80003) IVTNUM 06910008
695: IF (ICZERO) 42280, 2291, 42280 06920008
696: 42280 IF (IVCOMP - 9) 22280, 12280, 22280 06930008
697: 12280 IVPASS = IVPASS + 1 06940008
698: WRITE (I02,80001) IVTNUM 06950008
699: GO TO 2291 06960008
700: 22280 IVFAIL = IVFAIL + 1 06970008
701: IVCORR = 9 06980008
702: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06990008
703: 2291 CONTINUE 07000008
704: IVTNUM = 229 07010008
705: C 07020008
706: C **** TEST 229 **** 07030008
707: C 07040008
708: IF (ICZERO) 32290, 2290, 32290 07050008
709: 2290 CONTINUE 07060008
710: IVON01 = 4 07070008
711: IVCOMP = (2+3)+IVON01 07080008
712: GO TO 42290 07090008
713: 32290 IVDELE = IVDELE + 1 07100008
714: WRITE (I02,80003) IVTNUM 07110008
715: IF (ICZERO) 42290, 2301, 42290 07120008
716: 42290 IF (IVCOMP - 9) 22290,12290,22290 07130008
717: 12290 IVPASS = IVPASS + 1 07140008
718: WRITE (I02,80001) IVTNUM 07150008
719: GO TO 2301 07160008
720: 22290 IVFAIL = IVFAIL + 1 07170008
721: IVCORR = 9 07180008
722: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07190008
723: 2301 CONTINUE 07200008
724: IVTNUM = 230 07210008
725: C 07220008
726: C **** TEST 230 **** 07230008
727: C 07240008
728: IF (ICZERO) 32300, 2300, 32300 07250008
729: 2300 CONTINUE 07260008
730: IVON01 = 2189 07270008
731: IVCOMP = 1358 + (IVON01+8001) 07280008
732: GO TO 42300 07290008
733: 32300 IVDELE = IVDELE + 1 07300008
734: WRITE (I02,80003) IVTNUM 07310008
735: IF (ICZERO) 42300, 2311, 42300 07320008
736: 42300 IF (IVCOMP - 11548) 22300,12300,22300 07330008
737: 12300 IVPASS = IVPASS + 1 07340008
738: WRITE (I02,80001) IVTNUM 07350008
739: GO TO 2311 07360008
740: 22300 IVFAIL = IVFAIL + 1 07370008
741: IVCORR = 11548 07380008
742: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07390008
743: 2311 CONTINUE 07400008
744: IVTNUM = 231 07410008
745: C 07420008
746: C **** TEST 231 **** 07430008
747: C 07440008
748: IF (ICZERO) 32310, 2310, 32310 07450008
749: 2310 CONTINUE 07460008
750: IVON01 = 2189 07470008
751: IVCOMP = (1358+IVON01) + 8001 07480008
752: GO TO 42310 07490008
753: 32310 IVDELE = IVDELE + 1 07500008
754: WRITE (I02,80003) IVTNUM 07510008
755: IF (ICZERO) 42310, 2321, 42310 07520008
756: 42310 IF (IVCOMP - 11548) 22310,12310,22310 07530008
757: 12310 IVPASS = IVPASS + 1 07540008
758: WRITE (I02,80001) IVTNUM 07550008
759: GO TO 2321 07560008
760: 22310 IVFAIL = IVFAIL + 1 07570008
761: IVCORR = 11548 07580008
762: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07590008
763: 2321 CONTINUE 07600008
764: IVTNUM = 232 07610008
765: C 07620008
766: C **** TEST 232 **** 07630008
767: C 07640008
768: IF (ICZERO) 32320, 2320, 32320 07650008
769: 2320 CONTINUE 07660008
770: IVON01 = 11111 07670008
771: IVCOMP = (11111 + IVON01) + 10111 07680008
772: GO TO 42320 07690008
773: 32320 IVDELE = IVDELE + 1 07700008
774: WRITE (I02,80003) IVTNUM 07710008
775: IF (ICZERO) 42320, 2331, 42320 07720008
776: 42320 IF (IVCOMP - 32333) 22320,12320,22320 07730008
777: 12320 IVPASS = IVPASS + 1 07740008
778: WRITE (I02,80001) IVTNUM 07750008
779: GO TO 2331 07760008
780: 22320 IVFAIL = IVFAIL + 1 07770008
781: IVCORR = 32333 07780008
782: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07790008
783: 2331 CONTINUE 07800008
784: IVTNUM = 233 07810008
785: C 07820008
786: C **** TEST 233 **** 07830008
787: C 07840008
788: IF (ICZERO) 32330, 2330, 32330 07850008
789: 2330 CONTINUE 07860008
790: IVON01 = 11111 07870008
791: IVCOMP = (IVON01 + 10111) + 11111 07880008
792: GO TO 42330 07890008
793: 32330 IVDELE = IVDELE + 1 07900008
794: WRITE (I02,80003) IVTNUM 07910008
795: IF (ICZERO) 42330, 2341, 42330 07920008
796: 42330 IF (IVCOMP - 32333) 22330,12330,22330 07930008
797: 12330 IVPASS = IVPASS + 1 07940008
798: WRITE (I02,80001) IVTNUM 07950008
799: GO TO 2341 07960008
800: 22330 IVFAIL = IVFAIL + 1 07970008
801: IVCORR = 32333 07980008
802: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07990008
803: 2341 CONTINUE 08000008
804: IVTNUM = 234 08010008
805: C 08020008
806: C **** TEST 234 **** 08030008
807: C 08040008
808: IF (ICZERO) 32340, 2340, 32340 08050008
809: 2340 CONTINUE 08060008
810: IVON01 = 10111 08070008
811: IVCOMP = 11111 + (11111+IVON01) 08080008
812: GO TO 42340 08090008
813: 32340 IVDELE = IVDELE + 1 08100008
814: WRITE (I02,80003) IVTNUM 08110008
815: IF (ICZERO) 42340, 2351, 42340 08120008
816: 42340 IF (IVCOMP - 32333) 22340,12340,22340 08130008
817: 12340 IVPASS = IVPASS + 1 08140008
818: WRITE (I02,80001) IVTNUM 08150008
819: GO TO 2351 08160008
820: 22340 IVFAIL = IVFAIL + 1 08170008
821: IVCORR = 32333 08180008
822: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 08190008
823: 2351 CONTINUE 08200008
824: C 08210008
825: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 08220008
826: 99999 CONTINUE 08230008
827: WRITE (I02,90002) 08240008
828: WRITE (I02,90006) 08250008
829: WRITE (I02,90002) 08260008
830: WRITE (I02,90002) 08270008
831: WRITE (I02,90007) 08280008
832: WRITE (I02,90002) 08290008
833: WRITE (I02,90008) IVFAIL 08300008
834: WRITE (I02,90009) IVPASS 08310008
835: WRITE (I02,90010) IVDELE 08320008
836: C 08330008
837: C 08340008
838: C TERMINATE ROUTINE EXECUTION 08350008
839: STOP 08360008
840: C 08370008
841: C FORMAT STATEMENTS FOR PAGE HEADERS 08380008
842: 90000 FORMAT (1H1) 08390008
843: 90002 FORMAT (1H ) 08400008
844: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 08410008
845: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 08420008
846: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 08430008
847: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 08440008
848: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 08450008
849: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 08460008
850: C 08470008
851: C FORMAT STATEMENTS FOR RUN SUMMARIES 08480008
852: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 08490008
853: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 08500008
854: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 08510008
855: C 08520008
856: C FORMAT STATEMENTS FOR TEST RESULTS 08530008
857: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 08540008
858: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 08550008
859: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 08560008
860: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 08570008
861: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 08580008
862: C 08590008
863: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM008) 08600008
864: END 08610008
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.