|
|
1.1 root 1: C COMMENT SECTION 00010032
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 00020032
6: C FM032 00030032
7: C 00040032
8: C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS OF THE 00050032
9: C FORM 00060032
10: C INTEGER VARIABLE = ARITHMETIC EXPRESSION 00070032
11: C WHERE THE ARITHMETIC EXPRESSION IS FORMED WITH THE ARITHMETIC 00080032
12: C OPERATOR -, INTEGER CONSTANTS AND INTEGER VARIABLES. SOME OF THE 00090032
13: C TESTS USE PARENTHESES TO GROUP ELEMENTS IN AN ARITHMETIC 00100032
14: C EXPRESSION. 00110032
15: C 00120032
16: C THERE ARE TESTS WHERE THE ARITHMETIC EXPRESSION CONTAINS 00130032
17: C (1) INTEGER VAR.= INT. VAR. - INT.VAR.-INT.CON 00140032
18: C = INT. VAR. - INT.CON.-INT.VAR 00150032
19: C = INT. CON. - INT.VAR -INT.VAR. 00160032
20: C (2) SAME FORMS AS (1) BUT WITH PARENTHESES TO GROUP ELEMENTS 00170032
21: C IN ARITHMETIC EXPRESSION. 00180032
22: C 00190032
23: C REFERENCES 00200032
24: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00210032
25: C X3.9-1978 00220032
26: C 00230032
27: C SECTION 4.3, INTEGER TYPE 00240032
28: C SECTION 4.3.1, INTEGER CONSTANT 00250032
29: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00260032
30: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00270032
31: C 00280032
32: C 00290032
33: C ********************************************************** 00300032
34: C 00310032
35: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00320032
36: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00330032
37: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00340032
38: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00350032
39: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00360032
40: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00370032
41: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00380032
42: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00390032
43: C OF EXECUTING THESE TESTS. 00400032
44: C 00410032
45: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00420032
46: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00430032
47: C 00440032
48: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00450032
49: C 00460032
50: C DEPARTMENT OF THE NAVY 00470032
51: C FEDERAL COBOL COMPILER TESTING SERVICE 00480032
52: C WASHINGTON, D.C. 20376 00490032
53: C 00500032
54: C ********************************************************** 00510032
55: C 00520032
56: C 00530032
57: C 00540032
58: C INITIALIZATION SECTION 00550032
59: C 00560032
60: C INITIALIZE CONSTANTS 00570032
61: C ************** 00580032
62: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00590032
63: I01 = 5 00600032
64: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00610032
65: I02 = 6 00620032
66: C SYSTEM ENVIRONMENT SECTION 00630032
67: C 00640032
68: I01 = 5 00650032
69: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00660032
70: C (UNIT NUMBER FOR CARD READER). 00670032
71: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00680032
72: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00690032
73: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00700032
74: C 00710032
75: I02 = 6 00720032
76: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00730032
77: C (UNIT NUMBER FOR PRINTER). 00740032
78: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00750032
79: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00760032
80: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00770032
81: C 00780032
82: IVPASS=0 00790032
83: IVFAIL=0 00800032
84: IVDELE=0 00810032
85: ICZERO=0 00820032
86: C 00830032
87: C WRITE PAGE HEADERS 00840032
88: WRITE (I02,90000) 00850032
89: WRITE (I02,90001) 00860032
90: WRITE (I02,90002) 00870032
91: WRITE (I02, 90002) 00880032
92: WRITE (I02,90003) 00890032
93: WRITE (I02,90002) 00900032
94: WRITE (I02,90004) 00910032
95: WRITE (I02,90002) 00920032
96: WRITE (I02,90011) 00930032
97: WRITE (I02,90002) 00940032
98: WRITE (I02,90002) 00950032
99: WRITE (I02,90005) 00960032
100: WRITE (I02,90006) 00970032
101: WRITE (I02,90002) 00980032
102: C TEST SECTION 00990032
103: C 01000032
104: C ARITHMETIC ASSIGNMENT STATEMENT 01010032
105: C 01020032
106: C TEST 330 THROUGH TEST 347 CONTAIN TWO INTEGER VARIABLES, AN 01030032
107: C INTEGER CONSTANT AND OPERATOR - IN AN ARITHMETIC EXPRESSION. THE 01040032
108: C INTEGER VARIABLES CONTAIN POSITIVE AND NEGATIVE VALUES. 01050032
109: C 01060032
110: C TEST 330 THROUGH TEST 337 IV = IV -IV -IC 01070032
111: C 01080032
112: 3301 CONTINUE 01090032
113: IVTNUM = 330 01100032
114: C 01110032
115: C **** TEST 330 **** 01120032
116: C 01130032
117: IF (ICZERO) 33300, 3300, 33300 01140032
118: 3300 CONTINUE 01150032
119: IVON01 =9 01160032
120: IVON02 =4 01170032
121: IVCOMP = IVON01-IVON02-2 01180032
122: GO TO 43300 01190032
123: 33300 IVDELE = IVDELE + 1 01200032
124: WRITE (I02,80003) IVTNUM 01210032
125: IF (ICZERO) 43300, 3311, 43300 01220032
126: 43300 IF (IVCOMP-3) 23300,13300,23300 01230032
127: 13300 IVPASS = IVPASS + 1 01240032
128: WRITE (I02,80001) IVTNUM 01250032
129: GO TO 3311 01260032
130: 23300 IVFAIL = IVFAIL + 1 01270032
131: IVCORR= 3 01280032
132: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01290032
133: 3311 CONTINUE 01300032
134: IVTNUM = 331 01310032
135: C 01320032
136: C **** TEST 331 **** 01330032
137: C 01340032
138: IF (ICZERO) 33310, 3310, 33310 01350032
139: 3310 CONTINUE 01360032
140: IVON01 =-9 01370032
141: IVON02 = 4 01380032
142: IVCOMP = IVON01-IVON02-2 01390032
143: GO TO 43310 01400032
144: 33310 IVDELE = IVDELE + 1 01410032
145: WRITE (I02,80003) IVTNUM 01420032
146: IF (ICZERO) 43310, 3321, 43310 01430032
147: 43310 IF (IVCOMP +15) 23310,13310,23310 01440032
148: 13310 IVPASS = IVPASS + 1 01450032
149: WRITE (I02,80001) IVTNUM 01460032
150: GO TO 3321 01470032
151: 23310 IVFAIL = IVFAIL + 1 01480032
152: IVCORR = -15 01490032
153: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01500032
154: 3321 CONTINUE 01510032
155: IVTNUM = 332 01520032
156: C 01530032
157: C **** TEST 332 **** 01540032
158: C 01550032
159: IF (ICZERO) 33320, 3320, 33320 01560032
160: 3320 CONTINUE 01570032
161: IVON01 =9 01580032
162: IVON02 =-4 01590032
163: IVCOMP =IVON01-IVON02-2 01600032
164: GO TO 43320 01610032
165: 33320 IVDELE = IVDELE + 1 01620032
166: WRITE (I02,80003) IVTNUM 01630032
167: IF (ICZERO) 43320, 3331, 43320 01640032
168: 43320 IF (IVCOMP-11) 23320,13320,23320 01650032
169: 13320 IVPASS = IVPASS + 1 01660032
170: WRITE (I02,80001) IVTNUM 01670032
171: GO TO 3331 01680032
172: 23320 IVFAIL = IVFAIL + 1 01690032
173: IVCORR = 11 01700032
174: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01710032
175: 3331 CONTINUE 01720032
176: IVTNUM = 333 01730032
177: C 01740032
178: C **** TEST 333 **** 01750032
179: C 01760032
180: IF (ICZERO) 33330, 3330, 33330 01770032
181: 3330 CONTINUE 01780032
182: IVON01 =57 01790032
183: IVON02 =25 01800032
184: IVCOMP=IVON01-IVON02-22 01810032
185: GO TO 43330 01820032
186: 33330 IVDELE = IVDELE + 1 01830032
187: WRITE (I02,80003) IVTNUM 01840032
188: IF (ICZERO) 43330, 3341, 43330 01850032
189: 43330 IF (IVCOMP -10) 23330,13330,23330 01860032
190: 13330 IVPASS = IVPASS + 1 01870032
191: WRITE (I02,80001) IVTNUM 01880032
192: GO TO 3341 01890032
193: 23330 IVFAIL = IVFAIL + 1 01900032
194: IVCORR = 10 01910032
195: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01920032
196: 3341 CONTINUE 01930032
197: IVTNUM = 334 01940032
198: C 01950032
199: C **** TEST 334 **** 01960032
200: C 01970032
201: IF (ICZERO) 33340, 3340, 33340 01980032
202: 3340 CONTINUE 01990032
203: IVON01 = 101 02000032
204: IVON02 = 683 02010032
205: IVCOMP = IVON01 - IVON02 - 156 02020032
206: GO TO 43340 02030032
207: 33340 IVDELE = IVDELE + 1 02040032
208: WRITE (I02,80003) IVTNUM 02050032
209: IF (ICZERO) 43340, 3351, 43340 02060032
210: 43340 IF (IVCOMP +738) 23340,13340,23340 02070032
211: 13340 IVPASS = IVPASS + 1 02080032
212: WRITE (I02,80001) IVTNUM 02090032
213: GO TO 3351 02100032
214: 23340 IVFAIL = IVFAIL + 1 02110032
215: IVCORR = -738 02120032
216: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02130032
217: 3351 CONTINUE 02140032
218: IVTNUM = 335 02150032
219: C 02160032
220: C **** TEST 335 **** 02170032
221: C 02180032
222: IF (ICZERO) 33350, 3350, 33350 02190032
223: 3350 CONTINUE 02200032
224: IVON01=8542 02210032
225: IVON02=1122 02220032
226: IVCOMP=IVON01-IVON02-1289 02230032
227: GO TO 43350 02240032
228: 33350 IVDELE = IVDELE + 1 02250032
229: WRITE (I02,80003) IVTNUM 02260032
230: IF (ICZERO) 43350, 3361, 43350 02270032
231: 43350 IF (IVCOMP -6131) 23350,13350,23350 02280032
232: 13350 IVPASS = IVPASS + 1 02290032
233: WRITE (I02,80001) IVTNUM 02300032
234: GO TO 3361 02310032
235: 23350 IVFAIL = IVFAIL + 1 02320032
236: IVCORR = 6131 02330032
237: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02340032
238: 3361 CONTINUE 02350032
239: IVTNUM = 336 02360032
240: C 02370032
241: C **** TEST 336 **** 02380032
242: C 02390032
243: IF (ICZERO) 33360, 3360, 33360 02400032
244: 3360 CONTINUE 02410032
245: IVON01 = 31333 02420032
246: IVON02 = 11111 02430032
247: IVCOMP = IVON01-IVON02-10111 02440032
248: GO TO 43360 02450032
249: 33360 IVDELE = IVDELE + 1 02460032
250: WRITE (I02,80003) IVTNUM 02470032
251: IF (ICZERO) 43360, 3371, 43360 02480032
252: 43360 IF (IVCOMP -10111) 23360,13360,23360 02490032
253: 13360 IVPASS = IVPASS + 1 02500032
254: WRITE (I02,80001) IVTNUM 02510032
255: GO TO 3371 02520032
256: 23360 IVFAIL = IVFAIL + 1 02530032
257: IVCORR = 10111 02540032
258: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02550032
259: 3371 CONTINUE 02560032
260: IVTNUM = 337 02570032
261: C 02580032
262: C **** TEST 337 **** 02590032
263: C 02600032
264: IF (ICZERO) 33370, 3370, 33370 02610032
265: 3370 CONTINUE 02620032
266: IVON01 = -31444 02630032
267: IVON02 = +1001 02640032
268: IVCOMP = IVON01-IVON02-300 02650032
269: GO TO 43370 02660032
270: 33370 IVDELE = IVDELE + 1 02670032
271: WRITE (I02,80003) IVTNUM 02680032
272: IF (ICZERO) 43370, 3381, 43370 02690032
273: 43370 IF (IVCOMP +32745) 23370,13370,23370 02700032
274: 13370 IVPASS = IVPASS + 1 02710032
275: WRITE (I02,80001) IVTNUM 02720032
276: GO TO 3381 02730032
277: 23370 IVFAIL = IVFAIL + 1 02740032
278: IVCORR = -32745 02750032
279: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02760032
280: C 02770032
281: C TEST 338 THROUGH TEST 343 IV=IV-IC-IV 02780032
282: C 02790032
283: 3381 CONTINUE 02800032
284: IVTNUM = 338 02810032
285: C 02820032
286: C **** TEST 338 **** 02830032
287: C 02840032
288: IF (ICZERO) 33380, 3380, 33380 02850032
289: 3380 CONTINUE 02860032
290: IVON01 =9 02870032
291: IVON03 =2 02880032
292: IVCOMP = IVON01-4-IVON03 02890032
293: GO TO 43380 02900032
294: 33380 IVDELE = IVDELE + 1 02910032
295: WRITE (I02,80003) IVTNUM 02920032
296: IF (ICZERO) 43380, 3391, 43380 02930032
297: 43380 IF (IVCOMP -3) 23380,13380,23380 02940032
298: 13380 IVPASS = IVPASS + 1 02950032
299: WRITE (I02,80001) IVTNUM 02960032
300: GO TO 3391 02970032
301: 23380 IVFAIL = IVFAIL + 1 02980032
302: IVCORR = 3 02990032
303: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03000032
304: 3391 CONTINUE 03010032
305: IVTNUM = 339 03020032
306: C 03030032
307: C **** TEST 339 **** 03040032
308: C 03050032
309: IF (ICZERO) 33390, 3390, 33390 03060032
310: 3390 CONTINUE 03070032
311: IVON01 = -9 03080032
312: IVON03 = 2 03090032
313: IVCOMP = IVON01-4-IVON03 03100032
314: GO TO 43390 03110032
315: 33390 IVDELE = IVDELE + 1 03120032
316: WRITE (I02,80003) IVTNUM 03130032
317: IF (ICZERO) 43390, 3401, 43390 03140032
318: 43390 IF (IVCOMP+15) 23390,13390,23390 03150032
319: 13390 IVPASS = IVPASS + 1 03160032
320: WRITE (I02,80001) IVTNUM 03170032
321: GO TO 3401 03180032
322: 23390 IVFAIL = IVFAIL + 1 03190032
323: IVCORR = -15 03200032
324: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03210032
325: 3401 CONTINUE 03220032
326: IVTNUM = 340 03230032
327: C 03240032
328: C **** TEST 340 **** 03250032
329: C 03260032
330: IF (ICZERO) 33400, 3400, 33400 03270032
331: 3400 CONTINUE 03280032
332: IVON01 = 9 03290032
333: IVON03 =-2 03300032
334: IVCOMP =IVON01-4-IVON03 03310032
335: GO TO 43400 03320032
336: 33400 IVDELE = IVDELE + 1 03330032
337: WRITE (I02,80003) IVTNUM 03340032
338: IF (ICZERO) 43400, 3411, 43400 03350032
339: 43400 IF (IVCOMP-7) 23400,13400,23400 03360032
340: 13400 IVPASS = IVPASS + 1 03370032
341: WRITE (I02,80001) IVTNUM 03380032
342: GO TO 3411 03390032
343: 23400 IVFAIL = IVFAIL + 1 03400032
344: IVCORR=7 03410032
345: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03420032
346: 3411 CONTINUE 03430032
347: IVTNUM = 341 03440032
348: C 03450032
349: C **** TEST 341 **** 03460032
350: C 03470032
351: IF (ICZERO) 33410, 3410, 33410 03480032
352: 3410 CONTINUE 03490032
353: IVON01=-57 03500032
354: IVON03=22 03510032
355: IVCOMP=IVON01-25-IVON03 03520032
356: GO TO 43410 03530032
357: 33410 IVDELE = IVDELE + 1 03540032
358: WRITE (I02,80003) IVTNUM 03550032
359: IF (ICZERO) 43410, 3421, 43410 03560032
360: 43410 IF (IVCOMP+104) 23410,13410,23410 03570032
361: 13410 IVPASS = IVPASS + 1 03580032
362: WRITE (I02,80001) IVTNUM 03590032
363: GO TO 3421 03600032
364: 23410 IVFAIL = IVFAIL + 1 03610032
365: IVCORR = -104 03620032
366: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03630032
367: 3421 CONTINUE 03640032
368: IVTNUM = 342 03650032
369: C 03660032
370: C **** TEST 342 **** 03670032
371: C 03680032
372: IF (ICZERO) 33420, 3420, 33420 03690032
373: 3420 CONTINUE 03700032
374: IVON01=8542 03710032
375: IVON03=3 03720032
376: IVCOMP=IVON01-125-IVON03 03730032
377: GO TO 43420 03740032
378: 33420 IVDELE = IVDELE + 1 03750032
379: WRITE (I02,80003) IVTNUM 03760032
380: IF (ICZERO) 43420, 3431, 43420 03770032
381: 43420 IF (IVCOMP-8414) 23420,13420,23420 03780032
382: 13420 IVPASS = IVPASS + 1 03790032
383: WRITE (I02,80001) IVTNUM 03800032
384: GO TO 3431 03810032
385: 23420 IVFAIL = IVFAIL + 1 03820032
386: IVCORR = 8414 03830032
387: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03840032
388: 3431 CONTINUE 03850032
389: IVTNUM = 343 03860032
390: C 03870032
391: C **** TEST 343 **** 03880032
392: C 03890032
393: IF (ICZERO) 33430, 3430, 33430 03900032
394: 3430 CONTINUE 03910032
395: IVON01 = -32111 03920032
396: IVON03 = -111 03930032
397: IVCOMP = IVON01-111-IVON03 03940032
398: GO TO 43430 03950032
399: 33430 IVDELE = IVDELE + 1 03960032
400: WRITE (I02,80003) IVTNUM 03970032
401: IF (ICZERO) 43430, 3441, 43430 03980032
402: 43430 IF (IVCOMP + 32111) 23430,13430,23430 03990032
403: 13430 IVPASS = IVPASS + 1 04000032
404: WRITE (I02,80001) IVTNUM 04010032
405: GO TO 3441 04020032
406: 23430 IVFAIL = IVFAIL + 1 04030032
407: IVCORR = -32111 04040032
408: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04050032
409: C 04060032
410: C TEST 344 THROUGH TEST 347 IV=IC-IV-IV 04070032
411: C 04080032
412: 3441 CONTINUE 04090032
413: IVTNUM = 344 04100032
414: C 04110032
415: C **** TEST 344 **** 04120032
416: C 04130032
417: IF (ICZERO) 33440, 3440, 33440 04140032
418: 3440 CONTINUE 04150032
419: IVON02=4 04160032
420: IVON03=2 04170032
421: IVCOMP=9-IVON02-IVON03 04180032
422: GO TO 43440 04190032
423: 33440 IVDELE = IVDELE + 1 04200032
424: WRITE (I02,80003) IVTNUM 04210032
425: IF (ICZERO) 43440, 3451, 43440 04220032
426: 43440 IF (IVCOMP -3) 23440,13440,23440 04230032
427: 13440 IVPASS = IVPASS + 1 04240032
428: WRITE (I02,80001) IVTNUM 04250032
429: GO TO 3451 04260032
430: 23440 IVFAIL = IVFAIL + 1 04270032
431: IVCORR = 3 04280032
432: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04290032
433: 3451 CONTINUE 04300032
434: IVTNUM = 345 04310032
435: C 04320032
436: C **** TEST 345 **** 04330032
437: C 04340032
438: IF (ICZERO) 33450, 3450, 33450 04350032
439: 3450 CONTINUE 04360032
440: IVON02=-4 04370032
441: IVON03= 2 04380032
442: IVCOMP= 9-IVON02-IVON03 04390032
443: GO TO 43450 04400032
444: 33450 IVDELE = IVDELE + 1 04410032
445: WRITE (I02,80003) IVTNUM 04420032
446: IF (ICZERO) 43450, 3461, 43450 04430032
447: 43450 IF (IVCOMP -11) 23450,13450,23450 04440032
448: 13450 IVPASS = IVPASS + 1 04450032
449: WRITE (I02,80001) IVTNUM 04460032
450: GO TO 3461 04470032
451: 23450 IVFAIL = IVFAIL + 1 04480032
452: IVCORR =11 04490032
453: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04500032
454: 3461 CONTINUE 04510032
455: IVTNUM = 346 04520032
456: C 04530032
457: C **** TEST 346 **** 04540032
458: C 04550032
459: IF (ICZERO) 33460, 3460, 33460 04560032
460: 3460 CONTINUE 04570032
461: IVON02 = 683 04580032
462: IVON03 = 156 04590032
463: IVCOMP = 101 -IVON02-IVON03 04600032
464: GO TO 43460 04610032
465: 33460 IVDELE = IVDELE + 1 04620032
466: WRITE (I02,80003) IVTNUM 04630032
467: IF (ICZERO) 43460, 3471, 43460 04640032
468: 43460 IF (IVCOMP +738) 23460,13460,23460 04650032
469: 13460 IVPASS = IVPASS + 1 04660032
470: WRITE (I02,80001) IVTNUM 04670032
471: GO TO 3471 04680032
472: 23460 IVFAIL = IVFAIL + 1 04690032
473: IVCORR = -738 04700032
474: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04710032
475: 3471 CONTINUE 04720032
476: IVTNUM = 347 04730032
477: C 04740032
478: C **** TEST 347 **** 04750032
479: C 04760032
480: IF (ICZERO) 33470, 3470, 33470 04770032
481: 3470 CONTINUE 04780032
482: IVON02 = 15687 04790032
483: IVON03 = 387 04800032
484: IVCOMP = 8542-IVON02-IVON03 04810032
485: GO TO 43470 04820032
486: 33470 IVDELE = IVDELE + 1 04830032
487: WRITE (I02,80003) IVTNUM 04840032
488: IF (ICZERO) 43470, 3481, 43470 04850032
489: 43470 IF (IVCOMP + 7532) 23470,13470,23470 04860032
490: 13470 IVPASS = IVPASS + 1 04870032
491: WRITE (I02,80001) IVTNUM 04880032
492: GO TO 3481 04890032
493: 23470 IVFAIL = IVFAIL + 1 04900032
494: IVCORR = -7532 04910032
495: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04920032
496: C 04930032
497: C TEST 348 THROUGH TEST 359 CONTAIN TWO INTEGER VARIABLES, AN 04940032
498: C INTEGER CONSTANT AND OPERATOR - IN AN ARITHMETIC EXPRESSION. 04950032
499: C PARENTHESES ARE USED TO GROUP THE ELEMENTS IN THE ARITHMETIC 04960032
500: C EXPRESSION. THE INTEGER VARIABLES CONTAIN POSITIVE AND NEGATIVE 04970032
501: C VALUES. 04980032
502: C 04990032
503: 3481 CONTINUE 05000032
504: IVTNUM = 348 05010032
505: C 05020032
506: C **** TEST 348 **** 05030032
507: C 05040032
508: IF (ICZERO) 33480, 3480, 33480 05050032
509: 3480 CONTINUE 05060032
510: IVON01= 9 05070032
511: IVON02= 4 05080032
512: IVCOMP=(IVON01-IVON02)-2 05090032
513: GO TO 43480 05100032
514: 33480 IVDELE = IVDELE + 1 05110032
515: WRITE (I02,80003) IVTNUM 05120032
516: IF (ICZERO) 43480, 3491, 43480 05130032
517: 43480 IF (IVCOMP - 3) 23480,13480,23480 05140032
518: 13480 IVPASS = IVPASS + 1 05150032
519: WRITE (I02,80001) IVTNUM 05160032
520: GO TO 3491 05170032
521: 23480 IVFAIL = IVFAIL + 1 05180032
522: IVCORR = 3 05190032
523: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05200032
524: 3491 CONTINUE 05210032
525: IVTNUM = 349 05220032
526: C 05230032
527: C **** TEST 349 **** 05240032
528: C 05250032
529: IF (ICZERO) 33490, 3490, 33490 05260032
530: 3490 CONTINUE 05270032
531: IVON01=9 05280032
532: IVON02=4 05290032
533: IVCOMP=IVON01-(IVON02-2) 05300032
534: GO TO 43490 05310032
535: 33490 IVDELE = IVDELE + 1 05320032
536: WRITE (I02,80003) IVTNUM 05330032
537: IF (ICZERO) 43490, 3501, 43490 05340032
538: 43490 IF (IVCOMP -7) 23490,13490,23490 05350032
539: 13490 IVPASS = IVPASS + 1 05360032
540: WRITE (I02,80001) IVTNUM 05370032
541: GO TO 3501 05380032
542: 23490 IVFAIL = IVFAIL + 1 05390032
543: IVCORR=7 05400032
544: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05410032
545: 3501 CONTINUE 05420032
546: IVTNUM = 350 05430032
547: C 05440032
548: C **** TEST 350 **** 05450032
549: C 05460032
550: IF (ICZERO) 33500, 3500, 33500 05470032
551: 3500 CONTINUE 05480032
552: IVON01 = 9 05490032
553: IVON02 = -4 05500032
554: IVCOMP = (IVON01-IVON02) -2 05510032
555: GO TO 43500 05520032
556: 33500 IVDELE = IVDELE + 1 05530032
557: WRITE (I02,80003) IVTNUM 05540032
558: IF (ICZERO) 43500, 3511, 43500 05550032
559: 43500 IF (IVCOMP -11) 23500,13500,23500 05560032
560: 13500 IVPASS = IVPASS + 1 05570032
561: WRITE (I02,80001) IVTNUM 05580032
562: GO TO 3511 05590032
563: 23500 IVFAIL = IVFAIL + 1 05600032
564: IVCORR = 11 05610032
565: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05620032
566: 3511 CONTINUE 05630032
567: IVTNUM = 351 05640032
568: C 05650032
569: C **** TEST 351 **** 05660032
570: C 05670032
571: IF (ICZERO) 33510, 3510, 33510 05680032
572: 3510 CONTINUE 05690032
573: IVON01 = 9 05700032
574: IVON02 = -4 05710032
575: IVCOMP = IVON01-(IVON02-2) 05720032
576: GO TO 43510 05730032
577: 33510 IVDELE = IVDELE + 1 05740032
578: WRITE (I02,80003) IVTNUM 05750032
579: IF (ICZERO) 43510, 3521, 43510 05760032
580: 43510 IF (IVCOMP - 15) 23510,13510,23510 05770032
581: 13510 IVPASS = IVPASS + 1 05780032
582: WRITE (I02,80001) IVTNUM 05790032
583: GO TO 3521 05800032
584: 23510 IVFAIL = IVFAIL + 1 05810032
585: IVCORR = 15 05820032
586: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05830032
587: 3521 CONTINUE 05840032
588: IVTNUM = 352 05850032
589: C 05860032
590: C **** TEST 352 **** 05870032
591: C 05880032
592: IF (ICZERO) 33520, 3520, 33520 05890032
593: 3520 CONTINUE 05900032
594: IVON01 = 683 05910032
595: IVON03 = 156 05920032
596: IVCOMP = (IVON01-101)-IVON03 05930032
597: GO TO 43520 05940032
598: 33520 IVDELE = IVDELE + 1 05950032
599: WRITE (I02,80003) IVTNUM 05960032
600: IF (ICZERO) 43520, 3531, 43520 05970032
601: 43520 IF (IVCOMP - 426) 23520,13520,23520 05980032
602: 13520 IVPASS = IVPASS + 1 05990032
603: WRITE (I02,80001) IVTNUM 06000032
604: GO TO 3531 06010032
605: 23520 IVFAIL = IVFAIL + 1 06020032
606: IVCORR = 426 06030032
607: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06040032
608: 3531 CONTINUE 06050032
609: IVTNUM = 353 06060032
610: C 06070032
611: C **** TEST 353 **** 06080032
612: C 06090032
613: IF (ICZERO) 33530, 3530, 33530 06100032
614: 3530 CONTINUE 06110032
615: IVON01 = 683 06120032
616: IVON03 = 156 06130032
617: IVCOMP = IVON01 -(101-IVON03) 06140032
618: GO TO 43530 06150032
619: 33530 IVDELE = IVDELE + 1 06160032
620: WRITE (I02,80003) IVTNUM 06170032
621: IF (ICZERO) 43530, 3541, 43530 06180032
622: 43530 IF (IVCOMP -738) 23530,13530,23530 06190032
623: 13530 IVPASS = IVPASS + 1 06200032
624: WRITE (I02,80001) IVTNUM 06210032
625: GO TO 3541 06220032
626: 23530 IVFAIL = IVFAIL + 1 06230032
627: IVCORR = 738 06240032
628: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06250032
629: 3541 CONTINUE 06260032
630: IVTNUM = 354 06270032
631: C 06280032
632: C **** TEST 354 **** 06290032
633: C 06300032
634: IF (ICZERO) 33540, 3540, 33540 06310032
635: 3540 CONTINUE 06320032
636: IVON01 = 683 06330032
637: IVON03 =-156 06340032
638: IVCOMP = IVON01 -(101-IVON03) 06350032
639: GO TO 43540 06360032
640: 33540 IVDELE = IVDELE + 1 06370032
641: WRITE (I02,80003) IVTNUM 06380032
642: IF (ICZERO) 43540, 3551, 43540 06390032
643: 43540 IF (IVCOMP -426) 23540,13540,23540 06400032
644: 13540 IVPASS = IVPASS + 1 06410032
645: WRITE (I02,80001) IVTNUM 06420032
646: GO TO 3551 06430032
647: 23540 IVFAIL = IVFAIL + 1 06440032
648: IVCORR = 426 06450032
649: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06460032
650: 3551 CONTINUE 06470032
651: IVTNUM = 355 06480032
652: C 06490032
653: C **** TEST 355 **** 06500032
654: C 06510032
655: IF (ICZERO) 33550, 3550, 33550 06520032
656: 3550 CONTINUE 06530032
657: IVON01 = -683 06540032
658: IVON03 = -156 06550032
659: IVCOMP = (IVON01-101)-IVON03 06560032
660: GO TO 43550 06570032
661: 33550 IVDELE = IVDELE + 1 06580032
662: WRITE (I02,80003) IVTNUM 06590032
663: IF (ICZERO) 43550, 3561, 43550 06600032
664: 43550 IF (IVCOMP +628) 23550,13550,23550 06610032
665: 13550 IVPASS = IVPASS + 1 06620032
666: WRITE (I02,80001) IVTNUM 06630032
667: GO TO 3561 06640032
668: 23550 IVFAIL = IVFAIL + 1 06650032
669: IVCORR = -628 06660032
670: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06670032
671: 3561 CONTINUE 06680032
672: IVTNUM = 356 06690032
673: C 06700032
674: C **** TEST 356 **** 06710032
675: C 06720032
676: IF (ICZERO) 33560, 3560, 33560 06730032
677: 3560 CONTINUE 06740032
678: IVON02 = 15687 06750032
679: IVON03 = 387 06760032
680: IVCOMP = (8542-IVON02)-IVON03 06770032
681: GO TO 43560 06780032
682: 33560 IVDELE = IVDELE + 1 06790032
683: WRITE (I02,80003) IVTNUM 06800032
684: IF (ICZERO) 43560, 3571, 43560 06810032
685: 43560 IF (IVCOMP +7532) 23560,13560,23560 06820032
686: 13560 IVPASS = IVPASS + 1 06830032
687: WRITE (I02,80001) IVTNUM 06840032
688: GO TO 3571 06850032
689: 23560 IVFAIL = IVFAIL + 1 06860032
690: IVCORR = -7532 06870032
691: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06880032
692: 3571 CONTINUE 06890032
693: IVTNUM = 357 06900032
694: C 06910032
695: C **** TEST 357 **** 06920032
696: C 06930032
697: IF (ICZERO) 33570, 3570, 33570 06940032
698: 3570 CONTINUE 06950032
699: IVON02= 15687 06960032
700: IVON03= 387 06970032
701: IVCOMP= 8542-(IVON02-IVON03) 06980032
702: GO TO 43570 06990032
703: 33570 IVDELE = IVDELE + 1 07000032
704: WRITE (I02,80003) IVTNUM 07010032
705: IF (ICZERO) 43570, 3581, 43570 07020032
706: 43570 IF (IVCOMP + 6758) 23570,13570,23570 07030032
707: 13570 IVPASS = IVPASS + 1 07040032
708: WRITE (I02,80001) IVTNUM 07050032
709: GO TO 3581 07060032
710: 23570 IVFAIL = IVFAIL + 1 07070032
711: IVCORR = -6758 07080032
712: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07090032
713: 3581 CONTINUE 07100032
714: IVTNUM = 358 07110032
715: C 07120032
716: C **** TEST 358 **** 07130032
717: C 07140032
718: IF (ICZERO) 33580, 3580, 33580 07150032
719: 3580 CONTINUE 07160032
720: IVON02 = -15687 07170032
721: IVON03 = 387 07180032
722: IVCOMP =(8542-IVON02)-IVON03 07190032
723: GO TO 43580 07200032
724: 33580 IVDELE = IVDELE + 1 07210032
725: WRITE (I02,80003) IVTNUM 07220032
726: IF (ICZERO) 43580, 3591, 43580 07230032
727: 43580 IF (IVCOMP - 23842) 23580,13580,23580 07240032
728: 13580 IVPASS = IVPASS + 1 07250032
729: WRITE (I02,80001) IVTNUM 07260032
730: GO TO 3591 07270032
731: 23580 IVFAIL = IVFAIL + 1 07280032
732: IVCORR =23842 07290032
733: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07300032
734: 3591 CONTINUE 07310032
735: IVTNUM = 359 07320032
736: C 07330032
737: C **** TEST 359 **** 07340032
738: C 07350032
739: IF (ICZERO) 33590, 3590, 33590 07360032
740: 3590 CONTINUE 07370032
741: IVON02 = -15687 07380032
742: IVON03 = 387 07390032
743: IVCOMP = 8542-(IVON02-IVON03) 07400032
744: GO TO 43590 07410032
745: 33590 IVDELE = IVDELE + 1 07420032
746: WRITE (I02,80003) IVTNUM 07430032
747: IF (ICZERO) 43590, 3601, 43590 07440032
748: 43590 IF (IVCOMP - 24616) 23590,13590,23590 07450032
749: 13590 IVPASS = IVPASS + 1 07460032
750: WRITE (I02,80001) IVTNUM 07470032
751: GO TO 3601 07480032
752: 23590 IVFAIL = IVFAIL + 1 07490032
753: IVCORR = 24616 07500032
754: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07510032
755: C **** END OF TESTS **** 07520032
756: 3601 CONTINUE 07530032
757: C 07540032
758: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 07550032
759: 99999 CONTINUE 07560032
760: WRITE (I02,90002) 07570032
761: WRITE (I02,90006) 07580032
762: WRITE (I02,90002) 07590032
763: WRITE (I02,90002) 07600032
764: WRITE (I02,90007) 07610032
765: WRITE (I02,90002) 07620032
766: WRITE (I02,90008) IVFAIL 07630032
767: WRITE (I02,90009) IVPASS 07640032
768: WRITE (I02,90010) IVDELE 07650032
769: C 07660032
770: C 07670032
771: C TERMINATE ROUTINE EXECUTION 07680032
772: STOP 07690032
773: C 07700032
774: C FORMAT STATEMENTS FOR PAGE HEADERS 07710032
775: 90000 FORMAT (1H1) 07720032
776: 90002 FORMAT (1H ) 07730032
777: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 07740032
778: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 07750032
779: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 07760032
780: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 07770032
781: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 07780032
782: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 07790032
783: C 07800032
784: C FORMAT STATEMENTS FOR RUN SUMMARIES 07810032
785: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 07820032
786: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 07830032
787: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 07840032
788: C 07850032
789: C FORMAT STATEMENTS FOR TEST RESULTS 07860032
790: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 07870032
791: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 07880032
792: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 07890032
793: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 07900032
794: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 07910032
795: C 07920032
796: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM032) 07930032
797: END 07940032
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.