|
|
1.1 root 1: C COMMENT SECTION 00010038
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 00020038
6: C FM038 00030038
7: C 00040038
8: C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050038
9: C FORM INTEGER VARIABLE = ARITHMETIC EXPRESSION 00060038
10: C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00070038
11: C OPERATOR /, INTEGER CONSTANTS AND AN INTEGER VARIABLE. BOTH 00080038
12: C POSITIVE AND NEGATIVE VALUES ARE USED FOR THE INTEGER CONSTANTS 00090038
13: C AND THE INTEGER VARIABLE. 00100038
14: C 00110038
15: C THERE ARE TESTS WHICH REQUIRE NO TRUNCATION OF THE RESULT 00120038
16: C AND TESTS WHERE THE RESULT MUST BE TRUNCATED BEFORE BEING STORED 00130038
17: C IN THE RESULTANT INTEGER VARIABLE. SOME OF THE TESTS USE PARENS 00140038
18: C TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSION. 00150038
19: C 00160038
20: C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00170038
21: C (1) (INTEGER CONSTANT/INTEGER CONSTANT)/INTEGER CONSTANT 00180038
22: C (2) INTEGER CONSTANT/(INTEGER CONSTANT/INTEGER CONSTANT) 00190038
23: C (3) INTEGER VARIABLE/INTEGER CONSTANT 00200038
24: C (4) INTEGER CONSTANT/INTEGER VARIABLE 00210038
25: C 00220038
26: C REFERENCES 00230038
27: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00240038
28: C X3.9-1978 00250038
29: C 00260038
30: C SECTION 4.3, INTEGER TYPE 00270038
31: C SECTION 4.3.1, INTEGER CONSTANT 00280038
32: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00290038
33: C SECTION 6.6, EVALUATION OF EXPRESSIONS 00300038
34: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00310038
35: C 00320038
36: C ********************************************************** 00330038
37: C 00340038
38: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00350038
39: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00360038
40: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00370038
41: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00380038
42: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00390038
43: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00400038
44: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00410038
45: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00420038
46: C OF EXECUTING THESE TESTS. 00430038
47: C 00440038
48: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00450038
49: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00460038
50: C 00470038
51: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00480038
52: C 00490038
53: C DEPARTMENT OF THE NAVY 00500038
54: C FEDERAL COBOL COMPILER TESTING SERVICE 00510038
55: C WASHINGTON, D.C. 20376 00520038
56: C 00530038
57: C ********************************************************** 00540038
58: C 00550038
59: C 00560038
60: C 00570038
61: C INITIALIZATION SECTION 00580038
62: C 00590038
63: C INITIALIZE CONSTANTS 00600038
64: C ************** 00610038
65: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00620038
66: I01 = 5 00630038
67: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00640038
68: I02 = 6 00650038
69: C SYSTEM ENVIRONMENT SECTION 00660038
70: C 00670038
71: I01 = 5 00680038
72: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00690038
73: C (UNIT NUMBER FOR CARD READER). 00700038
74: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00710038
75: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00720038
76: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00730038
77: C 00740038
78: I02 = 6 00750038
79: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00760038
80: C (UNIT NUMBER FOR PRINTER). 00770038
81: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00780038
82: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00790038
83: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00800038
84: C 00810038
85: IVPASS=0 00820038
86: IVFAIL=0 00830038
87: IVDELE=0 00840038
88: ICZERO=0 00850038
89: C 00860038
90: C WRITE PAGE HEADERS 00870038
91: WRITE (I02,90000) 00880038
92: WRITE (I02,90001) 00890038
93: WRITE (I02,90002) 00900038
94: WRITE (I02, 90002) 00910038
95: WRITE (I02,90003) 00920038
96: WRITE (I02,90002) 00930038
97: WRITE (I02,90004) 00940038
98: WRITE (I02,90002) 00950038
99: WRITE (I02,90011) 00960038
100: WRITE (I02,90002) 00970038
101: WRITE (I02,90002) 00980038
102: WRITE (I02,90005) 00990038
103: WRITE (I02,90006) 01000038
104: WRITE (I02,90002) 01010038
105: C 01020038
106: C TEST SECTION 01030038
107: C 01040038
108: C ARITHMETIC ASSIGNMENT STATEMENT 01050038
109: C 01060038
110: C TEST 520 THROUGH TEST 525 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS01070038
111: C OF THE FORM INTEGER VARIABLE = (INT.CON./INT.CON.)/INT.CON. 01080038
112: C NO TRUNCATION OF THE RESULT IS REQUIRED. BOTH POSITIVE AND 01090038
113: C NEGATIVE CONSTANTS ARE INCLUDED. 01100038
114: C 01110038
115: 5201 CONTINUE 01120038
116: IVTNUM = 520 01130038
117: C 01140038
118: C **** TEST 520 **** 01150038
119: C 01160038
120: IF (ICZERO) 35200, 5200, 35200 01170038
121: 5200 CONTINUE 01180038
122: IVCOMP = (24/3)/4 01190038
123: GO TO 45200 01200038
124: 35200 IVDELE = IVDELE + 1 01210038
125: WRITE (I02,80003) IVTNUM 01220038
126: IF (ICZERO) 45200, 5211, 45200 01230038
127: 45200 IF (IVCOMP - 2) 25200,15200,25200 01240038
128: 15200 IVPASS = IVPASS + 1 01250038
129: WRITE (I02,80001) IVTNUM 01260038
130: GO TO 5211 01270038
131: 25200 IVFAIL = IVFAIL + 1 01280038
132: IVCORR = 2 01290038
133: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01300038
134: 5211 CONTINUE 01310038
135: IVTNUM = 521 01320038
136: C 01330038
137: C **** TEST 521 **** 01340038
138: C 01350038
139: IF (ICZERO) 35210, 5210, 35210 01360038
140: 5210 CONTINUE 01370038
141: IVCOMP = (7150/2)/25 01380038
142: GO TO 45210 01390038
143: 35210 IVDELE = IVDELE + 1 01400038
144: WRITE (I02,80003) IVTNUM 01410038
145: IF (ICZERO) 45210, 5221, 45210 01420038
146: 45210 IF (IVCOMP - 143) 25210,15210,25210 01430038
147: 15210 IVPASS = IVPASS + 1 01440038
148: WRITE (I02,80001) IVTNUM 01450038
149: GO TO 5221 01460038
150: 25210 IVFAIL = IVFAIL + 1 01470038
151: IVCORR = 143 01480038
152: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01490038
153: 5221 CONTINUE 01500038
154: IVTNUM = 522 01510038
155: C 01520038
156: C **** TEST 522 **** 01530038
157: C 01540038
158: IF (ICZERO) 35220, 5220, 35220 01550038
159: 01560038
160: 5220 CONTINUE 01570038
161: IVCOMP = (-24/3)/4 01580038
162: GO TO 45220 01590038
163: 35220 IVDELE = IVDELE + 1 01600038
164: WRITE (I02,80003) IVTNUM 01610038
165: IF (ICZERO) 45220, 5231, 45220 01620038
166: 45220 IF (IVCOMP + 2) 25220,15220,25220 01630038
167: 15220 IVPASS = IVPASS + 1 01640038
168: WRITE (I02,80001) IVTNUM 01650038
169: GO TO 5231 01660038
170: 25220 IVFAIL = IVFAIL + 1 01670038
171: IVCORR = -2 01680038
172: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01690038
173: 5231 CONTINUE 01700038
174: IVTNUM = 523 01710038
175: C 01720038
176: C **** TEST 523 **** 01730038
177: C 01740038
178: IF (ICZERO) 35230, 5230, 35230 01750038
179: 5230 CONTINUE 01760038
180: IVCOMP = (330/(-3))/2 01770038
181: GO TO 45230 01780038
182: 35230 IVDELE = IVDELE + 1 01790038
183: WRITE (I02,80003) IVTNUM 01800038
184: IF (ICZERO) 45230, 5241, 45230 01810038
185: 45230 IF (IVCOMP + 55) 25230,15230,25230 01820038
186: 15230 IVPASS = IVPASS + 1 01830038
187: WRITE (I02,80001) IVTNUM 01840038
188: GO TO 5241 01850038
189: 25230 IVFAIL = IVFAIL + 1 01860038
190: IVCORR = -55 01870038
191: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01880038
192: 5241 CONTINUE 01890038
193: IVTNUM = 524 01900038
194: C 01910038
195: C **** TEST 524 **** 01920038
196: C 01930038
197: IF (ICZERO) 35240, 5240, 35240 01940038
198: 5240 CONTINUE 01950038
199: IVCOMP = ((-7150)/(-2))/(-25) 01960038
200: GO TO 45240 01970038
201: 35240 IVDELE = IVDELE + 1 01980038
202: WRITE (I02,80003) IVTNUM 01990038
203: IF (ICZERO) 45240, 5251, 45240 02000038
204: 45240 IF (IVCOMP + 143) 25240,15240,25240 02010038
205: 15240 IVPASS = IVPASS + 1 02020038
206: WRITE (I02,80001) IVTNUM 02030038
207: GO TO 5251 02040038
208: 25240 IVFAIL = IVFAIL + 1 02050038
209: IVCORR = -143 02060038
210: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02070038
211: 5251 CONTINUE 02080038
212: IVTNUM = 525 02090038
213: C 02100038
214: C **** TEST 525 **** 02110038
215: C 02120038
216: IF (ICZERO) 35250, 5250, 35250 02130038
217: 5250 CONTINUE 02140038
218: IVCOMP = (15249/(-13))/(-51) 02150038
219: GO TO 45250 02160038
220: 35250 IVDELE = IVDELE + 1 02170038
221: WRITE (I02,80003) IVTNUM 02180038
222: IF (ICZERO) 45250, 5261, 45250 02190038
223: 45250 IF (IVCOMP - 23) 25250,15250,25250 02200038
224: 15250 IVPASS = IVPASS + 1 02210038
225: WRITE (I02,80001) IVTNUM 02220038
226: GO TO 5261 02230038
227: 25250 IVFAIL = IVFAIL + 1 02240038
228: IVCORR = 23 02250038
229: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02260038
230: C 02270038
231: C TEST 526 THROUGH TEST 531 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS02280038
232: C OF THE FORM IV = (IC/IC)/IC. 02290038
233: C TRUNCATION OF THE RESULT IS REQUIRED. BOTH POSITIVE AND 02300038
234: C NEGATIVE CONSTANTS ARE INCLUDED. 02310038
235: C 02320038
236: 5261 CONTINUE 02330038
237: IVTNUM = 526 02340038
238: C 02350038
239: C **** TEST 526 **** 02360038
240: C 02370038
241: IF (ICZERO) 35260, 5260, 35260 02380038
242: 5260 CONTINUE 02390038
243: IVCOMP = (24/3)/3 02400038
244: GO TO 45260 02410038
245: 35260 IVDELE = IVDELE + 1 02420038
246: WRITE (I02,80003) IVTNUM 02430038
247: IF (ICZERO) 45260, 5271, 45260 02440038
248: 45260 IF (IVCOMP - 2) 25260,15260,25260 02450038
249: 15260 IVPASS = IVPASS + 1 02460038
250: WRITE (I02,80001) IVTNUM 02470038
251: GO TO 5271 02480038
252: 25260 IVFAIL = IVFAIL + 1 02490038
253: IVCORR = 2 02500038
254: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02510038
255: 5271 CONTINUE 02520038
256: IVTNUM = 527 02530038
257: C 02540038
258: C **** TEST 527 **** 02550038
259: C 02560038
260: IF (ICZERO) 35270, 5270, 35270 02570038
261: 5270 CONTINUE 02580038
262: IVCOMP = (7151/3)/10 02590038
263: GO TO 45270 02600038
264: 35270 IVDELE = IVDELE + 1 02610038
265: WRITE (I02,80003) IVTNUM 02620038
266: IF (ICZERO) 45270, 5281, 45270 02630038
267: 45270 IF (IVCOMP - 238) 25270,15270,25270 02640038
268: 15270 IVPASS = IVPASS + 1 02650038
269: WRITE (I02,80001) IVTNUM 02660038
270: GO TO 5281 02670038
271: 25270 IVFAIL = IVFAIL + 1 02680038
272: IVCORR = 238 02690038
273: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02700038
274: 5281 CONTINUE 02710038
275: IVTNUM = 528 02720038
276: C 02730038
277: C **** TEST 528 **** 02740038
278: C 02750038
279: IF (ICZERO) 35280, 5280, 35280 02760038
280: 5280 CONTINUE 02770038
281: IVCOMP = (-24/3)/3 02780038
282: GO TO 45280 02790038
283: 35280 IVDELE = IVDELE + 1 02800038
284: WRITE (I02,80003) IVTNUM 02810038
285: IF (ICZERO) 45280, 5291, 45280 02820038
286: 45280 IF (IVCOMP + 2) 25280,15280,25280 02830038
287: 15280 IVPASS = IVPASS + 1 02840038
288: WRITE (I02,80001) IVTNUM 02850038
289: GO TO 5291 02860038
290: 25280 IVFAIL = IVFAIL + 1 02870038
291: IVCORR = -2 02880038
292: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02890038
293: 5291 CONTINUE 02900038
294: IVTNUM = 529 02910038
295: C 02920038
296: C **** TEST 529 **** 02930038
297: C 02940038
298: IF (ICZERO) 35290, 5290, 35290 02950038
299: 5290 CONTINUE 02960038
300: IVCOMP = (7151/(-3))/10 02970038
301: GO TO 45290 02980038
302: 35290 IVDELE = IVDELE + 1 02990038
303: WRITE (I02,80003) IVTNUM 03000038
304: IF (ICZERO) 45290, 5301, 45290 03010038
305: 45290 IF (IVCOMP + 238) 25290,15290,25290 03020038
306: 15290 IVPASS = IVPASS + 1 03030038
307: WRITE (I02,80001) IVTNUM 03040038
308: GO TO 5301 03050038
309: 25290 IVFAIL = IVFAIL + 1 03060038
310: IVCORR = -238 03070038
311: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03080038
312: 5301 CONTINUE 03090038
313: IVTNUM = 530 03100038
314: C 03110038
315: C **** TEST 530 **** 03120038
316: C 03130038
317: IF (ICZERO) 35300, 5300, 35300 03140038
318: 5300 CONTINUE 03150038
319: IVCOMP = (15248/(-51))/(-23) 03160038
320: GO TO 45300 03170038
321: 35300 IVDELE = IVDELE + 1 03180038
322: WRITE (I02,80003) IVTNUM 03190038
323: IF (ICZERO) 45300, 5311, 45300 03200038
324: 45300 IF (IVCOMP - 12) 25300,15300,25300 03210038
325: 15300 IVPASS = IVPASS + 1 03220038
326: WRITE (I02,80001) IVTNUM 03230038
327: GO TO 5311 03240038
328: 25300 IVFAIL = IVFAIL + 1 03250038
329: IVCORR = 12 03260038
330: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03270038
331: 5311 CONTINUE 03280038
332: IVTNUM = 531 03290038
333: C 03300038
334: C **** TEST 531 **** 03310038
335: C 03320038
336: IF (ICZERO) 35310, 5310, 35310 03330038
337: 5310 CONTINUE 03340038
338: IVCOMP = ((-27342)/(-4))/(-3) 03350038
339: GO TO 45310 03360038
340: 35310 IVDELE = IVDELE + 1 03370038
341: WRITE (I02,80003) IVTNUM 03380038
342: IF (ICZERO) 45310, 5321, 45310 03390038
343: 45310 IF (IVCOMP + 2278) 25310,15310,25310 03400038
344: 15310 IVPASS = IVPASS + 1 03410038
345: WRITE (I02,80001) IVTNUM 03420038
346: GO TO 5321 03430038
347: 25310 IVFAIL = IVFAIL + 1 03440038
348: IVCORR = -2278 03450038
349: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03460038
350: C 03470038
351: C TEST 532 THROUGH TEST 537 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS03480038
352: C OF THE FORM IV = IC/(IC/IC). 03490038
353: C NO TRUNCATION OF THE RESULT IS REQUIRED. BOTH POSITIVE AND 03500038
354: C NEGATIVE CONSTANTS ARE INCLUDED. 03510038
355: C 03520038
356: 5321 CONTINUE 03530038
357: IVTNUM = 532 03540038
358: C 03550038
359: C **** TEST 532 **** 03560038
360: C 03570038
361: IF (ICZERO) 35320, 5320, 35320 03580038
362: 5320 CONTINUE 03590038
363: IVCOMP = 24/(8/4) 03600038
364: GO TO 45320 03610038
365: 35320 IVDELE = IVDELE + 1 03620038
366: WRITE (I02,80003) IVTNUM 03630038
367: IF (ICZERO) 45320, 5331, 45320 03640038
368: 45320 IF (IVCOMP - 12) 25320,15320,25320 03650038
369: 15320 IVPASS = IVPASS + 1 03660038
370: WRITE (I02,80001) IVTNUM 03670038
371: GO TO 5331 03680038
372: 25320 IVFAIL = IVFAIL + 1 03690038
373: IVCORR = 12 03700038
374: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03710038
375: 5331 CONTINUE 03720038
376: IVTNUM = 533 03730038
377: C 03740038
378: C **** TEST 533 **** 03750038
379: C 03760038
380: IF (ICZERO) 35330, 5330, 35330 03770038
381: 5330 CONTINUE 03780038
382: IVCOMP = 7150/(25/5) 03790038
383: GO TO 45330 03800038
384: 35330 IVDELE = IVDELE + 1 03810038
385: WRITE (I02,80003) IVTNUM 03820038
386: IF (ICZERO) 45330, 5341, 45330 03830038
387: 45330 IF (IVCOMP - 1430) 25330,15330,25330 03840038
388: 15330 IVPASS = IVPASS + 1 03850038
389: WRITE (I02,80001) IVTNUM 03860038
390: GO TO 5341 03870038
391: 25330 IVFAIL = IVFAIL + 1 03880038
392: IVCORR = 1430 03890038
393: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03900038
394: 5341 CONTINUE 03910038
395: IVTNUM = 534 03920038
396: C 03930038
397: C **** TEST 534 **** 03940038
398: C 03950038
399: IF (ICZERO) 35340, 5340, 35340 03960038
400: 5340 CONTINUE 03970038
401: IVCOMP = -24/(8/4) 03980038
402: GO TO 45340 03990038
403: 35340 IVDELE = IVDELE + 1 04000038
404: WRITE (I02,80003) IVTNUM 04010038
405: IF (ICZERO) 45340, 5351, 45340 04020038
406: 45340 IF (IVCOMP + 12) 25340,15340,25340 04030038
407: 15340 IVPASS = IVPASS + 1 04040038
408: WRITE (I02,80001) IVTNUM 04050038
409: GO TO 5351 04060038
410: 25340 IVFAIL = IVFAIL + 1 04070038
411: IVCORR = -12 04080038
412: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04090038
413: 5351 CONTINUE 04100038
414: IVTNUM = 535 04110038
415: C 04120038
416: C **** TEST 535 **** 04130038
417: C 04140038
418: IF (ICZERO) 35350, 5350, 35350 04150038
419: 5350 CONTINUE 04160038
420: IVCOMP = 24/((-8)/4) 04170038
421: GO TO 45350 04180038
422: 35350 IVDELE = IVDELE + 1 04190038
423: WRITE (I02,80003) IVTNUM 04200038
424: IF (ICZERO) 45350, 5361, 45350 04210038
425: 45350 IF (IVCOMP + 12) 25350,15350,25350 04220038
426: 15350 IVPASS = IVPASS + 1 04230038
427: WRITE (I02,80001) IVTNUM 04240038
428: GO TO 5361 04250038
429: 25350 IVFAIL = IVFAIL + 1 04260038
430: IVCORR = -12 04270038
431: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04280038
432: 5361 CONTINUE 04290038
433: IVTNUM = 536 04300038
434: C 04310038
435: C **** TEST 536 **** 04320038
436: C 04330038
437: IF (ICZERO) 35360, 5360, 35360 04340038
438: 5360 CONTINUE 04350038
439: IVCOMP = (-7150)/((-25)/(-5)) 04360038
440: GO TO 45360 04370038
441: 35360 IVDELE = IVDELE + 1 04380038
442: WRITE (I02,80003) IVTNUM 04390038
443: IF (ICZERO) 45360, 5371, 45360 04400038
444: 45360 IF (IVCOMP + 1430) 25360,15360,25360 04410038
445: 15360 IVPASS = IVPASS + 1 04420038
446: WRITE (I02,80001) IVTNUM 04430038
447: GO TO 5371 04440038
448: 25360 IVFAIL = IVFAIL + 1 04450038
449: IVCORR = -1430 04460038
450: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04470038
451: 5371 CONTINUE 04480038
452: IVTNUM = 537 04490038
453: C 04500038
454: C **** TEST 537 **** 04510038
455: C 04520038
456: IF (ICZERO) 35370, 5370, 35370 04530038
457: 5370 CONTINUE 04540038
458: IVCOMP = -7150/(25/(-5)) 04550038
459: GO TO 45370 04560038
460: 35370 IVDELE = IVDELE + 1 04570038
461: WRITE (I02,80003) IVTNUM 04580038
462: IF (ICZERO) 45370, 5381, 45370 04590038
463: 45370 IF (IVCOMP - 1430) 25370,15370,25370 04600038
464: 15370 IVPASS = IVPASS + 1 04610038
465: WRITE (I02,80001) IVTNUM 04620038
466: GO TO 5381 04630038
467: 25370 IVFAIL = IVFAIL + 1 04640038
468: IVCORR = 1430 04650038
469: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04660038
470: C 04670038
471: C TEST 538 THROUGH TEST 543 CONTAIN ARITHMETIC ASSIGMMENT STATEMENTS04680038
472: C OF THE FORM IV = IC/(IC/IC). 04690038
473: C TRUNCATION OF THE RESULT IS REQUIRED. BOTH POSITIVE AND 04700038
474: C NEGATIVE CONSTANTS ARE INCLUDED. 04710038
475: C 04720038
476: 5381 CONTINUE 04730038
477: IVTNUM = 538 04740038
478: C 04750038
479: C **** TEST 538 **** 04760038
480: C 04770038
481: IF (ICZERO) 35380, 5380, 35380 04780038
482: 5380 CONTINUE 04790038
483: IVCOMP = 29/(5/2) 04800038
484: GO TO 45380 04810038
485: 35380 IVDELE = IVDELE + 1 04820038
486: WRITE (I02,80003) IVTNUM 04830038
487: IF (ICZERO) 45380, 5391, 45380 04840038
488: 45380 IF (IVCOMP - 14) 25380,15380,25380 04850038
489: 15380 IVPASS = IVPASS + 1 04860038
490: WRITE (I02,80001) IVTNUM 04870038
491: GO TO 5391 04880038
492: 25380 IVFAIL = IVFAIL + 1 04890038
493: IVCORR = 14 04900038
494: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04910038
495: 5391 CONTINUE 04920038
496: IVTNUM = 539 04930038
497: C 04940038
498: C **** TEST 539 **** 04950038
499: C 04960038
500: IF (ICZERO) 35390, 5390, 35390 04970038
501: 5390 CONTINUE 04980038
502: IVCOMP = 7154/(26/5) 04990038
503: GO TO 45390 05000038
504: 35390 IVDELE = IVDELE + 1 05010038
505: WRITE (I02,80003) IVTNUM 05020038
506: IF (ICZERO) 45390, 5401, 45390 05030038
507: 45390 IF (IVCOMP - 1430) 25390,15390,25390 05040038
508: 15390 IVPASS = IVPASS + 1 05050038
509: WRITE (I02,80001) IVTNUM 05060038
510: GO TO 5401 05070038
511: 25390 IVFAIL = IVFAIL + 1 05080038
512: IVCORR = 1430 05090038
513: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05100038
514: 5401 CONTINUE 05110038
515: IVTNUM = 540 05120038
516: C 05130038
517: C **** TEST 540 **** 05140038
518: C 05150038
519: IF (ICZERO) 35400, 5400, 35400 05160038
520: 5400 CONTINUE 05170038
521: IVCOMP = -7154/(26/5) 05180038
522: GO TO 45400 05190038
523: 35400 IVDELE = IVDELE + 1 05200038
524: WRITE (I02,80003) IVTNUM 05210038
525: IF (ICZERO) 45400, 5411, 45400 05220038
526: 45400 IF (IVCOMP + 1430) 25400,15400,25400 05230038
527: 15400 IVPASS = IVPASS + 1 05240038
528: WRITE (I02,80001) IVTNUM 05250038
529: GO TO 5411 05260038
530: 25400 IVFAIL = IVFAIL + 1 05270038
531: IVCORR = -1430 05280038
532: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05290038
533: 5411 CONTINUE 05300038
534: IVTNUM = 541 05310038
535: C 05320038
536: C **** TEST 541 **** 05330038
537: C 05340038
538: IF (ICZERO) 35410, 5410, 35410 05350038
539: 5410 CONTINUE 05360038
540: IVCOMP = (-7154)/((-26)/5) 05370038
541: GO TO 45410 05380038
542: 35410 IVDELE = IVDELE + 1 05390038
543: WRITE (I02,80003) IVTNUM 05400038
544: IF (ICZERO) 45410, 5421, 45410 05410038
545: 45410 IF (IVCOMP - 1430) 25410,15410,25410 05420038
546: 15410 IVPASS = IVPASS + 1 05430038
547: WRITE (I02,80001) IVTNUM 05440038
548: GO TO 5421 05450038
549: 25410 IVFAIL = IVFAIL + 1 05460038
550: IVCORR = 1430 05470038
551: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05480038
552: 5421 CONTINUE 05490038
553: IVTNUM = 542 05500038
554: C 05510038
555: C **** TEST 542 **** 05520038
556: C 05530038
557: IF (ICZERO) 35420, 5420, 35420 05540038
558: 5420 CONTINUE 05550038
559: IVCOMP = 7154/((-26)/(-5)) 05560038
560: GO TO 45420 05570038
561: 35420 IVDELE = IVDELE + 1 05580038
562: WRITE (I02,80003) IVTNUM 05590038
563: IF (ICZERO) 45420, 5431, 45420 05600038
564: 45420 IF (IVCOMP - 1430) 25420,15420,25420 05610038
565: 15420 IVPASS = IVPASS + 1 05620038
566: WRITE (I02,80001) IVTNUM 05630038
567: GO TO 5431 05640038
568: 25420 IVFAIL = IVFAIL + 1 05650038
569: IVCORR = 1430 05660038
570: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05670038
571: 5431 CONTINUE 05680038
572: IVTNUM = 543 05690038
573: C 05700038
574: C **** TEST 543 **** 05710038
575: C 05720038
576: IF (ICZERO) 35430, 5430, 35430 05730038
577: 5430 CONTINUE 05740038
578: IVCOMP = (-7154)/((-26)/(-5)) 05750038
579: GO TO 45430 05760038
580: 35430 IVDELE = IVDELE + 1 05770038
581: WRITE (I02,80003) IVTNUM 05780038
582: IF (ICZERO) 45430, 5441, 45430 05790038
583: 45430 IF (IVCOMP + 1430) 25430,15430,25430 05800038
584: 15430 IVPASS = IVPASS + 1 05810038
585: WRITE (I02,80001) IVTNUM 05820038
586: GO TO 5441 05830038
587: 25430 IVFAIL = IVFAIL + 1 05840038
588: IVCORR = -1430 05850038
589: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05860038
590: C 05870038
591: C TEST 544 THROUGH TEST 547 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS05880038
592: C OF THE FORM INTEGER VARIABLE = INTEGER VARIABLE/INTEGER CONSTANT05890038
593: C 05900038
594: 5441 CONTINUE 05910038
595: IVTNUM = 544 05920038
596: C 05930038
597: C **** TEST 544 **** 05940038
598: C 05950038
599: IF (ICZERO) 35440, 5440, 35440 05960038
600: 5440 CONTINUE 05970038
601: IVON01 = 75 05980038
602: IVCOMP = IVON01/25 05990038
603: GO TO 45440 06000038
604: 35440 IVDELE = IVDELE + 1 06010038
605: WRITE (I02,80003) IVTNUM 06020038
606: IF (ICZERO) 45440, 5451, 45440 06030038
607: 45440 IF (IVCOMP - 3) 25440,15440,25440 06040038
608: 15440 IVPASS = IVPASS + 1 06050038
609: WRITE (I02,80001) IVTNUM 06060038
610: GO TO 5451 06070038
611: 25440 IVFAIL = IVFAIL + 1 06080038
612: IVCORR = 3 06090038
613: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06100038
614: 5451 CONTINUE 06110038
615: IVTNUM = 545 06120038
616: C 06130038
617: C **** TEST 545 **** 06140038
618: C 06150038
619: IF (ICZERO) 35450, 5450, 35450 06160038
620: 5450 CONTINUE 06170038
621: IVON01 = -3575 06180038
622: IVCOMP = IVON01/25 06190038
623: GO TO 45450 06200038
624: 35450 IVDELE = IVDELE + 1 06210038
625: WRITE (I02,80003) IVTNUM 06220038
626: IF (ICZERO) 45450, 5461, 45450 06230038
627: 45450 IF (IVCOMP + 143) 25450,15450,25450 06240038
628: 15450 IVPASS = IVPASS + 1 06250038
629: WRITE (I02,80001) IVTNUM 06260038
630: GO TO 5461 06270038
631: 25450 IVFAIL = IVFAIL + 1 06280038
632: IVCORR = -143 06290038
633: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06300038
634: 5461 CONTINUE 06310038
635: IVTNUM = 546 06320038
636: C 06330038
637: C **** TEST 546 **** 06340038
638: C 06350038
639: IF (ICZERO) 35460, 5460, 35460 06360038
640: 5460 CONTINUE 06370038
641: IVON01 = 3575 06380038
642: IVCOMP = IVON01/(-143) 06390038
643: GO TO 45460 06400038
644: 35460 IVDELE = IVDELE + 1 06410038
645: WRITE (I02,80003) IVTNUM 06420038
646: IF (ICZERO) 45460, 5471, 45460 06430038
647: 45460 IF (IVCOMP + 25) 25460,15460,25460 06440038
648: 15460 IVPASS = IVPASS + 1 06450038
649: WRITE (I02,80001) IVTNUM 06460038
650: GO TO 5471 06470038
651: 25460 IVFAIL = IVFAIL + 1 06480038
652: IVCORR = -25 06490038
653: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06500038
654: 5471 CONTINUE 06510038
655: IVTNUM = 547 06520038
656: C 06530038
657: C **** TEST 547 **** 06540038
658: C 06550038
659: IF (ICZERO) 35470, 5470, 35470 06560038
660: 5470 CONTINUE 06570038
661: IVON01 = 959 06580038
662: IVCOMP = IVON01/120 06590038
663: GO TO 45470 06600038
664: 35470 IVDELE = IVDELE + 1 06610038
665: WRITE (I02,80003) IVTNUM 06620038
666: IF (ICZERO) 45470, 5481, 45470 06630038
667: 45470 IF (IVCOMP -7) 25470,15470,25470 06640038
668: 15470 IVPASS = IVPASS + 1 06650038
669: WRITE (I02,80001) IVTNUM 06660038
670: GO TO 5481 06670038
671: 25470 IVFAIL = IVFAIL + 1 06680038
672: IVCORR = 7 06690038
673: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06700038
674: C 06710038
675: C TEST 548 THROUGH TEST 551 CONTAIN ARITHMETIC ASSIGNMENT STATEMENTS06720038
676: C OF THE FORM INTEGER VARIABLE =INTEGER CONSTANT/INTEGER VARIABLE.06730038
677: C 06740038
678: 5481 CONTINUE 06750038
679: IVTNUM = 548 06760038
680: C 06770038
681: C **** TEST 548 **** 06780038
682: C 06790038
683: IF (ICZERO) 35480, 5480, 35480 06800038
684: 5480 CONTINUE 06810038
685: IVON02 = 25 06820038
686: IVCOMP = 75/IVON02 06830038
687: GO TO 45480 06840038
688: 35480 IVDELE = IVDELE + 1 06850038
689: WRITE (I02,80003) IVTNUM 06860038
690: IF (ICZERO) 45480, 5491, 45480 06870038
691: 45480 IF (IVCOMP - 3) 25480,15480,25480 06880038
692: 15480 IVPASS = IVPASS + 1 06890038
693: WRITE (I02,80001) IVTNUM 06900038
694: GO TO 5491 06910038
695: 25480 IVFAIL = IVFAIL + 1 06920038
696: IVCORR = 3 06930038
697: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06940038
698: 5491 CONTINUE 06950038
699: IVTNUM = 549 06960038
700: C 06970038
701: C **** TEST 549 **** 06980038
702: C 06990038
703: IF (ICZERO) 35490, 5490, 35490 07000038
704: 5490 CONTINUE 07010038
705: IVON02 = -25 07020038
706: IVCOMP = 3579/IVON02 07030038
707: GO TO 45490 07040038
708: 35490 IVDELE = IVDELE + 1 07050038
709: WRITE (I02,80003) IVTNUM 07060038
710: IF (ICZERO) 45490, 5501, 45490 07070038
711: 45490 IF (IVCOMP + 143) 25490,15490,25490 07080038
712: 15490 IVPASS = IVPASS + 1 07090038
713: WRITE (I02,80001) IVTNUM 07100038
714: GO TO 5501 07110038
715: 25490 IVFAIL = IVFAIL + 1 07120038
716: IVCORR = -143 07130038
717: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07140038
718: 5501 CONTINUE 07150038
719: IVTNUM = 550 07160038
720: C 07170038
721: C **** TEST 550 **** 07180038
722: C 07190038
723: IF (ICZERO) 35500, 5500, 35500 07200038
724: 5500 CONTINUE 07210038
725: IVON02 = -143 07220038
726: IVCOMP = (-3575)/IVON02 07230038
727: GO TO 45500 07240038
728: 35500 IVDELE = IVDELE + 1 07250038
729: WRITE (I02,80003) IVTNUM 07260038
730: IF (ICZERO) 45500, 5511, 45500 07270038
731: 45500 IF (IVCOMP - 25) 25500,15500,25500 07280038
732: 15500 IVPASS = IVPASS + 1 07290038
733: WRITE (I02,80001) IVTNUM 07300038
734: GO TO 5511 07310038
735: 25500 IVFAIL = IVFAIL + 1 07320038
736: IVCORR = 25 07330038
737: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07340038
738: 5511 CONTINUE 07350038
739: IVTNUM = 551 07360038
740: C 07370038
741: C **** TEST 551 **** 07380038
742: C 07390038
743: IF (ICZERO) 35510, 5510, 35510 07400038
744: 5510 CONTINUE 07410038
745: IVON02 = 120 07420038
746: IVCOMP = -959/IVON02 07430038
747: GO TO 45510 07440038
748: 35510 IVDELE = IVDELE + 1 07450038
749: WRITE (I02,80003) IVTNUM 07460038
750: IF (ICZERO) 45510, 5521, 45510 07470038
751: 45510 IF (IVCOMP + 7) 25510,15510,25510 07480038
752: 15510 IVPASS = IVPASS + 1 07490038
753: WRITE (I02,80001) IVTNUM 07500038
754: GO TO 5521 07510038
755: 25510 IVFAIL = IVFAIL + 1 07520038
756: IVCORR = -7 07530038
757: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07540038
758: C **** END OF TESTS **** 07550038
759: 5521 CONTINUE 07560038
760: C 07570038
761: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 07580038
762: 99999 CONTINUE 07590038
763: WRITE (I02,90002) 07600038
764: WRITE (I02,90006) 07610038
765: WRITE (I02,90002) 07620038
766: WRITE (I02,90002) 07630038
767: WRITE (I02,90007) 07640038
768: WRITE (I02,90002) 07650038
769: WRITE (I02,90008) IVFAIL 07660038
770: WRITE (I02,90009) IVPASS 07670038
771: WRITE (I02,90010) IVDELE 07680038
772: C 07690038
773: C 07700038
774: C TERMINATE ROUTINE EXECUTION 07710038
775: STOP 07720038
776: C 07730038
777: C FORMAT STATEMENTS FOR PAGE HEADERS 07740038
778: 90000 FORMAT (1H1) 07750038
779: 90002 FORMAT (1H ) 07760038
780: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 07770038
781: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 07780038
782: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 07790038
783: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 07800038
784: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 07810038
785: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 07820038
786: C 07830038
787: C FORMAT STATEMENTS FOR RUN SUMMARIES 07840038
788: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 07850038
789: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 07860038
790: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 07870038
791: C 07880038
792: C FORMAT STATEMENTS FOR TEST RESULTS 07890038
793: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 07900038
794: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 07910038
795: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 07920038
796: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 07930038
797: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 07940038
798: C 07950038
799: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM038) 07960038
800: END 07970038
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.