|
|
1.1 root 1: C 00010016
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 COMMENT SECTION. 00020016
6: C 00030016
7: C FM016 00040016
8: C 00050016
9: C THIS ROUTINE BEGINS A SERIES OF TESTS OF THE FORTRAN 00060016
10: C LOGICAL IF STATEMENT IN ALL OF THE VARIOUS FORMS. THE 00070016
11: C FOLLOWING LOGICAL OPERANDS ARE USED FOR THIS ROUTINE - LOGICAL 00080016
12: C CONSTANTS, LOGICAL VARIABLES, LOGICAL ARRAY ELEMENTS, AND 00090016
13: C ARITHMETIC EXPRESSIONS WITH VARIOUS RELATIONAL OPERATORS. BOTH 00100016
14: C THE TRUE AND FALSE BRANCHES ARE TESTED IN THE SERIES OF TESTS. 00110016
15: C 00120016
16: C REFERENCES 00130016
17: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00140016
18: C X3.9-1978 00150016
19: C 00160016
20: C SECTION 4.7.1, LOGICAL CONSTANT 00170016
21: C SECTION 6, EXPRESSIONS 00180016
22: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00190016
23: C SECTION 6.3, RELATIONAL EXPRESSIONS 00200016
24: C SECTION 6.4, LOGICAL EXPRESSIONS 00210016
25: C SECTION 6.6, EVALUATION OF EXPRESSIONS 00220016
26: C SECTION 10, ASSIGNMENT STATEMENTS 00230016
27: C SECTION 10.2, LOGICAL ASSIGNMENT STATEMENT 00240016
28: C SECTION 11.5, LOGICAL IF STATEMENT 00250016
29: C 00260016
30: LOGICAL LCTNT1, LCTNF1, LVTNTF, LVTNFT, LATN1A(2) 00270016
31: LOGICAL LADN1D, LADN1B 00280016
32: DIMENSION LADN1D(2), LADN1B(2) 00290016
33: DATA LADN1D/.TRUE., .FALSE./ 00300016
34: C 00310016
35: C ********************************************************** 00320016
36: C 00330016
37: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00340016
38: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00350016
39: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00360016
40: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00370016
41: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00380016
42: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00390016
43: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00400016
44: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00410016
45: C OF EXECUTING THESE TESTS. 00420016
46: C 00430016
47: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00440016
48: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00450016
49: C 00460016
50: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00470016
51: C 00480016
52: C DEPARTMENT OF THE NAVY 00490016
53: C FEDERAL COBOL COMPILER TESTING SERVICE 00500016
54: C WASHINGTON, D.C. 20376 00510016
55: C 00520016
56: C ********************************************************** 00530016
57: C 00540016
58: C 00550016
59: C 00560016
60: C INITIALIZATION SECTION 00570016
61: C 00580016
62: C INITIALIZE CONSTANTS 00590016
63: C ************** 00600016
64: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00610016
65: I01 = 5 00620016
66: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00630016
67: I02 = 6 00640016
68: C SYSTEM ENVIRONMENT SECTION 00650016
69: C 00660016
70: I01 = 5 00670016
71: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00680016
72: C (UNIT NUMBER FOR CARD READER). 00690016
73: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00700016
74: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00710016
75: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00720016
76: C 00730016
77: I02 = 6 00740016
78: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00750016
79: C (UNIT NUMBER FOR PRINTER). 00760016
80: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00770016
81: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00780016
82: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00790016
83: C 00800016
84: IVPASS=0 00810016
85: IVFAIL=0 00820016
86: IVDELE=0 00830016
87: ICZERO=0 00840016
88: C 00850016
89: C WRITE PAGE HEADERS 00860016
90: WRITE (I02,90000) 00870016
91: WRITE (I02,90001) 00880016
92: WRITE (I02,90002) 00890016
93: WRITE (I02, 90002) 00900016
94: WRITE (I02,90003) 00910016
95: WRITE (I02,90002) 00920016
96: WRITE (I02,90004) 00930016
97: WRITE (I02,90002) 00940016
98: WRITE (I02,90011) 00950016
99: WRITE (I02,90002) 00960016
100: WRITE (I02,90002) 00970016
101: WRITE (I02,90005) 00980016
102: WRITE (I02,90006) 00990016
103: WRITE (I02,90002) 01000016
104: IVTNUM = 139 01010016
105: C TEST 139 - THIS TESTS THE LOGICAL CONSTANT .TRUE. 01020016
106: C 01030016
107: IF (ICZERO) 31390, 1390, 31390 01040016
108: 1390 CONTINUE 01050016
109: IVON01=0 01060016
110: IF ( .TRUE. ) IVON01 = 1 01070016
111: GO TO 41390 01080016
112: 31390 IVDELE = IVDELE + 1 01090016
113: WRITE (I02,80003) IVTNUM 01100016
114: IF (ICZERO) 41390, 1401, 41390 01110016
115: 41390 IF ( IVON01 - 1 ) 21390, 11390, 21390 01120016
116: 11390 IVPASS = IVPASS + 1 01130016
117: WRITE (I02,80001) IVTNUM 01140016
118: GO TO 1401 01150016
119: 21390 IVFAIL = IVFAIL + 1 01160016
120: IVCOMP=IVON01 01170016
121: IVCORR=1 01180016
122: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01190016
123: 1401 CONTINUE 01200016
124: IVTNUM = 140 01210016
125: C TEST 140 - THIS TESTS THE LOGICAL CONSTANT .FALSE. 01220016
126: C 01230016
127: IF (ICZERO) 31400, 1400, 31400 01240016
128: 1400 CONTINUE 01250016
129: IVON01=1 01260016
130: IF ( .FALSE. ) IVON01=0 01270016
131: GO TO 41400 01280016
132: 31400 IVDELE = IVDELE + 1 01290016
133: WRITE (I02,80003) IVTNUM 01300016
134: IF (ICZERO) 41400, 1411, 41400 01310016
135: 41400 IF ( IVON01 - 1 ) 21400, 11400, 21400 01320016
136: 11400 IVPASS = IVPASS + 1 01330016
137: WRITE (I02,80001) IVTNUM 01340016
138: GO TO 1411 01350016
139: 21400 IVFAIL = IVFAIL + 1 01360016
140: IVCOMP=IVON01 01370016
141: IVCORR=1 01380016
142: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01390016
143: 1411 CONTINUE 01400016
144: IVTNUM = 141 01410016
145: C TEST 141 - THIS TESTS THE LOGICAL VARIABLE = .TRUE. 01420016
146: C 01430016
147: IF (ICZERO) 31410, 1410, 31410 01440016
148: 1410 CONTINUE 01450016
149: LCTNT1=.TRUE. 01460016
150: IVON01 = 0 01470016
151: IF ( LCTNT1 ) IVON01 = 1 01480016
152: GO TO 41410 01490016
153: 31410 IVDELE = IVDELE + 1 01500016
154: WRITE (I02,80003) IVTNUM 01510016
155: IF (ICZERO) 41410, 1421, 41410 01520016
156: 41410 IF ( IVON01 - 1 ) 21410, 11410, 21410 01530016
157: 11410 IVPASS = IVPASS + 1 01540016
158: WRITE (I02,80001) IVTNUM 01550016
159: GO TO 1421 01560016
160: 21410 IVFAIL = IVFAIL + 1 01570016
161: IVCOMP=IVON01 01580016
162: IVCORR=1 01590016
163: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01600016
164: 1421 CONTINUE 01610016
165: IVTNUM = 142 01620016
166: C TEST 142 - THIS TESTS THE LOGICAL VARIABLE = .FALSE. 01630016
167: C 01640016
168: IF (ICZERO) 31420, 1420, 31420 01650016
169: 1420 CONTINUE 01660016
170: IVON01=1 01670016
171: LCTNF1=.FALSE. 01680016
172: IF ( LCTNF1 ) IVON01=0 01690016
173: GO TO 41420 01700016
174: 31420 IVDELE = IVDELE + 1 01710016
175: WRITE (I02,80003) IVTNUM 01720016
176: IF (ICZERO) 41420, 1431, 41420 01730016
177: 41420 IF ( IVON01 - 1 ) 21420, 11420, 21420 01740016
178: 11420 IVPASS = IVPASS + 1 01750016
179: WRITE (I02,80001) IVTNUM 01760016
180: GO TO 1431 01770016
181: 21420 IVFAIL = IVFAIL + 1 01780016
182: IVCOMP=IVON01 01790016
183: IVCORR=1 01800016
184: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01810016
185: 1431 CONTINUE 01820016
186: IVTNUM = 143 01830016
187: C TEST 143 - THIS TESTS CHANGING THE VALUE OF A LOGICAL VARIABLE 01840016
188: C FROM .TRUE. TO .FALSE. 01850016
189: C 01860016
190: IF (ICZERO) 31430, 1430, 31430 01870016
191: 1430 CONTINUE 01880016
192: LVTNTF=.TRUE. 01890016
193: LVTNTF=.FALSE. 01900016
194: IVON01 = 1 01910016
195: IF ( LVTNTF ) IVON01 = 0 01920016
196: GO TO 41430 01930016
197: 31430 IVDELE = IVDELE + 1 01940016
198: WRITE (I02,80003) IVTNUM 01950016
199: IF (ICZERO) 41430, 1441, 41430 01960016
200: 41430 IF ( IVON01 - 1 ) 21430, 11430, 21430 01970016
201: 11430 IVPASS = IVPASS + 1 01980016
202: WRITE (I02,80001) IVTNUM 01990016
203: GO TO 1441 02000016
204: 21430 IVFAIL = IVFAIL + 1 02010016
205: IVCOMP=IVON01 02020016
206: IVCORR=1 02030016
207: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02040016
208: 1441 CONTINUE 02050016
209: IVTNUM = 144 02060016
210: C TEST 144 - THIS TESTS CHANGING THE VALUE OF A LOGICAL VARIABLE 02070016
211: C FROM .FALSE. TO .TRUE. 02080016
212: C 02090016
213: IF (ICZERO) 31440, 1440, 31440 02100016
214: 1440 CONTINUE 02110016
215: LVTNFT=.FALSE. 02120016
216: LVTNFT=.TRUE. 02130016
217: IVON01=0 02140016
218: IF ( LVTNFT ) IVON01=1 02150016
219: GO TO 41440 02160016
220: 31440 IVDELE = IVDELE + 1 02170016
221: WRITE (I02,80003) IVTNUM 02180016
222: IF (ICZERO) 41440, 1451, 41440 02190016
223: 41440 IF ( IVON01 - 1 ) 21440, 11440, 21440 02200016
224: 11440 IVPASS = IVPASS + 1 02210016
225: WRITE (I02,80001) IVTNUM 02220016
226: GO TO 1451 02230016
227: 21440 IVFAIL = IVFAIL + 1 02240016
228: IVCOMP=IVON01 02250016
229: IVCORR=1 02260016
230: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02270016
231: 1451 CONTINUE 02280016
232: IVTNUM = 145 02290016
233: C TEST 145 - TEST OF A LOGICAL ARRAY ELEMENT SET TO .TRUE. 02300016
234: C 02310016
235: IF (ICZERO) 31450, 1450, 31450 02320016
236: 1450 CONTINUE 02330016
237: LATN1A(1)=.TRUE. 02340016
238: IVON01=0 02350016
239: IF ( LATN1A(1) ) IVON01=1 02360016
240: GO TO 41450 02370016
241: 31450 IVDELE = IVDELE + 1 02380016
242: WRITE (I02,80003) IVTNUM 02390016
243: IF (ICZERO) 41450, 1461, 41450 02400016
244: 41450 IF ( IVON01 - 1 ) 21450, 11450, 21450 02410016
245: 11450 IVPASS = IVPASS + 1 02420016
246: WRITE (I02,80001) IVTNUM 02430016
247: GO TO 1461 02440016
248: 21450 IVFAIL = IVFAIL + 1 02450016
249: IVCOMP=IVON01 02460016
250: IVCORR=1 02470016
251: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02480016
252: 1461 CONTINUE 02490016
253: IVTNUM = 146 02500016
254: C TEST 146 - TEST OF A LOGICAL ARRAY ELEMENT SET TO .FALSE. 02510016
255: C 02520016
256: IF (ICZERO) 31460, 1460, 31460 02530016
257: 1460 CONTINUE 02540016
258: LATN1A(2) = .FALSE. 02550016
259: IVON01=1 02560016
260: IF ( LATN1A(2) ) IVON01=0 02570016
261: GO TO 41460 02580016
262: 31460 IVDELE = IVDELE + 1 02590016
263: WRITE (I02,80003) IVTNUM 02600016
264: IF (ICZERO) 41460, 1471, 41460 02610016
265: 41460 IF ( IVON01 - 1 ) 21460, 11460, 21460 02620016
266: 11460 IVPASS = IVPASS + 1 02630016
267: WRITE (I02,80001) IVTNUM 02640016
268: GO TO 1471 02650016
269: 21460 IVFAIL = IVFAIL + 1 02660016
270: IVCOMP=IVON01 02670016
271: IVCORR=1 02680016
272: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02690016
273: 1471 CONTINUE 02700016
274: IVTNUM = 147 02710016
275: C TEST 147 - TEST OF A LOGICAL ARRAY ELEMENT SET .TRUE. 02720016
276: C IN A DATA INITIALIZATION STATEMENT. 02730016
277: C 02740016
278: IF (ICZERO) 31470, 1470, 31470 02750016
279: 1470 CONTINUE 02760016
280: IVON01=0 02770016
281: IF ( LADN1D(1) ) IVON01=1 02780016
282: GO TO 41470 02790016
283: 31470 IVDELE = IVDELE + 1 02800016
284: WRITE (I02,80003) IVTNUM 02810016
285: IF (ICZERO) 41470, 1481, 41470 02820016
286: 41470 IF ( IVON01 - 1 ) 21470, 11470, 21470 02830016
287: 11470 IVPASS = IVPASS + 1 02840016
288: WRITE (I02,80001) IVTNUM 02850016
289: GO TO 1481 02860016
290: 21470 IVFAIL = IVFAIL + 1 02870016
291: IVCOMP=IVON01 02880016
292: IVCORR=1 02890016
293: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02900016
294: 1481 CONTINUE 02910016
295: IVTNUM = 148 02920016
296: C TEST 148 - TEST OF A LOGICAL ARRAY ELEMENT SET .FALSE. 02930016
297: C IN A DATA INITIALIZATION STATEMENT. 02940016
298: C 02950016
299: IF (ICZERO) 31480, 1480, 31480 02960016
300: 1480 CONTINUE 02970016
301: IVON01=1 02980016
302: IF ( LADN1D(2) ) IVON01=0 02990016
303: GO TO 41480 03000016
304: 31480 IVDELE = IVDELE + 1 03010016
305: WRITE (I02,80003) IVTNUM 03020016
306: IF (ICZERO) 41480, 1491, 41480 03030016
307: 41480 IF ( IVON01 - 1 ) 21480, 11480, 21480 03040016
308: 11480 IVPASS = IVPASS + 1 03050016
309: WRITE (I02,80001) IVTNUM 03060016
310: GO TO 1491 03070016
311: 21480 IVFAIL = IVFAIL + 1 03080016
312: IVCOMP=IVON01 03090016
313: IVCORR=1 03100016
314: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03110016
315: 1491 CONTINUE 03120016
316: IVTNUM = 149 03130016
317: C TEST 149 - LIKE TEST 145 EXCEPT THAT THE ARRAY DECLARATION WAS 03140016
318: C IN A DIMENSION STATEMENT RATHER THAN IN THE TYPE STATEMENT. 03150016
319: C 03160016
320: IF (ICZERO) 31490, 1490, 31490 03170016
321: 1490 CONTINUE 03180016
322: LADN1B(1)=.TRUE. 03190016
323: IVON01=0 03200016
324: IF ( LADN1B(1) ) IVON01=1 03210016
325: GO TO 41490 03220016
326: 31490 IVDELE = IVDELE + 1 03230016
327: WRITE (I02,80003) IVTNUM 03240016
328: IF (ICZERO) 41490, 1501, 41490 03250016
329: 41490 IF ( IVON01 - 1 ) 21490, 11490, 21490 03260016
330: 11490 IVPASS = IVPASS + 1 03270016
331: WRITE (I02,80001) IVTNUM 03280016
332: GO TO 1501 03290016
333: 21490 IVFAIL = IVFAIL + 1 03300016
334: IVCOMP=IVON01 03310016
335: IVCORR=1 03320016
336: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03330016
337: C 03340016
338: C FOR TESTS 150 THRU 156 THE TRUE PATH IS USED.. 03350016
339: C 03360016
340: 1501 CONTINUE 03370016
341: IVTNUM = 150 03380016
342: C TEST 150 - RELATIONAL EXPRESSION WITH INTEGER CONSTANTS .LT. 03390016
343: C 03400016
344: IF (ICZERO) 31500, 1500, 31500 03410016
345: 1500 CONTINUE 03420016
346: IVON01=0 03430016
347: IF ( 3 .LT. 76 ) IVON01=1 03440016
348: GO TO 41500 03450016
349: 31500 IVDELE = IVDELE + 1 03460016
350: WRITE (I02,80003) IVTNUM 03470016
351: IF (ICZERO) 41500, 1511, 41500 03480016
352: 41500 IF ( IVON01 - 1 ) 21500, 11500, 21500 03490016
353: 11500 IVPASS = IVPASS + 1 03500016
354: WRITE (I02,80001) IVTNUM 03510016
355: GO TO 1511 03520016
356: 21500 IVFAIL = IVFAIL + 1 03530016
357: IVCOMP=IVON01 03540016
358: IVCORR=1 03550016
359: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03560016
360: 1511 CONTINUE 03570016
361: IVTNUM = 151 03580016
362: C TEST 151 - TEST WITH RELATIONAL EXPRESSION .LE. 03590016
363: C 03600016
364: IF (ICZERO) 31510, 1510, 31510 03610016
365: 1510 CONTINUE 03620016
366: IVON01=0 03630016
367: IF ( 587 .LE. 587 ) IVON01=1 03640016
368: GO TO 41510 03650016
369: 31510 IVDELE = IVDELE + 1 03660016
370: WRITE (I02,80003) IVTNUM 03670016
371: IF (ICZERO) 41510, 1521, 41510 03680016
372: 41510 IF ( IVON01 - 1 ) 21510, 11510, 21510 03690016
373: 11510 IVPASS = IVPASS + 1 03700016
374: WRITE (I02,80001) IVTNUM 03710016
375: GO TO 1521 03720016
376: 21510 IVFAIL = IVFAIL + 1 03730016
377: IVCOMP=IVON01 03740016
378: IVCORR=1 03750016
379: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03760016
380: 1521 CONTINUE 03770016
381: IVTNUM = 152 03780016
382: C TEST 152 - TEST OF RELATIONAL EXPRESSION WITH INTEGER CONSTANTS 03790016
383: C RELATIONAL OPERATOR IS .EQ. 03800016
384: C 03810016
385: IF (ICZERO) 31520, 1520, 31520 03820016
386: 1520 CONTINUE 03830016
387: IVON01=0 03840016
388: IF ( 9999 .EQ. 9999 ) IVON01=1 03850016
389: GO TO 41520 03860016
390: 31520 IVDELE = IVDELE + 1 03870016
391: WRITE (I02,80003) IVTNUM 03880016
392: IF (ICZERO) 41520, 1531, 41520 03890016
393: 41520 IF ( IVON01 - 1 ) 21520, 11520, 21520 03900016
394: 11520 IVPASS = IVPASS + 1 03910016
395: WRITE (I02,80001) IVTNUM 03920016
396: GO TO 1531 03930016
397: 21520 IVFAIL = IVFAIL + 1 03940016
398: IVCOMP=IVON01 03950016
399: IVCORR=1 03960016
400: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03970016
401: 1531 CONTINUE 03980016
402: IVTNUM = 153 03990016
403: C TEST 153 - TEST OF RELATIONAL EXPRESSION WITH INTEGER CONSTANTS 04000016
404: C RELATIONAL OPERATOR IS .NE. 04010016
405: C 04020016
406: IF (ICZERO) 31530, 1530, 31530 04030016
407: 1530 CONTINUE 04040016
408: IVON01=0 04050016
409: IF ( 0 .NE. 32767 ) IVON01=1 04060016
410: GO TO 41530 04070016
411: 31530 IVDELE = IVDELE + 1 04080016
412: WRITE (I02,80003) IVTNUM 04090016
413: IF (ICZERO) 41530, 1541, 41530 04100016
414: 41530 IF ( IVON01 - 1 ) 21530, 11530, 21530 04110016
415: 11530 IVPASS = IVPASS + 1 04120016
416: WRITE (I02,80001) IVTNUM 04130016
417: GO TO 1541 04140016
418: 21530 IVFAIL = IVFAIL + 1 04150016
419: IVCOMP=IVON01 04160016
420: IVCORR=1 04170016
421: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04180016
422: 1541 CONTINUE 04190016
423: IVTNUM = 154 04200016
424: C TEST 154 - TEST OF RELATIONAL EXPRESSION WITH INTEGER CONSTANTS 04210016
425: C RELATIONAL OPERATOR IS .GT. 04220016
426: C 04230016
427: IF (ICZERO) 31540, 1540, 31540 04240016
428: 1540 CONTINUE 04250016
429: IVON01=0 04260016
430: IF ( 32767 .GT. 76 ) IVON01=1 04270016
431: GO TO 41540 04280016
432: 31540 IVDELE = IVDELE + 1 04290016
433: WRITE (I02,80003) IVTNUM 04300016
434: IF (ICZERO) 41540, 1551, 41540 04310016
435: 41540 IF ( IVON01 - 1 ) 21540, 11540, 21540 04320016
436: 11540 IVPASS = IVPASS + 1 04330016
437: WRITE (I02,80001) IVTNUM 04340016
438: GO TO 1551 04350016
439: 21540 IVFAIL = IVFAIL + 1 04360016
440: IVCOMP=IVON01 04370016
441: IVCORR=1 04380016
442: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04390016
443: 1551 CONTINUE 04400016
444: IVTNUM = 155 04410016
445: C TEST 155 - TEST OF RELATIONAL EXPRESSION WITH INTEGER CONSTANTS 04420016
446: C RELATIONAL OPERATOR IS .GE. 04430016
447: C 04440016
448: IF (ICZERO) 31550, 1550, 31550 04450016
449: 1550 CONTINUE 04460016
450: IVON01=0 04470016
451: IF ( 32767 .GE. 76 ) IVON01=1 04480016
452: GO TO 41550 04490016
453: 31550 IVDELE = IVDELE + 1 04500016
454: WRITE (I02,80003) IVTNUM 04510016
455: IF (ICZERO) 41550, 1561, 41550 04520016
456: 41550 IF ( IVON01 - 1 ) 21550, 11550, 21550 04530016
457: 11550 IVPASS = IVPASS + 1 04540016
458: WRITE (I02,80001) IVTNUM 04550016
459: GO TO 1561 04560016
460: 21550 IVFAIL = IVFAIL + 1 04570016
461: IVCOMP=IVON01 04580016
462: IVCORR=1 04590016
463: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04600016
464: 1561 CONTINUE 04610016
465: IVTNUM = 156 04620016
466: C TEST 156 - TEST OF RELATIONAL EXPRESSION WITH INTEGER CONSTANTS 04630016
467: C RELATIONAL OPERATOR IS .GE. 04640016
468: C 04650016
469: IF (ICZERO) 31560, 1560, 31560 04660016
470: 1560 CONTINUE 04670016
471: IVON01=0 04680016
472: IF ( 32767 .GE. 32767 ) IVON01=1 04690016
473: GO TO 41560 04700016
474: 31560 IVDELE = IVDELE + 1 04710016
475: WRITE (I02,80003) IVTNUM 04720016
476: IF (ICZERO) 41560, 1571, 41560 04730016
477: 41560 IF ( IVON01 - 1 ) 21560, 11560, 21560 04740016
478: 11560 IVPASS = IVPASS + 1 04750016
479: WRITE (I02,80001) IVTNUM 04760016
480: GO TO 1571 04770016
481: 21560 IVFAIL = IVFAIL + 1 04780016
482: IVCOMP=IVON01 04790016
483: IVCORR=1 04800016
484: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04810016
485: C 04820016
486: C FOR TESTS 157 THRU 162 THE FALSE PATH IS USED.. 04830016
487: C 04840016
488: 1571 CONTINUE 04850016
489: IVTNUM = 157 04860016
490: C TEST 157 - RELATIONAL EXPRESSION INTEGER CONSTANTS FALSE PATH 04870016
491: C RELATIONAL OPERATOR IS .LT. 04880016
492: C 04890016
493: IF (ICZERO) 31570, 1570, 31570 04900016
494: 1570 CONTINUE 04910016
495: IVON01=1 04920016
496: IF ( 76 .LT. 3 ) IVON01=0 04930016
497: GO TO 41570 04940016
498: 31570 IVDELE = IVDELE + 1 04950016
499: WRITE (I02,80003) IVTNUM 04960016
500: IF (ICZERO) 41570, 1581, 41570 04970016
501: 41570 IF ( IVON01 - 1 ) 21570, 11570, 21570 04980016
502: 11570 IVPASS = IVPASS + 1 04990016
503: WRITE (I02,80001) IVTNUM 05000016
504: GO TO 1581 05010016
505: 21570 IVFAIL = IVFAIL + 1 05020016
506: IVCOMP=IVON01 05030016
507: IVCORR=1 05040016
508: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05050016
509: 1581 CONTINUE 05060016
510: IVTNUM = 158 05070016
511: C TEST 158 - RELATIONAL EXPRESSION INTEGER CONSTANTS FALSE PATH 05080016
512: C RELATIONAL OPERATOR IS .LE. 05090016
513: C 05100016
514: IF (ICZERO) 31580, 1580, 31580 05110016
515: 1580 CONTINUE 05120016
516: IVON01=1 05130016
517: IF ( 76 .LE. 3 ) IVON01=0 05140016
518: GO TO 41580 05150016
519: 31580 IVDELE = IVDELE + 1 05160016
520: WRITE (I02,80003) IVTNUM 05170016
521: IF (ICZERO) 41580, 1591, 41580 05180016
522: 41580 IF ( IVON01 - 1 ) 21580, 11580, 21580 05190016
523: 11580 IVPASS = IVPASS + 1 05200016
524: WRITE (I02,80001) IVTNUM 05210016
525: GO TO 1591 05220016
526: 21580 IVFAIL = IVFAIL + 1 05230016
527: IVCOMP=IVON01 05240016
528: IVCORR=1 05250016
529: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05260016
530: 1591 CONTINUE 05270016
531: IVTNUM = 159 05280016
532: C TEST 159 - RELATIONAL EXPRESSION INTEGER CONSTANTS FALSE PATH 05290016
533: C RELATIONAL OPERATOR IS .EQ. 05300016
534: C 05310016
535: IF (ICZERO) 31590, 1590, 31590 05320016
536: 1590 CONTINUE 05330016
537: IVON01=1 05340016
538: IF ( 9999 .EQ. 587 ) IVON01=0 05350016
539: GO TO 41590 05360016
540: 31590 IVDELE = IVDELE + 1 05370016
541: WRITE (I02,80003) IVTNUM 05380016
542: IF (ICZERO) 41590, 1601, 41590 05390016
543: 41590 IF ( IVON01 - 1 ) 21590, 11590, 21590 05400016
544: 11590 IVPASS = IVPASS + 1 05410016
545: WRITE (I02,80001) IVTNUM 05420016
546: GO TO 1601 05430016
547: 21590 IVFAIL = IVFAIL + 1 05440016
548: IVCOMP=IVON01 05450016
549: IVCORR=1 05460016
550: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05470016
551: 1601 CONTINUE 05480016
552: IVTNUM = 160 05490016
553: C TEST 160 - RELATIONAL EXPRESSION INTEGER CONSTANTS FALSE PATH 05500016
554: C RELATIONAL OPERATOR IS .NE. 05510016
555: C 05520016
556: IF (ICZERO) 31600, 1600, 31600 05530016
557: 1600 CONTINUE 05540016
558: IVON01=1 05550016
559: IF ( 3 .NE. 3 ) IVON01=0 05560016
560: GO TO 41600 05570016
561: 31600 IVDELE = IVDELE + 1 05580016
562: WRITE (I02,80003) IVTNUM 05590016
563: IF (ICZERO) 41600, 1611, 41600 05600016
564: 41600 IF ( IVON01 - 1 ) 21600, 11600, 21600 05610016
565: 11600 IVPASS = IVPASS + 1 05620016
566: WRITE (I02,80001) IVTNUM 05630016
567: GO TO 1611 05640016
568: 21600 IVFAIL = IVFAIL + 1 05650016
569: IVCOMP=IVON01 05660016
570: IVCORR=1 05670016
571: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05680016
572: 1611 CONTINUE 05690016
573: IVTNUM=161 05700016
574: C 05710016
575: C TEST 161 - RELATIONAL EXPRESSION INTEGER CONSTANTS FALSE PATH 05720016
576: C RELATIONAL OPERATOR IS .GT. 05730016
577: C 05740016
578: IF ( ICZERO ) 31610, 1610, 31610 05750016
579: 1610 CONTINUE 05760016
580: IVON01=1 05770016
581: IF ( 76 .GT. 32767 ) IVON01=0 05780016
582: GO TO 41610 05790016
583: 31610 IVDELE = IVDELE + 1 05800016
584: WRITE (I02,80003) IVTNUM 05810016
585: IF ( ICZERO ) 41610, 1621, 41610 05820016
586: 41610 IF ( IVON01 - 1 ) 21610, 11610, 21610 05830016
587: 11610 IVPASS = IVPASS+ 1 05840016
588: WRITE (I02,80001) IVTNUM 05850016
589: GO TO 1621 05860016
590: 21610 IVFAIL = IVFAIL + 1 05870016
591: IVCOMP=IVON01 05880016
592: IVCORR=1 05890016
593: WRITE (I02,80004) IVTNUM, IVCOMP, IVCORR 05900016
594: 1621 CONTINUE 05910016
595: IVTNUM = 162 05920016
596: C 05930016
597: C 05940016
598: C **** TEST 162 **** 05950016
599: C 05960016
600: C TEST 162 - RELATIONAL EXPRESSION INTEGER CONSTANTS FALSE PATH 05970016
601: C RELATIONAL OPERATOR IS .GE. 05980016
602: C 05990016
603: IF (ICZERO) 31620, 1620, 31620 06000016
604: 1620 CONTINUE 06010016
605: IVON01=1 06020016
606: IF ( 76 .GE. 32767 ) IVON01 = 0 06030016
607: GO TO 41620 06040016
608: 31620 IVDELE = IVDELE + 1 06050016
609: WRITE (I02,80003) IVTNUM 06060016
610: IF (ICZERO) 41620, 1631, 41620 06070016
611: 41620 IF ( IVON01 - 1 ) 21620, 11620, 21620 06080016
612: 11620 IVPASS = IVPASS + 1 06090016
613: WRITE (I02,80001) IVTNUM 06100016
614: GO TO 1631 06110016
615: 21620 IVFAIL = IVFAIL + 1 06120016
616: IVCOMP=IVON01 06130016
617: IVCORR=1 06140016
618: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06150016
619: 1631 CONTINUE 06160016
620: IVTNUM = 163 06170016
621: C 06180016
622: C **** TEST 163 **** 06190016
623: C TEST 163 - RELATIONAL EXPRESSION WITH INTEGER VARIABLE 06200016
624: C REFERENCES (IC) (RO) (IVR). TRUE PATH. USE .LT. 06210016
625: C 06220016
626: C 06230016
627: IF (ICZERO) 31630, 1630, 31630 06240016
628: 1630 CONTINUE 06250016
629: IVON01 = 76 06260016
630: IVON02 = 0 06270016
631: IF ( 3 .LT. IVON01 ) IVON02 = 1 06280016
632: GO TO 41630 06290016
633: 31630 IVDELE = IVDELE + 1 06300016
634: WRITE (I02,80003) IVTNUM 06310016
635: IF (ICZERO) 41630, 1641, 41630 06320016
636: 41630 IF ( IVON02 - 1 ) 21630, 11630, 21630 06330016
637: 11630 IVPASS = IVPASS + 1 06340016
638: WRITE (I02,80001) IVTNUM 06350016
639: GO TO 1641 06360016
640: 21630 IVFAIL = IVFAIL + 1 06370016
641: IVCOMP = IVON02 06380016
642: IVCORR = 1 06390016
643: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06400016
644: 1641 CONTINUE 06410016
645: IVTNUM = 164 06420016
646: C 06430016
647: C **** TEST 164 **** 06440016
648: C TEST 164 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCES. 06450016
649: C TRUE PATH. .LE. 06460016
650: C 06470016
651: C 06480016
652: IF (ICZERO) 31640, 1640, 31640 06490016
653: 1640 CONTINUE 06500016
654: IVON01 = 587 06510016
655: IVON02 = 0 06520016
656: IF ( 587 .LE. IVON01 ) IVON02 = 1 06530016
657: GO TO 41640 06540016
658: 31640 IVDELE = IVDELE + 1 06550016
659: WRITE (I02,80003) IVTNUM 06560016
660: IF (ICZERO) 41640, 1651, 41640 06570016
661: 41640 IF ( IVON02 - 1 ) 21640, 11640, 21640 06580016
662: 11640 IVPASS = IVPASS + 1 06590016
663: WRITE (I02,80001) IVTNUM 06600016
664: GO TO 1651 06610016
665: 21640 IVFAIL = IVFAIL + 1 06620016
666: IVCOMP = IVON02 06630016
667: IVCORR = 1 06640016
668: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06650016
669: 1651 CONTINUE 06660016
670: IVTNUM = 165 06670016
671: C 06680016
672: C **** TEST 165 **** 06690016
673: C TEST 165 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 06700016
674: C TRUE PATH. .EQ. 06710016
675: C 06720016
676: C 06730016
677: IF (ICZERO) 31650, 1650, 31650 06740016
678: 1650 CONTINUE 06750016
679: IVON01 = 9999 06760016
680: IVON02 = 0 06770016
681: IF ( 9999 .EQ. IVON01 ) IVON02 = 1 06780016
682: GO TO 41650 06790016
683: 31650 IVDELE = IVDELE + 1 06800016
684: WRITE (I02,80003) IVTNUM 06810016
685: IF (ICZERO) 41650, 1661, 41650 06820016
686: 41650 IF ( IVON02 - 1 ) 21650, 11650, 21650 06830016
687: 11650 IVPASS = IVPASS + 1 06840016
688: WRITE (I02,80001) IVTNUM 06850016
689: GO TO 1661 06860016
690: 21650 IVFAIL = IVFAIL + 1 06870016
691: IVCOMP = IVON02 06880016
692: IVCORR = 1 06890016
693: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06900016
694: 1661 CONTINUE 06910016
695: IVTNUM = 166 06920016
696: C 06930016
697: C **** TEST 166 **** 06940016
698: C TEST 166 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 06950016
699: C TRUE PATH. .NE. 06960016
700: C 06970016
701: C 06980016
702: IF (ICZERO) 31660, 1660, 31660 06990016
703: 1660 CONTINUE 07000016
704: IVON01 = 32767 07010016
705: IVON02 = 0 07020016
706: IF ( 0 .NE. IVON01 ) IVON02 = 1 07030016
707: GO TO 41660 07040016
708: 31660 IVDELE = IVDELE + 1 07050016
709: WRITE (I02,80003) IVTNUM 07060016
710: IF (ICZERO) 41660, 1671, 41660 07070016
711: 41660 IF ( IVON02 - 1 ) 21660, 11660, 21660 07080016
712: 11660 IVPASS = IVPASS + 1 07090016
713: WRITE (I02,80001) IVTNUM 07100016
714: GO TO 1671 07110016
715: 21660 IVFAIL = IVFAIL + 1 07120016
716: IVCOMP = IVON02 07130016
717: IVCORR = 1 07140016
718: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07150016
719: 1671 CONTINUE 07160016
720: IVTNUM = 167 07170016
721: C 07180016
722: C **** TEST 167 **** 07190016
723: C TEST 167 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 07200016
724: C TRUE PATH. .GT. 07210016
725: C 07220016
726: C 07230016
727: IF (ICZERO) 31670, 1670, 31670 07240016
728: 1670 CONTINUE 07250016
729: IVON01 = 76 07260016
730: IVON02 = 0 07270016
731: IF ( 32767 .GT. IVON01 ) IVON02 = 1 07280016
732: GO TO 41670 07290016
733: 31670 IVDELE = IVDELE + 1 07300016
734: WRITE (I02,80003) IVTNUM 07310016
735: IF (ICZERO) 41670, 1681, 41670 07320016
736: 41670 IF ( IVON02 - 1 ) 21670, 11670, 21670 07330016
737: 11670 IVPASS = IVPASS + 1 07340016
738: WRITE (I02,80001) IVTNUM 07350016
739: GO TO 1681 07360016
740: 21670 IVFAIL = IVFAIL + 1 07370016
741: IVCOMP = IVON02 07380016
742: IVCORR = 1 07390016
743: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07400016
744: 1681 CONTINUE 07410016
745: IVTNUM = 168 07420016
746: C 07430016
747: C **** TEST 168 **** 07440016
748: C TEST 168 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 07450016
749: C TRUE PATH. .GE. 07460016
750: C 07470016
751: C 07480016
752: IF (ICZERO) 31680, 1680, 31680 07490016
753: 1680 CONTINUE 07500016
754: IVON01 = 76 07510016
755: IVON02 = 0 07520016
756: IF ( 32767 .GE. IVON01 ) IVON02 = 1 07530016
757: GO TO 41680 07540016
758: 31680 IVDELE = IVDELE + 1 07550016
759: WRITE (I02,80003) IVTNUM 07560016
760: IF (ICZERO) 41680, 1691, 41680 07570016
761: 41680 IF ( IVON02 - 1 ) 21680, 11680, 21680 07580016
762: 11680 IVPASS = IVPASS + 1 07590016
763: WRITE (I02,80001) IVTNUM 07600016
764: GO TO 1691 07610016
765: 21680 IVFAIL = IVFAIL + 1 07620016
766: IVCOMP = IVON02 07630016
767: IVCORR = 1 07640016
768: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07650016
769: 1691 CONTINUE 07660016
770: IVTNUM = 169 07670016
771: C 07680016
772: C **** TEST 169 **** 07690016
773: C TEST 169 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 07700016
774: C TRUE PATH. .EQ. 07710016
775: C 07720016
776: C 07730016
777: IF (ICZERO) 31690, 1690, 31690 07740016
778: 1690 CONTINUE 07750016
779: IVON01 = 32767 07760016
780: IVON02 = 0 07770016
781: IF ( 32767 .EQ. IVON01 ) IVON02 = 1 07780016
782: GO TO 41690 07790016
783: 31690 IVDELE = IVDELE + 1 07800016
784: WRITE (I02,80003) IVTNUM 07810016
785: IF (ICZERO) 41690, 1701, 41690 07820016
786: 41690 IF ( IVON02 - 1 ) 21690, 11690, 21690 07830016
787: 11690 IVPASS = IVPASS + 1 07840016
788: WRITE (I02,80001) IVTNUM 07850016
789: GO TO 1701 07860016
790: 21690 IVFAIL = IVFAIL + 1 07870016
791: IVCOMP = IVON02 07880016
792: IVCORR = 1 07890016
793: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07900016
794: 1701 CONTINUE 07910016
795: C 07920016
796: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 07930016
797: 99999 CONTINUE 07940016
798: WRITE (I02,90002) 07950016
799: WRITE (I02,90006) 07960016
800: WRITE (I02,90002) 07970016
801: WRITE (I02,90002) 07980016
802: WRITE (I02,90007) 07990016
803: WRITE (I02,90002) 08000016
804: WRITE (I02,90008) IVFAIL 08010016
805: WRITE (I02,90009) IVPASS 08020016
806: WRITE (I02,90010) IVDELE 08030016
807: C 08040016
808: C 08050016
809: C TERMINATE ROUTINE EXECUTION 08060016
810: STOP 08070016
811: C 08080016
812: C FORMAT STATEMENTS FOR PAGE HEADERS 08090016
813: 90000 FORMAT (1H1) 08100016
814: 90002 FORMAT (1H ) 08110016
815: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 08120016
816: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 08130016
817: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 08140016
818: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 08150016
819: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 08160016
820: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 08170016
821: C 08180016
822: C FORMAT STATEMENTS FOR RUN SUMMARIES 08190016
823: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 08200016
824: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 08210016
825: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 08220016
826: C 08230016
827: C FORMAT STATEMENTS FOR TEST RESULTS 08240016
828: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 08250016
829: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 08260016
830: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 08270016
831: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 08280016
832: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 08290016
833: C 08300016
834: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM016) 08310016
835: END 08320016
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.