|
|
1.1 root 1: C COMMENT SECTION 00010039
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 00020039
6: C FM039 00030039
7: C 00040039
8: C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050039
9: C FORM INTEGER VARIABLE = ARITHMETIC EXPRESSION 00060039
10: C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00070039
11: C OPERATOR /, INTEGER CONSTANTS AND AN INTEGER VARIABLE. BOTH 00080039
12: C POSITIVE AND NEGATIVE VALUES ARE USED FOR THE INTEGER CONSTANTS 00090039
13: C AND THE INTEGER VARIABLE. 00100039
14: C 00110039
15: C THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT 00120039
16: C AND TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED 00130039
17: C IN THE RESULTANT INTEGER VARIABLE. SOME OF THE TESTS USE PARENS 00140039
18: C TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSION. 00150039
19: C 00160039
20: C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00170039
21: C (1) INTEGER VARIABLE/INTEGER CONSTANT/INTEGER CONSTANT 00180039
22: C INTEGER CONSTANT/INTEGER VARIABLE/INTEGER CONSTANT 00190039
23: C INTEGER CONSTANT/INTEGER CONSTANT/INTEGER VARIABLE 00200039
24: C (2) SAME AS (1) BUT WITH PARENTHESES TO GROUP ELEMENTS 00210039
25: C IN THE ARITHMETIC EXPRESSION. 00220039
26: C 00230039
27: C REFERENCES 00240039
28: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00250039
29: C X3.9-1978 00260039
30: C 00270039
31: C SECTION 4.3, INTEGER TYPE 00280039
32: C SECTION 4.3.1, INTEGER CONSTANT 00290039
33: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00300039
34: C SECTION 6.6, EVALUATION OF EXPRESSIONS 00310039
35: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00320039
36: C 00330039
37: C ********************************************************** 00340039
38: C 00350039
39: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00360039
40: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00370039
41: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00380039
42: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00390039
43: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00400039
44: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00410039
45: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00420039
46: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00430039
47: C OF EXECUTING THESE TESTS. 00440039
48: C 00450039
49: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00460039
50: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00470039
51: C 00480039
52: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00490039
53: C 00500039
54: C DEPARTMENT OF THE NAVY 00510039
55: C FEDERAL COBOL COMPILER TESTING SERVICE 00520039
56: C WASHINGTON, D.C. 20376 00530039
57: C 00540039
58: C ********************************************************** 00550039
59: C 00560039
60: C 00570039
61: C 00580039
62: C INITIALIZATION SECTION 00590039
63: C 00600039
64: C INITIALIZE CONSTANTS 00610039
65: C ************** 00620039
66: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00630039
67: I01 = 5 00640039
68: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00650039
69: I02 = 6 00660039
70: C SYSTEM ENVIRONMENT SECTION 00670039
71: C 00680039
72: I01 = 5 00690039
73: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00700039
74: C (UNIT NUMBER FOR CARD READER). 00710039
75: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00720039
76: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00730039
77: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00740039
78: C 00750039
79: I02 = 6 00760039
80: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00770039
81: C (UNIT NUMBER FOR PRINTER). 00780039
82: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00790039
83: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00800039
84: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00810039
85: C 00820039
86: IVPASS=0 00830039
87: IVFAIL=0 00840039
88: IVDELE=0 00850039
89: ICZERO=0 00860039
90: C 00870039
91: C WRITE PAGE HEADERS 00880039
92: WRITE (I02,90000) 00890039
93: WRITE (I02,90001) 00900039
94: WRITE (I02,90002) 00910039
95: WRITE (I02, 90002) 00920039
96: WRITE (I02,90003) 00930039
97: WRITE (I02,90002) 00940039
98: WRITE (I02,90004) 00950039
99: WRITE (I02,90002) 00960039
100: WRITE (I02,90011) 00970039
101: WRITE (I02,90002) 00980039
102: WRITE (I02,90002) 00990039
103: WRITE (I02,90005) 01000039
104: WRITE (I02,90006) 01010039
105: WRITE (I02,90002) 01020039
106: C 01030039
107: C TEST SECTION 01040039
108: C 01050039
109: C ARITHMETIC ASSIGNMENT STATEMENT 01060039
110: C 01070039
111: C TEST 552 THROUGH TEST 557 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS01080039
112: C OF THE FORM IV = IV/IC/IC. 01090039
113: C 01100039
114: 5521 CONTINUE 01110039
115: IVTNUM = 552 01120039
116: C 01130039
117: C **** TEST 552 **** 01140039
118: C 01150039
119: IF (ICZERO) 35520, 5520, 35520 01160039
120: 5520 CONTINUE 01170039
121: IVON01 = 24 01180039
122: IVCOMP = IVON01/3/4 01190039
123: GO TO 45520 01200039
124: 35520 IVDELE = IVDELE + 1 01210039
125: WRITE (I02,80003) IVTNUM 01220039
126: IF (ICZERO) 45520, 5531, 45520 01230039
127: 45520 IF (IVCOMP - 2) 25520,15520,25520 01240039
128: 15520 IVPASS = IVPASS + 1 01250039
129: WRITE (I02,80001) IVTNUM 01260039
130: GO TO 5531 01270039
131: 25520 IVFAIL = IVFAIL + 1 01280039
132: IVCORR = 2 01290039
133: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01300039
134: 5531 CONTINUE 01310039
135: IVTNUM = 553 01320039
136: C 01330039
137: C **** TEST 553 **** 01340039
138: C 01350039
139: IF (ICZERO) 35530, 5530, 35530 01360039
140: 5530 CONTINUE 01370039
141: IVON01 = 7151 01380039
142: IVCOMP = IVON01/3/10 01390039
143: GO TO 45530 01400039
144: 35530 IVDELE = IVDELE + 1 01410039
145: WRITE (I02,80003) IVTNUM 01420039
146: IF (ICZERO) 45530, 5541, 45530 01430039
147: 45530 IF (IVCOMP - 238) 25530,15530,25530 01440039
148: 15530 IVPASS = IVPASS + 1 01450039
149: WRITE (I02,80001) IVTNUM 01460039
150: GO TO 5541 01470039
151: 25530 IVFAIL = IVFAIL + 1 01480039
152: IVCORR = 238 01490039
153: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01500039
154: 5541 CONTINUE 01510039
155: IVTNUM = 554 01520039
156: C 01530039
157: C **** TEST 554 **** 01540039
158: C 01550039
159: IF (ICZERO) 35540, 5540, 35540 01560039
160: 5540 CONTINUE 01570039
161: IVON01 = -330 01580039
162: IVCOMP = IVON01/3/2 01590039
163: GO TO 45540 01600039
164: 35540 IVDELE = IVDELE + 1 01610039
165: WRITE (I02,80003) IVTNUM 01620039
166: IF (ICZERO) 45540, 5551, 45540 01630039
167: 45540 IF (IVCOMP + 55) 25540,15540,25540 01640039
168: 15540 IVPASS = IVPASS + 1 01650039
169: WRITE (I02,80001) IVTNUM 01660039
170: GO TO 5551 01670039
171: 25540 IVFAIL = IVFAIL + 1 01680039
172: IVCORR = -55 01690039
173: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01700039
174: 5551 CONTINUE 01710039
175: IVTNUM = 555 01720039
176: C 01730039
177: C **** TEST 555 **** 01740039
178: C 01750039
179: IF (ICZERO) 35550, 5550, 35550 01760039
180: 5550 CONTINUE 01770039
181: IVON01 = 15249 01780039
182: IVCOMP = IVON01/(-13)/51 01790039
183: GO TO 45550 01800039
184: 35550 IVDELE = IVDELE + 1 01810039
185: WRITE (I02,80003) IVTNUM 01820039
186: IF (ICZERO) 45550, 5561, 45550 01830039
187: 45550 IF (IVCOMP + 23) 25550,15550,25550 01840039
188: 15550 IVPASS = IVPASS + 1 01850039
189: WRITE (I02,80001) IVTNUM 01860039
190: GO TO 5561 01870039
191: 25550 IVFAIL = IVFAIL + 1 01880039
192: IVCORR = -23 01890039
193: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01900039
194: 5561 CONTINUE 01910039
195: IVTNUM = 556 01920039
196: C 01930039
197: C **** TEST 556 **** 01940039
198: C 01950039
199: IF (ICZERO) 35560, 5560, 35560 01960039
200: 5560 CONTINUE 01970039
201: IVON01 = -27342 01980039
202: IVCOMP = IVON01/(-4)/(-3) 01990039
203: GO TO 45560 02000039
204: 35560 IVDELE = IVDELE + 1 02010039
205: WRITE (I02,80003) IVTNUM 02020039
206: IF (ICZERO) 45560, 5571, 45560 02030039
207: 45560 IF (IVCOMP + 2278) 25560,15560,25560 02040039
208: 15560 IVPASS = IVPASS + 1 02050039
209: WRITE (I02,80001) IVTNUM 02060039
210: GO TO 5571 02070039
211: 25560 IVFAIL = IVFAIL + 1 02080039
212: IVCORR = -2278 02090039
213: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02100039
214: 5571 CONTINUE 02110039
215: IVTNUM = 557 02120039
216: C 02130039
217: C **** TEST 557 **** 02140039
218: C 02150039
219: IF (ICZERO) 35570, 5570, 35570 02160039
220: 5570 CONTINUE 02170039
221: IVON01 = -27342 02180039
222: IVCOMP = -IVON01/4/(-3) 02190039
223: GO TO 45570 02200039
224: 35570 IVDELE = IVDELE + 1 02210039
225: WRITE (I02,80003) IVTNUM 02220039
226: IF (ICZERO) 45570, 5581, 45570 02230039
227: 45570 IF (IVCOMP + 2278) 25570,15570,25570 02240039
228: 15570 IVPASS = IVPASS + 1 02250039
229: WRITE (I02,80001) IVTNUM 02260039
230: GO TO 5581 02270039
231: 25570 IVFAIL = IVFAIL + 1 02280039
232: IVCORR = -2278 02290039
233: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02300039
234: C 02310039
235: C TEST 558 THROUGH TEST 563 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS02320039
236: C OF THE FORM IV=IC/IV/IC. 02330039
237: C 02340039
238: 5581 CONTINUE 02350039
239: IVTNUM = 558 02360039
240: C 02370039
241: C **** TEST 558 **** 02380039
242: C 02390039
243: IF (ICZERO) 35580, 5580, 35580 02400039
244: 5580 CONTINUE 02410039
245: IVON02 = 3 02420039
246: IVCOMP = 24/IVON02/4 02430039
247: GO TO 45580 02440039
248: 35580 IVDELE = IVDELE + 1 02450039
249: WRITE (I02,80003) IVTNUM 02460039
250: IF (ICZERO) 45580, 5591, 45580 02470039
251: 45580 IF (IVCOMP - 2) 25580,15580,25580 02480039
252: 15580 IVPASS = IVPASS + 1 02490039
253: WRITE (I02,80001) IVTNUM 02500039
254: GO TO 5591 02510039
255: 25580 IVFAIL = IVFAIL + 1 02520039
256: IVCORR = 2 02530039
257: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02540039
258: 5591 CONTINUE 02550039
259: IVTNUM = 559 02560039
260: C 02570039
261: C **** TEST 559 **** 02580039
262: C 02590039
263: IF (ICZERO) 35590, 5590, 35590 02600039
264: 5590 CONTINUE 02610039
265: IVON02 = 3 02620039
266: IVCOMP = 7151/IVON02/10 02630039
267: GO TO 45590 02640039
268: 35590 IVDELE = IVDELE + 1 02650039
269: WRITE (I02,80003) IVTNUM 02660039
270: IF (ICZERO) 45590, 5601, 45590 02670039
271: 45590 IF (IVCOMP - 238) 25590,15590,25590 02680039
272: 15590 IVPASS = IVPASS + 1 02690039
273: WRITE (I02,80001) IVTNUM 02700039
274: GO TO 5601 02710039
275: 25590 IVFAIL = IVFAIL + 1 02720039
276: IVCORR = 238 02730039
277: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02740039
278: 5601 CONTINUE 02750039
279: IVTNUM = 560 02760039
280: C 02770039
281: C **** TEST 560 **** 02780039
282: C 02790039
283: IF (ICZERO) 35600, 5600, 35600 02800039
284: 5600 CONTINUE 02810039
285: IVON02 = -3 02820039
286: IVCOMP = 330/IVON02/2 02830039
287: GO TO 45600 02840039
288: 35600 IVDELE = IVDELE + 1 02850039
289: WRITE (I02,80003) IVTNUM 02860039
290: IF (ICZERO) 45600, 5611, 45600 02870039
291: 45600 IF (IVCOMP +55) 25600,15600,25600 02880039
292: 15600 IVPASS = IVPASS + 1 02890039
293: WRITE (I02,80001) IVTNUM 02900039
294: GO TO 5611 02910039
295: 25600 IVFAIL = IVFAIL + 1 02920039
296: IVCORR = -55 02930039
297: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02940039
298: 5611 CONTINUE 02950039
299: IVTNUM = 561 02960039
300: C 02970039
301: C **** TEST 561 **** 02980039
302: C 02990039
303: IF (ICZERO) 35610, 5610, 35610 03000039
304: 5610 CONTINUE 03010039
305: IVON02 = +13 03020039
306: IVCOMP = 15249/IVON02/(-51) 03030039
307: GO TO 45610 03040039
308: 35610 IVDELE = IVDELE + 1 03050039
309: WRITE (I02,80003) IVTNUM 03060039
310: IF (ICZERO) 45610, 5621, 45610 03070039
311: 45610 IF (IVCOMP + 23) 25610,15610,25610 03080039
312: 15610 IVPASS = IVPASS + 1 03090039
313: WRITE (I02,80001) IVTNUM 03100039
314: GO TO 5621 03110039
315: 25610 IVFAIL = IVFAIL + 1 03120039
316: IVCORR = -23 03130039
317: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03140039
318: 5621 CONTINUE 03150039
319: IVTNUM = 562 03160039
320: C 03170039
321: C **** TEST 562 **** 03180039
322: C 03190039
323: IF (ICZERO) 35620, 5620, 35620 03200039
324: 5620 CONTINUE 03210039
325: IVON02 = -4 03220039
326: IVCOMP = (-27342)/IVON02/(-3) 03230039
327: GO TO 45620 03240039
328: 35620 IVDELE = IVDELE + 1 03250039
329: WRITE (I02,80003) IVTNUM 03260039
330: IF (ICZERO) 45620, 5631, 45620 03270039
331: 45620 IF (IVCOMP + 2278) 25620,15620,25620 03280039
332: 15620 IVPASS = IVPASS + 1 03290039
333: WRITE (I02,80001) IVTNUM 03300039
334: GO TO 5631 03310039
335: 25620 IVFAIL = IVFAIL + 1 03320039
336: IVCORR = -2278 03330039
337: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03340039
338: 5631 CONTINUE 03350039
339: IVTNUM = 563 03360039
340: C 03370039
341: C **** TEST 563 **** 03380039
342: C 03390039
343: IF (ICZERO) 35630, 5630, 35630 03400039
344: 5630 CONTINUE 03410039
345: IVON02 = -4 03420039
346: IVCOMP = -27342/(-IVON02)/(-3) 03430039
347: GO TO 45630 03440039
348: 35630 IVDELE = IVDELE + 1 03450039
349: WRITE (I02,80003) IVTNUM 03460039
350: IF (ICZERO) 45630, 5641, 45630 03470039
351: 45630 IF (IVCOMP - 2278) 25630,15630,25630 03480039
352: 15630 IVPASS = IVPASS + 1 03490039
353: WRITE (I02,80001) IVTNUM 03500039
354: GO TO 5641 03510039
355: 25630 IVFAIL = IVFAIL + 1 03520039
356: IVCORR = 2278 03530039
357: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03540039
358: C 03550039
359: C TEST 564 THROUGH TEST 569 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS03560039
360: C OF THE FORM IV = IC/IC/IV. 03570039
361: C 03580039
362: 5641 CONTINUE 03590039
363: IVTNUM = 564 03600039
364: C 03610039
365: C **** TEST 564 **** 03620039
366: C 03630039
367: IF (ICZERO) 35640, 5640, 35640 03640039
368: 5640 CONTINUE 03650039
369: IVON03 = 4 03660039
370: IVCOMP = 24/3/IVON03 03670039
371: GO TO 45640 03680039
372: 35640 IVDELE = IVDELE + 1 03690039
373: WRITE (I02,80003) IVTNUM 03700039
374: IF (ICZERO) 45640, 5651, 45640 03710039
375: 45640 IF (IVCOMP -2) 25640,15640,25640 03720039
376: 15640 IVPASS = IVPASS + 1 03730039
377: WRITE (I02,80001) IVTNUM 03740039
378: GO TO 5651 03750039
379: 25640 IVFAIL = IVFAIL + 1 03760039
380: IVCORR = 2 03770039
381: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03780039
382: 5651 CONTINUE 03790039
383: IVTNUM = 565 03800039
384: C 03810039
385: C **** TEST 565 **** 03820039
386: C 03830039
387: IF (ICZERO) 35650, 5650, 35650 03840039
388: 5650 CONTINUE 03850039
389: IVON03 = 10 03860039
390: IVCOMP = 7151/3/IVON03 03870039
391: GO TO 45650 03880039
392: 35650 IVDELE = IVDELE + 1 03890039
393: WRITE (I02,80003) IVTNUM 03900039
394: IF (ICZERO) 45650, 5661, 45650 03910039
395: 45650 IF (IVCOMP - 238) 25650,15650,25650 03920039
396: 15650 IVPASS = IVPASS + 1 03930039
397: WRITE (I02,80001) IVTNUM 03940039
398: GO TO 5661 03950039
399: 25650 IVFAIL = IVFAIL + 1 03960039
400: IVCORR = 238 03970039
401: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03980039
402: 5661 CONTINUE 03990039
403: IVTNUM = 566 04000039
404: C 04010039
405: C **** TEST 566 **** 04020039
406: C 04030039
407: IF (ICZERO) 35660, 5660, 35660 04040039
408: 5660 CONTINUE 04050039
409: IVON03 = -2 04060039
410: IVCOMP = 330/3/IVON03 04070039
411: GO TO 45660 04080039
412: 35660 IVDELE = IVDELE + 1 04090039
413: WRITE (I02,80003) IVTNUM 04100039
414: IF (ICZERO) 45660, 5671, 45660 04110039
415: 45660 IF (IVCOMP + 55) 25660,15660,25660 04120039
416: 15660 IVPASS = IVPASS + 1 04130039
417: WRITE (I02,80001) IVTNUM 04140039
418: GO TO 5671 04150039
419: 25660 IVFAIL = IVFAIL + 1 04160039
420: IVCORR = -55 04170039
421: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04180039
422: 5671 CONTINUE 04190039
423: IVTNUM = 567 04200039
424: C 04210039
425: C **** TEST 567 **** 04220039
426: C 04230039
427: IF (ICZERO) 35670, 5670, 35670 04240039
428: 5670 CONTINUE 04250039
429: IVON03 = +51 04260039
430: IVCOMP = 15249/(-13)/IVON03 04270039
431: GO TO 45670 04280039
432: 35670 IVDELE = IVDELE + 1 04290039
433: WRITE (I02,80003) IVTNUM 04300039
434: IF (ICZERO) 45670, 5681, 45670 04310039
435: 45670 IF (IVCOMP + 23) 25670,15670,25670 04320039
436: 15670 IVPASS = IVPASS + 1 04330039
437: WRITE (I02,80001) IVTNUM 04340039
438: GO TO 5681 04350039
439: 25670 IVFAIL = IVFAIL + 1 04360039
440: IVCORR = -23 04370039
441: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04380039
442: 5681 CONTINUE 04390039
443: IVTNUM = 568 04400039
444: C 04410039
445: C **** TEST 568 **** 04420039
446: C 04430039
447: IF (ICZERO) 35680, 5680, 35680 04440039
448: 5680 CONTINUE 04450039
449: IVON03 = -3 04460039
450: IVCOMP = (-27342)/(-4)/IVON03 04470039
451: GO TO 45680 04480039
452: 35680 IVDELE = IVDELE + 1 04490039
453: WRITE (I02,80003) IVTNUM 04500039
454: IF (ICZERO) 45680, 5691, 45680 04510039
455: 45680 IF (IVCOMP + 2278) 25680,15680,25680 04520039
456: 15680 IVPASS = IVPASS + 1 04530039
457: WRITE (I02,80001) IVTNUM 04540039
458: GO TO 5691 04550039
459: 25680 IVFAIL = IVFAIL + 1 04560039
460: IVCORR = -2278 04570039
461: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04580039
462: 5691 CONTINUE 04590039
463: IVTNUM = 569 04600039
464: C 04610039
465: C **** TEST 569 **** 04620039
466: C 04630039
467: IF (ICZERO) 35690, 5690, 35690 04640039
468: 5690 CONTINUE 04650039
469: IVON03 = -3 04660039
470: IVCOMP = -27342/(-4)/(-IVON03) 04670039
471: GO TO 45690 04680039
472: 35690 IVDELE = IVDELE + 1 04690039
473: WRITE (I02,80003) IVTNUM 04700039
474: IF (ICZERO) 45690, 5701, 45690 04710039
475: 45690 IF (IVCOMP - 2278) 25690,15690,25690 04720039
476: 15690 IVPASS = IVPASS + 1 04730039
477: WRITE (I02,80001) IVTNUM 04740039
478: GO TO 5701 04750039
479: 25690 IVFAIL = IVFAIL + 1 04760039
480: IVCORR = 2278 04770039
481: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04780039
482: C 04790039
483: C TEST 570 AND TEST 571 - IV =(IV/IC)/IC 04800039
484: C 04810039
485: 5701 CONTINUE 04820039
486: IVTNUM = 570 04830039
487: C 04840039
488: C **** TEST 570 **** 04850039
489: C 04860039
490: IF (ICZERO) 35700, 5700, 35700 04870039
491: 5700 CONTINUE 04880039
492: IVON01 = 24 04890039
493: IVCOMP = (IVON01/3)/4 04900039
494: GO TO 45700 04910039
495: 35700 IVDELE = IVDELE + 1 04920039
496: WRITE (I02,80003) IVTNUM 04930039
497: IF (ICZERO) 45700, 5711, 45700 04940039
498: 45700 IF (IVCOMP -2) 25700,15700,25700 04950039
499: 15700 IVPASS = IVPASS + 1 04960039
500: WRITE (I02,80001) IVTNUM 04970039
501: GO TO 5711 04980039
502: 25700 IVFAIL = IVFAIL + 1 04990039
503: IVCORR = 2 05000039
504: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05010039
505: 5711 CONTINUE 05020039
506: IVTNUM = 571 05030039
507: C 05040039
508: C **** TEST 571 **** 05050039
509: C 05060039
510: IF (ICZERO) 35710, 5710, 35710 05070039
511: 5710 CONTINUE 05080039
512: IVON01 = -330 05090039
513: IVCOMP = (IVON01/(-3))/4 05100039
514: GO TO 45710 05110039
515: 35710 IVDELE = IVDELE + 1 05120039
516: WRITE (I02,80003) IVTNUM 05130039
517: IF (ICZERO) 45710, 5721, 45710 05140039
518: 45710 IF (IVCOMP - 27) 25710,15710,25710 05150039
519: 15710 IVPASS = IVPASS + 1 05160039
520: WRITE (I02,80001) IVTNUM 05170039
521: GO TO 5721 05180039
522: 25710 IVFAIL = IVFAIL + 1 05190039
523: IVCORR = 27 05200039
524: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05210039
525: C 05220039
526: C TEST 572 AND TEST 573 - IV= IV/(IC/IC) 05230039
527: C 05240039
528: 5721 CONTINUE 05250039
529: IVTNUM = 572 05260039
530: C 05270039
531: C **** TEST 572 **** 05280039
532: C 05290039
533: IF (ICZERO) 35720, 5720, 35720 05300039
534: 5720 CONTINUE 05310039
535: IVON01 = 24 05320039
536: IVCOMP = IVON01/(8/4) 05330039
537: GO TO 45720 05340039
538: 35720 IVDELE = IVDELE + 1 05350039
539: WRITE (I02,80003) IVTNUM 05360039
540: IF (ICZERO) 45720, 5731, 45720 05370039
541: 45720 IF (IVCOMP - 12) 25720,15720,25720 05380039
542: 15720 IVPASS = IVPASS + 1 05390039
543: WRITE (I02,80001) IVTNUM 05400039
544: GO TO 5731 05410039
545: 25720 IVFAIL = IVFAIL + 1 05420039
546: IVCORR = 12 05430039
547: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05440039
548: 5731 CONTINUE 05450039
549: IVTNUM = 573 05460039
550: C 05470039
551: C **** TEST 573 **** 05480039
552: C 05490039
553: IF (ICZERO) 35730, 5730, 35730 05500039
554: 5730 CONTINUE 05510039
555: IVON01 = -7154 05520039
556: IVCOMP = -IVON01/((-26)/5) 05530039
557: GO TO 45730 05540039
558: 35730 IVDELE = IVDELE + 1 05550039
559: WRITE (I02,80003) IVTNUM 05560039
560: IF (ICZERO) 45730, 5741, 45730 05570039
561: 45730 IF (IVCOMP + 1430) 25730,15730,25730 05580039
562: 15730 IVPASS = IVPASS + 1 05590039
563: WRITE (I02,80001) IVTNUM 05600039
564: GO TO 5741 05610039
565: 25730 IVFAIL = IVFAIL + 1 05620039
566: IVCORR = -1430 05630039
567: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05640039
568: C 05650039
569: C TEST 574 AND TEST 575 - IV=(IC/IV)/IC 05660039
570: C 05670039
571: 5741 CONTINUE 05680039
572: IVTNUM = 574 05690039
573: C 05700039
574: C **** TEST 574 **** 05710039
575: C 05720039
576: IF (ICZERO) 35740, 5740, 35740 05730039
577: 5740 CONTINUE 05740039
578: IVON02 = 3 05750039
579: IVCOMP = (24/IVON02)/4 05760039
580: GO TO 45740 05770039
581: 35740 IVDELE = IVDELE + 1 05780039
582: WRITE (I02,80003) IVTNUM 05790039
583: IF (ICZERO) 45740, 5751, 45740 05800039
584: 45740 IF (IVCOMP -2) 25740,15740,25740 05810039
585: 15740 IVPASS = IVPASS + 1 05820039
586: WRITE (I02,80001) IVTNUM 05830039
587: GO TO 5751 05840039
588: 25740 IVFAIL = IVFAIL + 1 05850039
589: IVCORR = 2 05860039
590: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05870039
591: 5751 CONTINUE 05880039
592: IVTNUM = 575 05890039
593: C 05900039
594: C **** TEST 575 **** 05910039
595: C 05920039
596: IF (ICZERO) 35750, 5750, 35750 05930039
597: 5750 CONTINUE 05940039
598: IVON02 = -3 05950039
599: IVCOMP = (-330/IVON02)/(-4) 05960039
600: GO TO 45750 05970039
601: 35750 IVDELE = IVDELE + 1 05980039
602: WRITE (I02,80003) IVTNUM 05990039
603: IF (ICZERO) 45750, 5761, 45750 06000039
604: 45750 IF (IVCOMP + 27) 25750,15750,25750 06010039
605: 15750 IVPASS = IVPASS + 1 06020039
606: WRITE (I02,80001) IVTNUM 06030039
607: GO TO 5761 06040039
608: 25750 IVFAIL = IVFAIL + 1 06050039
609: IVCORR = -27 06060039
610: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06070039
611: C 06080039
612: C TEST 576 AND TEST 577 - IV=IC/(IV/IC) 06090039
613: C 06100039
614: 5761 CONTINUE 06110039
615: IVTNUM = 576 06120039
616: C 06130039
617: C **** TEST 576 **** 06140039
618: C 06150039
619: IF (ICZERO) 35760, 5760, 35760 06160039
620: 5760 CONTINUE 06170039
621: IVON02 = 8 06180039
622: IVCOMP = 24/(IVON02/4) 06190039
623: GO TO 45760 06200039
624: 35760 IVDELE = IVDELE + 1 06210039
625: WRITE (I02,80003) IVTNUM 06220039
626: IF (ICZERO) 45760, 5771, 45760 06230039
627: 45760 IF (IVCOMP - 12) 25760,15760,25760 06240039
628: 15760 IVPASS = IVPASS + 1 06250039
629: WRITE (I02,80001) IVTNUM 06260039
630: GO TO 5771 06270039
631: 25760 IVFAIL = IVFAIL + 1 06280039
632: IVCORR = 12 06290039
633: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06300039
634: 5771 CONTINUE 06310039
635: IVTNUM = 577 06320039
636: C 06330039
637: C **** TEST 577 **** 06340039
638: C 06350039
639: IF (ICZERO) 35770, 5770, 35770 06360039
640: 5770 CONTINUE 06370039
641: IVON02 = -26 06380039
642: IVCOMP = 7154/((-IVON02)/(-5)) 06390039
643: GO TO 45770 06400039
644: 35770 IVDELE = IVDELE + 1 06410039
645: WRITE (I02,80003) IVTNUM 06420039
646: IF (ICZERO) 45770, 5781, 45770 06430039
647: 45770 IF (IVCOMP + 1430) 25770,15770,25770 06440039
648: 15770 IVPASS = IVPASS + 1 06450039
649: WRITE (I02,80001) IVTNUM 06460039
650: GO TO 5781 06470039
651: 25770 IVFAIL = IVFAIL + 1 06480039
652: IVCORR = -1430 06490039
653: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06500039
654: C 06510039
655: C TEST 578 AND TEST 579 - IV=(IC/IC)/IV 06520039
656: C 06530039
657: 5781 CONTINUE 06540039
658: IVTNUM = 578 06550039
659: C 06560039
660: C **** TEST 578 **** 06570039
661: C 06580039
662: IF (ICZERO) 35780, 5780, 35780 06590039
663: 5780 CONTINUE 06600039
664: IVON03 = 4 06610039
665: IVCOMP = (24/3)/IVON03 06620039
666: GO TO 45780 06630039
667: 35780 IVDELE = IVDELE + 1 06640039
668: WRITE (I02,80003) IVTNUM 06650039
669: IF (ICZERO) 45780, 5791, 45780 06660039
670: 45780 IF (IVCOMP - 2) 25780,15780,25780 06670039
671: 15780 IVPASS = IVPASS + 1 06680039
672: WRITE (I02,80001) IVTNUM 06690039
673: GO TO 5791 06700039
674: 25780 IVFAIL = IVFAIL + 1 06710039
675: IVCORR = 2 06720039
676: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06730039
677: 5791 CONTINUE 06740039
678: IVTNUM = 579 06750039
679: C 06760039
680: C **** TEST 579 **** 06770039
681: C 06780039
682: IF (ICZERO) 35790, 5790, 35790 06790039
683: 5790 CONTINUE 06800039
684: IVON03 = -4 06810039
685: IVCOMP = (330/(-3))/IVON03 06820039
686: GO TO 45790 06830039
687: 35790 IVDELE = IVDELE + 1 06840039
688: WRITE (I02,80003) IVTNUM 06850039
689: IF (ICZERO) 45790, 5801, 45790 06860039
690: 45790 IF (IVCOMP - 27) 25790,15790,25790 06870039
691: 15790 IVPASS = IVPASS + 1 06880039
692: WRITE (I02,80001) IVTNUM 06890039
693: GO TO 5801 06900039
694: 25790 IVFAIL = IVFAIL + 1 06910039
695: IVCORR = 27 06920039
696: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06930039
697: C 06940039
698: C TEST 580 AND TEST 581 - IV= IC/(IC/IV) 06950039
699: C 06960039
700: 5801 CONTINUE 06970039
701: IVTNUM = 580 06980039
702: C 06990039
703: C **** TEST 580 **** 07000039
704: C 07010039
705: IF (ICZERO) 35800, 5800, 35800 07020039
706: 5800 CONTINUE 07030039
707: IVON03 = 4 07040039
708: IVCOMP = 24/(8/IVON03) 07050039
709: GO TO 45800 07060039
710: 35800 IVDELE = IVDELE + 1 07070039
711: WRITE (I02,80003) IVTNUM 07080039
712: IF (ICZERO) 45800, 5811, 45800 07090039
713: 45800 IF (IVCOMP - 12) 25800,15800,25800 07100039
714: 15800 IVPASS = IVPASS + 1 07110039
715: WRITE (I02,80001) IVTNUM 07120039
716: GO TO 5811 07130039
717: 25800 IVFAIL = IVFAIL + 1 07140039
718: IVCORR = 12 07150039
719: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07160039
720: 5811 CONTINUE 07170039
721: IVTNUM = 581 07180039
722: C 07190039
723: C **** TEST 581 **** 07200039
724: C 07210039
725: IF (ICZERO) 35810, 5810, 35810 07220039
726: 5810 CONTINUE 07230039
727: IVON03 = -5 07240039
728: IVCOMP = -7154/((-26)/IVON03) 07250039
729: GO TO 45810 07260039
730: 35810 IVDELE = IVDELE + 1 07270039
731: WRITE (I02,80003) IVTNUM 07280039
732: IF (ICZERO) 45810, 5821, 45810 07290039
733: 45810 IF (IVCOMP + 1430) 25810,15810,25810 07300039
734: 15810 IVPASS = IVPASS + 1 07310039
735: WRITE (I02,80001) IVTNUM 07320039
736: GO TO 5821 07330039
737: 25810 IVFAIL = IVFAIL + 1 07340039
738: IVCORR = -1430 07350039
739: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07360039
740: C 07370039
741: C **** END OF TESTS **** 07380039
742: 5821 CONTINUE 07390039
743: C 07400039
744: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 07410039
745: 99999 CONTINUE 07420039
746: WRITE (I02,90002) 07430039
747: WRITE (I02,90006) 07440039
748: WRITE (I02,90002) 07450039
749: WRITE (I02,90002) 07460039
750: WRITE (I02,90007) 07470039
751: WRITE (I02,90002) 07480039
752: WRITE (I02,90008) IVFAIL 07490039
753: WRITE (I02,90009) IVPASS 07500039
754: WRITE (I02,90010) IVDELE 07510039
755: C 07520039
756: C 07530039
757: C TERMINATE ROUTINE EXECUTION 07540039
758: STOP 07550039
759: C 07560039
760: C FORMAT STATEMENTS FOR PAGE HEADERS 07570039
761: 90000 FORMAT (1H1) 07580039
762: 90002 FORMAT (1H ) 07590039
763: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 07600039
764: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 07610039
765: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 07620039
766: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 07630039
767: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 07640039
768: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 07650039
769: C 07660039
770: C FORMAT STATEMENTS FOR RUN SUMMARIES 07670039
771: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 07680039
772: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 07690039
773: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 07700039
774: C 07710039
775: C FORMAT STATEMENTS FOR TEST RESULTS 07720039
776: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 07730039
777: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 07740039
778: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 07750039
779: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 07760039
780: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 07770039
781: C 07780039
782: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM039) 07790039
783: END 07800039
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.