|
|
1.1 root 1: C COMMENT SECTION 00010036
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 00020036
6: C FM036 00030036
7: C 00040036
8: C THIS ROUTINE TESTS ARITHMETIC ASIGNMENT STATEMENTS OF THE 00050036
9: C FORM 00060036
10: C INTEGER VARIABLE = ARITHMETIC EXPRESSION 00070036
11: C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00080036
12: C OPERATOR / AND INTEGER CONSTANTS. BOTH POSITIVE AND NEGATIVE 00090036
13: C CONSTANTS ARE USED IN THE ARITHMETIC EXPRESSION. 00100036
14: C 00110036
15: C THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT 00120036
16: C AND TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED 00130036
17: C IN THE RESULTANT INTEGER VARIABLE. THE STANDARD STATES 'THE VALUE00140036
18: C OF AN INTEGER FACTOR OR TERM IS THE NEAREST INTEGER WHOSE 00150036
19: C MAGNITUDE DOES NOT EXCEED THE MAGNITUDE OF THE MATHEMATICAL VALUE 00160036
20: C REPRESENTED BY THAT FACTOR OR TERM.' 00170036
21: C 00180036
22: C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00190036
23: C (1) INTEGER CONSTANT/INTEGER CONSTANT 00200036
24: C NO TRUNCATION REQUIRED, 00210036
25: C (2) INTEGER CONSTANT/INTEGER CONSTANT 00220036
26: C TRUNCATION REQUIRED. 00230036
27: C 00240036
28: C REFERENCES 00250036
29: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00260036
30: C X3.9-1978 00270036
31: C 00280036
32: C SECTION 4.3, INTEGER TYPE 00290036
33: C SECTION 4.3.1, INTEGER CONSTANT 00300036
34: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00310036
35: C SECTION 6.6, EVALUATION OF EXPRESSIONS 00320036
36: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00330036
37: C 00340036
38: C ********************************************************** 00350036
39: C 00360036
40: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00370036
41: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00380036
42: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00390036
43: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00400036
44: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00410036
45: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00420036
46: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00430036
47: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00440036
48: C OF EXECUTING THESE TESTS. 00450036
49: C 00460036
50: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00470036
51: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00480036
52: C 00490036
53: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00500036
54: C 00510036
55: C DEPARTMENT OF THE NAVY 00520036
56: C FEDERAL COBOL COMPILER TESTING SERVICE 00530036
57: C WASHINGTON, D.C. 20376 00540036
58: C 00550036
59: C ********************************************************** 00560036
60: C 00570036
61: C 00580036
62: C 00590036
63: C INITIALIZATION SECTION 00600036
64: C 00610036
65: C INITIALIZE CONSTANTS 00620036
66: C ************** 00630036
67: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00640036
68: I01 = 5 00650036
69: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00660036
70: I02 = 6 00670036
71: C SYSTEM ENVIRONMENT SECTION 00680036
72: C 00690036
73: I01 = 5 00700036
74: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00710036
75: C (UNIT NUMBER FOR CARD READER). 00720036
76: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00730036
77: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00740036
78: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00750036
79: C 00760036
80: I02 = 6 00770036
81: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00780036
82: C (UNIT NUMBER FOR PRINTER). 00790036
83: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00800036
84: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00810036
85: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00820036
86: C 00830036
87: IVPASS=0 00840036
88: IVFAIL=0 00850036
89: IVDELE=0 00860036
90: ICZERO=0 00870036
91: C 00880036
92: C WRITE PAGE HEADERS 00890036
93: WRITE (I02,90000) 00900036
94: WRITE (I02,90001) 00910036
95: WRITE (I02,90002) 00920036
96: WRITE (I02, 90002) 00930036
97: WRITE (I02,90003) 00940036
98: WRITE (I02,90002) 00950036
99: WRITE (I02,90004) 00960036
100: WRITE (I02,90002) 00970036
101: WRITE (I02,90011) 00980036
102: WRITE (I02,90002) 00990036
103: WRITE (I02,90002) 01000036
104: WRITE (I02,90005) 01010036
105: WRITE (I02,90006) 01020036
106: WRITE (I02,90002) 01030036
107: C 01040036
108: C TEST SECTION 01050036
109: C ARITHMETIC ASSIGNMENT STATEMENT 01060036
110: C 01070036
111: C TEST 462 THROUGH TEST 490 CONTAIN TWO INTEGER CONSTANTS AND 01080036
112: C OPERATOR / IN AN ARITHMETIC EXPRESSION. THE FORM TESTED IS 01090036
113: C INTEGER VARIABLE = INTEGER CONSTANT/INTEGER CONSTANT 01100036
114: C 01110036
115: C TEST 462 THROUGH TEST 469 - POSITIVE CONSTANTS 01120036
116: C NO TRUNCATION REQUIRED 01130036
117: C 01140036
118: 4621 CONTINUE 01150036
119: IVTNUM = 462 01160036
120: C 01170036
121: C **** TEST 462 **** 01180036
122: C 01190036
123: IF (ICZERO) 34620, 4620, 34620 01200036
124: 4620 CONTINUE 01210036
125: IVCOMP = 4/2 01220036
126: GO TO 44620 01230036
127: 34620 IVDELE = IVDELE + 1 01240036
128: WRITE (I02,80003) IVTNUM 01250036
129: IF (ICZERO) 44620, 4631, 44620 01260036
130: 44620 IF (IVCOMP - 2) 24620,14620,24620 01270036
131: 14620 IVPASS = IVPASS + 1 01280036
132: WRITE (I02,80001) IVTNUM 01290036
133: GO TO 4631 01300036
134: 24620 IVFAIL = IVFAIL + 1 01310036
135: IVCORR = 2 01320036
136: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01330036
137: 4631 CONTINUE 01340036
138: IVTNUM = 463 01350036
139: C 01360036
140: C **** TEST 463 **** 01370036
141: C 01380036
142: IF (ICZERO) 34630, 4630, 34630 01390036
143: 4630 CONTINUE 01400036
144: IVCOMP = 75 / 25 01410036
145: GO TO 44630 01420036
146: 34630 IVDELE = IVDELE + 1 01430036
147: WRITE (I02,80003) IVTNUM 01440036
148: IF (ICZERO) 44630, 4641, 44630 01450036
149: 44630 IF (IVCOMP - 3) 24630,14630,24630 01460036
150: 14630 IVPASS = IVPASS + 1 01470036
151: WRITE (I02,80001) IVTNUM 01480036
152: GO TO 4641 01490036
153: 24630 IVFAIL = IVFAIL + 1 01500036
154: IVCORR = 3 01510036
155: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01520036
156: 4641 CONTINUE 01530036
157: IVTNUM = 464 01540036
158: C 01550036
159: C **** TEST 464 **** 01560036
160: C 01570036
161: IF (ICZERO) 34640, 4640, 34640 01580036
162: 4640 CONTINUE 01590036
163: IVCOMP = 3575/143 01600036
164: GO TO 44640 01610036
165: 34640 IVDELE = IVDELE + 1 01620036
166: WRITE (I02,80003) IVTNUM 01630036
167: IF (ICZERO) 44640, 4651, 44640 01640036
168: 44640 IF (IVCOMP - 25) 24640,14640,24640 01650036
169: 14640 IVPASS = IVPASS + 1 01660036
170: WRITE (I02,80001) IVTNUM 01670036
171: GO TO 4651 01680036
172: 24640 IVFAIL = IVFAIL + 1 01690036
173: IVCORR = 25 01700036
174: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01710036
175: 4651 CONTINUE 01720036
176: IVTNUM = 465 01730036
177: C 01740036
178: C **** TEST 465 **** 01750036
179: C 01760036
180: IF (ICZERO) 34650, 4650, 34650 01770036
181: 4650 CONTINUE 01780036
182: IVCOMP = 3575/25 01790036
183: GO TO 44650 01800036
184: 34650 IVDELE = IVDELE + 1 01810036
185: WRITE (I02,80003) IVTNUM 01820036
186: IF (ICZERO) 44650, 4661, 44650 01830036
187: 44650 IF (IVCOMP - 143) 24650,14650,24650 01840036
188: 14650 IVPASS = IVPASS + 1 01850036
189: WRITE (I02,80001) IVTNUM 01860036
190: GO TO 4661 01870036
191: 24650 IVFAIL = IVFAIL + 1 01880036
192: IVCORR = 143 01890036
193: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01900036
194: 4661 CONTINUE 01910036
195: IVTNUM = 466 01920036
196: C 01930036
197: C **** TEST 466 **** 01940036
198: C 01950036
199: IF (ICZERO) 34660, 4660, 34660 01960036
200: 4660 CONTINUE 01970036
201: IVCOMP = 6170/1234 01980036
202: GO TO 44660 01990036
203: 34660 IVDELE = IVDELE + 1 02000036
204: WRITE (I02,80003) IVTNUM 02010036
205: IF (ICZERO) 44660, 4671, 44660 02020036
206: 44660 IF (IVCOMP - 5) 24660,14660,24660 02030036
207: 14660 IVPASS = IVPASS + 1 02040036
208: WRITE (I02,80001) IVTNUM 02050036
209: GO TO 4671 02060036
210: 24660 IVFAIL = IVFAIL + 1 02070036
211: IVCORR = 5 02080036
212: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02090036
213: 4671 CONTINUE 02100036
214: IVTNUM = 467 02110036
215: C 02120036
216: C **** TEST 467 **** 02130036
217: C 02140036
218: IF (ICZERO) 34670, 4670, 34670 02150036
219: 4670 CONTINUE 02160036
220: IVCOMP = 28600/8 02170036
221: GO TO 44670 02180036
222: 34670 IVDELE = IVDELE + 1 02190036
223: WRITE (I02,80003) IVTNUM 02200036
224: IF (ICZERO) 44670, 4681, 44670 02210036
225: 44670 IF (IVCOMP - 3575) 24670,14670,24670 02220036
226: 14670 IVPASS = IVPASS + 1 02230036
227: WRITE (I02,80001) IVTNUM 02240036
228: GO TO 4681 02250036
229: 24670 IVFAIL = IVFAIL + 1 02260036
230: IVCORR = 3575 02270036
231: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02280036
232: 4681 CONTINUE 02290036
233: IVTNUM = 468 02300036
234: C 02310036
235: C **** TEST 468 **** 02320036
236: C 02330036
237: IF (ICZERO) 34680, 4680, 34680 02340036
238: 4680 CONTINUE 02350036
239: IVCOMP = 32766/2 02360036
240: GO TO 44680 02370036
241: 34680 IVDELE = IVDELE + 1 02380036
242: WRITE (I02,80003) IVTNUM 02390036
243: IF (ICZERO) 44680, 4691, 44680 02400036
244: 44680 IF (IVCOMP - 16383) 24680,14680,24680 02410036
245: 14680 IVPASS = IVPASS + 1 02420036
246: WRITE (I02,80001) IVTNUM 02430036
247: GO TO 4691 02440036
248: 24680 IVFAIL = IVFAIL + 1 02450036
249: IVCORR = 16383 02460036
250: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02470036
251: 4691 CONTINUE 02480036
252: IVTNUM = 469 02490036
253: C 02500036
254: C **** TEST 469 **** 02510036
255: C 02520036
256: IF (ICZERO) 34690, 4690, 34690 02530036
257: 4690 CONTINUE 02540036
258: IVCOMP = 32767/1 02550036
259: GO TO 44690 02560036
260: 34690 IVDELE = IVDELE + 1 02570036
261: WRITE (I02,80003) IVTNUM 02580036
262: IF (ICZERO) 44690, 4701, 44690 02590036
263: 44690 IF (IVCOMP - 32767) 24690,14690,24690 02600036
264: 14690 IVPASS = IVPASS + 1 02610036
265: WRITE (I02,80001) IVTNUM 02620036
266: GO TO 4701 02630036
267: 24690 IVFAIL = IVFAIL + 1 02640036
268: IVCORR = 32767 02650036
269: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02660036
270: C 02670036
271: C TEST 470 THROUGH TEST 478 - POSITIVE CONSTANTS 02680036
272: C TRUNCATION REQUIRED 02690036
273: C 02700036
274: 4701 CONTINUE 02710036
275: IVTNUM = 470 02720036
276: C 02730036
277: C **** TEST 470 **** 02740036
278: C 02750036
279: IF (ICZERO) 34700, 4700, 34700 02760036
280: 4700 CONTINUE 02770036
281: IVCOMP = 5/2 02780036
282: GO TO 44700 02790036
283: 34700 IVDELE = IVDELE + 1 02800036
284: WRITE (I02,80003) IVTNUM 02810036
285: IF (ICZERO) 44700, 4711, 44700 02820036
286: 44700 IF (IVCOMP - 2) 24700,14700,24700 02830036
287: 14700 IVPASS = IVPASS + 1 02840036
288: WRITE (I02,80001) IVTNUM 02850036
289: GO TO 4711 02860036
290: 24700 IVFAIL = IVFAIL + 1 02870036
291: IVCORR = 2 02880036
292: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02890036
293: 4711 CONTINUE 02900036
294: IVTNUM = 471 02910036
295: C 02920036
296: C **** TEST 471 **** 02930036
297: C 02940036
298: IF (ICZERO) 34710, 4710, 34710 02950036
299: 4710 CONTINUE 02960036
300: IVCOMP = 2/3 02970036
301: GO TO 44710 02980036
302: 34710 IVDELE = IVDELE + 1 02990036
303: WRITE (I02,80003) IVTNUM 03000036
304: IF (ICZERO) 44710, 4721, 44710 03010036
305: 44710 IF (IVCOMP - 0) 24710,14710,24710 03020036
306: 14710 IVPASS = IVPASS + 1 03030036
307: WRITE (I02,80001) IVTNUM 03040036
308: GO TO 4721 03050036
309: 24710 IVFAIL = IVFAIL + 1 03060036
310: IVCORR = 0 03070036
311: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03080036
312: 4721 CONTINUE 03090036
313: IVTNUM = 472 03100036
314: C 03110036
315: C **** TEST 472 **** 03120036
316: C 03130036
317: IF (ICZERO) 34720, 4720, 34720 03140036
318: 4720 CONTINUE 03150036
319: IVCOMP = 80/15 03160036
320: GO TO 44720 03170036
321: 34720 IVDELE = IVDELE + 1 03180036
322: WRITE (I02,80003) IVTNUM 03190036
323: IF (ICZERO) 44720, 4731, 44720 03200036
324: 44720 IF (IVCOMP - 5) 24720,14720,24720 03210036
325: 14720 IVPASS = IVPASS + 1 03220036
326: WRITE (I02,80001) IVTNUM 03230036
327: GO TO 4731 03240036
328: 24720 IVFAIL = IVFAIL + 1 03250036
329: IVCORR = 5 03260036
330: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03270036
331: 4731 CONTINUE 03280036
332: IVTNUM = 473 03290036
333: C 03300036
334: C **** TEST 473 **** 03310036
335: C 03320036
336: IF (ICZERO) 34730, 4730, 34730 03330036
337: 4730 CONTINUE 03340036
338: IVCOMP = 959/120 03350036
339: GO TO 44730 03360036
340: 34730 IVDELE = IVDELE + 1 03370036
341: WRITE (I02,80003) IVTNUM 03380036
342: IF (ICZERO) 44730, 4741, 44730 03390036
343: 44730 IF (IVCOMP - 7) 24730,14730,24730 03400036
344: 14730 IVPASS = IVPASS + 1 03410036
345: WRITE (I02,80001) IVTNUM 03420036
346: GO TO 4741 03430036
347: 24730 IVFAIL = IVFAIL + 1 03440036
348: IVCORR = 7 03450036
349: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03460036
350: 4741 CONTINUE 03470036
351: IVTNUM = 474 03480036
352: C 03490036
353: C **** TEST 474 **** 03500036
354: C 03510036
355: IF (ICZERO) 34740, 4740, 34740 03520036
356: 4740 CONTINUE 03530036
357: IVCOMP = 959 / 12 03540036
358: GO TO 44740 03550036
359: 34740 IVDELE = IVDELE + 1 03560036
360: WRITE (I02,80003) IVTNUM 03570036
361: IF (ICZERO) 44740, 4751, 44740 03580036
362: 44740 IF (IVCOMP - 79) 24740,14740,24740 03590036
363: 14740 IVPASS = IVPASS + 1 03600036
364: WRITE (I02,80001) IVTNUM 03610036
365: GO TO 4751 03620036
366: 24740 IVFAIL = IVFAIL + 1 03630036
367: IVCORR = 79 03640036
368: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03650036
369: 4751 CONTINUE 03660036
370: IVTNUM = 475 03670036
371: C 03680036
372: C **** TEST 475 **** 03690036
373: C 03700036
374: IF (ICZERO) 34750, 4750, 34750 03710036
375: 4750 CONTINUE 03720036
376: IVCOMP = 959/6 03730036
377: GO TO 44750 03740036
378: 34750 IVDELE = IVDELE + 1 03750036
379: WRITE (I02,80003) IVTNUM 03760036
380: IF (ICZERO) 44750, 4761, 44750 03770036
381: 44750 IF (IVCOMP - 159) 24750,14750,24750 03780036
382: 14750 IVPASS = IVPASS + 1 03790036
383: WRITE (I02,80001) IVTNUM 03800036
384: GO TO 4761 03810036
385: 24750 IVFAIL = IVFAIL + 1 03820036
386: IVCORR = 159 03830036
387: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03840036
388: 4761 CONTINUE 03850036
389: IVTNUM = 476 03860036
390: C 03870036
391: C **** TEST 476 **** 03880036
392: C 03890036
393: IF (ICZERO) 34760, 4760, 34760 03900036
394: 4760 CONTINUE 03910036
395: IVCOMP = 28606/8 03920036
396: GO TO 44760 03930036
397: 34760 IVDELE = IVDELE + 1 03940036
398: WRITE (I02,80003) IVTNUM 03950036
399: IF (ICZERO) 44760, 4771, 44760 03960036
400: 44760 IF (IVCOMP - 3575) 24760,14760,24760 03970036
401: 14760 IVPASS = IVPASS + 1 03980036
402: WRITE (I02,80001) IVTNUM 03990036
403: GO TO 4771 04000036
404: 24760 IVFAIL = IVFAIL + 1 04010036
405: IVCORR = 3575 04020036
406: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04030036
407: 4771 CONTINUE 04040036
408: IVTNUM = 477 04050036
409: C 04060036
410: C **** TEST 477 **** 04070036
411: C 04080036
412: IF (ICZERO) 34770, 4770, 34770 04090036
413: 4770 CONTINUE 04100036
414: IVCOMP = 25603/2 04110036
415: GO TO 44770 04120036
416: 34770 IVDELE = IVDELE + 1 04130036
417: WRITE (I02,80003) IVTNUM 04140036
418: IF (ICZERO) 44770, 4781, 44770 04150036
419: 44770 IF (IVCOMP - 12801) 24770,14770,24770 04160036
420: 14770 IVPASS = IVPASS + 1 04170036
421: WRITE (I02,80001) IVTNUM 04180036
422: GO TO 4781 04190036
423: 24770 IVFAIL = IVFAIL + 1 04200036
424: IVCORR = 12801 04210036
425: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04220036
426: 4781 CONTINUE 04230036
427: IVTNUM = 478 04240036
428: C 04250036
429: C **** TEST 478 **** 04260036
430: C 04270036
431: IF (ICZERO) 34780, 4780, 34780 04280036
432: 4780 CONTINUE 04290036
433: IVCOMP = 25603/10354 04300036
434: GO TO 44780 04310036
435: 34780 IVDELE = IVDELE + 1 04320036
436: WRITE (I02,80003) IVTNUM 04330036
437: IF (ICZERO) 44780, 4791, 44780 04340036
438: 44780 IF (IVCOMP - 2) 24780,14780,24780 04350036
439: 14780 IVPASS = IVPASS + 1 04360036
440: WRITE (I02,80001) IVTNUM 04370036
441: GO TO 4791 04380036
442: 24780 IVFAIL = IVFAIL + 1 04390036
443: IVCORR = 2 04400036
444: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04410036
445: C 04420036
446: C TEST 479 THROUGH TEST 482 - NEGATIVE CONSTANTS INCLUDED 04430036
447: C NO TRUNCATION REQUIRED 04440036
448: C 04450036
449: 4791 CONTINUE 04460036
450: IVTNUM = 479 04470036
451: C 04480036
452: C **** TEST 479 **** 04490036
453: C 04500036
454: IF (ICZERO) 34790, 4790, 34790 04510036
455: 4790 CONTINUE 04520036
456: IVCOMP = -4/2 04530036
457: GO TO 44790 04540036
458: 34790 IVDELE = IVDELE + 1 04550036
459: WRITE (I02,80003) IVTNUM 04560036
460: IF (ICZERO) 44790, 4801, 44790 04570036
461: 44790 IF (IVCOMP + 2) 24790,14790,24790 04580036
462: 14790 IVPASS = IVPASS + 1 04590036
463: WRITE (I02,80001) IVTNUM 04600036
464: GO TO 4801 04610036
465: 24790 IVFAIL = IVFAIL + 1 04620036
466: IVCORR = -2 04630036
467: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04640036
468: 4801 CONTINUE 04650036
469: IVTNUM = 480 04660036
470: C 04670036
471: C **** TEST 480 **** 04680036
472: C 04690036
473: IF (ICZERO) 34800, 4800, 34800 04700036
474: 4800 CONTINUE 04710036
475: IVCOMP = 75 / (-25) 04720036
476: GO TO 44800 04730036
477: 34800 IVDELE = IVDELE + 1 04740036
478: WRITE (I02,80003) IVTNUM 04750036
479: IF (ICZERO) 44800, 4811, 44800 04760036
480: 44800 IF (IVCOMP + 3) 24800,14800,24800 04770036
481: 14800 IVPASS = IVPASS + 1 04780036
482: WRITE (I02,80001) IVTNUM 04790036
483: GO TO 4811 04800036
484: 24800 IVFAIL = IVFAIL + 1 04810036
485: IVCORR = -3 04820036
486: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04830036
487: 4811 CONTINUE 04840036
488: IVTNUM = 481 04850036
489: C 04860036
490: C **** TEST 481 **** 04870036
491: C 04880036
492: IF (ICZERO) 34810, 4810, 34810 04890036
493: 4810 CONTINUE 04900036
494: IVCOMP= (-6170) / (-1234) 04910036
495: GO TO 44810 04920036
496: 34810 IVDELE = IVDELE + 1 04930036
497: WRITE (I02,80003) IVTNUM 04940036
498: IF (ICZERO) 44810, 4821, 44810 04950036
499: 44810 IF (IVCOMP - 5) 24810,14810,24810 04960036
500: 14810 IVPASS = IVPASS + 1 04970036
501: WRITE (I02,80001) IVTNUM 04980036
502: GO TO 4821 04990036
503: 24810 IVFAIL = IVFAIL + 1 05000036
504: IVCORR = 5 05010036
505: 05020036
506: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05030036
507: 4821 CONTINUE 05040036
508: IVTNUM = 482 05050036
509: C 05060036
510: C **** TEST 482 **** 05070036
511: C 05080036
512: IF (ICZERO) 34820, 4820, 34820 05090036
513: 4820 CONTINUE 05100036
514: IVCOMP = -32766/(-2) 05110036
515: GO TO 44820 05120036
516: 34820 IVDELE = IVDELE + 1 05130036
517: WRITE (I02,80003) IVTNUM 05140036
518: IF (ICZERO) 44820, 4831, 44820 05150036
519: 44820 IF (IVCOMP - 16383) 24820,14820,24820 05160036
520: 14820 IVPASS = IVPASS + 1 05170036
521: WRITE (I02,80001) IVTNUM 05180036
522: GO TO 4831 05190036
523: 24820 IVFAIL = IVFAIL + 1 05200036
524: IVCORR = 16383 05210036
525: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05220036
526: C 05230036
527: C TEST 483 THROUGH TEST 490 - NEGATIVE CONSTANTS INCLUDED 05240036
528: C TRUNCATION REQUIRED 05250036
529: C 05260036
530: 4831 CONTINUE 05270036
531: IVTNUM = 483 05280036
532: C 05290036
533: C **** TEST 483 **** 05300036
534: C 05310036
535: IF (ICZERO) 34830, 4830, 34830 05320036
536: 4830 CONTINUE 05330036
537: IVCOMP = -5/2 05340036
538: GO TO 44830 05350036
539: 34830 IVDELE = IVDELE + 1 05360036
540: WRITE (I02,80003) IVTNUM 05370036
541: IF (ICZERO) 44830, 4841, 44830 05380036
542: 44830 IF (IVCOMP +2) 24830,14830,24830 05390036
543: 14830 IVPASS = IVPASS + 1 05400036
544: WRITE (I02,80001) IVTNUM 05410036
545: GO TO 4841 05420036
546: 24830 IVFAIL = IVFAIL + 1 05430036
547: IVCORR = -2 05440036
548: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05450036
549: 4841 CONTINUE 05460036
550: IVTNUM = 484 05470036
551: C 05480036
552: C **** TEST 484 **** 05490036
553: C 05500036
554: IF (ICZERO) 34840, 4840, 34840 05510036
555: 4840 CONTINUE 05520036
556: IVCOMP = -2/3 05530036
557: GO TO 44840 05540036
558: 34840 IVDELE = IVDELE + 1 05550036
559: WRITE (I02,80003) IVTNUM 05560036
560: IF (ICZERO) 44840, 4851, 44840 05570036
561: 44840 IF (IVCOMP) 24840,14840,24840 05580036
562: 14840 IVPASS = IVPASS + 1 05590036
563: WRITE (I02,80001) IVTNUM 05600036
564: GO TO 4851 05610036
565: 24840 IVFAIL = IVFAIL + 1 05620036
566: IVCORR = 0 05630036
567: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05640036
568: 4851 CONTINUE 05650036
569: IVTNUM = 485 05660036
570: C 05670036
571: C **** TEST 485 **** 05680036
572: C 05690036
573: IF (ICZERO) 34850, 4850, 34850 05700036
574: 4850 CONTINUE 05710036
575: IVCOMP = 80/(-15) 05720036
576: GO TO 44850 05730036
577: 34850 IVDELE = IVDELE + 1 05740036
578: WRITE (I02,80003) IVTNUM 05750036
579: IF (ICZERO) 44850, 4861, 44850 05760036
580: 44850 IF (IVCOMP +5) 24850,14850,24850 05770036
581: 14850 IVPASS = IVPASS + 1 05780036
582: WRITE (I02,80001) IVTNUM 05790036
583: GO TO 4861 05800036
584: 24850 IVFAIL = IVFAIL + 1 05810036
585: IVCORR = -5 05820036
586: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05830036
587: 4861 CONTINUE 05840036
588: IVTNUM = 486 05850036
589: C 05860036
590: C **** TEST 486 **** 05870036
591: C 05880036
592: IF (ICZERO) 34860, 4860, 34860 05890036
593: 4860 CONTINUE 05900036
594: IVCOMP = -959/(-120) 05910036
595: GO TO 44860 05920036
596: 34860 IVDELE = IVDELE + 1 05930036
597: WRITE (I02,80003) IVTNUM 05940036
598: IF (ICZERO) 44860, 4871, 44860 05950036
599: 44860 IF (IVCOMP - 7) 24860,14860,24860 05960036
600: 14860 IVPASS = IVPASS + 1 05970036
601: WRITE (I02,80001) IVTNUM 05980036
602: GO TO 4871 05990036
603: 24860 IVFAIL = IVFAIL + 1 06000036
604: IVCORR = 7 06010036
605: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06020036
606: 4871 CONTINUE 06030036
607: IVTNUM = 487 06040036
608: C 06050036
609: C **** TEST 487 **** 06060036
610: C 06070036
611: IF (ICZERO) 34870, 4870, 34870 06080036
612: 4870 CONTINUE 06090036
613: IVCOMP = -959/6 06100036
614: GO TO 44870 06110036
615: 34870 IVDELE = IVDELE + 1 06120036
616: WRITE (I02,80003) IVTNUM 06130036
617: IF (ICZERO) 44870, 4881, 44870 06140036
618: 44870 IF (IVCOMP + 159) 24870,14870,24870 06150036
619: 14870 IVPASS = IVPASS + 1 06160036
620: WRITE (I02,80001) IVTNUM 06170036
621: GO TO 4881 06180036
622: 24870 IVFAIL = IVFAIL + 1 06190036
623: IVCORR = -159 06200036
624: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06210036
625: 4881 CONTINUE 06220036
626: IVTNUM = 488 06230036
627: C 06240036
628: C **** TEST 488 **** 06250036
629: C 06260036
630: IF (ICZERO) 34880, 4880, 34880 06270036
631: 4880 CONTINUE 06280036
632: IVCOMP = -28606/(-8) 06290036
633: GO TO 44880 06300036
634: 34880 IVDELE = IVDELE + 1 06310036
635: WRITE (I02,80003) IVTNUM 06320036
636: IF (ICZERO) 44880, 4891, 44880 06330036
637: 44880 IF (IVCOMP - 3575) 24880,14880,24880 06340036
638: 14880 IVPASS = IVPASS + 1 06350036
639: WRITE (I02,80001) IVTNUM 06360036
640: GO TO 4891 06370036
641: 24880 IVFAIL = IVFAIL + 1 06380036
642: IVCORR = 3575 06390036
643: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06400036
644: 4891 CONTINUE 06410036
645: IVTNUM = 489 06420036
646: C 06430036
647: C **** TEST 489 **** 06440036
648: C 06450036
649: IF (ICZERO) 34890, 4890, 34890 06460036
650: 4890 CONTINUE 06470036
651: IVCOMP = -25603/2 06480036
652: GO TO 44890 06490036
653: 34890 IVDELE = IVDELE + 1 06500036
654: WRITE (I02,80003) IVTNUM 06510036
655: IF (ICZERO) 44890, 4901, 44890 06520036
656: 44890 IF (IVCOMP + 12801) 24890,14890,24890 06530036
657: 14890 IVPASS = IVPASS + 1 06540036
658: WRITE (I02,80001) IVTNUM 06550036
659: GO TO 4901 06560036
660: 24890 IVFAIL = IVFAIL + 1 06570036
661: IVCORR = -12801 06580036
662: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06590036
663: 4901 CONTINUE 06600036
664: IVTNUM = 490 06610036
665: C 06620036
666: C **** TEST 490 **** 06630036
667: C 06640036
668: IF (ICZERO) 34900, 4900, 34900 06650036
669: 4900 CONTINUE 06660036
670: IVCOMP = -25603/(-10354) 06670036
671: GO TO 44900 06680036
672: 34900 IVDELE = IVDELE + 1 06690036
673: WRITE (I02,80003) IVTNUM 06700036
674: IF (ICZERO) 44900, 4911, 44900 06710036
675: 44900 IF (IVCOMP - 2) 24900,14900,24900 06720036
676: 14900 IVPASS = IVPASS + 1 06730036
677: WRITE (I02,80001) IVTNUM 06740036
678: GO TO 4911 06750036
679: 24900 IVFAIL = IVFAIL + 1 06760036
680: IVCORR = 2 06770036
681: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06780036
682: C 06790036
683: C **** END OF TESTS **** 06800036
684: 4911 CONTINUE 06810036
685: C 06820036
686: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 06830036
687: 99999 CONTINUE 06840036
688: WRITE (I02,90002) 06850036
689: WRITE (I02,90006) 06860036
690: WRITE (I02,90002) 06870036
691: WRITE (I02,90002) 06880036
692: WRITE (I02,90007) 06890036
693: WRITE (I02,90002) 06900036
694: WRITE (I02,90008) IVFAIL 06910036
695: WRITE (I02,90009) IVPASS 06920036
696: WRITE (I02,90010) IVDELE 06930036
697: C 06940036
698: C 06950036
699: C TERMINATE ROUTINE EXECUTION 06960036
700: STOP 06970036
701: C 06980036
702: C FORMAT STATEMENTS FOR PAGE HEADERS 06990036
703: 90000 FORMAT (1H1) 07000036
704: 90002 FORMAT (1H ) 07010036
705: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 07020036
706: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 07030036
707: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 07040036
708: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 07050036
709: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 07060036
710: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 07070036
711: C 07080036
712: C FORMAT STATEMENTS FOR RUN SUMMARIES 07090036
713: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 07100036
714: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 07110036
715: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 07120036
716: C 07130036
717: C FORMAT STATEMENTS FOR TEST RESULTS 07140036
718: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 07150036
719: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 07160036
720: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 07170036
721: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 07180036
722: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 07190036
723: C 07200036
724: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM036) 07210036
725: END 07220036
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.