|
|
1.1 root 1: C COMMENT SECTION 00010031
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 00020031
6: C FM031 00030031
7: C 00040031
8: C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050031
9: C FORM 00060031
10: C INTEGER VARIABLE = ARITHMETIC EXPRESSION 00070031
11: C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00080031
12: C OPERATOR -, INTEGER CONSTANTS AND INTEGER VARIABLES. SOME OF THE 00090031
13: C TESTS USE PARENTHESES TO GROUP ELEMENTS IN AN ARITHMETIC 00100031
14: C EXPRESSION. 00110031
15: C 00120031
16: C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00130031
17: C (1) INTEGER CONSTANT-INTEGER CONSTANT-INTEGER VARIABLE 00140031
18: C INTEGER CONSTANT-INTEGER VARIABLE-INTEGER CONSTANT 00150031
19: C INTEGER VARIABLE-INTEGER CONSTANT-INTEGER CONSTANT 00160031
20: C (2) SAME AS (1) BUT WITH PARENTHESES TO GROUP ELEMENTS 00170031
21: C IN ARITHMETIC EXPRESSION. 00180031
22: C (3) INTEGER VARIABLE - INTEGER VARIABLE 00190031
23: C 00200031
24: C REFERENCES 00210031
25: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00220031
26: C X3.9-1978 00230031
27: C 00240031
28: C SECTION 4.3, INTEGER TYPE 00250031
29: C SECTION 4.3.1, INTEGER CONSTANT 00260031
30: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00270031
31: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00280031
32: C 00290031
33: C ********************************************************** 00300031
34: C 00310031
35: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00320031
36: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00330031
37: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00340031
38: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00350031
39: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00360031
40: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00370031
41: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00380031
42: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00390031
43: C OF EXECUTING THESE TESTS. 00400031
44: C 00410031
45: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00420031
46: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00430031
47: C 00440031
48: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00450031
49: C 00460031
50: C DEPARTMENT OF THE NAVY 00470031
51: C FEDERAL COBOL COMPILER TESTING SERVICE 00480031
52: C WASHINGTON, D.C. 20376 00490031
53: C 00500031
54: C ********************************************************** 00510031
55: C 00520031
56: C 00530031
57: C 00540031
58: C INITIALIZATION SECTION 00550031
59: C 00560031
60: C INITIALIZE CONSTANTS 00570031
61: C ************** 00580031
62: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00590031
63: I01 = 5 00600031
64: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00610031
65: I02 = 6 00620031
66: C SYSTEM ENVIRONMENT SECTION 00630031
67: C 00640031
68: I01 = 5 00650031
69: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00660031
70: C (UNIT NUMBER FOR CARD READER). 00670031
71: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00680031
72: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00690031
73: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00700031
74: C 00710031
75: I02 = 6 00720031
76: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00730031
77: C (UNIT NUMBER FOR PRINTER). 00740031
78: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00750031
79: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00760031
80: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00770031
81: C 00780031
82: IVPASS=0 00790031
83: IVFAIL=0 00800031
84: IVDELE=0 00810031
85: ICZERO=0 00820031
86: C 00830031
87: C WRITE PAGE HEADERS 00840031
88: WRITE (I02,90000) 00850031
89: WRITE (I02,90001) 00860031
90: WRITE (I02,90002) 00870031
91: WRITE (I02, 90002) 00880031
92: WRITE (I02,90003) 00890031
93: WRITE (I02,90002) 00900031
94: WRITE (I02,90004) 00910031
95: WRITE (I02,90002) 00920031
96: WRITE (I02,90011) 00930031
97: WRITE (I02,90002) 00940031
98: WRITE (I02,90002) 00950031
99: WRITE (I02,90005) 00960031
100: WRITE (I02,90006) 00970031
101: WRITE (I02,90002) 00980031
102: C 00990031
103: C TEST SECTION 01000031
104: C 01010031
105: C TEST 300 THROUGH TEST 309 CONTAIN 2 INTEGER CONSTANTS, AN INTEGER 01020031
106: C VARIABLE AND OPERATOR - IN AN ARITHMETIC EXPRESSION. 01030031
107: C 01040031
108: 3001 CONTINUE 01050031
109: IVTNUM = 300 01060031
110: C 01070031
111: C **** TEST 300 **** 01080031
112: C 01090031
113: IF (ICZERO) 33000, 3000, 33000 01100031
114: 3000 CONTINUE 01110031
115: IVON01 = 9 01120031
116: IVCOMP =IVON01 -3 -4 01130031
117: GO TO 43000 01140031
118: 33000 IVDELE = IVDELE + 1 01150031
119: WRITE (I02,80003) IVTNUM 01160031
120: IF (ICZERO) 43000, 3011, 43000 01170031
121: 43000 IF (IVCOMP-2) 23000,13000,23000 01180031
122: 13000 IVPASS = IVPASS + 1 01190031
123: WRITE (I02,80001) IVTNUM 01200031
124: GO TO 3011 01210031
125: 23000 IVFAIL = IVFAIL + 1 01220031
126: IVCORR =2 01230031
127: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01240031
128: 3011 CONTINUE 01250031
129: IVTNUM = 301 01260031
130: C 01270031
131: C **** TEST 301 **** 01280031
132: C 01290031
133: IF (ICZERO) 33010, 3010, 33010 01300031
134: 3010 CONTINUE 01310031
135: IVON02 =3 01320031
136: IVCOMP =9-IVON02-4 01330031
137: GO TO 43010 01340031
138: 33010 IVDELE = IVDELE + 1 01350031
139: WRITE (I02,80003) IVTNUM 01360031
140: IF (ICZERO) 43010, 3021, 43010 01370031
141: 43010 IF (IVCOMP-2) 23010,13010,23010 01380031
142: 13010 IVPASS = IVPASS + 1 01390031
143: WRITE (I02,80001) IVTNUM 01400031
144: GO TO 3021 01410031
145: 23010 IVFAIL = IVFAIL + 1 01420031
146: IVCORR =2 01430031
147: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01440031
148: 3021 CONTINUE 01450031
149: IVTNUM = 302 01460031
150: C 01470031
151: C **** TEST 302 **** 01480031
152: C 01490031
153: IF (ICZERO) 33020, 3020, 33020 01500031
154: 3020 CONTINUE 01510031
155: IVON03 = 4 01520031
156: IVCOMP = 9-3-IVON03 01530031
157: GO TO 43020 01540031
158: 33020 IVDELE = IVDELE + 1 01550031
159: WRITE (I02,80003) IVTNUM 01560031
160: IF (ICZERO) 43020, 3031, 43020 01570031
161: 43020 IF (IVCOMP-2) 23020,13020,23020 01580031
162: 13020 IVPASS = IVPASS + 1 01590031
163: WRITE (I02,80001) IVTNUM 01600031
164: GO TO 3031 01610031
165: 23020 IVFAIL = IVFAIL + 1 01620031
166: IVCORR =2 01630031
167: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01640031
168: 3031 CONTINUE 01650031
169: IVTNUM = 303 01660031
170: C 01670031
171: C **** TEST 303 **** 01680031
172: C 01690031
173: IF (ICZERO) 33030, 3030, 33030 01700031
174: 3030 CONTINUE 01710031
175: IVON01 = 57 01720031
176: IVCOMP = IVON01 -25-22 01730031
177: GO TO 43030 01740031
178: 33030 IVDELE = IVDELE + 1 01750031
179: WRITE (I02,80003) IVTNUM 01760031
180: IF (ICZERO) 43030, 3041, 43030 01770031
181: 43030 IF (IVCOMP-10) 23030,13030,23030 01780031
182: 13030 IVPASS = IVPASS + 1 01790031
183: WRITE (I02,80001) IVTNUM 01800031
184: GO TO 3041 01810031
185: 23030 IVFAIL = IVFAIL + 1 01820031
186: IVCORR = 10 01830031
187: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01840031
188: 3041 CONTINUE 01850031
189: IVTNUM = 304 01860031
190: C 01870031
191: C **** TEST 304 **** 01880031
192: C 01890031
193: IF (ICZERO) 33040, 3040, 33040 01900031
194: 3040 CONTINUE 01910031
195: IVON02 =683 01920031
196: IVCOMP = 101-IVON02-156 01930031
197: GO TO 43040 01940031
198: 33040 IVDELE = IVDELE + 1 01950031
199: WRITE (I02,80003) IVTNUM 01960031
200: IF (ICZERO) 43040, 3051, 43040 01970031
201: 43040 IF (IVCOMP+738) 23040,13040,23040 01980031
202: 13040 IVPASS = IVPASS + 1 01990031
203: WRITE (I02,80001) IVTNUM 02000031
204: GO TO 3051 02010031
205: 23040 IVFAIL = IVFAIL + 1 02020031
206: IVCORR = -738 02030031
207: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02040031
208: 3051 CONTINUE 02050031
209: IVTNUM = 305 02060031
210: C 02070031
211: C **** TEST 305 **** 02080031
212: C 02090031
213: IF (ICZERO) 33050, 3050, 33050 02100031
214: 3050 CONTINUE 02110031
215: IVON03 = 1289 02120031
216: IVCOMP = 8542-1122-IVON03 02130031
217: GO TO 43050 02140031
218: 33050 IVDELE = IVDELE + 1 02150031
219: WRITE (I02,80003) IVTNUM 02160031
220: IF (ICZERO) 43050, 3061, 43050 02170031
221: 43050 IF (IVCOMP-6131) 23050,13050,23050 02180031
222: 13050 IVPASS = IVPASS + 1 02190031
223: WRITE (I02,80001) IVTNUM 02200031
224: GO TO 3061 02210031
225: 23050 IVFAIL = IVFAIL + 1 02220031
226: IVCORR = 6131 02230031
227: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02240031
228: 3061 CONTINUE 02250031
229: IVTNUM = 306 02260031
230: C 02270031
231: C **** TEST 306 **** 02280031
232: C 02290031
233: IF (ICZERO) 33060, 3060, 33060 02300031
234: 3060 CONTINUE 02310031
235: IVON03 = 11111 02320031
236: IVCOMP = 32333-11111-IVON03 02330031
237: GO TO 43060 02340031
238: 33060 IVDELE = IVDELE + 1 02350031
239: WRITE (I02,80003) IVTNUM 02360031
240: IF (ICZERO) 43060, 3071, 43060 02370031
241: 43060 IF (IVCOMP-10111) 23060,13060,23060 02380031
242: 13060 IVPASS = IVPASS + 1 02390031
243: WRITE (I02,80001) IVTNUM 02400031
244: GO TO 3071 02410031
245: 23060 IVFAIL = IVFAIL + 1 02420031
246: IVCORR =10111 02430031
247: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02440031
248: 3071 CONTINUE 02450031
249: IVTNUM = 307 02460031
250: C 02470031
251: C **** TEST 307 **** 02480031
252: C 02490031
253: IF (ICZERO) 33070, 3070, 33070 02500031
254: 3070 CONTINUE 02510031
255: IVON01 = -3 02520031
256: IVCOMP = IVON01-2-4 02530031
257: GO TO 43070 02540031
258: 33070 IVDELE = IVDELE + 1 02550031
259: WRITE (I02,80003) IVTNUM 02560031
260: IF (ICZERO) 43070, 3081, 43070 02570031
261: 43070 IF (IVCOMP +9) 23070,13070,23070 02580031
262: 13070 IVPASS = IVPASS + 1 02590031
263: WRITE (I02,80001) IVTNUM 02600031
264: GO TO 3081 02610031
265: 23070 IVFAIL = IVFAIL + 1 02620031
266: IVCORR =-9 02630031
267: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02640031
268: 3081 CONTINUE 02650031
269: IVTNUM = 308 02660031
270: C 02670031
271: C **** TEST 308 **** 02680031
272: C 02690031
273: IF (ICZERO) 33080, 3080, 33080 02700031
274: 3080 CONTINUE 02710031
275: IVON02 =-9 02720031
276: IVCOMP =1-IVON02-4 02730031
277: GO TO 43080 02740031
278: 33080 IVDELE = IVDELE + 1 02750031
279: WRITE (I02,80003) IVTNUM 02760031
280: IF (ICZERO) 43080, 3091, 43080 02770031
281: 43080 IF (IVCOMP-6) 23080,13080,23080 02780031
282: 13080 IVPASS = IVPASS + 1 02790031
283: WRITE (I02,80001) IVTNUM 02800031
284: GO TO 3091 02810031
285: 23080 IVFAIL = IVFAIL + 1 02820031
286: IVCORR = 6 02830031
287: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02840031
288: 3091 CONTINUE 02850031
289: IVTNUM = 309 02860031
290: C 02870031
291: C **** TEST 309 **** 02880031
292: C 02890031
293: IF (ICZERO) 33090, 3090, 33090 02900031
294: 3090 CONTINUE 02910031
295: IVON03 = -8542 02920031
296: IVCOMP = 100-3-IVON03 02930031
297: GO TO 43090 02940031
298: 33090 IVDELE = IVDELE + 1 02950031
299: WRITE (I02,80003) IVTNUM 02960031
300: IF (ICZERO) 43090, 3101, 43090 02970031
301: 43090 IF (IVCOMP-8639) 23090,13090,23090 02980031
302: 13090 IVPASS = IVPASS + 1 02990031
303: WRITE (I02,80001) IVTNUM 03000031
304: GO TO 3101 03010031
305: 23090 IVFAIL = IVFAIL + 1 03020031
306: IVCORR = 8639 03030031
307: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03040031
308: C 03050031
309: C TEST 310 THROUGH TEST 319 CONTAIN 2 INTEGER CONSTANTS, AN INTEGER 03060031
310: C VARIABLE AND OPERATOR - IN AN ARITHMETIC EXPRESSION. PARENTHESES 03070031
311: C ARE USED TO GROUP ELEMENTS IN THE ARITHMETIC EXPRESSION. 03080031
312: C 03090031
313: 3101 CONTINUE 03100031
314: IVTNUM = 310 03110031
315: C 03120031
316: C **** TEST 310 **** 03130031
317: C 03140031
318: IF (ICZERO) 33100, 3100, 33100 03150031
319: 3100 CONTINUE 03160031
320: IVON01 =9 03170031
321: IVCOMP = IVON01-(3-4) 03180031
322: GO TO 43100 03190031
323: 33100 IVDELE = IVDELE + 1 03200031
324: WRITE (I02,80003) IVTNUM 03210031
325: IF (ICZERO) 43100, 3111, 43100 03220031
326: 43100 IF (IVCOMP-10) 23100,13100,23100 03230031
327: 13100 IVPASS = IVPASS + 1 03240031
328: WRITE (I02,80001) IVTNUM 03250031
329: GO TO 3111 03260031
330: 23100 IVFAIL = IVFAIL + 1 03270031
331: IVCORR=10 03280031
332: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03290031
333: 3111 CONTINUE 03300031
334: IVTNUM = 311 03310031
335: C 03320031
336: C **** TEST 311 **** 03330031
337: C 03340031
338: IF (ICZERO) 33110, 3110, 33110 03350031
339: 3110 CONTINUE 03360031
340: IVON01=9 03370031
341: IVCOMP=(IVON01-3)-4 03380031
342: GO TO 43110 03390031
343: 33110 IVDELE = IVDELE + 1 03400031
344: WRITE (I02,80003) IVTNUM 03410031
345: IF (ICZERO) 43110, 3121, 43110 03420031
346: 43110 IF (IVCOMP-2) 23110,13110,23110 03430031
347: 13110 IVPASS = IVPASS + 1 03440031
348: WRITE (I02,80001) IVTNUM 03450031
349: GO TO 3121 03460031
350: 23110 IVFAIL = IVFAIL + 1 03470031
351: IVCORR =2 03480031
352: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03490031
353: 3121 CONTINUE 03500031
354: IVTNUM = 312 03510031
355: C 03520031
356: C **** TEST 312 **** 03530031
357: C 03540031
358: IF (ICZERO) 33120, 3120, 33120 03550031
359: 3120 CONTINUE 03560031
360: IVON02 = 3 03570031
361: IVCOMP = 9-(IVON02-4) 03580031
362: GO TO 43120 03590031
363: 33120 IVDELE = IVDELE + 1 03600031
364: WRITE (I02,80003) IVTNUM 03610031
365: IF (ICZERO) 43120, 3131, 43120 03620031
366: 43120 IF (IVCOMP-10) 23120,13120,23120 03630031
367: 13120 IVPASS = IVPASS + 1 03640031
368: WRITE (I02,80001) IVTNUM 03650031
369: GO TO 3131 03660031
370: 23120 IVFAIL = IVFAIL + 1 03670031
371: IVCORR = 10 03680031
372: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03690031
373: 3131 CONTINUE 03700031
374: IVTNUM = 313 03710031
375: C 03720031
376: C **** TEST 313 **** 03730031
377: C 03740031
378: IF (ICZERO) 33130, 3130, 33130 03750031
379: 3130 CONTINUE 03760031
380: IVON02 = 3 03770031
381: IVCOMP = (9-IVON02) -4 03780031
382: GO TO 43130 03790031
383: 33130 IVDELE = IVDELE + 1 03800031
384: WRITE (I02,80003) IVTNUM 03810031
385: IF (ICZERO) 43130, 3141, 43130 03820031
386: 43130 IF (IVCOMP-2) 23130,13130,23130 03830031
387: 13130 IVPASS = IVPASS + 1 03840031
388: WRITE (I02,80001) IVTNUM 03850031
389: GO TO 3141 03860031
390: 23130 IVFAIL = IVFAIL + 1 03870031
391: IVCORR = 2 03880031
392: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03890031
393: 3141 CONTINUE 03900031
394: IVTNUM = 314 03910031
395: C 03920031
396: C **** TEST 314 **** 03930031
397: C 03940031
398: IF (ICZERO) 33140, 3140, 33140 03950031
399: 3140 CONTINUE 03960031
400: IVON03 = 4 03970031
401: IVCOMP = 9 -(3-IVON03) 03980031
402: GO TO 43140 03990031
403: 33140 IVDELE = IVDELE + 1 04000031
404: WRITE (I02,80003) IVTNUM 04010031
405: IF (ICZERO) 43140, 3151, 43140 04020031
406: 43140 IF (IVCOMP-10) 23140,13140,23140 04030031
407: 13140 IVPASS = IVPASS + 1 04040031
408: WRITE (I02,80001) IVTNUM 04050031
409: GO TO 3151 04060031
410: 23140 IVFAIL = IVFAIL + 1 04070031
411: IVCORR = 10 04080031
412: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04090031
413: 3151 CONTINUE 04100031
414: IVTNUM = 315 04110031
415: C 04120031
416: C **** TEST 315 **** 04130031
417: C 04140031
418: IF (ICZERO) 33150, 3150, 33150 04150031
419: 3150 CONTINUE 04160031
420: IVON03 = 4 04170031
421: IVCOMP = (9-3)-IVON03 04180031
422: GO TO 43150 04190031
423: 33150 IVDELE = IVDELE + 1 04200031
424: WRITE (I02,80003) IVTNUM 04210031
425: IF (ICZERO) 43150, 3161, 43150 04220031
426: 43150 IF (IVCOMP-2) 23150,13150,23150 04230031
427: 13150 IVPASS = IVPASS + 1 04240031
428: WRITE (I02,80001) IVTNUM 04250031
429: GO TO 3161 04260031
430: 23150 IVFAIL = IVFAIL + 1 04270031
431: IVCORR = 2 04280031
432: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04290031
433: 3161 CONTINUE 04300031
434: IVTNUM = 316 04310031
435: C 04320031
436: C **** TEST 316 **** 04330031
437: C 04340031
438: IF (ICZERO) 33160, 3160, 33160 04350031
439: 3160 CONTINUE 04360031
440: IVON01 = -9 04370031
441: IVCOMP = (IVON01-3)-4 04380031
442: GO TO 43160 04390031
443: 33160 IVDELE = IVDELE + 1 04400031
444: WRITE (I02,80003) IVTNUM 04410031
445: IF (ICZERO) 43160, 3171, 43160 04420031
446: 43160 IF (IVCOMP +16) 23160,13160,23160 04430031
447: 13160 IVPASS = IVPASS + 1 04440031
448: WRITE (I02,80001) IVTNUM 04450031
449: GO TO 3171 04460031
450: 23160 IVFAIL = IVFAIL + 1 04470031
451: IVCORR = -16 04480031
452: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04490031
453: 3171 CONTINUE 04500031
454: IVTNUM = 317 04510031
455: C 04520031
456: C **** TEST 317 **** 04530031
457: C 04540031
458: IF (ICZERO) 33170, 3170, 33170 04550031
459: 3170 CONTINUE 04560031
460: IVON02 = -3 04570031
461: IVCOMP = 9-(IVON02-4) 04580031
462: GO TO 43170 04590031
463: 33170 IVDELE = IVDELE + 1 04600031
464: WRITE (I02,80003) IVTNUM 04610031
465: IF (ICZERO) 43170, 3181, 43170 04620031
466: 43170 IF (IVCOMP-16) 23170,13170,23170 04630031
467: 13170 IVPASS = IVPASS + 1 04640031
468: WRITE (I02,80001) IVTNUM 04650031
469: GO TO 3181 04660031
470: 23170 IVFAIL = IVFAIL + 1 04670031
471: IVCORR = 16 04680031
472: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04690031
473: 3181 CONTINUE 04700031
474: IVTNUM = 318 04710031
475: C 04720031
476: C **** TEST 318 **** 04730031
477: C 04740031
478: IF (ICZERO) 33180, 3180, 33180 04750031
479: 3180 CONTINUE 04760031
480: IVON03 = +4 04770031
481: IVCOMP = 9 - (3 - IVON03) 04780031
482: GO TO 43180 04790031
483: 33180 IVDELE = IVDELE + 1 04800031
484: WRITE (I02,80003) IVTNUM 04810031
485: IF (ICZERO) 43180, 3191, 43180 04820031
486: 43180 IF (IVCOMP - 10) 23180,13180,23180 04830031
487: 13180 IVPASS = IVPASS + 1 04840031
488: WRITE (I02,80001) IVTNUM 04850031
489: GO TO 3191 04860031
490: 23180 IVFAIL = IVFAIL + 1 04870031
491: IVCORR= 10 04880031
492: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04890031
493: 3191 CONTINUE 04900031
494: IVTNUM = 319 04910031
495: C 04920031
496: C **** TEST 319 **** 04930031
497: C 04940031
498: IF (ICZERO) 33190, 3190, 33190 04950031
499: 3190 CONTINUE 04960031
500: IVON02 = 11111 04970031
501: IVCOMP = (32333-IVON02) -11111 04980031
502: GO TO 43190 04990031
503: 33190 IVDELE = IVDELE + 1 05000031
504: WRITE (I02,80003) IVTNUM 05010031
505: IF (ICZERO) 43190, 3201, 43190 05020031
506: 43190 IF (IVCOMP - 10111) 23190,13190,23190 05030031
507: 13190 IVPASS = IVPASS + 1 05040031
508: WRITE (I02,80001) IVTNUM 05050031
509: GO TO 3201 05060031
510: 23190 IVFAIL = IVFAIL + 1 05070031
511: IVCORR = 10111 05080031
512: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05090031
513: C 05100031
514: C TEST 320 THROUGH TEST 329 CONTAIN 2 INTEGER VARIABLES AND 05110031
515: C OPERATOR - IN AN ARITHMETIC EXPRESSION. THE INTEGER VARIABLES 05120031
516: C CONTAIN POSITIVE AND NEGATIVE VALUES. 05130031
517: C 05140031
518: 3201 CONTINUE 05150031
519: IVTNUM = 320 05160031
520: C 05170031
521: C **** TEST 320 **** 05180031
522: C 05190031
523: IF (ICZERO) 33200, 3200, 33200 05200031
524: 3200 CONTINUE 05210031
525: IVON01 = 3 05220031
526: IVON02 = 2 05230031
527: IVCOMP = IVON01 - IVON02 05240031
528: GO TO 43200 05250031
529: 33200 IVDELE = IVDELE + 1 05260031
530: WRITE (I02,80003) IVTNUM 05270031
531: IF (ICZERO) 43200, 3211, 43200 05280031
532: 43200 IF (IVCOMP - 1) 23200,13200,23200 05290031
533: 13200 IVPASS = IVPASS + 1 05300031
534: WRITE (I02,80001) IVTNUM 05310031
535: GO TO 3211 05320031
536: 23200 IVFAIL = IVFAIL + 1 05330031
537: IVCORR = 1 05340031
538: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05350031
539: 3211 CONTINUE 05360031
540: IVTNUM = 321 05370031
541: C 05380031
542: C **** TEST 321 **** 05390031
543: C 05400031
544: IF (ICZERO) 33210, 3210, 33210 05410031
545: 3210 CONTINUE 05420031
546: IVON01 =2 05430031
547: IVON02 =3 05440031
548: IVCOMP = IVON01 - IVON02 05450031
549: GO TO 43210 05460031
550: 33210 IVDELE = IVDELE + 1 05470031
551: WRITE (I02,80003) IVTNUM 05480031
552: IF (ICZERO) 43210, 3221, 43210 05490031
553: 43210 IF (IVCOMP +1) 23210,13210,23210 05500031
554: 13210 IVPASS = IVPASS + 1 05510031
555: WRITE (I02,80001) IVTNUM 05520031
556: GO TO 3221 05530031
557: 23210 IVFAIL = IVFAIL + 1 05540031
558: IVCORR = -1 05550031
559: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05560031
560: 3221 CONTINUE 05570031
561: IVTNUM = 322 05580031
562: C 05590031
563: C **** TEST 322 **** 05600031
564: C 05610031
565: IF (ICZERO) 33220, 3220, 33220 05620031
566: 3220 CONTINUE 05630031
567: IVON01 = -2 05640031
568: IVON02 = 3 05650031
569: IVCOMP = IVON01 - IVON02 05660031
570: GO TO 43220 05670031
571: 33220 IVDELE = IVDELE + 1 05680031
572: WRITE (I02,80003) IVTNUM 05690031
573: IF (ICZERO) 43220, 3231, 43220 05700031
574: 43220 IF (IVCOMP +5) 23220,13220,23220 05710031
575: 13220 IVPASS = IVPASS + 1 05720031
576: WRITE (I02,80001) IVTNUM 05730031
577: GO TO 3231 05740031
578: 23220 IVFAIL = IVFAIL + 1 05750031
579: IVCORR =-5 05760031
580: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05770031
581: 3231 CONTINUE 05780031
582: IVTNUM = 323 05790031
583: C 05800031
584: C **** TEST 323 **** 05810031
585: C 05820031
586: IF (ICZERO) 33230, 3230, 33230 05830031
587: 3230 CONTINUE 05840031
588: IVON01 = -2 05850031
589: IVON02 = -3 05860031
590: IVCOMP = IVON01 - IVON02 05870031
591: GO TO 43230 05880031
592: 33230 IVDELE = IVDELE + 1 05890031
593: WRITE (I02,80003) IVTNUM 05900031
594: IF (ICZERO) 43230, 3241, 43230 05910031
595: 43230 IF (IVCOMP -1) 23230,13230,23230 05920031
596: 13230 IVPASS = IVPASS + 1 05930031
597: WRITE (I02,80001) IVTNUM 05940031
598: GO TO 3241 05950031
599: 23230 IVFAIL = IVFAIL + 1 05960031
600: IVCORR = 1 05970031
601: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05980031
602: 3241 CONTINUE 05990031
603: IVTNUM = 324 06000031
604: C 06010031
605: C **** TEST 324 **** 06020031
606: C 06030031
607: IF (ICZERO) 33240, 3240, 33240 06040031
608: 3240 CONTINUE 06050031
609: IVON01 = 51 06060031
610: IVON02 = 52 06070031
611: IVCOMP = IVON01 - IVON02 06080031
612: GO TO 43240 06090031
613: 33240 IVDELE = IVDELE + 1 06100031
614: WRITE (I02,80003) IVTNUM 06110031
615: IF (ICZERO) 43240, 3251, 43240 06120031
616: 43240 IF (IVCOMP + 1) 23240,13240,23240 06130031
617: 13240 IVPASS = IVPASS + 1 06140031
618: WRITE (I02,80001) IVTNUM 06150031
619: GO TO 3251 06160031
620: 23240 IVFAIL = IVFAIL + 1 06170031
621: IVCORR = -1 06180031
622: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06190031
623: 3251 CONTINUE 06200031
624: IVTNUM = 325 06210031
625: C 06220031
626: C **** TEST 325 **** 06230031
627: C 06240031
628: IF (ICZERO) 33250, 3250, 33250 06250031
629: 3250 CONTINUE 06260031
630: IVON01 = 676 06270031
631: IVON02 =-189 06280031
632: IVCOMP = IVON01 - IVON02 06290031
633: GO TO 43250 06300031
634: 33250 IVDELE = IVDELE + 1 06310031
635: WRITE (I02,80003) IVTNUM 06320031
636: IF (ICZERO) 43250, 3261, 43250 06330031
637: 43250 IF (IVCOMP - 865) 23250,13250,23250 06340031
638: 13250 IVPASS = IVPASS + 1 06350031
639: WRITE (I02,80001) IVTNUM 06360031
640: GO TO 3261 06370031
641: 23250 IVFAIL = IVFAIL + 1 06380031
642: IVCORR = 865 06390031
643: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06400031
644: 3261 CONTINUE 06410031
645: IVTNUM = 326 06420031
646: C 06430031
647: C **** TEST 326 **** 06440031
648: C 06450031
649: IF (ICZERO) 33260, 3260, 33260 06460031
650: 3260 CONTINUE 06470031
651: IVON01 = 1358 06480031
652: IVON02 = -8001 06490031
653: IVCOMP = IVON01 - IVON02 06500031
654: GO TO 43260 06510031
655: 33260 IVDELE = IVDELE + 1 06520031
656: WRITE (I02,80003) IVTNUM 06530031
657: IF (ICZERO) 43260, 3271, 43260 06540031
658: 43260 IF (IVCOMP - 9359) 23260,13260,23260 06550031
659: 13260 IVPASS = IVPASS + 1 06560031
660: WRITE (I02,80001) IVTNUM 06570031
661: GO TO 3271 06580031
662: 23260 IVFAIL = IVFAIL + 1 06590031
663: IVCORR = 9359 06600031
664: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06610031
665: 3271 CONTINUE 06620031
666: IVTNUM = 327 06630031
667: C 06640031
668: C **** TEST 327 **** 06650031
669: C 06660031
670: IF (ICZERO) 33270, 3270, 33270 06670031
671: 3270 CONTINUE 06680031
672: IVON01 =-16383 06690031
673: IVON02 = 16383 06700031
674: IVCOMP = IVON01 - IVON02 06710031
675: GO TO 43270 06720031
676: 33270 IVDELE = IVDELE + 1 06730031
677: WRITE (I02,80003) IVTNUM 06740031
678: IF (ICZERO) 43270, 3281, 43270 06750031
679: 43270 IF (IVCOMP + 32766) 23270,13270,23270 06760031
680: 13270 IVPASS = IVPASS + 1 06770031
681: WRITE (I02,80001) IVTNUM 06780031
682: GO TO 3281 06790031
683: 23270 IVFAIL = IVFAIL + 1 06800031
684: IVCORR = -32766 06810031
685: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06820031
686: 3281 CONTINUE 06830031
687: IVTNUM = 328 06840031
688: C 06850031
689: C **** TEST 328 **** 06860031
690: C 06870031
691: IF (ICZERO) 33280, 3280, 33280 06880031
692: 3280 CONTINUE 06890031
693: IVON01 = 9876 06900031
694: IVON02 = 189 06910031
695: IVCOMP = IVON01 - IVON02 06920031
696: GO TO 43280 06930031
697: 33280 IVDELE = IVDELE + 1 06940031
698: WRITE (I02,80003) IVTNUM 06950031
699: IF (ICZERO) 43280, 3291, 43280 06960031
700: 43280 IF (IVCOMP - 9687) 23280,13280,23280 06970031
701: 13280 IVPASS = IVPASS + 1 06980031
702: WRITE (I02,80001) IVTNUM 06990031
703: GO TO 3291 07000031
704: 23280 IVFAIL = IVFAIL + 1 07010031
705: IVCORR = 9687 07020031
706: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07030031
707: 3291 CONTINUE 07040031
708: IVTNUM = 329 07050031
709: C 07060031
710: C **** TEST 329 **** 07070031
711: C 07080031
712: IF (ICZERO) 33290, 3290, 33290 07090031
713: 3290 CONTINUE 07100031
714: IVON01 = 11112 07110031
715: IVON02 = 11112 07120031
716: IVCOMP = IVON01 - IVON02 07130031
717: GO TO 43290 07140031
718: 33290 IVDELE = IVDELE + 1 07150031
719: WRITE (I02,80003) IVTNUM 07160031
720: IF (ICZERO) 43290, 3301, 43290 07170031
721: 43290 IF (IVCOMP) 23290,13290,23290 07180031
722: 13290 IVPASS = IVPASS + 1 07190031
723: WRITE (I02,80001) IVTNUM 07200031
724: GO TO 3301 07210031
725: 23290 IVFAIL = IVFAIL + 1 07220031
726: IVCORR = 0 07230031
727: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07240031
728: C 07250031
729: C **** END OF TESTS **** 07260031
730: 3301 CONTINUE 07270031
731: C 07280031
732: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 07290031
733: 99999 CONTINUE 07300031
734: WRITE (I02,90002) 07310031
735: WRITE (I02,90006) 07320031
736: WRITE (I02,90002) 07330031
737: WRITE (I02,90002) 07340031
738: WRITE (I02,90007) 07350031
739: WRITE (I02,90002) 07360031
740: WRITE (I02,90008) IVFAIL 07370031
741: WRITE (I02,90009) IVPASS 07380031
742: WRITE (I02,90010) IVDELE 07390031
743: C 07400031
744: C 07410031
745: C TERMINATE ROUTINE EXECUTION 07420031
746: STOP 07430031
747: C 07440031
748: C FORMAT STATEMENTS FOR PAGE HEADERS 07450031
749: 90000 FORMAT (1H1) 07460031
750: 90002 FORMAT (1H ) 07470031
751: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 07480031
752: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 07490031
753: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 07500031
754: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 07510031
755: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 07520031
756: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 07530031
757: C 07540031
758: C FORMAT STATEMENTS FOR RUN SUMMARIES 07550031
759: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 07560031
760: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 07570031
761: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 07580031
762: C 07590031
763: C FORMAT STATEMENTS FOR TEST RESULTS 07600031
764: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 07610031
765: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 07620031
766: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 07630031
767: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 07640031
768: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 07650031
769: C 07660031
770: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM031) 07670031
771: END 07680031
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.