|
|
1.1 root 1: C COMMENT SECTION 00010033
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 00020033
6: C FM033 00030033
7: C 00040033
8: C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050033
9: C FORM 00060033
10: C INTEGER VARIABLE = ARITHMETIC EXPRESSION 00070033
11: C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00080033
12: C OPERATOR * AND INTEGER CONSTANTS. SOME OF THE TESTS USE PARENS 00090033
13: C TO GROUP ELEMENTS IN THE EXPRESSION AND TO ALLOW THE USE OF 00100033
14: C NEGATIVE CONSTANTS FOLLOWING THE * OPERATOR. 00110033
15: C 00120033
16: C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00130033
17: C (1) INTEGER CONSTANT * INTEGER CONSTANT 00140033
18: C (2) INTEGER CONSTANT * INTEGER CONSTANT * INTEGER CONSTANT 00150033
19: C (3) SAME AS (2) BUT WITH PARENS TO GROUP ELEMENTS 00160033
20: C 00170033
21: C REFERENCES 00180033
22: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00190033
23: C X3.9-1978 00200033
24: C 00210033
25: C SECTION 4.3, INTEGER TYPE 00220033
26: C SECTION 4.3.1, INTEGER CONSTANT 00230033
27: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00240033
28: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00250033
29: C 00260033
30: C ********************************************************** 00270033
31: C 00280033
32: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00290033
33: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00300033
34: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00310033
35: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00320033
36: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00330033
37: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00340033
38: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00350033
39: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00360033
40: C OF EXECUTING THESE TESTS. 00370033
41: C 00380033
42: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00390033
43: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00400033
44: C 00410033
45: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00420033
46: C 00430033
47: C DEPARTMENT OF THE NAVY 00440033
48: C FEDERAL COBOL COMPILER TESTING SERVICE 00450033
49: C WASHINGTON, D.C. 20376 00460033
50: C 00470033
51: C ********************************************************** 00480033
52: C 00490033
53: C 00500033
54: C 00510033
55: C INITIALIZATION SECTION 00520033
56: C 00530033
57: C INITIALIZE CONSTANTS 00540033
58: C ************** 00550033
59: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00560033
60: I01 = 5 00570033
61: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00580033
62: I02 = 6 00590033
63: C SYSTEM ENVIRONMENT SECTION 00600033
64: C 00610033
65: I01 = 5 00620033
66: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00630033
67: C (UNIT NUMBER FOR CARD READER). 00640033
68: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00650033
69: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00660033
70: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00670033
71: C 00680033
72: I02 = 6 00690033
73: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00700033
74: C (UNIT NUMBER FOR PRINTER). 00710033
75: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00720033
76: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00730033
77: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00740033
78: C 00750033
79: IVPASS=0 00760033
80: IVFAIL=0 00770033
81: IVDELE=0 00780033
82: ICZERO=0 00790033
83: C 00800033
84: C WRITE PAGE HEADERS 00810033
85: WRITE (I02,90000) 00820033
86: WRITE (I02,90001) 00830033
87: WRITE (I02,90002) 00840033
88: WRITE (I02, 90002) 00850033
89: WRITE (I02,90003) 00860033
90: WRITE (I02,90002) 00870033
91: WRITE (I02,90004) 00880033
92: WRITE (I02,90002) 00890033
93: WRITE (I02,90011) 00900033
94: WRITE (I02,90002) 00910033
95: WRITE (I02,90002) 00920033
96: WRITE (I02,90005) 00930033
97: WRITE (I02,90006) 00940033
98: WRITE (I02,90002) 00950033
99: C 00960033
100: C TEST SECTION 00970033
101: C 00980033
102: C ARITHMETIC ASSIGNMENT STATEMENT 00990033
103: C 01000033
104: C TEST 360 THROUGH TEST 376 CONTAIN TWO INTEGER CONSTANTS AND 01010033
105: C OPERATOR * IN AN ARITHMETIC EXPRESSION. 01020033
106: C IV = IC * IC 01030033
107: C 01040033
108: C TEST 360 THROUGH TEST 365 - INTEGER CONSTANTS ARE POSITIVE 01050033
109: C 01060033
110: 3601 CONTINUE 01070033
111: IVTNUM = 360 01080033
112: C 01090033
113: C **** TEST 360 **** 01100033
114: C 01110033
115: IF (ICZERO) 33600, 3600, 33600 01120033
116: 3600 CONTINUE 01130033
117: IVCOMP = 2 * 3 01140033
118: GO TO 43600 01150033
119: 33600 IVDELE = IVDELE + 1 01160033
120: WRITE (I02,80003) IVTNUM 01170033
121: IF (ICZERO) 43600, 3611, 43600 01180033
122: 43600 IF (IVCOMP - 6) 23600,13600,23600 01190033
123: 13600 IVPASS = IVPASS + 1 01200033
124: WRITE (I02,80001) IVTNUM 01210033
125: GO TO 3611 01220033
126: 23600 IVFAIL = IVFAIL + 1 01230033
127: IVCORR=6 01240033
128: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01250033
129: 3611 CONTINUE 01260033
130: IVTNUM = 361 01270033
131: C 01280033
132: C **** TEST 361 **** 01290033
133: C 01300033
134: IF (ICZERO) 33610, 3610, 33610 01310033
135: 3610 CONTINUE 01320033
136: IVCOMP = 3*2 01330033
137: GO TO 43610 01340033
138: 33610 IVDELE = IVDELE + 1 01350033
139: WRITE (I02,80003) IVTNUM 01360033
140: IF (ICZERO) 43610, 3621, 43610 01370033
141: 43610 IF (IVCOMP-6) 23610,13610,23610 01380033
142: 13610 IVPASS = IVPASS + 1 01390033
143: WRITE (I02,80001) IVTNUM 01400033
144: GO TO 3621 01410033
145: 23610 IVFAIL = IVFAIL + 1 01420033
146: IVCORR=6 01430033
147: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01440033
148: 3621 CONTINUE 01450033
149: IVTNUM = 362 01460033
150: C 01470033
151: C **** TEST 362 **** 01480033
152: C 01490033
153: IF (ICZERO) 33620, 3620, 33620 01500033
154: 3620 CONTINUE 01510033
155: IVCOMP=13*11 01520033
156: GO TO 43620 01530033
157: 33620 IVDELE = IVDELE + 1 01540033
158: WRITE (I02,80003) IVTNUM 01550033
159: IF (ICZERO) 43620, 3631, 43620 01560033
160: 43620 IF (IVCOMP-143) 23620,13620,23620 01570033
161: 13620 IVPASS = IVPASS + 1 01580033
162: WRITE (I02,80001) IVTNUM 01590033
163: GO TO 3631 01600033
164: 23620 IVFAIL = IVFAIL + 1 01610033
165: IVCORR=143 01620033
166: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01630033
167: 3631 CONTINUE 01640033
168: IVTNUM = 363 01650033
169: C 01660033
170: C **** TEST 363 **** 01670033
171: C 01680033
172: IF (ICZERO) 33630, 3630, 33630 01690033
173: 3630 CONTINUE 01700033
174: IVCOMP = 223*99 01710033
175: GO TO 43630 01720033
176: 33630 IVDELE = IVDELE + 1 01730033
177: WRITE (I02,80003) IVTNUM 01740033
178: IF (ICZERO) 43630, 3641, 43630 01750033
179: 43630 IF (IVCOMP-22077) 23630,13630,23630 01760033
180: 13630 IVPASS = IVPASS + 1 01770033
181: WRITE (I02,80001) IVTNUM 01780033
182: GO TO 3641 01790033
183: 23630 IVFAIL = IVFAIL + 1 01800033
184: IVCORR=22077 01810033
185: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01820033
186: 3641 CONTINUE 01830033
187: IVTNUM = 364 01840033
188: C 01850033
189: C **** TEST 364 **** 01860033
190: C 01870033
191: IF (ICZERO) 33640, 3640, 33640 01880033
192: 3640 CONTINUE 01890033
193: IVCOMP=11235*2 01900033
194: GO TO 43640 01910033
195: 33640 IVDELE = IVDELE + 1 01920033
196: WRITE (I02,80003) IVTNUM 01930033
197: IF (ICZERO) 43640, 3651, 43640 01940033
198: 43640 IF (IVCOMP-22470) 23640,13640,23640 01950033
199: 13640 IVPASS = IVPASS + 1 01960033
200: WRITE (I02,80001) IVTNUM 01970033
201: GO TO 3651 01980033
202: 23640 IVFAIL = IVFAIL + 1 01990033
203: IVCORR=22470 02000033
204: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02010033
205: 3651 CONTINUE 02020033
206: IVTNUM = 365 02030033
207: C 02040033
208: C **** TEST 365 **** 02050033
209: C 02060033
210: IF (ICZERO) 33650, 3650, 33650 02070033
211: 3650 CONTINUE 02080033
212: IVCOMP = 2*16383 02090033
213: GO TO 43650 02100033
214: 33650 IVDELE = IVDELE + 1 02110033
215: WRITE (I02,80003) IVTNUM 02120033
216: IF (ICZERO) 43650, 3661, 43650 02130033
217: 43650 IF (IVCOMP-32766) 23650,13650,23650 02140033
218: 13650 IVPASS = IVPASS + 1 02150033
219: WRITE (I02,80001) IVTNUM 02160033
220: GO TO 3661 02170033
221: 23650 IVFAIL = IVFAIL + 1 02180033
222: IVCORR = 32766 02190033
223: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02200033
224: C 02210033
225: C TEST 366 THROUGH TEST 371 02220033
226: C ONE POSITIVE AND ONE NEGATIVE CONSTANT 02230033
227: C 02240033
228: 3661 CONTINUE 02250033
229: IVTNUM = 366 02260033
230: C 02270033
231: C **** TEST 366 **** 02280033
232: C 02290033
233: IF (ICZERO) 33660, 3660, 33660 02300033
234: 3660 CONTINUE 02310033
235: IVCOMP =2*(-3) 02320033
236: GO TO 43660 02330033
237: 33660 IVDELE = IVDELE + 1 02340033
238: WRITE (I02,80003) IVTNUM 02350033
239: IF (ICZERO) 43660, 3671, 43660 02360033
240: 43660 IF (IVCOMP+6) 23660,13660,23660 02370033
241: 13660 IVPASS = IVPASS + 1 02380033
242: WRITE (I02,80001) IVTNUM 02390033
243: GO TO 3671 02400033
244: 23660 IVFAIL = IVFAIL + 1 02410033
245: IVCORR = -6 02420033
246: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02430033
247: 3671 CONTINUE 02440033
248: IVTNUM = 367 02450033
249: C 02460033
250: C **** TEST 367 **** 02470033
251: C 02480033
252: IF (ICZERO) 33670, 3670, 33670 02490033
253: 3670 CONTINUE 02500033
254: IVCOMP=(-2)*3 02510033
255: GO TO 43670 02520033
256: 33670 IVDELE = IVDELE + 1 02530033
257: WRITE (I02,80003) IVTNUM 02540033
258: IF (ICZERO) 43670, 3681, 43670 02550033
259: 43670 IF (IVCOMP+6)23670,13670,23670 02560033
260: 13670 IVPASS = IVPASS + 1 02570033
261: WRITE (I02,80001) IVTNUM 02580033
262: GO TO 3681 02590033
263: 23670 IVFAIL = IVFAIL + 1 02600033
264: IVCORR =-6 02610033
265: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02620033
266: 3681 CONTINUE 02630033
267: IVTNUM = 368 02640033
268: C 02650033
269: C **** TEST 368 **** 02660033
270: C 02670033
271: IF (ICZERO) 33680, 3680, 33680 02680033
272: 3680 CONTINUE 02690033
273: IVCOMP= -2*3 02700033
274: GO TO 43680 02710033
275: 33680 IVDELE = IVDELE + 1 02720033
276: WRITE (I02,80003) IVTNUM 02730033
277: IF (ICZERO) 43680, 3691, 43680 02740033
278: 43680 IF (IVCOMP +6) 23680,13680,23680 02750033
279: 13680 IVPASS = IVPASS + 1 02760033
280: WRITE (I02,80001) IVTNUM 02770033
281: GO TO 3691 02780033
282: 23680 IVFAIL = IVFAIL + 1 02790033
283: IVCORR=-6 02800033
284: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02810033
285: 3691 CONTINUE 02820033
286: IVTNUM = 369 02830033
287: C 02840033
288: C **** TEST 369 **** 02850033
289: C 02860033
290: IF (ICZERO) 33690, 3690, 33690 02870033
291: 3690 CONTINUE 02880033
292: IVCOMP = (-13)*11 02890033
293: GO TO 43690 02900033
294: 33690 IVDELE = IVDELE + 1 02910033
295: WRITE (I02,80003) IVTNUM 02920033
296: IF (ICZERO) 43690, 3701, 43690 02930033
297: 43690 IF (IVCOMP+143) 23690,13690,23690 02940033
298: 13690 IVPASS = IVPASS + 1 02950033
299: WRITE (I02,80001) IVTNUM 02960033
300: GO TO 3701 02970033
301: 23690 IVFAIL = IVFAIL + 1 02980033
302: IVCORR=-143 02990033
303: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03000033
304: 3701 CONTINUE 03010033
305: IVTNUM = 370 03020033
306: C 03030033
307: C **** TEST 370 **** 03040033
308: C 03050033
309: IF (ICZERO) 33700, 3700, 33700 03060033
310: 3700 CONTINUE 03070033
311: IVCOMP = 223 * (-99) 03080033
312: GO TO 43700 03090033
313: 33700 IVDELE = IVDELE + 1 03100033
314: WRITE (I02,80003) IVTNUM 03110033
315: IF (ICZERO) 43700, 3711, 43700 03120033
316: 43700 IF (IVCOMP + 22077) 23700,13700,23700 03130033
317: 13700 IVPASS = IVPASS + 1 03140033
318: WRITE (I02,80001) IVTNUM 03150033
319: GO TO 3711 03160033
320: 23700 IVFAIL = IVFAIL + 1 03170033
321: IVCORR =-22077 03180033
322: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03190033
323: 3711 CONTINUE 03200033
324: IVTNUM = 371 03210033
325: C 03220033
326: C **** TEST 371 **** 03230033
327: C 03240033
328: IF (ICZERO) 33710, 3710, 33710 03250033
329: 3710 CONTINUE 03260033
330: IVCOMP= -2 * 16383 03270033
331: GO TO 43710 03280033
332: 33710 IVDELE = IVDELE + 1 03290033
333: WRITE (I02,80003) IVTNUM 03300033
334: IF (ICZERO) 43710, 3721, 43710 03310033
335: 43710 IF (IVCOMP+32766) 23710,13710,23710 03320033
336: 13710 IVPASS = IVPASS + 1 03330033
337: WRITE (I02,80001) IVTNUM 03340033
338: GO TO 3721 03350033
339: 23710 IVFAIL = IVFAIL + 1 03360033
340: IVCORR= -32766 03370033
341: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03380033
342: C 03390033
343: C TEST 372 THROUGH TEST 376 - TWO NEGATIVE CONSTANTS 03400033
344: C 03410033
345: 3721 CONTINUE 03420033
346: IVTNUM = 372 03430033
347: C 03440033
348: C **** TEST 372 **** 03450033
349: C 03460033
350: IF (ICZERO) 33720, 3720, 33720 03470033
351: 3720 CONTINUE 03480033
352: IVCOMP=(-2)*(-3) 03490033
353: GO TO 43720 03500033
354: 33720 IVDELE = IVDELE + 1 03510033
355: WRITE (I02,80003) IVTNUM 03520033
356: IF (ICZERO) 43720, 3731, 43720 03530033
357: 43720 IF (IVCOMP-6) 23720,13720,23720 03540033
358: 13720 IVPASS = IVPASS + 1 03550033
359: WRITE (I02,80001) IVTNUM 03560033
360: GO TO 3731 03570033
361: 23720 IVFAIL = IVFAIL + 1 03580033
362: IVCORR=6 03590033
363: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03600033
364: 3731 CONTINUE 03610033
365: IVTNUM = 373 03620033
366: C 03630033
367: C **** TEST 373 **** 03640033
368: C 03650033
369: IF (ICZERO) 33730, 3730, 33730 03660033
370: 3730 CONTINUE 03670033
371: IVCOMP = -2*(-3) 03680033
372: GO TO 43730 03690033
373: 33730 IVDELE = IVDELE + 1 03700033
374: WRITE (I02,80003) IVTNUM 03710033
375: IF (ICZERO) 43730, 3741, 43730 03720033
376: 43730 IF (IVCOMP-6) 23730,13730,23730 03730033
377: 13730 IVPASS = IVPASS + 1 03740033
378: WRITE (I02,80001) IVTNUM 03750033
379: GO TO 3741 03760033
380: 23730 IVFAIL = IVFAIL + 1 03770033
381: IVCORR=6 03780033
382: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03790033
383: 3741 CONTINUE 03800033
384: IVTNUM = 374 03810033
385: C 03820033
386: C **** TEST 374 **** 03830033
387: C 03840033
388: IF (ICZERO) 33740, 3740, 33740 03850033
389: 3740 CONTINUE 03860033
390: IVCOMP=(-13)*(-11) 03870033
391: GO TO 43740 03880033
392: 33740 IVDELE = IVDELE + 1 03890033
393: WRITE (I02,80003) IVTNUM 03900033
394: IF (ICZERO) 43740, 3751, 43740 03910033
395: 43740 IF (IVCOMP-143) 23740,13740,23740 03920033
396: 13740 IVPASS = IVPASS + 1 03930033
397: WRITE (I02,80001) IVTNUM 03940033
398: GO TO 3751 03950033
399: 23740 IVFAIL = IVFAIL + 1 03960033
400: IVCORR = 143 03970033
401: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03980033
402: 3751 CONTINUE 03990033
403: IVTNUM = 375 04000033
404: C 04010033
405: C **** TEST 375 **** 04020033
406: C 04030033
407: IF (ICZERO) 33750, 3750, 33750 04040033
408: 3750 CONTINUE 04050033
409: IVCOMP= -223 *(-99) 04060033
410: GO TO 43750 04070033
411: 33750 IVDELE = IVDELE + 1 04080033
412: WRITE (I02,80003) IVTNUM 04090033
413: IF (ICZERO) 43750, 3761, 43750 04100033
414: 43750 IF (IVCOMP - 22077) 23750,13750,23750 04110033
415: 13750 IVPASS = IVPASS + 1 04120033
416: WRITE (I02,80001) IVTNUM 04130033
417: GO TO 3761 04140033
418: 23750 IVFAIL = IVFAIL + 1 04150033
419: IVCORR = 22077 04160033
420: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04170033
421: 3761 CONTINUE 04180033
422: IVTNUM = 376 04190033
423: C 04200033
424: C **** TEST 376 **** 04210033
425: C 04220033
426: IF (ICZERO) 33760, 3760, 33760 04230033
427: 3760 CONTINUE 04240033
428: IVCOMP = (-16383)*(-2) 04250033
429: GO TO 43760 04260033
430: 33760 IVDELE = IVDELE + 1 04270033
431: WRITE (I02,80003) IVTNUM 04280033
432: IF (ICZERO) 43760, 3771, 43760 04290033
433: 43760 IF (IVCOMP - 32766) 23760,13760,23760 04300033
434: 13760 IVPASS = IVPASS + 1 04310033
435: WRITE (I02,80001) IVTNUM 04320033
436: GO TO 3771 04330033
437: 23760 IVFAIL = IVFAIL + 1 04340033
438: IVCORR =32766 04350033
439: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04360033
440: C 04370033
441: C TEST 377 THROUGH TEST 394 CONTAIN THREE INTEGER CONSTANTS AND 04380033
442: C OPERATOR * IN AN ARITHMETIC EXPRESSION. 04390033
443: C IV = IC * IC * IC 04400033
444: C 04410033
445: C TEST 377 THROUGH TEST 382 - CONSTANTS ARE POSITIVE 04420033
446: C 04430033
447: 3771 CONTINUE 04440033
448: IVTNUM = 377 04450033
449: C 04460033
450: C **** TEST 377 **** 04470033
451: C 04480033
452: IF (ICZERO) 33770, 3770, 33770 04490033
453: 3770 CONTINUE 04500033
454: IVCOMP =2*3*4 04510033
455: GO TO 43770 04520033
456: 33770 IVDELE = IVDELE + 1 04530033
457: WRITE (I02,80003) IVTNUM 04540033
458: IF (ICZERO) 43770, 3781, 43770 04550033
459: 43770 IF (IVCOMP-24) 23770,13770,23770 04560033
460: 13770 IVPASS = IVPASS + 1 04570033
461: WRITE (I02,80001) IVTNUM 04580033
462: GO TO 3781 04590033
463: 23770 IVFAIL = IVFAIL + 1 04600033
464: IVCORR = 24 04610033
465: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04620033
466: 3781 CONTINUE 04630033
467: IVTNUM = 378 04640033
468: C 04650033
469: C **** TEST 378 **** 04660033
470: C 04670033
471: IF (ICZERO) 33780, 3780, 33780 04680033
472: 3780 CONTINUE 04690033
473: IVCOMP = 2*3*55 04700033
474: GO TO 43780 04710033
475: 33780 IVDELE = IVDELE + 1 04720033
476: WRITE (I02,80003) IVTNUM 04730033
477: IF (ICZERO) 43780, 3791, 43780 04740033
478: 43780 IF (IVCOMP-330) 23780,13780,23780 04750033
479: 13780 IVPASS = IVPASS + 1 04760033
480: WRITE (I02,80001) IVTNUM 04770033
481: GO TO 3791 04780033
482: 23780 IVFAIL = IVFAIL + 1 04790033
483: IVCORR = 330 04800033
484: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04810033
485: 3791 CONTINUE 04820033
486: IVTNUM = 379 04830033
487: C 04840033
488: C **** TEST 379 **** 04850033
489: C 04860033
490: IF (ICZERO) 33790, 3790, 33790 04870033
491: 3790 CONTINUE 04880033
492: IVCOMP = 23*51*13 04890033
493: GO TO 43790 04900033
494: 33790 IVDELE = IVDELE + 1 04910033
495: WRITE (I02,80003) IVTNUM 04920033
496: IF (ICZERO) 43790, 3801, 43790 04930033
497: 43790 IF (IVCOMP-15249) 23790,13790,23790 04940033
498: 13790 IVPASS = IVPASS + 1 04950033
499: WRITE (I02,80001) IVTNUM 04960033
500: GO TO 3801 04970033
501: 23790 IVFAIL = IVFAIL + 1 04980033
502: IVCORR = 15249 04990033
503: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05000033
504: 3801 CONTINUE 05010033
505: IVTNUM = 380 05020033
506: C 05030033
507: C **** TEST 380 **** 05040033
508: C 05050033
509: IF (ICZERO) 33800, 3800, 33800 05060033
510: 3800 CONTINUE 05070033
511: IVCOMP = 3* 5461* 2 05080033
512: GO TO 43800 05090033
513: 33800 IVDELE = IVDELE + 1 05100033
514: WRITE (I02,80003) IVTNUM 05110033
515: IF (ICZERO) 43800, 3811, 43800 05120033
516: 43800 IF (IVCOMP - 32766) 23800,13800,23800 05130033
517: 13800 IVPASS = IVPASS + 1 05140033
518: WRITE (I02,80001) IVTNUM 05150033
519: GO TO 3811 05160033
520: 23800 IVFAIL = IVFAIL + 1 05170033
521: IVCORR = 32766 05180033
522: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05190033
523: 3811 CONTINUE 05200033
524: IVTNUM = 381 05210033
525: C 05220033
526: C **** TEST 381 **** 05230033
527: C 05240033
528: IF (ICZERO) 33810, 3810, 33810 05250033
529: 3810 CONTINUE 05260033
530: IVCOMP = 16383*2*1 05270033
531: GO TO 43810 05280033
532: 33810 IVDELE = IVDELE + 1 05290033
533: WRITE (I02,80003) IVTNUM 05300033
534: IF (ICZERO) 43810, 3821, 43810 05310033
535: 43810 IF (IVCOMP-32766) 23810,13810,23810 05320033
536: 13810 IVPASS = IVPASS + 1 05330033
537: WRITE (I02,80001) IVTNUM 05340033
538: GO TO 3821 05350033
539: 23810 IVFAIL = IVFAIL + 1 05360033
540: IVCORR = 32766 05370033
541: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05380033
542: 3821 CONTINUE 05390033
543: IVTNUM = 382 05400033
544: C 05410033
545: C **** TEST 382 **** 05420033
546: C 05430033
547: IF (ICZERO) 33820, 3820, 33820 05440033
548: 3820 CONTINUE 05450033
549: IVCOMP = 3*53*157 05460033
550: GO TO 43820 05470033
551: 33820 IVDELE = IVDELE + 1 05480033
552: WRITE (I02,80003) IVTNUM 05490033
553: IF (ICZERO) 43820, 3831, 43820 05500033
554: 43820 IF (IVCOMP-24963) 23820,13820,23820 05510033
555: 13820 IVPASS = IVPASS + 1 05520033
556: WRITE (I02,80001) IVTNUM 05530033
557: GO TO 3831 05540033
558: 23820 IVFAIL = IVFAIL + 1 05550033
559: IVCORR = 24963 05560033
560: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05570033
561: C 05580033
562: C TEST 383 THROUGH TEST 386 05590033
563: C THREE POSITIVE INTEGER CONSTANTS GROUPED WITH PARENS. 05600033
564: C 05610033
565: 3831 CONTINUE 05620033
566: IVTNUM = 383 05630033
567: C 05640033
568: C **** TEST 383 **** 05650033
569: C 05660033
570: IF (ICZERO) 33830, 3830, 33830 05670033
571: 3830 CONTINUE 05680033
572: IVCOMP = (2*3)*4 05690033
573: GO TO 43830 05700033
574: 33830 IVDELE = IVDELE + 1 05710033
575: WRITE (I02,80003) IVTNUM 05720033
576: IF (ICZERO) 43830, 3841, 43830 05730033
577: 43830 IF (IVCOMP-24) 23830,13830,23830 05740033
578: 13830 IVPASS = IVPASS + 1 05750033
579: WRITE (I02,80001) IVTNUM 05760033
580: GO TO 3841 05770033
581: 23830 IVFAIL = IVFAIL + 1 05780033
582: IVCORR = 24 05790033
583: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05800033
584: 3841 CONTINUE 05810033
585: IVTNUM = 384 05820033
586: C 05830033
587: C **** TEST 384 **** 05840033
588: C 05850033
589: IF (ICZERO) 33840, 3840, 33840 05860033
590: 3840 CONTINUE 05870033
591: IVCOMP = 2*(3*4) 05880033
592: GO TO 43840 05890033
593: 33840 IVDELE = IVDELE + 1 05900033
594: WRITE (I02,80003) IVTNUM 05910033
595: IF (ICZERO) 43840, 3851, 43840 05920033
596: 43840 IF (IVCOMP-24) 23840,13840,23840 05930033
597: 13840 IVPASS = IVPASS + 1 05940033
598: WRITE (I02,80001) IVTNUM 05950033
599: GO TO 3851 05960033
600: 23840 IVFAIL = IVFAIL + 1 05970033
601: IVCORR = 24 05980033
602: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05990033
603: 3851 CONTINUE 06000033
604: IVTNUM = 385 06010033
605: C 06020033
606: C **** TEST 385 **** 06030033
607: C 06040033
608: IF (ICZERO) 33850, 3850, 33850 06050033
609: 3850 CONTINUE 06060033
610: IVCOMP = (3*(+53)) * (+157) 06070033
611: GO TO 43850 06080033
612: 33850 IVDELE = IVDELE + 1 06090033
613: WRITE (I02,80003) IVTNUM 06100033
614: IF (ICZERO) 43850, 3861, 43850 06110033
615: 43850 IF (IVCOMP-24963) 23850,13850,23850 06120033
616: 13850 IVPASS = IVPASS + 1 06130033
617: WRITE (I02,80001) IVTNUM 06140033
618: GO TO 3861 06150033
619: 23850 IVFAIL = IVFAIL + 1 06160033
620: IVCORR = 24963 06170033
621: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06180033
622: 3861 CONTINUE 06190033
623: IVTNUM = 386 06200033
624: C 06210033
625: C **** TEST 386 **** 06220033
626: C 06230033
627: IF (ICZERO) 33860, 3860, 33860 06240033
628: 3860 CONTINUE 06250033
629: IVCOMP = 3 *((+53)*157) 06260033
630: GO TO 43860 06270033
631: 33860 IVDELE = IVDELE + 1 06280033
632: WRITE (I02,80003) IVTNUM 06290033
633: IF (ICZERO) 43860, 3871, 43860 06300033
634: 43860 IF (IVCOMP-24963) 23860,13860,23860 06310033
635: 13860 IVPASS = IVPASS + 1 06320033
636: WRITE (I02,80001) IVTNUM 06330033
637: GO TO 3871 06340033
638: 23860 IVFAIL = IVFAIL + 1 06350033
639: IVCORR=24963 06360033
640: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06370033
641: C 06380033
642: C TEST 387 THROUGH TEST 391 06390033
643: C BOTH POSITIVE AND NEGATIVE CONSTANTS IN ARITHMETIC EXPRESSION.06400033
644: C 06410033
645: 3871 CONTINUE 06420033
646: IVTNUM = 387 06430033
647: C 06440033
648: C **** TEST 387 **** 06450033
649: C 06460033
650: IF (ICZERO) 33870, 3870, 33870 06470033
651: 3870 CONTINUE 06480033
652: IVCOMP = 2*3*(-4) 06490033
653: GO TO 43870 06500033
654: 33870 IVDELE = IVDELE + 1 06510033
655: WRITE (I02,80003) IVTNUM 06520033
656: IF (ICZERO) 43870, 3881, 43870 06530033
657: 43870 IF (IVCOMP + 24) 23870,13870,23870 06540033
658: 13870 IVPASS = IVPASS + 1 06550033
659: WRITE (I02,80001) IVTNUM 06560033
660: GO TO 3881 06570033
661: 23870 IVFAIL = IVFAIL + 1 06580033
662: IVCORR = -24 06590033
663: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06600033
664: 3881 CONTINUE 06610033
665: IVTNUM = 388 06620033
666: C 06630033
667: C **** TEST 388 **** 06640033
668: C 06650033
669: IF (ICZERO) 33880, 3880, 33880 06660033
670: 3880 CONTINUE 06670033
671: IVCOMP = 2*(-3)*(+4) 06680033
672: GO TO 43880 06690033
673: 33880 IVDELE = IVDELE + 1 06700033
674: WRITE (I02,80003) IVTNUM 06710033
675: IF (ICZERO) 43880, 3891, 43880 06720033
676: 43880 IF (IVCOMP + 24) 23880,13880,23880 06730033
677: 13880 IVPASS = IVPASS + 1 06740033
678: WRITE (I02,80001) IVTNUM 06750033
679: GO TO 3891 06760033
680: 23880 IVFAIL = IVFAIL + 1 06770033
681: IVCORR = -24 06780033
682: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06790033
683: 3891 CONTINUE 06800033
684: IVTNUM = 389 06810033
685: C 06820033
686: C **** TEST 389 **** 06830033
687: C 06840033
688: IF (ICZERO) 33890, 3890, 33890 06850033
689: 3890 CONTINUE 06860033
690: IVCOMP = (-2)*3*4 06870033
691: GO TO 43890 06880033
692: 33890 IVDELE = IVDELE + 1 06890033
693: WRITE (I02,80003) IVTNUM 06900033
694: IF (ICZERO) 43890, 3901, 43890 06910033
695: 43890 IF (IVCOMP+24) 23890,13890,23890 06920033
696: 13890 IVPASS = IVPASS + 1 06930033
697: WRITE (I02,80001) IVTNUM 06940033
698: GO TO 3901 06950033
699: 23890 IVFAIL = IVFAIL + 1 06960033
700: IVCORR = -24 06970033
701: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06980033
702: 3901 CONTINUE 06990033
703: IVTNUM = 390 07000033
704: C 07010033
705: C **** TEST 390 **** 07020033
706: C 07030033
707: IF (ICZERO) 33900, 3900, 33900 07040033
708: 3900 CONTINUE 07050033
709: IVCOMP = -2*3*4 07060033
710: GO TO 43900 07070033
711: 33900 IVDELE = IVDELE + 1 07080033
712: WRITE (I02,80003) IVTNUM 07090033
713: IF (ICZERO) 43900, 3911, 43900 07100033
714: 43900 IF (IVCOMP+24) 23900,13900,23900 07110033
715: 13900 IVPASS = IVPASS + 1 07120033
716: WRITE (I02,80001) IVTNUM 07130033
717: GO TO 3911 07140033
718: 23900 IVFAIL = IVFAIL + 1 07150033
719: IVCORR = -24 07160033
720: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07170033
721: 3911 CONTINUE 07180033
722: IVTNUM = 391 07190033
723: C 07200033
724: C **** TEST 391 **** 07210033
725: C 07220033
726: IF (ICZERO) 33910, 3910, 33910 07230033
727: 3910 CONTINUE 07240033
728: IVCOMP = +2 * (-3) * (-4) 07250033
729: GO TO 43910 07260033
730: 33910 IVDELE = IVDELE + 1 07270033
731: WRITE (I02,80003) IVTNUM 07280033
732: IF (ICZERO) 43910, 3921, 43910 07290033
733: 43910 IF (IVCOMP - 24) 23910,13910,23910 07300033
734: 13910 IVPASS = IVPASS + 1 07310033
735: WRITE (I02,80001) IVTNUM 07320033
736: GO TO 3921 07330033
737: 23910 IVFAIL = IVFAIL + 1 07340033
738: IVCORR = 24 07350033
739: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07360033
740: C 07370033
741: C TEST 392 THROUGH TEST 394 07380033
742: C ALL CONSTANTS ARE NEGATIVE. 07390033
743: C 07400033
744: 3921 CONTINUE 07410033
745: IVTNUM = 392 07420033
746: C 07430033
747: C **** TEST 392 **** 07440033
748: C 07450033
749: IF (ICZERO) 33920, 3920, 33920 07460033
750: 3920 CONTINUE 07470033
751: IVCOMP = (-2)*(-3)*(-4) 07480033
752: GO TO 43920 07490033
753: 33920 IVDELE = IVDELE + 1 07500033
754: WRITE (I02,80003) IVTNUM 07510033
755: IF (ICZERO) 43920, 3931, 43920 07520033
756: 43920 IF (IVCOMP+24) 23920,13920,23920 07530033
757: 13920 IVPASS = IVPASS + 1 07540033
758: WRITE (I02,80001) IVTNUM 07550033
759: GO TO 3931 07560033
760: 23920 IVFAIL = IVFAIL + 1 07570033
761: IVCORR = -24 07580033
762: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07590033
763: 3931 CONTINUE 07600033
764: IVTNUM = 393 07610033
765: C 07620033
766: C **** TEST 393 **** 07630033
767: C 07640033
768: IF (ICZERO) 33930, 3930, 33930 07650033
769: 3930 CONTINUE 07660033
770: IVCOMP = (-23)*(-51)*(-13) 07670033
771: GO TO 43930 07680033
772: 33930 IVDELE = IVDELE + 1 07690033
773: WRITE (I02,80003) IVTNUM 07700033
774: IF (ICZERO) 43930, 3941, 43930 07710033
775: 43930 IF (IVCOMP + 15249) 23930,13930,23930 07720033
776: 13930 IVPASS = IVPASS + 1 07730033
777: WRITE (I02,80001) IVTNUM 07740033
778: GO TO 3941 07750033
779: 23930 IVFAIL = IVFAIL + 1 07760033
780: IVCORR = -15249 07770033
781: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07780033
782: 3941 CONTINUE 07790033
783: IVTNUM = 394 07800033
784: C 07810033
785: C **** TEST 394 **** 07820033
786: C 07830033
787: IF (ICZERO) 33940, 3940, 33940 07840033
788: 3940 CONTINUE 07850033
789: IVCOMP = -3 * (-53)*( -157) 07860033
790: GO TO 43940 07870033
791: 33940 IVDELE = IVDELE + 1 07880033
792: WRITE (I02,80003) IVTNUM 07890033
793: IF (ICZERO) 43940, 3951, 43940 07900033
794: 43940 IF (IVCOMP +24963) 23940,13940,23940 07910033
795: 13940 IVPASS = IVPASS + 1 07920033
796: WRITE (I02,80001) IVTNUM 07930033
797: GO TO 3951 07940033
798: 23940 IVFAIL = IVFAIL + 1 07950033
799: IVCORR = -24963 07960033
800: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07970033
801: C **** END OF TESTS **** 07980033
802: 3951 CONTINUE 07990033
803: C 08000033
804: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 08010033
805: 99999 CONTINUE 08020033
806: WRITE (I02,90002) 08030033
807: WRITE (I02,90006) 08040033
808: WRITE (I02,90002) 08050033
809: WRITE (I02,90002) 08060033
810: WRITE (I02,90007) 08070033
811: WRITE (I02,90002) 08080033
812: WRITE (I02,90008) IVFAIL 08090033
813: WRITE (I02,90009) IVPASS 08100033
814: WRITE (I02,90010) IVDELE 08110033
815: C 08120033
816: C 08130033
817: C TERMINATE ROUTINE EXECUTION 08140033
818: STOP 08150033
819: C 08160033
820: C FORMAT STATEMENTS FOR PAGE HEADERS 08170033
821: 90000 FORMAT (1H1) 08180033
822: 90002 FORMAT (1H ) 08190033
823: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 08200033
824: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 08210033
825: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 08220033
826: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 08230033
827: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 08240033
828: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 08250033
829: C 08260033
830: C FORMAT STATEMENTS FOR RUN SUMMARIES 08270033
831: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 08280033
832: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 08290033
833: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 08300033
834: C 08310033
835: C FORMAT STATEMENTS FOR TEST RESULTS 08320033
836: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 08330033
837: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 08340033
838: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 08350033
839: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 08360033
840: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 08370033
841: C 08380033
842: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM033) 08390033
843: END 08400033
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.