|
|
1.1 root 1: C COMMENT SECTION 00010035
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 00020035
6: C FM035 00030035
7: C 00040035
8: C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050035
9: C FORM 00060035
10: C INTEGER VARIABLE = ARITHMETIC EXPRESSION 00070035
11: C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00080035
12: C OPERATOR *, INTEGER VARIABLES AND INTEGER CONSTANT. SOME OF THE 00090035
13: C TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE EXPRESSION AND TO 00100035
14: C ALLOW THE USE OF NEGATIVE CONSTANTS FOLLOWING THE * OPERATOR. 00110035
15: C THE INTEGER VARIABLES CONTAIN POSITIVE AND NEGATIVE VALUES. 00120035
16: C 00130035
17: C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00140035
18: C (1) INTEGER VARIABLE * INTEGER VARIABLE 00150035
19: C (2) INTEGER VARIABLE * INTEGER VARIABLE * INTEGER CONSTANT 00160035
20: C INTEGER VARIABLE * INTEGER CONSTANT * INTEGER VARIABLE 00170035
21: C INTEGER CONSTANT * INTEGER VARIABLE * INTEGER VARIABLE 00180035
22: C (3) SAME AS (2) BUT WITH PARENTHESES TO GROUP ELEMENTS. 00190035
23: C 00200035
24: C REFERENCES 00210035
25: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00220035
26: C X3.9-1978 00230035
27: C 00240035
28: C SECTION 4.3, INTEGER TYPE 00250035
29: C SECTION 4.3.1, INTEGER CONSTANT 00260035
30: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00270035
31: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00280035
32: C 00290035
33: C ********************************************************** 00300035
34: C 00310035
35: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00320035
36: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00330035
37: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00340035
38: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00350035
39: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00360035
40: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00370035
41: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00380035
42: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00390035
43: C OF EXECUTING THESE TESTS. 00400035
44: C 00410035
45: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00420035
46: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00430035
47: C 00440035
48: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00450035
49: C 00460035
50: C DEPARTMENT OF THE NAVY 00470035
51: C FEDERAL COBOL COMPILER TESTING SERVICE 00480035
52: C WASHINGTON, D.C. 20376 00490035
53: C 00500035
54: C ********************************************************** 00510035
55: C 00520035
56: C 00530035
57: C 00540035
58: C INITIALIZATION SECTION 00550035
59: C 00560035
60: C INITIALIZE CONSTANTS 00570035
61: C ************** 00580035
62: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00590035
63: I01 = 5 00600035
64: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00610035
65: I02 = 6 00620035
66: C SYSTEM ENVIRONMENT SECTION 00630035
67: C 00640035
68: I01 = 5 00650035
69: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00660035
70: C (UNIT NUMBER FOR CARD READER). 00670035
71: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00680035
72: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00690035
73: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00700035
74: C 00710035
75: I02 = 6 00720035
76: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00730035
77: C (UNIT NUMBER FOR PRINTER). 00740035
78: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00750035
79: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00760035
80: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00770035
81: C 00780035
82: IVPASS=0 00790035
83: IVFAIL=0 00800035
84: IVDELE=0 00810035
85: ICZERO=0 00820035
86: C 00830035
87: C WRITE PAGE HEADERS 00840035
88: WRITE (I02,90000) 00850035
89: WRITE (I02,90001) 00860035
90: WRITE (I02,90002) 00870035
91: WRITE (I02, 90002) 00880035
92: WRITE (I02,90003) 00890035
93: WRITE (I02,90002) 00900035
94: WRITE (I02,90004) 00910035
95: WRITE (I02,90002) 00920035
96: WRITE (I02,90011) 00930035
97: WRITE (I02,90002) 00940035
98: WRITE (I02,90002) 00950035
99: WRITE (I02,90005) 00960035
100: WRITE (I02,90006) 00970035
101: WRITE (I02,90002) 00980035
102: C 00990035
103: C TEST SECTION 01000035
104: C 01010035
105: C ARITHMETIC ASSIGNMENT STATEMENT 01020035
106: C 01030035
107: C TEST 430 THROUGH TEST 441 CONTAIN TWO INTEGER VARIABLES AND 01040035
108: C OPERATOR * IN AN ARITHMETIC EXPRESSION. 01050035
109: C THE FORM IS IV = IV * IV 01060035
110: C 01070035
111: C TEST 430 THROUGH TEST 433 - TWO POSITIVE VARIABLES 01080035
112: C 01090035
113: 4301 CONTINUE 01100035
114: IVTNUM = 430 01110035
115: C 01120035
116: C **** TEST 430 **** 01130035
117: C 01140035
118: IF (ICZERO) 34300, 4300, 34300 01150035
119: 4300 CONTINUE 01160035
120: IVON01 = 2 01170035
121: IVON02 = 3 01180035
122: IVCOMP = IVON01 * IVON02 01190035
123: GO TO 44300 01200035
124: 34300 IVDELE = IVDELE + 1 01210035
125: WRITE (I02,80003) IVTNUM 01220035
126: IF (ICZERO) 44300, 4311, 44300 01230035
127: 44300 IF (IVCOMP - 6) 24300,14300,24300 01240035
128: 14300 IVPASS = IVPASS + 1 01250035
129: WRITE (I02,80001) IVTNUM 01260035
130: GO TO 4311 01270035
131: 24300 IVFAIL = IVFAIL + 1 01280035
132: IVCORR = 6 01290035
133: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01300035
134: 4311 CONTINUE 01310035
135: IVTNUM = 431 01320035
136: C 01330035
137: C **** TEST 431 **** 01340035
138: C 01350035
139: IF (ICZERO) 34310, 4310, 34310 01360035
140: 4310 CONTINUE 01370035
141: IVON01 = 13 01380035
142: IVON02 = 11 01390035
143: IVCOMP = IVON01 * IVON02 01400035
144: GO TO 44310 01410035
145: 34310 IVDELE = IVDELE + 1 01420035
146: WRITE (I02,80003) IVTNUM 01430035
147: IF (ICZERO) 44310, 4321, 44310 01440035
148: 44310 IF (IVCOMP - 143) 24310,14310,24310 01450035
149: 14310 IVPASS = IVPASS + 1 01460035
150: WRITE (I02,80001) IVTNUM 01470035
151: GO TO 4321 01480035
152: 24310 IVFAIL = IVFAIL + 1 01490035
153: IVCORR = 143 01500035
154: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01510035
155: 4321 CONTINUE 01520035
156: IVTNUM = 432 01530035
157: C 01540035
158: C **** TEST 432 **** 01550035
159: C 01560035
160: IF (ICZERO) 34320, 4320, 34320 01570035
161: 4320 CONTINUE 01580035
162: IVON01 = 223 01590035
163: IVON02 = 99 01600035
164: IVCOMP = IVON01 * IVON02 01610035
165: GO TO 44320 01620035
166: 34320 IVDELE = IVDELE + 1 01630035
167: WRITE (I02,80003) IVTNUM 01640035
168: IF (ICZERO) 44320, 4331, 44320 01650035
169: 44320 IF (IVCOMP - 22077) 24320,14320,24320 01660035
170: 14320 IVPASS = IVPASS + 1 01670035
171: WRITE (I02,80001) IVTNUM 01680035
172: GO TO 4331 01690035
173: 24320 IVFAIL = IVFAIL + 1 01700035
174: IVCORR = 22077 01710035
175: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01720035
176: 4331 CONTINUE 01730035
177: IVTNUM = 433 01740035
178: C 01750035
179: C **** TEST 433 **** 01760035
180: C 01770035
181: IF (ICZERO) 34330, 4330, 34330 01780035
182: 4330 CONTINUE 01790035
183: IVON01 = 11235 01800035
184: IVON02 = 2 01810035
185: IVCOMP = IVON01*IVON02 01820035
186: GO TO 44330 01830035
187: 34330 IVDELE = IVDELE + 1 01840035
188: WRITE (I02,80003) IVTNUM 01850035
189: IF (ICZERO) 44330, 4341, 44330 01860035
190: 44330 IF (IVCOMP - 22470) 24330,14330,24330 01870035
191: 14330 IVPASS = IVPASS + 1 01880035
192: WRITE (I02,80001) IVTNUM 01890035
193: GO TO 4341 01900035
194: 24330 IVFAIL = IVFAIL + 1 01910035
195: IVCORR = 22470 01920035
196: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01930035
197: C 01940035
198: C TEST 434 THROUGH TEST 437 01950035
199: C ONE NEGATIVE VARIABLE, ONE POSITIVE VARIABLE 01960035
200: C 01970035
201: 4341 CONTINUE 01980035
202: IVTNUM = 434 01990035
203: C 02000035
204: C **** TEST 434 **** 02010035
205: C 02020035
206: IF (ICZERO) 34340, 4340, 34340 02030035
207: 4340 CONTINUE 02040035
208: IVON01 = -2 02050035
209: IVON02 = 3 02060035
210: IVCOMP = IVON01 * IVON02 02070035
211: GO TO 44340 02080035
212: 34340 IVDELE = IVDELE + 1 02090035
213: WRITE (I02,80003) IVTNUM 02100035
214: IF (ICZERO) 44340, 4351, 44340 02110035
215: 44340 IF (IVCOMP +6) 24340,14340,24340 02120035
216: 14340 IVPASS = IVPASS + 1 02130035
217: WRITE (I02,80001) IVTNUM 02140035
218: GO TO 4351 02150035
219: 24340 IVFAIL = IVFAIL + 1 02160035
220: IVCORR = -6 02170035
221: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02180035
222: 4351 CONTINUE 02190035
223: IVTNUM = 435 02200035
224: C 02210035
225: C **** TEST 435 **** 02220035
226: C 02230035
227: IF (ICZERO) 34350, 4350, 34350 02240035
228: 4350 CONTINUE 02250035
229: IVON01 = -13 02260035
230: IVON02 = +11 02270035
231: IVCOMP = IVON01*IVON02 02280035
232: GO TO 44350 02290035
233: 34350 IVDELE = IVDELE + 1 02300035
234: WRITE (I02,80003) IVTNUM 02310035
235: IF (ICZERO) 44350, 4361, 44350 02320035
236: 44350 IF (IVCOMP + 143) 24350,14350,24350 02330035
237: 14350 IVPASS = IVPASS + 1 02340035
238: WRITE (I02,80001) IVTNUM 02350035
239: GO TO 4361 02360035
240: 24350 IVFAIL = IVFAIL + 1 02370035
241: IVCORR = -143 02380035
242: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02390035
243: 4361 CONTINUE 02400035
244: IVTNUM = 436 02410035
245: C 02420035
246: C **** TEST 436 **** 02430035
247: C 02440035
248: IF (ICZERO) 34360, 4360, 34360 02450035
249: 4360 CONTINUE 02460035
250: IVON01 = -223 02470035
251: IVON02 = 99 02480035
252: IVCOMP = IVON01 * IVON02 02490035
253: GO TO 44360 02500035
254: 34360 IVDELE = IVDELE + 1 02510035
255: WRITE (I02,80003) IVTNUM 02520035
256: IF (ICZERO) 44360, 4371, 44360 02530035
257: 44360 IF (IVCOMP + 22077) 24360,14360,24360 02540035
258: 14360 IVPASS = IVPASS + 1 02550035
259: WRITE (I02,80001) IVTNUM 02560035
260: GO TO 4371 02570035
261: 24360 IVFAIL = IVFAIL + 1 02580035
262: IVCORR = -22077 02590035
263: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02600035
264: 4371 CONTINUE 02610035
265: IVTNUM = 437 02620035
266: C 02630035
267: C **** TEST 437 **** 02640035
268: C 02650035
269: IF (ICZERO) 34370, 4370, 34370 02660035
270: 4370 CONTINUE 02670035
271: IVON01 = -11235 02680035
272: IVON02 = 2 02690035
273: IVCOMP = IVON01 * IVON02 02700035
274: GO TO 44370 02710035
275: 34370 IVDELE = IVDELE + 1 02720035
276: WRITE (I02,80003) IVTNUM 02730035
277: IF (ICZERO) 44370, 4381, 44370 02740035
278: 44370 IF (IVCOMP + 22470) 24370,14370,24370 02750035
279: 14370 IVPASS = IVPASS + 1 02760035
280: WRITE (I02,80001) IVTNUM 02770035
281: GO TO 4381 02780035
282: 24370 IVFAIL = IVFAIL + 1 02790035
283: IVCORR = -22470 02800035
284: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02810035
285: C 02820035
286: C TEST 438 THROUGH TEST 441 - TWO NEGATIVE VARIABLES 02830035
287: 4381 CONTINUE 02840035
288: IVTNUM = 438 02850035
289: C 02860035
290: C **** TEST 438 **** 02870035
291: C 02880035
292: IF (ICZERO) 34380, 4380, 34380 02890035
293: 4380 CONTINUE 02900035
294: IVON01 = -2 02910035
295: IVON02 = -3 02920035
296: IVCOMP = IVON01 * IVON02 02930035
297: GO TO 44380 02940035
298: 34380 IVDELE = IVDELE + 1 02950035
299: WRITE (I02,80003) IVTNUM 02960035
300: IF (ICZERO) 44380, 4391, 44380 02970035
301: 44380 IF (IVCOMP - 6) 24380,14380,24380 02980035
302: 14380 IVPASS = IVPASS + 1 02990035
303: WRITE (I02,80001) IVTNUM 03000035
304: GO TO 4391 03010035
305: 24380 IVFAIL = IVFAIL + 1 03020035
306: IVCORR = 6 03030035
307: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03040035
308: 4391 CONTINUE 03050035
309: IVTNUM = 439 03060035
310: C 03070035
311: C **** TEST 439 **** 03080035
312: C 03090035
313: IF (ICZERO) 34390, 4390, 34390 03100035
314: 4390 CONTINUE 03110035
315: IVON01 = -13 03120035
316: IVON02 = -11 03130035
317: IVCOMP = IVON01 * IVON02 03140035
318: GO TO 44390 03150035
319: 34390 IVDELE = IVDELE + 1 03160035
320: WRITE (I02,80003) IVTNUM 03170035
321: IF (ICZERO) 44390, 4401, 44390 03180035
322: 44390 IF (IVCOMP - 143) 24390,14390,24390 03190035
323: 14390 IVPASS = IVPASS + 1 03200035
324: WRITE (I02,80001) IVTNUM 03210035
325: GO TO 4401 03220035
326: 24390 IVFAIL = IVFAIL + 1 03230035
327: IVCORR = 143 03240035
328: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03250035
329: 4401 CONTINUE 03260035
330: IVTNUM = 440 03270035
331: C 03280035
332: C **** TEST 440 **** 03290035
333: C 03300035
334: IF (ICZERO) 34400, 4400, 34400 03310035
335: 4400 CONTINUE 03320035
336: IVON01 = -223 03330035
337: IVON02 = -99 03340035
338: IVCOMP = IVON01*IVON02 03350035
339: GO TO 44400 03360035
340: 34400 IVDELE = IVDELE + 1 03370035
341: WRITE (I02,80003) IVTNUM 03380035
342: IF (ICZERO) 44400, 4411, 44400 03390035
343: 44400 IF (IVCOMP - 22077) 24400,14400,24400 03400035
344: 14400 IVPASS = IVPASS + 1 03410035
345: WRITE (I02,80001) IVTNUM 03420035
346: GO TO 4411 03430035
347: 24400 IVFAIL = IVFAIL + 1 03440035
348: IVCORR = 22077 03450035
349: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03460035
350: 4411 CONTINUE 03470035
351: IVTNUM = 441 03480035
352: C 03490035
353: C **** TEST 441 **** 03500035
354: C 03510035
355: IF (ICZERO) 34410, 4410, 34410 03520035
356: 4410 CONTINUE 03530035
357: IVON01 = -5461 03540035
358: IVON02 = -6 03550035
359: IVCOMP = IVON01 * IVON02 03560035
360: GO TO 44410 03570035
361: 34410 IVDELE = IVDELE + 1 03580035
362: WRITE (I02,80003) IVTNUM 03590035
363: IF (ICZERO) 44410, 4421, 44410 03600035
364: 44410 IF (IVCOMP - 32766) 24410, 14410, 24410 03610035
365: 14410 IVPASS = IVPASS + 1 03620035
366: WRITE (I02,80001) IVTNUM 03630035
367: GO TO 4421 03640035
368: 24410 IVFAIL = IVFAIL + 1 03650035
369: IVCORR = 32766 03660035
370: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03670035
371: C 03680035
372: C TEST 442 THROUGH TEST 445 CONTAIN SIGNED INTEGER VARIABLES AND 03690035
373: C OPERATOR * IN AN ARITHMETIC EXPRESSION. 03700035
374: 4421 CONTINUE 03710035
375: IVTNUM = 442 03720035
376: C 03730035
377: C **** TEST 442 **** 03740035
378: C FORM IS IV = -IV*IV 03750035
379: C 03760035
380: IF (ICZERO) 34420, 4420, 34420 03770035
381: 4420 CONTINUE 03780035
382: IVON01 = 2 03790035
383: IVON02 = 3 03800035
384: IVCOMP = -IVON01 * IVON02 03810035
385: GO TO 44420 03820035
386: 34420 IVDELE = IVDELE + 1 03830035
387: WRITE (I02,80003) IVTNUM 03840035
388: IF (ICZERO) 44420, 4431, 44420 03850035
389: 44420 IF (IVCOMP + 6) 24420,14420,24420 03860035
390: 14420 IVPASS = IVPASS + 1 03870035
391: WRITE (I02,80001) IVTNUM 03880035
392: GO TO 4431 03890035
393: 24420 IVFAIL = IVFAIL + 1 03900035
394: IVCORR = -6 03910035
395: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03920035
396: 4431 CONTINUE 03930035
397: IVTNUM = 443 03940035
398: C 03950035
399: C **** TEST 443 **** 03960035
400: C FORM IS IV = IV*(-IV) 03970035
401: C 03980035
402: IF (ICZERO) 34430, 4430, 34430 03990035
403: 4430 CONTINUE 04000035
404: IVON01 = 2 04010035
405: IVON02 = 3 04020035
406: IVCOMP = IVON01 * (-IVON02) 04030035
407: GO TO 44430 04040035
408: 34430 IVDELE = IVDELE + 1 04050035
409: WRITE (I02,80003) IVTNUM 04060035
410: IF (ICZERO) 44430, 4441, 44430 04070035
411: 44430 IF (IVCOMP +6) 24430,14430,24430 04080035
412: 14430 IVPASS = IVPASS + 1 04090035
413: WRITE (I02,80001) IVTNUM 04100035
414: GO TO 4441 04110035
415: 24430 IVFAIL = IVFAIL + 1 04120035
416: IVCORR = -6 04130035
417: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04140035
418: 4441 CONTINUE 04150035
419: IVTNUM = 444 04160035
420: C 04170035
421: C **** TEST 444 **** 04180035
422: C FORM IS IV = (-IV)*(-IV) 04190035
423: C 04200035
424: IF (ICZERO) 34440, 4440, 34440 04210035
425: 4440 CONTINUE 04220035
426: IVON01 = 2 04230035
427: IVON02 = 3 04240035
428: IVCOMP = (-IVON01) * (-IVON02) 04250035
429: GO TO 44440 04260035
430: 34440 IVDELE = IVDELE + 1 04270035
431: WRITE (I02,80003) IVTNUM 04280035
432: IF (ICZERO) 44440, 4451, 44440 04290035
433: 44440 IF (IVCOMP - 6) 24440,14440,24440 04300035
434: 14440 IVPASS = IVPASS + 1 04310035
435: WRITE (I02,80001) IVTNUM 04320035
436: GO TO 4451 04330035
437: 24440 IVFAIL = IVFAIL + 1 04340035
438: IVCORR = 6 04350035
439: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04360035
440: 4451 CONTINUE 04370035
441: IVTNUM = 445 04380035
442: C 04390035
443: C **** TEST 445 **** 04400035
444: C FORM IS IV = -IV * IV 04410035
445: C 04420035
446: IF (ICZERO) 34450, 4450, 34450 04430035
447: 4450 CONTINUE 04440035
448: IVON01 = -11235 04450035
449: IVON02 = -2 04460035
450: IVCOMP = -IVON01 * IVON02 04470035
451: GO TO 44450 04480035
452: 34450 IVDELE = IVDELE + 1 04490035
453: WRITE (I02,80003) IVTNUM 04500035
454: IF (ICZERO) 44450, 4461, 44450 04510035
455: 44450 IF (IVCOMP + 22470) 24450,14450,24450 04520035
456: 14450 IVPASS = IVPASS + 1 04530035
457: WRITE (I02,80001) IVTNUM 04540035
458: GO TO 4461 04550035
459: 24450 IVFAIL = IVFAIL + 1 04560035
460: IVCORR = -22470 04570035
461: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04580035
462: C 04590035
463: C TEST 446 THROUGH TEST 452 CONTAIN TWO INTEGER VARIABLES, AN 04600035
464: C INTEGER CONSTANT AND OPERATOR * IN AN ARITHMETIC EXPRESSION. 04610035
465: C 04620035
466: 4461 CONTINUE 04630035
467: IVTNUM = 446 04640035
468: C 04650035
469: C **** TEST 446 **** 04660035
470: C 04670035
471: IF (ICZERO) 34460, 4460, 34460 04680035
472: 4460 CONTINUE 04690035
473: IVON01 = 2 04700035
474: IVON02 = 3 04710035
475: IVCOMP = IVON01 * IVON02 * 4 04720035
476: GO TO 44460 04730035
477: 34460 IVDELE = IVDELE + 1 04740035
478: WRITE (I02,80003) IVTNUM 04750035
479: IF (ICZERO) 44460, 4471, 44460 04760035
480: 44460 IF (IVCOMP -24) 24460,14460,24460 04770035
481: 14460 IVPASS = IVPASS + 1 04780035
482: WRITE (I02,80001) IVTNUM 04790035
483: GO TO 4471 04800035
484: 24460 IVFAIL = IVFAIL + 1 04810035
485: IVCORR = 24 04820035
486: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04830035
487: 4471 CONTINUE 04840035
488: IVTNUM = 447 04850035
489: C 04860035
490: C **** TEST 447 **** 04870035
491: C 04880035
492: IF (ICZERO) 34470, 4470, 34470 04890035
493: 4470 CONTINUE 04900035
494: IVON01 = -2 04910035
495: IVON02 = 3 04920035
496: IVCOMP = IVON01 * IVON02 * 4 04930035
497: GO TO 44470 04940035
498: 34470 IVDELE = IVDELE + 1 04950035
499: WRITE (I02,80003) IVTNUM 04960035
500: IF (ICZERO) 44470, 4481, 44470 04970035
501: 44470 IF (IVCOMP +24) 24470,14470,24470 04980035
502: 14470 IVPASS = IVPASS + 1 04990035
503: WRITE (I02,80001) IVTNUM 05000035
504: GO TO 4481 05010035
505: 24470 IVFAIL = IVFAIL + 1 05020035
506: IVCORR = -24 05030035
507: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05040035
508: 4481 CONTINUE 05050035
509: IVTNUM = 448 05060035
510: C 05070035
511: C **** TEST 448 **** 05080035
512: C 05090035
513: IF (ICZERO) 34480, 4480, 34480 05100035
514: 4480 CONTINUE 05110035
515: IVON01 = -2 05120035
516: IVON02 = 3 05130035
517: IVCOMP = IVON01 * IVON02 * (-4) 05140035
518: GO TO 44480 05150035
519: 34480 IVDELE = IVDELE + 1 05160035
520: WRITE (I02,80003) IVTNUM 05170035
521: IF (ICZERO) 44480, 4491, 44480 05180035
522: 44480 IF (IVCOMP -24) 24480,14480,24480 05190035
523: 14480 IVPASS = IVPASS + 1 05200035
524: WRITE (I02,80001) IVTNUM 05210035
525: GO TO 4491 05220035
526: 24480 IVFAIL = IVFAIL + 1 05230035
527: IVCORR = 24 05240035
528: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05250035
529: 4491 CONTINUE 05260035
530: IVTNUM = 449 05270035
531: C 05280035
532: C **** TEST 449 **** 05290035
533: C 05300035
534: IF (ICZERO) 34490, 4490, 34490 05310035
535: 4490 CONTINUE 05320035
536: IVON01 = 51 05330035
537: IVON03 = 13 05340035
538: IVCOMP = IVON01 * 23 * IVON03 05350035
539: GO TO 44490 05360035
540: 34490 IVDELE = IVDELE + 1 05370035
541: WRITE (I02,80003) IVTNUM 05380035
542: IF (ICZERO) 44490, 4501, 44490 05390035
543: 44490 IF (IVCOMP - 15249) 24490,14490,24490 05400035
544: 14490 IVPASS = IVPASS + 1 05410035
545: WRITE (I02,80001) IVTNUM 05420035
546: GO TO 4501 05430035
547: 24490 IVFAIL = IVFAIL + 1 05440035
548: IVCORR = 15249 05450035
549: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05460035
550: 4501 CONTINUE 05470035
551: IVTNUM = 450 05480035
552: C 05490035
553: C **** TEST 450 **** 05500035
554: C 05510035
555: IF (ICZERO) 34500, 4500, 34500 05520035
556: 4500 CONTINUE 05530035
557: IVON02 = 2 05540035
558: IVON03 = 5461 05550035
559: IVCOMP = 3 * IVON02 * IVON03 05560035
560: GO TO 44500 05570035
561: 34500 IVDELE = IVDELE + 1 05580035
562: WRITE (I02,80003) IVTNUM 05590035
563: IF (ICZERO) 44500, 4511, 44500 05600035
564: 44500 IF (IVCOMP -32766) 24500,14500,24500 05610035
565: 14500 IVPASS = IVPASS + 1 05620035
566: WRITE (I02,80001) IVTNUM 05630035
567: GO TO 4511 05640035
568: 24500 IVFAIL = IVFAIL + 1 05650035
569: IVCORR = 32766 05660035
570: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05670035
571: 4511 CONTINUE 05680035
572: IVTNUM = 451 05690035
573: C 05700035
574: C **** TEST 451 **** 05710035
575: C 05720035
576: IF (ICZERO) 34510, 4510, 34510 05730035
577: 4510 CONTINUE 05740035
578: IVON01 = -51 05750035
579: IVON03 = 13 05760035
580: IVCOMP = IVON01 * 23 * (-IVON03) 05770035
581: GO TO 44510 05780035
582: 34510 IVDELE = IVDELE + 1 05790035
583: WRITE (I02,80003) IVTNUM 05800035
584: IF (ICZERO) 44510, 4521, 44510 05810035
585: 44510 IF (IVCOMP - 15249) 24510,14510,24510 05820035
586: 14510 IVPASS = IVPASS + 1 05830035
587: WRITE (I02,80001) IVTNUM 05840035
588: GO TO 4521 05850035
589: 24510 IVFAIL = IVFAIL + 1 05860035
590: IVCORR = 15249 05870035
591: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05880035
592: 4521 CONTINUE 05890035
593: IVTNUM = 452 05900035
594: C 05910035
595: C **** TEST 452 **** 05920035
596: C 05930035
597: IF (ICZERO) 34520, 4520, 34520 05940035
598: 4520 CONTINUE 05950035
599: IVON01 = -5461 05960035
600: IVON03 = 2 05970035
601: IVCOMP = IVON01 * (-3) * IVON03 05980035
602: GO TO 44520 05990035
603: 34520 IVDELE = IVDELE + 1 06000035
604: WRITE (I02,80003) IVTNUM 06010035
605: IF (ICZERO) 44520, 4531, 44520 06020035
606: 44520 IF (IVCOMP - 32766) 24520,14520,24520 06030035
607: 14520 IVPASS = IVPASS + 1 06040035
608: WRITE (I02,80001) IVTNUM 06050035
609: GO TO 4531 06060035
610: 24520 IVFAIL = IVFAIL + 1 06070035
611: IVCORR = 32766 06080035
612: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06090035
613: C 06100035
614: C TEST 453 THROUGH TEST 461 CONTAIN TWO INTEGER VARIABLES AND ONE 06110035
615: C INTEGER CONSTANT IN AN ARITHMETIC EXPRESSION. PARENTHESES ARE 06120035
616: C USED TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSIONS IN THESE 06130035
617: C TESTS. 06140035
618: C 06150035
619: 4531 CONTINUE 06160035
620: IVTNUM = 453 06170035
621: C 06180035
622: C **** TEST 453 **** 06190035
623: C 06200035
624: IF (ICZERO) 34530, 4530, 34530 06210035
625: 4530 CONTINUE 06220035
626: IVON01 = 2 06230035
627: IVON02 = 3 06240035
628: IVCOMP = IVON01 * (IVON02 * 4) 06250035
629: GO TO 44530 06260035
630: 34530 IVDELE = IVDELE + 1 06270035
631: WRITE (I02,80003) IVTNUM 06280035
632: IF (ICZERO) 44530, 4541, 44530 06290035
633: 44530 IF (IVCOMP - 24) 24530,14530,24530 06300035
634: 14530 IVPASS = IVPASS + 1 06310035
635: WRITE (I02,80001) IVTNUM 06320035
636: GO TO 4541 06330035
637: 24530 IVFAIL = IVFAIL + 1 06340035
638: IVCORR = 24 06350035
639: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06360035
640: 4541 CONTINUE 06370035
641: IVTNUM = 454 06380035
642: C 06390035
643: C **** TEST 454 **** 06400035
644: C 06410035
645: IF (ICZERO) 34540, 4540, 34540 06420035
646: 4540 CONTINUE 06430035
647: IVON01 = 2 06440035
648: IVON02 = 3 06450035
649: IVCOMP = (IVON01 * IVON02) * 4 06460035
650: GO TO 44540 06470035
651: 34540 IVDELE = IVDELE + 1 06480035
652: WRITE (I02,80003) IVTNUM 06490035
653: IF (ICZERO) 44540, 4551, 44540 06500035
654: 44540 IF (IVCOMP -24) 24540,14540,24540 06510035
655: 14540 IVPASS = IVPASS + 1 06520035
656: WRITE (I02,80001) IVTNUM 06530035
657: GO TO 4551 06540035
658: 24540 IVFAIL = IVFAIL + 1 06550035
659: IVCORR = 24 06560035
660: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06570035
661: 4551 CONTINUE 06580035
662: IVTNUM = 455 06590035
663: C 06600035
664: C **** TEST 455 **** 06610035
665: C 06620035
666: IF (ICZERO) 34550, 4550, 34550 06630035
667: 4550 CONTINUE 06640035
668: IVON01 = -2 06650035
669: IVON02 = 3 06660035
670: IVCOMP = IVON01 *(IVON02 * (-4)) 06670035
671: GO TO 44550 06680035
672: 34550 IVDELE = IVDELE + 1 06690035
673: WRITE (I02,80003) IVTNUM 06700035
674: IF (ICZERO) 44550, 4561, 44550 06710035
675: 44550 IF (IVCOMP - 24) 24550,14550,24550 06720035
676: 14550 IVPASS = IVPASS + 1 06730035
677: WRITE (I02,80001) IVTNUM 06740035
678: GO TO 4561 06750035
679: 24550 IVFAIL = IVFAIL + 1 06760035
680: IVCORR = 24 06770035
681: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06780035
682: 4561 CONTINUE 06790035
683: IVTNUM = 456 06800035
684: C 06810035
685: C **** TEST 456 **** 06820035
686: C 06830035
687: IF (ICZERO) 34560, 4560, 34560 06840035
688: 4560 CONTINUE 06850035
689: IVON01 = -2 06860035
690: IVON02 = -3 06870035
691: IVCOMP = IVON01 * (IVON02 * 4) 06880035
692: GO TO 44560 06890035
693: 34560 IVDELE = IVDELE + 1 06900035
694: WRITE (I02,80003) IVTNUM 06910035
695: IF (ICZERO) 44560, 4571, 44560 06920035
696: 44560 IF (IVCOMP -24) 24560,14560,24560 06930035
697: 14560 IVPASS = IVPASS + 1 06940035
698: WRITE (I02,80001) IVTNUM 06950035
699: GO TO 4571 06960035
700: 24560 IVFAIL = IVFAIL + 1 06970035
701: IVCORR = 24 06980035
702: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06990035
703: 4571 CONTINUE 07000035
704: IVTNUM = 457 07010035
705: C 07020035
706: C **** TEST 457 **** 07030035
707: C 07040035
708: IF (ICZERO) 34570, 4570, 34570 07050035
709: 4570 CONTINUE 07060035
710: IVON01 = -2 07070035
711: IVON02 = -3 07080035
712: IVCOMP = (IVON01*IVON02) * (-4) 07090035
713: GO TO 44570 07100035
714: 34570 IVDELE = IVDELE + 1 07110035
715: WRITE (I02,80003) IVTNUM 07120035
716: IF (ICZERO) 44570, 4581, 44570 07130035
717: 44570 IF (IVCOMP +24) 24570,14570,24570 07140035
718: 14570 IVPASS = IVPASS + 1 07150035
719: WRITE (I02,80001) IVTNUM 07160035
720: GO TO 4581 07170035
721: 24570 IVFAIL = IVFAIL + 1 07180035
722: IVCORR = -24 07190035
723: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07200035
724: 4581 CONTINUE 07210035
725: IVTNUM = 458 07220035
726: C 07230035
727: C **** TEST 458 **** 07240035
728: C 07250035
729: IF (ICZERO) 34580, 4580, 34580 07260035
730: 4580 CONTINUE 07270035
731: IVON01 = 23 07280035
732: IVON03 = 13 07290035
733: IVCOMP = IVON01 * (51 * IVON03) 07300035
734: GO TO 44580 07310035
735: 34580 IVDELE = IVDELE + 1 07320035
736: WRITE (I02,80003) IVTNUM 07330035
737: IF (ICZERO) 44580, 4591, 44580 07340035
738: 44580 IF (IVCOMP -15249) 24580,14580,24580 07350035
739: 14580 IVPASS = IVPASS + 1 07360035
740: WRITE (I02,80001) IVTNUM 07370035
741: GO TO 4591 07380035
742: 24580 IVFAIL = IVFAIL + 1 07390035
743: IVCORR = 15249 07400035
744: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07410035
745: 4591 CONTINUE 07420035
746: IVTNUM = 459 07430035
747: C 07440035
748: C **** TEST 459 **** 07450035
749: C 07460035
750: IF (ICZERO) 34590, 4590, 34590 07470035
751: 4590 CONTINUE 07480035
752: IVON02 = 51 07490035
753: IVON03 = 13 07500035
754: IVCOMP = (23 * IVON02) * IVON03 07510035
755: GO TO 44590 07520035
756: 34590 IVDELE = IVDELE + 1 07530035
757: WRITE (I02,80003) IVTNUM 07540035
758: IF (ICZERO) 44590, 4601, 44590 07550035
759: 44590 IF (IVCOMP - 15249) 24590,14590,24590 07560035
760: 14590 IVPASS = IVPASS + 1 07570035
761: WRITE (I02,80001) IVTNUM 07580035
762: GO TO 4601 07590035
763: 24590 IVFAIL = IVFAIL + 1 07600035
764: IVCORR = 15249 07610035
765: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07620035
766: 4601 CONTINUE 07630035
767: IVTNUM = 460 07640035
768: C 07650035
769: C **** TEST 460 **** 07660035
770: C 07670035
771: IF (ICZERO) 34600, 4600, 34600 07680035
772: 4600 CONTINUE 07690035
773: IVON01 = -23 07700035
774: IVON03 = 13 07710035
775: IVCOMP = (IVON01 * (-51)) * (-IVON03) 07720035
776: GO TO 44600 07730035
777: 34600 IVDELE = IVDELE + 1 07740035
778: WRITE (I02,80003) IVTNUM 07750035
779: IF (ICZERO) 44600, 4611, 44600 07760035
780: 44600 IF (IVCOMP + 15249) 24600,14600,24600 07770035
781: 14600 IVPASS = IVPASS + 1 07780035
782: WRITE (I02,80001) IVTNUM 07790035
783: GO TO 4611 07800035
784: 24600 IVFAIL = IVFAIL + 1 07810035
785: IVCORR = -15249 07820035
786: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07830035
787: 4611 CONTINUE 07840035
788: IVTNUM = 461 07850035
789: C 07860035
790: C **** TEST 461 **** 07870035
791: C 07880035
792: IF (ICZERO) 34610, 4610, 34610 07890035
793: 4610 CONTINUE 07900035
794: IVON02 = 51 07910035
795: IVON03 = 13 07920035
796: IVCOMP = -23 * (IVON02*IVON03) 07930035
797: GO TO 44610 07940035
798: 34610 IVDELE = IVDELE + 1 07950035
799: WRITE (I02,80003) IVTNUM 07960035
800: IF (ICZERO) 44610, 4621, 44610 07970035
801: 44610 IF (IVCOMP + 15249) 24610,14610,24610 07980035
802: 14610 IVPASS = IVPASS + 1 07990035
803: WRITE (I02,80001) IVTNUM 08000035
804: GO TO 4621 08010035
805: 24610 IVFAIL = IVFAIL + 1 08020035
806: IVCORR = -15249 08030035
807: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 08040035
808: C **** END OF TESTS **** 08050035
809: 4621 CONTINUE 08060035
810: C 08070035
811: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 08080035
812: 99999 CONTINUE 08090035
813: WRITE (I02,90002) 08100035
814: WRITE (I02,90006) 08110035
815: WRITE (I02,90002) 08120035
816: WRITE (I02,90002) 08130035
817: WRITE (I02,90007) 08140035
818: WRITE (I02,90002) 08150035
819: WRITE (I02,90008) IVFAIL 08160035
820: WRITE (I02,90009) IVPASS 08170035
821: WRITE (I02,90010) IVDELE 08180035
822: C 08190035
823: C 08200035
824: C TERMINATE ROUTINE EXECUTION 08210035
825: STOP 08220035
826: C 08230035
827: C FORMAT STATEMENTS FOR PAGE HEADERS 08240035
828: 90000 FORMAT (1H1) 08250035
829: 90002 FORMAT (1H ) 08260035
830: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 08270035
831: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 08280035
832: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 08290035
833: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 08300035
834: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 08310035
835: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 08320035
836: C 08330035
837: C FORMAT STATEMENTS FOR RUN SUMMARIES 08340035
838: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 08350035
839: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 08360035
840: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 08370035
841: C 08380035
842: C FORMAT STATEMENTS FOR TEST RESULTS 08390035
843: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 08400035
844: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 08410035
845: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 08420035
846: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 08430035
847: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 08440035
848: C 08450035
849: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM035) 08460035
850: END 08470035
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.