|
|
1.1 root 1: C COMMENT SECTION. 00010030
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 00020030
6: C FM030 00030030
7: C 00040030
8: C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050030
9: C FORM 00060030
10: C INTEGER VARIABLE = ARITHMETIC EXPRESSION 00070030
11: C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00080030
12: C OPERATOR -, INTEGER CONSTANTS AND INTEGER VARIABLES. 00090030
13: C SOME OF THE TESTS USE PARENTHESES TO GROUP ELEMENTS IN THE 00100030
14: C ARITHMETIC EXPRESSION. 00110030
15: C 00120030
16: C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00130030
17: C (1) INTEGER CONSTANT - INTEGER CONSTANT 00140030
18: C (2) INTEGER CONSTANT - INTEGER CONSTANT - INTEGER CONSTANT00150030
19: C (3) SAME AS (2) BUT WITH PARENTHESES TO GROUP ELEMENTS 00160030
20: C (4) INTEGER VARIABLE - INTEGER CONSTANT 00170030
21: C INTEGER CONSTANT - INTEGER VARIABLE 00180030
22: C 00190030
23: C REFERENCES 00200030
24: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00210030
25: C X3.9-1978 00220030
26: C 00230030
27: C SECTION 4.3, INTEGER TYPE 00240030
28: C SECTION 4.3.1, INTEGER CONSTANT 00250030
29: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00260030
30: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00270030
31: C 00280030
32: C 00290030
33: C ********************************************************** 00300030
34: C 00310030
35: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00320030
36: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00330030
37: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00340030
38: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00350030
39: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00360030
40: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00370030
41: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00380030
42: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00390030
43: C OF EXECUTING THESE TESTS. 00400030
44: C 00410030
45: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00420030
46: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00430030
47: C 00440030
48: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00450030
49: C 00460030
50: C DEPARTMENT OF THE NAVY 00470030
51: C FEDERAL COBOL COMPILER TESTING SERVICE 00480030
52: C WASHINGTON, D.C. 20376 00490030
53: C 00500030
54: C ********************************************************** 00510030
55: C 00520030
56: C 00530030
57: C 00540030
58: C INITIALIZATION SECTION 00550030
59: C 00560030
60: C INITIALIZE CONSTANTS 00570030
61: C ************** 00580030
62: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00590030
63: I01 = 5 00600030
64: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00610030
65: I02 = 6 00620030
66: C SYSTEM ENVIRONMENT SECTION 00630030
67: C 00640030
68: I01 = 5 00650030
69: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00660030
70: C (UNIT NUMBER FOR CARD READER). 00670030
71: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00680030
72: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00690030
73: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00700030
74: C 00710030
75: I02 = 6 00720030
76: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00730030
77: C (UNIT NUMBER FOR PRINTER). 00740030
78: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00750030
79: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00760030
80: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00770030
81: C 00780030
82: IVPASS=0 00790030
83: IVFAIL=0 00800030
84: IVDELE=0 00810030
85: ICZERO=0 00820030
86: C 00830030
87: C WRITE PAGE HEADERS 00840030
88: WRITE (I02,90000) 00850030
89: WRITE (I02,90001) 00860030
90: WRITE (I02,90002) 00870030
91: WRITE (I02, 90002) 00880030
92: WRITE (I02,90003) 00890030
93: WRITE (I02,90002) 00900030
94: WRITE (I02,90004) 00910030
95: WRITE (I02,90002) 00920030
96: WRITE (I02,90011) 00930030
97: WRITE (I02,90002) 00940030
98: WRITE (I02,90002) 00950030
99: WRITE (I02,90005) 00960030
100: WRITE (I02,90006) 00970030
101: WRITE (I02,90002) 00980030
102: C TEST SECTION 00990030
103: C 01000030
104: C ARITHMETIC ASSIGNMENT STATEMENT 01010030
105: C 01020030
106: C TEST 265 THROUGH TEST 270 CONTAIN TWO INTEGER CONSTANTS AND 01030030
107: C OPERATOR - IN AN ARITHMETIC EXPRESSION. THE FORM TESTED IS 01040030
108: C INTEGER VARIABLE = INTEGER CONSTANT - INTEGER CONSTANT 01050030
109: C 01060030
110: 2651 CONTINUE 01070030
111: IVTNUM = 265 01080030
112: C 01090030
113: C **** TEST 265 **** 01100030
114: C 01110030
115: IF (ICZERO) 32650, 2650, 32650 01120030
116: 2650 CONTINUE 01130030
117: IVCOMP = 3-2 01140030
118: GO TO 42650 01150030
119: 32650 IVDELE = IVDELE + 1 01160030
120: WRITE (I02,80003) IVTNUM 01170030
121: IF (ICZERO) 42650, 2661, 42650 01180030
122: 42650 IF (IVCOMP - 1) 22650,12650,22650 01190030
123: 12650 IVPASS = IVPASS + 1 01200030
124: WRITE (I02,80001) IVTNUM 01210030
125: GO TO 2661 01220030
126: 22650 IVFAIL = IVFAIL + 1 01230030
127: IVCORR = 1 01240030
128: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01250030
129: 2661 CONTINUE 01260030
130: IVTNUM = 266 01270030
131: C 01280030
132: C **** TEST 266 **** 01290030
133: C 01300030
134: IF (ICZERO) 32660, 2660, 32660 01310030
135: 2660 CONTINUE 01320030
136: IVCOMP = 51 - 52 01330030
137: GO TO 42660 01340030
138: 32660 IVDELE = IVDELE + 1 01350030
139: WRITE (I02,80003) IVTNUM 01360030
140: IF (ICZERO) 42660, 2671, 42660 01370030
141: 42660 IF (IVCOMP +1) 22660,12660,22660 01380030
142: 12660 IVPASS = IVPASS + 1 01390030
143: WRITE (I02,80001) IVTNUM 01400030
144: GO TO 2671 01410030
145: 22660 IVFAIL = IVFAIL + 1 01420030
146: IVCORR = -1 01430030
147: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01440030
148: 2671 CONTINUE 01450030
149: IVTNUM = 267 01460030
150: C 01470030
151: C **** TEST 267 *** 01480030
152: C 01490030
153: IF (ICZERO) 32670, 2670, 32670 01500030
154: 2670 CONTINUE 01510030
155: IVCOMP = 865 - 189 01520030
156: GO TO 42670 01530030
157: 32670 IVDELE = IVDELE + 1 01540030
158: WRITE (I02,80003) IVTNUM 01550030
159: IF (ICZERO) 42670, 2681, 42670 01560030
160: 42670 IF (IVCOMP -676) 22670,12670,22670 01570030
161: 12670 IVPASS = IVPASS + 1 01580030
162: WRITE (I02,80001) IVTNUM 01590030
163: GO TO 2681 01600030
164: 22670 IVFAIL = IVFAIL + 1 01610030
165: IVCORR = 676 01620030
166: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01630030
167: 2681 CONTINUE 01640030
168: IVTNUM = 268 01650030
169: C 01660030
170: C **** TEST 268 **** 01670030
171: C 01680030
172: IF (ICZERO) 32680, 2680, 32680 01690030
173: 2680 CONTINUE 01700030
174: IVCOMP =1358-9359 01710030
175: GO TO 42680 01720030
176: 32680 IVDELE = IVDELE + 1 01730030
177: WRITE (I02,80003) IVTNUM 01740030
178: IF (ICZERO) 42680, 2691, 42680 01750030
179: 42680 IF (IVCOMP+8001) 22680,12680,22680 01760030
180: 12680 IVPASS = IVPASS + 1 01770030
181: WRITE (I02,80001) IVTNUM 01780030
182: GO TO 2691 01790030
183: 22680 IVFAIL = IVFAIL + 1 01800030
184: IVCORR = -8001 01810030
185: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01820030
186: 2691 CONTINUE 01830030
187: IVTNUM = 269 01840030
188: C 01850030
189: C **** TEST 269 **** 01860030
190: C 01870030
191: IF (ICZERO) 32690, 2690, 32690 01880030
192: 2690 CONTINUE 01890030
193: IVCOMP =21113-10001 01900030
194: GO TO 42690 01910030
195: 32690 IVDELE = IVDELE + 1 01920030
196: WRITE (I02,80003) IVTNUM 01930030
197: IF (ICZERO) 42690, 2701, 42690 01940030
198: 42690 IF (IVCOMP-11112) 22690,12690,22690 01950030
199: 12690 IVPASS = IVPASS + 1 01960030
200: WRITE (I02,80001) IVTNUM 01970030
201: GO TO 2701 01980030
202: 22690 IVFAIL = IVFAIL + 1 01990030
203: IVCORR=11112 02000030
204: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02010030
205: 2701 CONTINUE 02020030
206: IVTNUM = 270 02030030
207: C 02040030
208: C **** TEST 270 **** 02050030
209: C 02060030
210: IF (ICZERO) 32700, 2700, 32700 02070030
211: 2700 CONTINUE 02080030
212: IVCOMP = 32767-1 02090030
213: GO TO 42700 02100030
214: 32700 IVDELE = IVDELE + 1 02110030
215: WRITE (I02,80003) IVTNUM 02120030
216: IF (ICZERO) 42700, 2711, 42700 02130030
217: 42700 IF (IVCOMP -32766) 22700,12700,22700 02140030
218: 12700 IVPASS = IVPASS + 1 02150030
219: WRITE (I02,80001) IVTNUM 02160030
220: GO TO 2711 02170030
221: 22700 IVFAIL = IVFAIL + 1 02180030
222: IVCORR = 32766 02190030
223: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02200030
224: C 02210030
225: C TEST 271 THROUGH TEST 274 CONTAIN THREE INTEGER CONSTANTS 02220030
226: C AND OPERATOR - IN AN ARITHMETIC EXPRESSION. THE FORM TESTED IS 02230030
227: C IV = IC - IC - IC 02240030
228: C 02250030
229: 2711 CONTINUE 02260030
230: IVTNUM = 271 02270030
231: C 02280030
232: C **** TEST 271 **** 02290030
233: C 02300030
234: IF (ICZERO) 32710, 2710, 32710 02310030
235: 2710 CONTINUE 02320030
236: IVCOMP=9-4-3 02330030
237: GO TO 42710 02340030
238: 32710 IVDELE = IVDELE + 1 02350030
239: WRITE (I02,80003) IVTNUM 02360030
240: IF (ICZERO) 42710, 2721, 42710 02370030
241: 42710 IF (IVCOMP -2) 22710,12710,22710 02380030
242: 12710 IVPASS = IVPASS + 1 02390030
243: WRITE (I02,80001) IVTNUM 02400030
244: GO TO 2721 02410030
245: 22710 IVFAIL = IVFAIL + 1 02420030
246: IVCORR =2 02430030
247: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02440030
248: 2721 CONTINUE 02450030
249: IVTNUM = 272 02460030
250: C 02470030
251: C **** TEST 272 **** 02480030
252: C 02490030
253: IF (ICZERO) 32720, 2720, 32720 02500030
254: 2720 CONTINUE 02510030
255: IVCOMP = 51-52-53 02520030
256: GO TO 42720 02530030
257: 32720 IVDELE = IVDELE + 1 02540030
258: WRITE (I02,80003) IVTNUM 02550030
259: IF (ICZERO) 42720, 2731, 42720 02560030
260: 42720 IF (IVCOMP +54) 22720,12720,22720 02570030
261: 12720 IVPASS = IVPASS + 1 02580030
262: WRITE (I02,80001) IVTNUM 02590030
263: GO TO 2731 02600030
264: 22720 IVFAIL = IVFAIL + 1 02610030
265: IVCORR = -54 02620030
266: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02630030
267: 2731 CONTINUE 02640030
268: IVTNUM = 273 02650030
269: C 02660030
270: C **** TEST 273 **** 02670030
271: C 02680030
272: IF (ICZERO) 32730, 2730, 32730 02690030
273: 2730 CONTINUE 02700030
274: IVCOMP = 966 -676 -189 02710030
275: GO TO 42730 02720030
276: 32730 IVDELE = IVDELE + 1 02730030
277: WRITE (I02,80003) IVTNUM 02740030
278: IF (ICZERO) 42730, 2741, 42730 02750030
279: 42730 IF (IVCOMP -101) 22730,12730,22730 02760030
280: 12730 IVPASS = IVPASS + 1 02770030
281: WRITE (I02,80001) IVTNUM 02780030
282: GO TO 2741 02790030
283: 22730 IVFAIL = IVFAIL + 1 02800030
284: IVCORR = 101 02810030
285: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02820030
286: 2741 CONTINUE 02830030
287: IVTNUM = 274 02840030
288: C 02850030
289: C **** TEST 274 **** 02860030
290: C 02870030
291: IF (ICZERO) 32740, 2740, 32740 02880030
292: 2740 CONTINUE 02890030
293: IVCOMP = 1358-8001-2188 02900030
294: GO TO 42740 02910030
295: 32740 IVDELE = IVDELE + 1 02920030
296: WRITE (I02,80003) IVTNUM 02930030
297: IF (ICZERO) 42740, 2751, 42740 02940030
298: 42740 IF (IVCOMP + 8831) 22740,12740,22740 02950030
299: 12740 IVPASS = IVPASS + 1 02960030
300: WRITE (I02,80001) IVTNUM 02970030
301: GO TO 2751 02980030
302: 22740 IVFAIL = IVFAIL + 1 02990030
303: IVCORR = -8831 03000030
304: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03010030
305: C 03020030
306: C TEST 275 THROUGH TEST 282 ARE THE SAME AS TESTS 271-274 EXCEPT 03030030
307: C PARENTHESES ARE USED TO GROUP THE CONSTANTS. 03040030
308: C 03050030
309: 2751 CONTINUE 03060030
310: IVTNUM = 275 03070030
311: C 03080030
312: C **** TEST 275 **** 03090030
313: C 03100030
314: IF (ICZERO) 32750, 2750, 32750 03110030
315: 2750 CONTINUE 03120030
316: IVCOMP =(9-4)-3 03130030
317: GO TO 42750 03140030
318: 32750 IVDELE = IVDELE + 1 03150030
319: WRITE (I02,80003) IVTNUM 03160030
320: IF (ICZERO) 42750, 2761, 42750 03170030
321: 42750 IF (IVCOMP -2) 22750,12750,22750 03180030
322: 12750 IVPASS = IVPASS + 1 03190030
323: WRITE (I02,80001) IVTNUM 03200030
324: GO TO 2761 03210030
325: 22750 IVFAIL = IVFAIL + 1 03220030
326: IVCORR = 2 03230030
327: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03240030
328: 2761 CONTINUE 03250030
329: IVTNUM = 276 03260030
330: C 03270030
331: C **** TEST 276 **** 03280030
332: C 03290030
333: IF (ICZERO) 32760, 2760, 32760 03300030
334: 2760 CONTINUE 03310030
335: IVCOMP =9-(4-3) 03320030
336: GO TO 42760 03330030
337: 32760 IVDELE = IVDELE + 1 03340030
338: WRITE (I02,80003) IVTNUM 03350030
339: IF (ICZERO) 42760, 2771, 42760 03360030
340: 42760 IF (IVCOMP -8) 22760,12760,22760 03370030
341: 12760 IVPASS = IVPASS + 1 03380030
342: WRITE (I02,80001) IVTNUM 03390030
343: GO TO 2771 03400030
344: 22760 IVFAIL = IVFAIL + 1 03410030
345: IVCORR =8 03420030
346: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03430030
347: 2771 CONTINUE 03440030
348: IVTNUM = 277 03450030
349: C 03460030
350: C **** TEST 277 **** 03470030
351: C 03480030
352: IF (ICZERO) 32770, 2770, 32770 03490030
353: 2770 CONTINUE 03500030
354: IVCOMP =(51-52)-53 03510030
355: GO TO 42770 03520030
356: 32770 IVDELE = IVDELE + 1 03530030
357: WRITE (I02,80003) IVTNUM 03540030
358: IF (ICZERO) 42770, 2781, 42770 03550030
359: 42770 IF (IVCOMP +54) 22770,12770,22770 03560030
360: 12770 IVPASS = IVPASS + 1 03570030
361: WRITE (I02,80001) IVTNUM 03580030
362: GO TO 2781 03590030
363: 22770 IVFAIL = IVFAIL + 1 03600030
364: IVCORR = -54 03610030
365: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03620030
366: 2781 CONTINUE 03630030
367: IVTNUM = 278 03640030
368: C 03650030
369: C **** TEST 278 **** 03660030
370: C 03670030
371: IF (ICZERO) 32780, 2780, 32780 03680030
372: 2780 CONTINUE 03690030
373: IVCOMP=51-(52-53) 03700030
374: GO TO 42780 03710030
375: 32780 IVDELE = IVDELE + 1 03720030
376: WRITE (I02,80003) IVTNUM 03730030
377: IF (ICZERO) 42780, 2791, 42780 03740030
378: 42780 IF (IVCOMP-52) 22780,12780,22780 03750030
379: 12780 IVPASS = IVPASS + 1 03760030
380: WRITE (I02,80001) IVTNUM 03770030
381: GO TO 2791 03780030
382: 22780 IVFAIL = IVFAIL + 1 03790030
383: IVCORR = 52 03800030
384: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03810030
385: 2791 CONTINUE 03820030
386: IVTNUM = 279 03830030
387: C 03840030
388: C **** TEST 279 **** 03850030
389: C 03860030
390: IF (ICZERO) 32790, 2790, 32790 03870030
391: 2790 CONTINUE 03880030
392: IVCOMP =(966-676)-189 03890030
393: GO TO 42790 03900030
394: 32790 IVDELE = IVDELE + 1 03910030
395: WRITE (I02,80003) IVTNUM 03920030
396: IF (ICZERO) 42790, 2801, 42790 03930030
397: 42790 IF (IVCOMP - 101) 22790,12790,22790 03940030
398: 12790 IVPASS = IVPASS + 1 03950030
399: WRITE (I02,80001) IVTNUM 03960030
400: GO TO 2801 03970030
401: 22790 IVFAIL = IVFAIL + 1 03980030
402: IVCORR = 101 03990030
403: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04000030
404: 2801 CONTINUE 04010030
405: IVTNUM = 280 04020030
406: C 04030030
407: C **** TEST 280 **** 04040030
408: C 04050030
409: IF (ICZERO) 32800, 2800, 32800 04060030
410: 2800 CONTINUE 04070030
411: IVCOMP =966-(676-189) 04080030
412: GO TO 42800 04090030
413: 32800 IVDELE = IVDELE + 1 04100030
414: WRITE (I02,80003) IVTNUM 04110030
415: IF (ICZERO) 42800, 2811, 42800 04120030
416: 42800 IF (IVCOMP - 479) 22800,12800,22800 04130030
417: 12800 IVPASS = IVPASS + 1 04140030
418: WRITE (I02,80001) IVTNUM 04150030
419: GO TO 2811 04160030
420: 22800 IVFAIL = IVFAIL + 1 04170030
421: IVCORR = 479 04180030
422: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04190030
423: 2811 CONTINUE 04200030
424: IVTNUM = 281 04210030
425: C 04220030
426: C **** TEST 281 **** 04230030
427: C 04240030
428: IF (ICZERO) 32810, 2810, 32810 04250030
429: 2810 CONTINUE 04260030
430: IVCOMP = (1358-8001)-2188 04270030
431: GO TO 42810 04280030
432: 32810 IVDELE = IVDELE + 1 04290030
433: WRITE (I02,80003) IVTNUM 04300030
434: IF (ICZERO) 42810, 2821, 42810 04310030
435: 42810 IF (IVCOMP + 8831) 22810,12810,22810 04320030
436: 12810 IVPASS = IVPASS + 1 04330030
437: WRITE (I02,80001) IVTNUM 04340030
438: GO TO 2821 04350030
439: 22810 IVFAIL = IVFAIL + 1 04360030
440: IVCORR = -8831 04370030
441: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04380030
442: 2821 CONTINUE 04390030
443: IVTNUM = 282 04400030
444: C 04410030
445: C **** TEST 282 **** 04420030
446: C 04430030
447: IF (ICZERO) 32820, 2820, 32820 04440030
448: 2820 CONTINUE 04450030
449: IVCOMP = 1358-(8001-2188) 04460030
450: GO TO 42820 04470030
451: 32820 IVDELE = IVDELE + 1 04480030
452: WRITE (I02,80003) IVTNUM 04490030
453: IF (ICZERO) 42820, 2831, 42820 04500030
454: 42820 IF (IVCOMP + 4455) 22820,12820,22820 04510030
455: 12820 IVPASS = IVPASS + 1 04520030
456: WRITE (I02,80001) IVTNUM 04530030
457: GO TO 2831 04540030
458: 22820 IVFAIL = IVFAIL + 1 04550030
459: IVCORR = -4455 04560030
460: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04570030
461: C 04580030
462: C TEST 283 THROUGH TEST 299 CONTAIN INTEGER VARIABLE, INTEGER 04590030
463: C CONSTANT AND OPERATOR - IN ARITHMETIC EXPRESSION. THE INTEGER 04600030
464: C VARIABLE CONTAINS BOTH POSITIVE AND NEGATIVE VALUES. 04610030
465: C THE FORMS TESTED ARE 04620030
466: C INTEGER VARIABLE = INTEGER VARIABLE - INTEGER CONSTANT 04630030
467: C INTEGER VARIABLE = INTEGER CONSTANT - INTEGER VARIABLE 04640030
468: C 04650030
469: 2831 CONTINUE 04660030
470: IVTNUM = 283 04670030
471: C 04680030
472: C **** TEST 283 **** 04690030
473: C 04700030
474: IF (ICZERO) 32830, 2830, 32830 04710030
475: 2830 CONTINUE 04720030
476: IVON01 = 3 04730030
477: IVCOMP = IVON01 - 2 04740030
478: GO TO 42830 04750030
479: 32830 IVDELE = IVDELE + 1 04760030
480: WRITE (I02,80003) IVTNUM 04770030
481: IF (ICZERO) 42830, 2841, 42830 04780030
482: 42830 IF (IVCOMP - 1) 22830,12830,22830 04790030
483: 12830 IVPASS = IVPASS + 1 04800030
484: WRITE (I02,80001) IVTNUM 04810030
485: GO TO 2841 04820030
486: 22830 IVFAIL = IVFAIL + 1 04830030
487: IVCORR = 1 04840030
488: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04850030
489: 2841 CONTINUE 04860030
490: IVTNUM = 284 04870030
491: C 04880030
492: C **** TEST 284 **** 04890030
493: C 04900030
494: IF (ICZERO) 32840, 2840, 32840 04910030
495: 2840 CONTINUE 04920030
496: IVON01 = 2 04930030
497: IVCOMP = IVON01 -3 04940030
498: GO TO 42840 04950030
499: 32840 IVDELE = IVDELE + 1 04960030
500: WRITE (I02,80003) IVTNUM 04970030
501: IF (ICZERO) 42840, 2851, 42840 04980030
502: 42840 IF (IVCOMP +1) 22840,12840,22840 04990030
503: 12840 IVPASS = IVPASS + 1 05000030
504: WRITE (I02,80001) IVTNUM 05010030
505: GO TO 2851 05020030
506: 22840 IVFAIL = IVFAIL + 1 05030030
507: IVCORR = -1 05040030
508: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05050030
509: 2851 CONTINUE 05060030
510: IVTNUM = 285 05070030
511: C 05080030
512: C **** TEST 285 **** 05090030
513: C 05100030
514: IF (ICZERO) 32850, 2850, 32850 05110030
515: 2850 CONTINUE 05120030
516: IVON01 =-3 05130030
517: IVCOMP = IVON01 -2 05140030
518: GO TO 42850 05150030
519: 32850 IVDELE = IVDELE + 1 05160030
520: WRITE (I02,80003) IVTNUM 05170030
521: IF (ICZERO) 42850, 2861, 42850 05180030
522: 42850 IF (IVCOMP +5) 22850,12850,22850 05190030
523: 12850 IVPASS = IVPASS + 1 05200030
524: WRITE (I02,80001) IVTNUM 05210030
525: GO TO 2861 05220030
526: 22850 IVFAIL = IVFAIL + 1 05230030
527: IVCORR =-5 05240030
528: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05250030
529: 2861 CONTINUE 05260030
530: IVTNUM = 286 05270030
531: C 05280030
532: C **** TEST 286 **** 05290030
533: C 05300030
534: IF (ICZERO) 32860, 2860, 32860 05310030
535: 2860 CONTINUE 05320030
536: IVON02 =2 05330030
537: IVCOMP = 3 - IVON02 05340030
538: GO TO 42860 05350030
539: 32860 IVDELE = IVDELE + 1 05360030
540: WRITE (I02,80003) IVTNUM 05370030
541: IF (ICZERO) 42860, 2871, 42860 05380030
542: 42860 IF (IVCOMP -1) 22860,12860,22860 05390030
543: 12860 IVPASS = IVPASS + 1 05400030
544: WRITE (I02,80001) IVTNUM 05410030
545: GO TO 2871 05420030
546: 22860 IVFAIL = IVFAIL + 1 05430030
547: IVCORR = 1 05440030
548: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05450030
549: 2871 CONTINUE 05460030
550: IVTNUM = 287 05470030
551: C 05480030
552: C **** TEST 287 **** 05490030
553: C 05500030
554: IF (ICZERO) 32870, 2870, 32870 05510030
555: 2870 CONTINUE 05520030
556: IVON02 =3 05530030
557: IVCOMP = 2 -IVON02 05540030
558: GO TO 42870 05550030
559: 32870 IVDELE = IVDELE + 1 05560030
560: WRITE (I02,80003) IVTNUM 05570030
561: IF (ICZERO) 42870, 2881, 42870 05580030
562: 42870 IF (IVCOMP +1) 22870,12870,22870 05590030
563: 12870 IVPASS = IVPASS + 1 05600030
564: WRITE (I02,80001) IVTNUM 05610030
565: GO TO 2881 05620030
566: 22870 IVFAIL = IVFAIL + 1 05630030
567: IVCORR =-1 05640030
568: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05650030
569: 2881 CONTINUE 05660030
570: IVTNUM = 288 05670030
571: C 05680030
572: C **** TEST 288 **** 05690030
573: C 05700030
574: IF (ICZERO) 32880, 2880, 32880 05710030
575: 2880 CONTINUE 05720030
576: IVON02 = -2 05730030
577: IVCOMP = 3 - IVON02 05740030
578: GO TO 42880 05750030
579: 32880 IVDELE = IVDELE + 1 05760030
580: WRITE (I02,80003) IVTNUM 05770030
581: IF (ICZERO) 42880, 2891, 42880 05780030
582: 42880 IF (IVCOMP -5) 22880,12880,22880 05790030
583: 12880 IVPASS = IVPASS + 1 05800030
584: WRITE (I02,80001) IVTNUM 05810030
585: GO TO 2891 05820030
586: 22880 IVFAIL = IVFAIL + 1 05830030
587: IVCORR =5 05840030
588: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05850030
589: 2891 CONTINUE 05860030
590: IVTNUM = 289 05870030
591: C 05880030
592: C **** TEST 289 **** 05890030
593: C 05900030
594: IF (ICZERO) 32890, 2890, 32890 05910030
595: 2890 CONTINUE 05920030
596: IVON01 =51 05930030
597: IVCOMP = IVON01 - 52 05940030
598: GO TO 42890 05950030
599: 32890 IVDELE = IVDELE + 1 05960030
600: WRITE (I02,80003) IVTNUM 05970030
601: IF (ICZERO) 42890, 2901, 42890 05980030
602: 42890 IF (IVCOMP + 1) 22890,12890,22890 05990030
603: 12890 IVPASS = IVPASS + 1 06000030
604: WRITE (I02,80001) IVTNUM 06010030
605: GO TO 2901 06020030
606: 22890 IVFAIL = IVFAIL + 1 06030030
607: IVCORR = -1 06040030
608: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06050030
609: 2901 CONTINUE 06060030
610: IVTNUM = 290 06070030
611: C 06080030
612: C **** TEST 290 **** 06090030
613: C 06100030
614: IF (ICZERO) 32900, 2900, 32900 06110030
615: 2900 CONTINUE 06120030
616: IVON01 =51 06130030
617: IVCOMP = IVON01 -51 06140030
618: GO TO 42900 06150030
619: 32900 IVDELE = IVDELE + 1 06160030
620: WRITE (I02,80003) IVTNUM 06170030
621: IF (ICZERO) 42900, 2911, 42900 06180030
622: 42900 IF (IVCOMP) 22900,12900,22900 06190030
623: 12900 IVPASS = IVPASS + 1 06200030
624: WRITE (I02,80001) IVTNUM 06210030
625: GO TO 2911 06220030
626: 22900 IVFAIL = IVFAIL + 1 06230030
627: IVCORR =0 06240030
628: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06250030
629: 2911 CONTINUE 06260030
630: IVTNUM = 291 06270030
631: C 06280030
632: C **** TEST 291 **** 06290030
633: C 06300030
634: IF (ICZERO) 32910, 2910, 32910 06310030
635: 2910 CONTINUE 06320030
636: IVON01 =53 06330030
637: IVCOMP =IVON01 -52 06340030
638: GO TO 42910 06350030
639: 32910 IVDELE = IVDELE + 1 06360030
640: WRITE (I02,80003) IVTNUM 06370030
641: IF (ICZERO) 42910, 2921, 42910 06380030
642: 42910 IF (IVCOMP -1) 22910,12910,22910 06390030
643: 12910 IVPASS = IVPASS + 1 06400030
644: WRITE (I02,80001) IVTNUM 06410030
645: GO TO 2921 06420030
646: 22910 IVFAIL = IVFAIL + 1 06430030
647: IVCORR = 1 06440030
648: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06450030
649: 2921 CONTINUE 06460030
650: IVTNUM = 292 06470030
651: C 06480030
652: C **** TEST 292 **** 06490030
653: C 06500030
654: IF (ICZERO) 32920, 2920, 32920 06510030
655: 2920 CONTINUE 06520030
656: IVON02 = 676 06530030
657: IVCOMP = 189 - IVON02 06540030
658: GO TO 42920 06550030
659: 32920 IVDELE = IVDELE + 1 06560030
660: WRITE (I02,80003) IVTNUM 06570030
661: IF (ICZERO) 42920, 2931, 42920 06580030
662: 42920 IF (IVCOMP + 487) 22920,12920,22920 06590030
663: 12920 IVPASS = IVPASS + 1 06600030
664: WRITE (I02,80001) IVTNUM 06610030
665: GO TO 2931 06620030
666: 22920 IVFAIL = IVFAIL + 1 06630030
667: IVCORR = -487 06640030
668: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06650030
669: 2931 CONTINUE 06660030
670: IVTNUM = 293 06670030
671: C 06680030
672: C **** TEST 293 **** 06690030
673: C 06700030
674: IF (ICZERO) 32930, 2930, 32930 06710030
675: 2930 CONTINUE 06720030
676: IVON02 = -676 06730030
677: IVCOMP = 189 - IVON02 06740030
678: GO TO 42930 06750030
679: 32930 IVDELE = IVDELE + 1 06760030
680: WRITE (I02,80003) IVTNUM 06770030
681: IF (ICZERO) 42930, 2941, 42930 06780030
682: 42930 IF (IVCOMP - 865) 22930,12930,22930 06790030
683: 12930 IVPASS = IVPASS + 1 06800030
684: WRITE (I02,80001) IVTNUM 06810030
685: GO TO 2941 06820030
686: 22930 IVFAIL = IVFAIL + 1 06830030
687: IVCORR = 865 06840030
688: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06850030
689: 2941 CONTINUE 06860030
690: IVTNUM = 294 06870030
691: C 06880030
692: C **** TEST 294 **** 06890030
693: C 06900030
694: IF (ICZERO) 32940, 2940, 32940 06910030
695: 2940 CONTINUE 06920030
696: IVON01 = 1358 06930030
697: IVCOMP = IVON01 - 8001 06940030
698: GO TO 42940 06950030
699: 32940 IVDELE = IVDELE + 1 06960030
700: WRITE (I02,80003) IVTNUM 06970030
701: IF (ICZERO) 42940, 2951, 42940 06980030
702: 42940 IF (IVCOMP + 6643) 22940,12940,22940 06990030
703: 12940 IVPASS = IVPASS + 1 07000030
704: WRITE (I02,80001) IVTNUM 07010030
705: GO TO 2951 07020030
706: 22940 IVFAIL = IVFAIL + 1 07030030
707: IVCORR = -6643 07040030
708: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07050030
709: 2951 CONTINUE 07060030
710: IVTNUM = 295 07070030
711: C 07080030
712: C **** TEST 295 **** 07090030
713: C 07100030
714: IF (ICZERO) 32950, 2950, 32950 07110030
715: 2950 CONTINUE 07120030
716: IVON01 = -1358 07130030
717: IVCOMP = IVON01 - 8001 07140030
718: GO TO 42950 07150030
719: 32950 IVDELE = IVDELE + 1 07160030
720: WRITE (I02,80003) IVTNUM 07170030
721: IF (ICZERO) 42950, 2961, 42950 07180030
722: 42950 IF (IVCOMP + 9359) 22950,12950,22950 07190030
723: 12950 IVPASS = IVPASS + 1 07200030
724: WRITE (I02,80001) IVTNUM 07210030
725: GO TO 2961 07220030
726: 22950 IVFAIL = IVFAIL + 1 07230030
727: IVCORR = -9359 07240030
728: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07250030
729: 2961 CONTINUE 07260030
730: IVTNUM = 296 07270030
731: C 07280030
732: C **** TEST 296 **** 07290030
733: C 07300030
734: IF (ICZERO) 32960, 2960, 32960 07310030
735: 2960 CONTINUE 07320030
736: IVON01 = 15 07330030
737: IVCOMP = IVON01 - 32752 07340030
738: GO TO 42960 07350030
739: 32960 IVDELE = IVDELE + 1 07360030
740: WRITE (I02,80003) IVTNUM 07370030
741: IF (ICZERO) 42960, 2971, 42960 07380030
742: 42960 IF (IVCOMP + 32737) 22960,12960,22960 07390030
743: 12960 IVPASS = IVPASS + 1 07400030
744: WRITE (I02,80001) IVTNUM 07410030
745: GO TO 2971 07420030
746: 22960 IVFAIL = IVFAIL + 1 07430030
747: IVCORR = -32737 07440030
748: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07450030
749: 2971 CONTINUE 07460030
750: IVTNUM = 297 07470030
751: C 07480030
752: C **** TEST 297 **** 07490030
753: C 07500030
754: IF (ICZERO) 32970, 2970, 32970 07510030
755: 2970 CONTINUE 07520030
756: IVON01 =-32751 07530030
757: IVCOMP = IVON01 - 15 07540030
758: GO TO 42970 07550030
759: 32970 IVDELE = IVDELE + 1 07560030
760: WRITE (I02,80003) IVTNUM 07570030
761: IF (ICZERO) 42970, 2981, 42970 07580030
762: 42970 IF (IVCOMP + 32766) 22970,12970,22970 07590030
763: 12970 IVPASS = IVPASS + 1 07600030
764: WRITE (I02,80001) IVTNUM 07610030
765: GO TO 2981 07620030
766: 22970 IVFAIL = IVFAIL + 1 07630030
767: IVCORR = -32766 07640030
768: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07650030
769: 2981 CONTINUE 07660030
770: IVTNUM = 298 07670030
771: C 07680030
772: C **** TEST 298 **** 07690030
773: C 07700030
774: IF (ICZERO) 32980, 2980, 32980 07710030
775: 2980 CONTINUE 07720030
776: IVON02 = -32752 07730030
777: IVCOMP = 15 - IVON02 07740030
778: GO TO 42980 07750030
779: 32980 IVDELE = IVDELE + 1 07760030
780: WRITE (I02,80003) IVTNUM 07770030
781: IF (ICZERO) 42980, 2991, 42980 07780030
782: 42980 IF (IVCOMP - 32767) 22980,12980,22980 07790030
783: 12980 IVPASS = IVPASS + 1 07800030
784: WRITE (I02,80001) IVTNUM 07810030
785: GO TO 2991 07820030
786: 22980 IVFAIL = IVFAIL + 1 07830030
787: IVCORR = 32767 07840030
788: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07850030
789: 2991 CONTINUE 07860030
790: IVTNUM = 299 07870030
791: C 07880030
792: C **** TEST 299 **** 07890030
793: C 07900030
794: IF (ICZERO) 32990, 2990, 32990 07910030
795: 2990 CONTINUE 07920030
796: IVON02 = 15 07930030
797: IVCOMP = 32752 - IVON02 07940030
798: GO TO 42990 07950030
799: 32990 IVDELE = IVDELE + 1 07960030
800: WRITE (I02,80003) IVTNUM 07970030
801: IF (ICZERO) 42990, 3001, 42990 07980030
802: 42990 IF (IVCOMP - 32737) 22990,12990,22990 07990030
803: 12990 IVPASS = IVPASS + 1 08000030
804: WRITE (I02,80001) IVTNUM 08010030
805: GO TO 3001 08020030
806: 22990 IVFAIL = IVFAIL + 1 08030030
807: IVCORR = 32737 08040030
808: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 08050030
809: 3001 CONTINUE 08060030
810: C 08070030
811: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 08080030
812: 99999 CONTINUE 08090030
813: WRITE (I02,90002) 08100030
814: WRITE (I02,90006) 08110030
815: WRITE (I02,90002) 08120030
816: WRITE (I02,90002) 08130030
817: WRITE (I02,90007) 08140030
818: WRITE (I02,90002) 08150030
819: WRITE (I02,90008) IVFAIL 08160030
820: WRITE (I02,90009) IVPASS 08170030
821: WRITE (I02,90010) IVDELE 08180030
822: C 08190030
823: C 08200030
824: C TERMINATE ROUTINE EXECUTION 08210030
825: STOP 08220030
826: C 08230030
827: C FORMAT STATEMENTS FOR PAGE HEADERS 08240030
828: 90000 FORMAT (1H1) 08250030
829: 90002 FORMAT (1H ) 08260030
830: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 08270030
831: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 08280030
832: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 08290030
833: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 08300030
834: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 08310030
835: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 08320030
836: C 08330030
837: C FORMAT STATEMENTS FOR RUN SUMMARIES 08340030
838: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 08350030
839: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 08360030
840: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 08370030
841: C 08380030
842: C FORMAT STATEMENTS FOR TEST RESULTS 08390030
843: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 08400030
844: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 08410030
845: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 08420030
846: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 08430030
847: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 08440030
848: C 08450030
849: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM030) 08460030
850: END 08470030
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.