|
|
1.1 root 1: C 00010017
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. 00020017
6: C 00030017
7: C FM017 00040017
8: C 00050017
9: C THIS ROUTINE CONTINUES TESTS OF THE FORTRAN 00060017
10: C LOGICAL IF STATEMENT IN ALL OF THE VARIOUS FORMS. THE 00070017
11: C FOLLOWING LOGICAL OPERANDS ARE USED FOR THIS ROUTINE - LOGICAL 00080017
12: C CONSTANTS, LOGICAL VARIABLES, LOGICAL ARRAY ELEMENTS, AND 00090017
13: C ARITHMETIC EXPRESSIONS WITH VARIOUS RELATIONAL OPERATORS. BOTH 00100017
14: C THE TRUE AND FALSE BRANCHES ARE TESTED IN THE SERIES OF TESTS. 00110017
15: C 00120017
16: C REFERENCES 00130017
17: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00140017
18: C X3.9-1978 00150017
19: C 00160017
20: C SECTION 4.7.1, LOGICAL CONSTANT 00170017
21: C SECTION 6, EXPRESSIONS 00180017
22: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00190017
23: C SECTION 6.3, RELATIONAL EXPRESSIONS 00200017
24: C SECTION 6.4, LOGICAL EXPRESSIONS 00210017
25: C SECTION 6.6, EVALUATION OF EXPRESSIONS 00220017
26: C SECTION 10, ASSIGNMENT STATEMENTS 00230017
27: C SECTION 10.2, LOGICAL ASSIGNMENT STATEMENT 00240017
28: C SECTION 11.5, LOGICAL IF STATEMENT 00250017
29: C 00260017
30: DIMENSION IADN11(3) 00270017
31: LOGICAL LATN1A(2), LCTNT1, LCTNT2 00280017
32: C 00290017
33: C ********************************************************** 00300017
34: C 00310017
35: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00320017
36: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00330017
37: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00340017
38: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00350017
39: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00360017
40: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00370017
41: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00380017
42: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00390017
43: C OF EXECUTING THESE TESTS. 00400017
44: C 00410017
45: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00420017
46: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00430017
47: C 00440017
48: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00450017
49: C 00460017
50: C DEPARTMENT OF THE NAVY 00470017
51: C FEDERAL COBOL COMPILER TESTING SERVICE 00480017
52: C WASHINGTON, D.C. 20376 00490017
53: C 00500017
54: C ********************************************************** 00510017
55: C 00520017
56: C 00530017
57: C 00540017
58: C INITIALIZATION SECTION 00550017
59: C 00560017
60: C INITIALIZE CONSTANTS 00570017
61: C ************** 00580017
62: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00590017
63: I01 = 5 00600017
64: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00610017
65: I02 = 6 00620017
66: C SYSTEM ENVIRONMENT SECTION 00630017
67: C 00640017
68: I01 = 5 00650017
69: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00660017
70: C (UNIT NUMBER FOR CARD READER). 00670017
71: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00680017
72: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00690017
73: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00700017
74: C 00710017
75: I02 = 6 00720017
76: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00730017
77: C (UNIT NUMBER FOR PRINTER). 00740017
78: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00750017
79: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00760017
80: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00770017
81: C 00780017
82: IVPASS=0 00790017
83: IVFAIL=0 00800017
84: IVDELE=0 00810017
85: ICZERO=0 00820017
86: C 00830017
87: C WRITE PAGE HEADERS 00840017
88: WRITE (I02,90000) 00850017
89: WRITE (I02,90001) 00860017
90: WRITE (I02,90002) 00870017
91: WRITE (I02, 90002) 00880017
92: WRITE (I02,90003) 00890017
93: WRITE (I02,90002) 00900017
94: WRITE (I02,90004) 00910017
95: WRITE (I02,90002) 00920017
96: WRITE (I02,90011) 00930017
97: WRITE (I02,90002) 00940017
98: WRITE (I02,90002) 00950017
99: WRITE (I02,90005) 00960017
100: WRITE (I02,90006) 00970017
101: WRITE (I02,90002) 00980017
102: IVTNUM = 170 00990017
103: C 01000017
104: C **** TEST 170 **** 01010017
105: C TEST 170 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 01020017
106: C FALSE PATH. .LT. 01030017
107: C 01040017
108: C 01050017
109: IF (ICZERO) 31700, 1700, 31700 01060017
110: 1700 CONTINUE 01070017
111: IVON01 = 3 01080017
112: IVON02 = 1 01090017
113: IF ( 76 .LT. IVON01 ) IVON02 = 0 01100017
114: GO TO 41700 01110017
115: 31700 IVDELE = IVDELE + 1 01120017
116: WRITE (I02,80003) IVTNUM 01130017
117: IF (ICZERO) 41700, 1711, 41700 01140017
118: 41700 IF ( IVON02 - 1 ) 21700, 11700, 21700 01150017
119: 11700 IVPASS = IVPASS + 1 01160017
120: WRITE (I02,80001) IVTNUM 01170017
121: GO TO 1711 01180017
122: 21700 IVFAIL = IVFAIL + 1 01190017
123: IVCOMP = IVON02 01200017
124: IVCORR = 1 01210017
125: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01220017
126: 1711 CONTINUE 01230017
127: IVTNUM = 171 01240017
128: C 01250017
129: C **** TEST 171 **** 01260017
130: C TEST 171 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 01270017
131: C FALSE PATH. .LE. 01280017
132: C 01290017
133: C 01300017
134: IF (ICZERO) 31710, 1710, 31710 01310017
135: 1710 CONTINUE 01320017
136: IVON01 = 3 01330017
137: IVON02 = 1 01340017
138: IF ( 76 .LE. IVON01 ) IVON02 = 0 01350017
139: GO TO 41710 01360017
140: 31710 IVDELE = IVDELE + 1 01370017
141: WRITE (I02,80003) IVTNUM 01380017
142: IF (ICZERO) 41710, 1721, 41710 01390017
143: 41710 IF ( IVON02 - 1 ) 21710, 11710, 21710 01400017
144: 11710 IVPASS = IVPASS + 1 01410017
145: WRITE (I02,80001) IVTNUM 01420017
146: GO TO 1721 01430017
147: 21710 IVFAIL = IVFAIL + 1 01440017
148: IVCOMP = IVON02 01450017
149: IVCORR = 1 01460017
150: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01470017
151: 1721 CONTINUE 01480017
152: IVTNUM = 172 01490017
153: C 01500017
154: C **** TEST 172 **** 01510017
155: C TEST 172 - RELATIONAL EXPRESSIONAL. INTEGER VARIABLE REFERENCE.01520017
156: C FALSE PATH. .EQ. 01530017
157: C 01540017
158: C 01550017
159: IF (ICZERO) 31720, 1720, 31720 01560017
160: 1720 CONTINUE 01570017
161: IVON01 = 587 01580017
162: IVON02 = 1 01590017
163: IF ( 9999 .EQ. IVON01 ) IVON02 = 0 01600017
164: GO TO 41720 01610017
165: 31720 IVDELE = IVDELE + 1 01620017
166: WRITE (I02,80003) IVTNUM 01630017
167: IF (ICZERO) 41720, 1731, 41720 01640017
168: 41720 IF ( IVON02 - 1 ) 21720, 11720, 21720 01650017
169: 11720 IVPASS = IVPASS + 1 01660017
170: WRITE (I02,80001) IVTNUM 01670017
171: GO TO 1731 01680017
172: 21720 IVFAIL = IVFAIL + 1 01690017
173: IVCOMP = IVON02 01700017
174: IVCORR = 1 01710017
175: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01720017
176: 1731 CONTINUE 01730017
177: IVTNUM = 173 01740017
178: C 01750017
179: C **** TEST 173 **** 01760017
180: C TEST 173 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 01770017
181: C FALSE PATH. .NE. 01780017
182: C 01790017
183: C 01800017
184: IF (ICZERO) 31730, 1730, 31730 01810017
185: 1730 CONTINUE 01820017
186: IVON01 = 3 01830017
187: IVON02 = 1 01840017
188: IF ( 3 .NE. IVON01 ) IVON02 = 0 01850017
189: GO TO 41730 01860017
190: 31730 IVDELE = IVDELE + 1 01870017
191: WRITE (I02,80003) IVTNUM 01880017
192: IF (ICZERO) 41730, 1741, 41730 01890017
193: 41730 IF ( IVON02 - 1 ) 21730, 11730, 21730 01900017
194: 11730 IVPASS = IVPASS + 1 01910017
195: WRITE (I02,80001) IVTNUM 01920017
196: GO TO 1741 01930017
197: 21730 IVFAIL = IVFAIL + 1 01940017
198: IVCOMP = IVON02 01950017
199: IVCORR = 1 01960017
200: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01970017
201: 1741 CONTINUE 01980017
202: IVTNUM = 174 01990017
203: C 02000017
204: C **** TEST 174 **** 02010017
205: C TEST 174 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 02020017
206: C FALSE PATH. .GT. 02030017
207: C 02040017
208: C 02050017
209: IF (ICZERO) 31740, 1740, 31740 02060017
210: 1740 CONTINUE 02070017
211: IVON01 = 32767 02080017
212: IVON02 = 1 02090017
213: IF ( 76 .GT. IVON01 ) IVON02 = 0 02100017
214: GO TO 41740 02110017
215: 31740 IVDELE = IVDELE + 1 02120017
216: WRITE (I02,80003) IVTNUM 02130017
217: IF (ICZERO) 41740, 1751, 41740 02140017
218: 41740 IF ( IVON02 - 1 ) 21740, 11740, 21740 02150017
219: 11740 IVPASS = IVPASS + 1 02160017
220: WRITE (I02,80001) IVTNUM 02170017
221: GO TO 1751 02180017
222: 21740 IVFAIL = IVFAIL + 1 02190017
223: IVCOMP = IVON02 02200017
224: IVCORR = 1 02210017
225: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02220017
226: 1751 CONTINUE 02230017
227: IVTNUM = 175 02240017
228: C 02250017
229: C **** TEST 175 **** 02260017
230: C TEST 175 - RELATIONAL EXPRESSION. INTEGER VARIABLE REFERENCE. 02270017
231: C FALSE PATH. .GE. 02280017
232: C 02290017
233: C 02300017
234: IF (ICZERO) 31750, 1750, 31750 02310017
235: 1750 CONTINUE 02320017
236: IVON01 = 32767 02330017
237: IVON02 = 1 02340017
238: IF ( 76 .GE. IVON01 ) IVON02 = 0 02350017
239: GO TO 41750 02360017
240: 31750 IVDELE = IVDELE + 1 02370017
241: WRITE (I02,80003) IVTNUM 02380017
242: IF (ICZERO) 41750, 1761, 41750 02390017
243: 41750 IF ( IVON02 - 1 ) 21750, 11750, 21750 02400017
244: 11750 IVPASS = IVPASS + 1 02410017
245: WRITE (I02,80001) IVTNUM 02420017
246: GO TO 1761 02430017
247: 21750 IVFAIL = IVFAIL + 1 02440017
248: IVCOMP = IVON02 02450017
249: IVCORR = 1 02460017
250: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02470017
251: 1761 CONTINUE 02480017
252: IVTNUM = 176 02490017
253: C 02500017
254: C **** TEST 176 **** 02510017
255: C TEST 176 - RELATIONAL EXPRESSION. (IVR) (RO) (IC) 02520017
256: C INTEGER VARIABLE REFERENCE WITH INTEGER CONSTANT 02530017
257: C TRUE PATH. .LT. 02540017
258: C 02550017
259: C 02560017
260: IF (ICZERO) 31760, 1760, 31760 02570017
261: 1760 CONTINUE 02580017
262: IVON01 = 3 02590017
263: IVON02 = 0 02600017
264: IF ( IVON01 .LT. 76 ) IVON02 = 1 02610017
265: GO TO 41760 02620017
266: 31760 IVDELE = IVDELE + 1 02630017
267: WRITE (I02,80003) IVTNUM 02640017
268: IF (ICZERO) 41760, 1771, 41760 02650017
269: 41760 IF ( IVON02 - 1 ) 21760, 11760, 21760 02660017
270: 11760 IVPASS = IVPASS + 1 02670017
271: WRITE (I02,80001) IVTNUM 02680017
272: GO TO 1771 02690017
273: 21760 IVFAIL = IVFAIL + 1 02700017
274: IVCOMP = IVON02 02710017
275: IVCORR = 1 02720017
276: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02730017
277: 1771 CONTINUE 02740017
278: IVTNUM = 177 02750017
279: C 02760017
280: C **** TEST 177 **** 02770017
281: C TEST 177 - LIKE TEST 176. FALSE PATH. .EQ. 02780017
282: C 02790017
283: C 02800017
284: IF (ICZERO) 31770, 1770, 31770 02810017
285: 1770 CONTINUE 02820017
286: IVON01 = 587 02830017
287: IVON02 = 1 02840017
288: IF ( IVON01 .EQ. 9999 ) IVON02=0 02850017
289: GO TO 41770 02860017
290: 31770 IVDELE = IVDELE + 1 02870017
291: WRITE (I02,80003) IVTNUM 02880017
292: IF (ICZERO) 41770, 1781, 41770 02890017
293: 41770 IF ( IVON02 - 1 ) 21770, 11770, 21770 02900017
294: 11770 IVPASS = IVPASS + 1 02910017
295: WRITE (I02,80001) IVTNUM 02920017
296: GO TO 1781 02930017
297: 21770 IVFAIL = IVFAIL + 1 02940017
298: IVCOMP = IVON02 02950017
299: IVCORR = 1 02960017
300: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02970017
301: 1781 CONTINUE 02980017
302: IVTNUM = 178 02990017
303: C 03000017
304: C **** TEST 178 **** 03010017
305: C TEST 178 - LIKE TEST 176. TRUE PATH. .GE. 03020017
306: C 03030017
307: C 03040017
308: IF (ICZERO) 31780, 1780, 31780 03050017
309: 1780 CONTINUE 03060017
310: IVON01 = 32767 03070017
311: IVON02 = 0 03080017
312: IF ( IVON01 .GE. 32767 ) IVON02 = 1 03090017
313: GO TO 41780 03100017
314: 31780 IVDELE = IVDELE + 1 03110017
315: WRITE (I02,80003) IVTNUM 03120017
316: IF (ICZERO) 41780, 1791, 41780 03130017
317: 41780 IF ( IVON02 - 1 ) 21780, 11780, 21780 03140017
318: 11780 IVPASS = IVPASS + 1 03150017
319: WRITE (I02,80001) IVTNUM 03160017
320: GO TO 1791 03170017
321: 21780 IVFAIL = IVFAIL + 1 03180017
322: IVCOMP = IVON02 03190017
323: IVCORR = 1 03200017
324: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03210017
325: 1791 CONTINUE 03220017
326: IVTNUM = 179 03230017
327: C 03240017
328: C **** TEST 179 **** 03250017
329: C TEST 179 - RELATIONAL EXPRESSION. INTEGER ARRAY ELEMENT 03260017
330: C REFERENCE. (IC) (RO) (IAER) FALSE PATH. .LT. 03270017
331: C 03280017
332: C 03290017
333: IF (ICZERO) 31790, 1790, 31790 03300017
334: 1790 CONTINUE 03310017
335: IVON01 = 1 03320017
336: IADN11(1) = 3 03330017
337: IF ( 76 .LT. IADN11(1) ) IVON01 = 0 03340017
338: GO TO 41790 03350017
339: 31790 IVDELE = IVDELE + 1 03360017
340: WRITE (I02,80003) IVTNUM 03370017
341: IF (ICZERO) 41790, 1801, 41790 03380017
342: 41790 IF ( IVON01 - 1 ) 21790, 11790, 21790 03390017
343: 11790 IVPASS = IVPASS + 1 03400017
344: WRITE (I02,80001) IVTNUM 03410017
345: GO TO 1801 03420017
346: 21790 IVFAIL = IVFAIL + 1 03430017
347: IVCOMP = IVON01 03440017
348: IVCORR = 1 03450017
349: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03460017
350: 1801 CONTINUE 03470017
351: IVTNUM = 180 03480017
352: C 03490017
353: C **** TEST 180 **** 03500017
354: C TEST 180 - LIKE TEST 179. TRUE PATH. .LE. 03510017
355: C 03520017
356: C 03530017
357: IF (ICZERO) 31800, 1800, 31800 03540017
358: 1800 CONTINUE 03550017
359: IVON01 = 0 03560017
360: IADN11(2) = 587 03570017
361: IF ( 587 .LE. IADN11(2) ) IVON01 = 1 03580017
362: GO TO 41800 03590017
363: 31800 IVDELE = IVDELE + 1 03600017
364: WRITE (I02,80003) IVTNUM 03610017
365: IF (ICZERO) 41800, 1811, 41800 03620017
366: 41800 IF ( IVON01 - 1 ) 21800, 11800, 21800 03630017
367: 11800 IVPASS = IVPASS + 1 03640017
368: WRITE (I02,80001) IVTNUM 03650017
369: GO TO 1811 03660017
370: 21800 IVFAIL = IVFAIL + 1 03670017
371: IVCOMP = IVON01 03680017
372: IVCORR = 1 03690017
373: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03700017
374: 1811 CONTINUE 03710017
375: IVTNUM = 181 03720017
376: C 03730017
377: C **** TEST 181 **** 03740017
378: C TEST 181 - LIKE TEST 179. FALSE PATH. .GE. 03750017
379: C 03760017
380: C 03770017
381: IF (ICZERO) 31810, 1810, 31810 03780017
382: 1810 CONTINUE 03790017
383: IVON01 = 1 03800017
384: IADN11(3) = 32767 03810017
385: IF ( 76 .GE. IADN11(3) ) IVON01 = 0 03820017
386: GO TO 41810 03830017
387: 31810 IVDELE = IVDELE + 1 03840017
388: WRITE (I02,80003) IVTNUM 03850017
389: IF (ICZERO) 41810, 1821, 41810 03860017
390: 41810 IF ( IVON01 - 1 ) 21810, 11810, 21810 03870017
391: 11810 IVPASS = IVPASS + 1 03880017
392: WRITE (I02,80001) IVTNUM 03890017
393: GO TO 1821 03900017
394: 21810 IVFAIL = IVFAIL + 1 03910017
395: IVCOMP = IVON01 03920017
396: IVCORR = 1 03930017
397: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03940017
398: 1821 CONTINUE 03950017
399: IVTNUM = 182 03960017
400: C 03970017
401: C **** TEST 182 **** 03980017
402: C TEST 182 - RELATIONAL EXPRESSION (IAER) (RO) (IC). TRUE 03990017
403: C PATH. .EQ. 04000017
404: C 04010017
405: C 04020017
406: IF (ICZERO) 31820, 1820, 31820 04030017
407: 1820 CONTINUE 04040017
408: IVON01 = 0 04050017
409: IADN11(2) = 32767 04060017
410: IF ( IADN11(2) .EQ. 32767 ) IVON01 = 1 04070017
411: GO TO 41820 04080017
412: 31820 IVDELE = IVDELE + 1 04090017
413: WRITE (I02,80003) IVTNUM 04100017
414: IF (ICZERO) 41820, 1831, 41820 04110017
415: 41820 IF ( IVON01 - 1 ) 21820, 11820, 21820 04120017
416: 11820 IVPASS = IVPASS + 1 04130017
417: WRITE (I02,80001) IVTNUM 04140017
418: GO TO 1831 04150017
419: 21820 IVFAIL = IVFAIL + 1 04160017
420: IVCOMP = IVON01 04170017
421: IVCORR = 1 04180017
422: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04190017
423: 1831 CONTINUE 04200017
424: IVTNUM = 183 04210017
425: C 04220017
426: C **** TEST 183 **** 04230017
427: C TEST 183 - RELATIONAL EXPRESSION (IVR) (RO) (IAER) 04240017
428: C FALSE PATH. .NE. 04250017
429: C 04260017
430: C 04270017
431: IF (ICZERO) 31830, 1830, 31830 04280017
432: 1830 CONTINUE 04290017
433: IVON01 = 1 04300017
434: IVON02 = 587 04310017
435: IADN11(1) = 587 04320017
436: IF ( IVON02 .NE. IADN11(1) ) IVON01 = 0 04330017
437: GO TO 41830 04340017
438: 31830 IVDELE = IVDELE + 1 04350017
439: WRITE (I02,80003) IVTNUM 04360017
440: IF (ICZERO) 41830, 1841, 41830 04370017
441: 41830 IF ( IVON01 - 1 ) 21830, 11830, 21830 04380017
442: 11830 IVPASS = IVPASS + 1 04390017
443: WRITE (I02,80001) IVTNUM 04400017
444: GO TO 1841 04410017
445: 21830 IVFAIL = IVFAIL + 1 04420017
446: IVCOMP = IVON01 04430017
447: IVCORR = 1 04440017
448: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04450017
449: 1841 CONTINUE 04460017
450: IVTNUM = 184 04470017
451: C 04480017
452: C **** TEST 184 **** 04490017
453: C TEST 184 - RELATIONAL EXPRESSION (IAER) (RO) (IVR) 04500017
454: C TRUE PATH .NE. 04510017
455: C 04520017
456: C 04530017
457: IF (ICZERO) 31840, 1840, 31840 04540017
458: 1840 CONTINUE 04550017
459: IVON01 = 0 04560017
460: IADN11(3) = 3 04570017
461: IVON02 = 32767 04580017
462: IF ( IADN11(3) .NE. IVON02 ) IVON01 = 1 04590017
463: GO TO 41840 04600017
464: 31840 IVDELE = IVDELE + 1 04610017
465: WRITE (I02,80003) IVTNUM 04620017
466: IF (ICZERO) 41840, 1851, 41840 04630017
467: 41840 IF ( IVON01 - 1 ) 21840, 11840, 21840 04640017
468: 11840 IVPASS = IVPASS + 1 04650017
469: WRITE (I02,80001) IVTNUM 04660017
470: GO TO 1851 04670017
471: 21840 IVFAIL = IVFAIL + 1 04680017
472: IVCOMP = IVON01 04690017
473: IVCORR = 1 04700017
474: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04710017
475: 1851 CONTINUE 04720017
476: IVTNUM = 185 04730017
477: C 04740017
478: C **** TEST 185 **** 04750017
479: C TEST 185 - TEST OF PARENTHESES ( (LE) ) 04760017
480: C TRUE PATH LOGICAL CONSTANT .TRUE. 04770017
481: C 04780017
482: C 04790017
483: IF (ICZERO) 31850, 1850, 31850 04800017
484: 1850 CONTINUE 04810017
485: IVON01 = 0 04820017
486: IF ( ( .TRUE. ) ) IVON01 = 1 04830017
487: GO TO 41850 04840017
488: 31850 IVDELE = IVDELE + 1 04850017
489: WRITE (I02,80003) IVTNUM 04860017
490: IF (ICZERO) 41850, 1861, 41850 04870017
491: 41850 IF ( IVON01 - 1 ) 21850, 11850, 21850 04880017
492: 11850 IVPASS = IVPASS + 1 04890017
493: WRITE (I02,80001) IVTNUM 04900017
494: GO TO 1861 04910017
495: 21850 IVFAIL = IVFAIL + 1 04920017
496: IVCOMP = IVON01 04930017
497: IVCORR = 1 04940017
498: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 04950017
499: 1861 CONTINUE 04960017
500: IVTNUM = 186 04970017
501: C 04980017
502: C **** TEST 186 **** 04990017
503: C TEST 186 - LIKE TEST 185 05000017
504: C FALSE PATH LOGICAL CONSTANT .FALSE. 05010017
505: C 05020017
506: C 05030017
507: IF (ICZERO) 31860, 1860, 31860 05040017
508: 1860 CONTINUE 05050017
509: IVON01 = 1 05060017
510: IF ((( .FALSE. ))) IVON01 = 0 05070017
511: GO TO 41860 05080017
512: 31860 IVDELE = IVDELE + 1 05090017
513: WRITE (I02,80003) IVTNUM 05100017
514: IF (ICZERO) 41860, 1871, 41860 05110017
515: 41860 IF ( IVON01 - 1 ) 21860, 11860, 21860 05120017
516: 11860 IVPASS = IVPASS + 1 05130017
517: WRITE (I02,80001) IVTNUM 05140017
518: GO TO 1871 05150017
519: 21860 IVFAIL = IVFAIL + 1 05160017
520: IVCOMP = IVON01 05170017
521: IVCORR = 1 05180017
522: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05190017
523: 1871 CONTINUE 05200017
524: IVTNUM = 187 05210017
525: C 05220017
526: C **** TEST 187 **** 05230017
527: C TEST 187 - PARENS AROUND LOGICAL VARIABLE REFERENCE ( (LVR) ) 05240017
528: C TRUE PATH 05250017
529: C 05260017
530: C 05270017
531: IF (ICZERO) 31870, 1870, 31870 05280017
532: 1870 CONTINUE 05290017
533: IVON01 = 0 05300017
534: LCTNT1 = .TRUE. 05310017
535: IF ( ( LCTNT1 ) ) IVON01 = 1 05320017
536: GO TO 41870 05330017
537: 31870 IVDELE = IVDELE + 1 05340017
538: WRITE (I02,80003) IVTNUM 05350017
539: IF (ICZERO) 41870, 1881, 41870 05360017
540: 41870 IF ( IVON01 - 1 ) 21870, 11870, 21870 05370017
541: 11870 IVPASS = IVPASS + 1 05380017
542: WRITE (I02,80001) IVTNUM 05390017
543: GO TO 1881 05400017
544: 21870 IVFAIL = IVFAIL + 1 05410017
545: IVCOMP = IVON01 05420017
546: IVCORR = 1 05430017
547: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05440017
548: 1881 CONTINUE 05450017
549: IVTNUM = 188 05460017
550: C 05470017
551: C **** TEST 188 **** 05480017
552: C TEST 188 - PARENS AROUND LOGICAL ARRAY REFERENCE ( ( LAER ) ) 05490017
553: C FALSE PATH 05500017
554: C 05510017
555: IF (ICZERO) 31880, 1880, 31880 05520017
556: 1880 CONTINUE 05530017
557: IVON01 = 1 05540017
558: LATN1A(1) = .FALSE. 05550017
559: IF ( ( LATN1A(1) ) ) IVON01 = 0 05560017
560: GO TO 41880 05570017
561: 31880 IVDELE = IVDELE + 1 05580017
562: WRITE (I02,80003) IVTNUM 05590017
563: IF (ICZERO) 41880, 1891, 41880 05600017
564: 41880 IF ( IVON01 - 1 ) 21880, 11880, 21880 05610017
565: 11880 IVPASS = IVPASS + 1 05620017
566: WRITE (I02,80001) IVTNUM 05630017
567: GO TO 1891 05640017
568: 21880 IVFAIL = IVFAIL + 1 05650017
569: IVCOMP = IVON01 05660017
570: IVCORR = 1 05670017
571: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05680017
572: 1891 CONTINUE 05690017
573: IVTNUM = 189 05700017
574: C 05710017
575: C **** TEST 189 **** 05720017
576: C TEST 189 - USE OF .NOT. WITH A LOGICAL PRIMARY .NOT. (LP) 05730017
577: C FALSE PATH .NOT. .TRUE. 05740017
578: C 05750017
579: C 05760017
580: IF (ICZERO) 31890, 1890, 31890 05770017
581: 1890 CONTINUE 05780017
582: IVON01 = 1 05790017
583: IF ( .NOT. .TRUE. ) IVON01 = 0 05800017
584: GO TO 41890 05810017
585: 31890 IVDELE = IVDELE + 1 05820017
586: WRITE (I02,80003) IVTNUM 05830017
587: IF (ICZERO) 41890, 1901, 41890 05840017
588: 41890 IF ( IVON01 - 1 ) 21890, 11890, 21890 05850017
589: 11890 IVPASS = IVPASS + 1 05860017
590: WRITE (I02,80001) IVTNUM 05870017
591: GO TO 1901 05880017
592: 21890 IVFAIL = IVFAIL + 1 05890017
593: IVCOMP = IVON01 05900017
594: IVCORR = 1 05910017
595: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 05920017
596: 1901 CONTINUE 05930017
597: IVTNUM = 190 05940017
598: C 05950017
599: C **** TEST 190 **** 05960017
600: C TEST 190 - LIKE TEST 189 TRUE PATH .NOT. .FALSE. 05970017
601: C 05980017
602: C 05990017
603: IF (ICZERO) 31900, 1900, 31900 06000017
604: 1900 CONTINUE 06010017
605: IVON01 = 0 06020017
606: IF ( .NOT. .FALSE. ) IVON01 = 1 06030017
607: GO TO 41900 06040017
608: 31900 IVDELE = IVDELE + 1 06050017
609: WRITE (I02,80003) IVTNUM 06060017
610: IF (ICZERO) 41900, 1911, 41900 06070017
611: 41900 IF ( IVON01 - 1 ) 21900, 11900, 21900 06080017
612: 11900 IVPASS = IVPASS + 1 06090017
613: WRITE (I02,80001) IVTNUM 06100017
614: GO TO 1911 06110017
615: 21900 IVFAIL = IVFAIL + 1 06120017
616: IVCOMP = IVON01 06130017
617: IVCORR = 1 06140017
618: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06150017
619: 1911 CONTINUE 06160017
620: IVTNUM = 191 06170017
621: C 06180017
622: C **** TEST 191 **** 06190017
623: C TEST 191 - TESTS .NOT. WITH A LOGICAL VARIABLE SET TO .FALSE. 06200017
624: C IN A LOGICAL ASSIGNMENT STATEMENT TRUE PATH 06210017
625: C 06220017
626: C 06230017
627: IF (ICZERO) 31910, 1910, 31910 06240017
628: 1910 CONTINUE 06250017
629: IVON01 = 0 06260017
630: LCTNT1 = .FALSE. 06270017
631: IF ( .NOT. LCTNT1 ) IVON01 = 1 06280017
632: GO TO 41910 06290017
633: 31910 IVDELE = IVDELE + 1 06300017
634: WRITE (I02,80003) IVTNUM 06310017
635: IF (ICZERO) 41910, 1921, 41910 06320017
636: 41910 IF ( IVON01 - 1 ) 21910, 11910, 21910 06330017
637: 11910 IVPASS = IVPASS + 1 06340017
638: WRITE (I02,80001) IVTNUM 06350017
639: GO TO 1921 06360017
640: 21910 IVFAIL = IVFAIL + 1 06370017
641: IVCOMP = IVON01 06380017
642: IVCORR = 1 06390017
643: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06400017
644: 1921 CONTINUE 06410017
645: IVTNUM = 192 06420017
646: C 06430017
647: C **** TEST 192 **** 06440017
648: C TEST 192 - LIKE TEST 191 ONLY USES A LOGICAL ARRAY ELEMENT 06450017
649: C SET TO .FALSE. IN A LOGICAL ASSIGNMENT STATEMENT TRUE 06460017
650: C 06470017
651: C 06480017
652: IF (ICZERO) 31920, 1920, 31920 06490017
653: 1920 CONTINUE 06500017
654: IVON01 = 0 06510017
655: LATN1A(2) = .FALSE. 06520017
656: IF ( .NOT. LATN1A(2) ) IVON01 = 1 06530017
657: GO TO 41920 06540017
658: 31920 IVDELE = IVDELE + 1 06550017
659: WRITE (I02,80003) IVTNUM 06560017
660: IF (ICZERO) 41920, 1931, 41920 06570017
661: 41920 IF ( IVON01 - 1 ) 21920, 11920, 21920 06580017
662: 11920 IVPASS = IVPASS + 1 06590017
663: WRITE (I02,80001) IVTNUM 06600017
664: GO TO 1931 06610017
665: 21920 IVFAIL = IVFAIL + 1 06620017
666: IVCOMP = IVON01 06630017
667: IVCORR = 1 06640017
668: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06650017
669: 1931 CONTINUE 06660017
670: IVTNUM = 193 06670017
671: C 06680017
672: C **** TEST 193 **** 06690017
673: C TEST 193 - USE OF LOGICAL .AND. (LT) .AND. (LF) 06700017
674: C USES TWO LOGICAL VARIABLES EACH SET TO .FALSE. 06710017
675: C FALSE .AND. FALSE FALSE PATH 06720017
676: C 06730017
677: C 06740017
678: IF (ICZERO) 31930, 1930, 31930 06750017
679: 1930 CONTINUE 06760017
680: IVON01 = 1 06770017
681: LCTNT1 = .FALSE. 06780017
682: LCTNT2 = .FALSE. 06790017
683: IF ( LCTNT1 .AND. LCTNT2 ) IVON01 = 0 06800017
684: GO TO 41930 06810017
685: 31930 IVDELE = IVDELE + 1 06820017
686: WRITE (I02,80003) IVTNUM 06830017
687: IF (ICZERO) 41930, 1941, 41930 06840017
688: 41930 IF ( IVON01 - 1 ) 21930, 11930, 21930 06850017
689: 11930 IVPASS = IVPASS + 1 06860017
690: WRITE (I02,80001) IVTNUM 06870017
691: GO TO 1941 06880017
692: 21930 IVFAIL = IVFAIL + 1 06890017
693: IVCOMP = IVON01 06900017
694: IVCORR = 1 06910017
695: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 06920017
696: 1941 CONTINUE 06930017
697: IVTNUM = 194 06940017
698: C 06950017
699: C **** TEST 194 **** 06960017
700: C TEST 194 - LIKE TEST 193 FALSE .AND. TRUE FALSE PATH 06970017
701: C 06980017
702: C 06990017
703: IF (ICZERO) 31940, 1940, 31940 07000017
704: 1940 CONTINUE 07010017
705: IVON01 = 1 07020017
706: LCTNT1 = .FALSE. 07030017
707: LCTNT2 = .TRUE. 07040017
708: IF ( LCTNT1 .AND. LCTNT2 ) IVON01 = 0 07050017
709: GO TO 41940 07060017
710: 31940 IVDELE = IVDELE + 1 07070017
711: WRITE (I02,80003) IVTNUM 07080017
712: IF (ICZERO) 41940, 1951, 41940 07090017
713: 41940 IF ( IVON01 - 1 ) 21940, 11940, 21940 07100017
714: 11940 IVPASS = IVPASS + 1 07110017
715: WRITE (I02,80001) IVTNUM 07120017
716: GO TO 1951 07130017
717: 21940 IVFAIL = IVFAIL + 1 07140017
718: IVCOMP = IVON01 07150017
719: IVCORR = 1 07160017
720: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07170017
721: 1951 CONTINUE 07180017
722: IVTNUM = 195 07190017
723: C 07200017
724: C **** TEST 195 **** 07210017
725: C TEST 195 - LIKE TEST 193 TRUE .AND. FALSE FALSE PATH 07220017
726: C 07230017
727: C 07240017
728: IF (ICZERO) 31950, 1950, 31950 07250017
729: 1950 CONTINUE 07260017
730: IVON01 = 1 07270017
731: LCTNT1 = .TRUE. 07280017
732: LCTNT2 = .FALSE. 07290017
733: IF ( LCTNT1 .AND. LCTNT2 ) IVON01 = 0 07300017
734: GO TO 41950 07310017
735: 31950 IVDELE = IVDELE + 1 07320017
736: WRITE (I02,80003) IVTNUM 07330017
737: IF (ICZERO) 41950, 1961, 41950 07340017
738: 41950 IF ( IVON01 - 1 ) 21950, 11950, 21950 07350017
739: 11950 IVPASS = IVPASS + 1 07360017
740: WRITE (I02,80001) IVTNUM 07370017
741: GO TO 1961 07380017
742: 21950 IVFAIL = IVFAIL + 1 07390017
743: IVCOMP = IVON01 07400017
744: IVCORR = 1 07410017
745: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07420017
746: 1961 CONTINUE 07430017
747: IVTNUM = 196 07440017
748: C 07450017
749: C **** TEST 196 **** 07460017
750: C TEST 196 - LIKE TEST 193 TRUE .AND. TRUE TRUE PATH 07470017
751: C 07480017
752: C 07490017
753: IF (ICZERO) 31960, 1960, 31960 07500017
754: 1960 CONTINUE 07510017
755: IVON01 = 0 07520017
756: LCTNT1 = .TRUE. 07530017
757: LCTNT2 = .TRUE. 07540017
758: IF ( LCTNT1 .AND. LCTNT2 ) IVON01 = 1 07550017
759: GO TO 41960 07560017
760: 31960 IVDELE = IVDELE + 1 07570017
761: WRITE (I02,80003) IVTNUM 07580017
762: IF (ICZERO) 41960, 1971, 41960 07590017
763: 41960 IF ( IVON01 - 1 ) 21960, 11960, 21960 07600017
764: 11960 IVPASS = IVPASS + 1 07610017
765: WRITE (I02,80001) IVTNUM 07620017
766: GO TO 1971 07630017
767: 21960 IVFAIL = IVFAIL + 1 07640017
768: IVCOMP = IVON01 07650017
769: IVCORR = 1 07660017
770: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07670017
771: 1971 CONTINUE 07680017
772: IVTNUM = 197 07690017
773: C 07700017
774: C **** TEST 197 **** 07710017
775: C TEST 197 - TEST OF THE INCLUSIVE .OR. . (LE) .OR. (LT) 07720017
776: C USES LOGICAL VARIABLES SET IN LOGICAL ASSIGNMENT STATEMENTS 07730017
777: C FALSE .OR. FALSE FALSE PATH 07740017
778: C 07750017
779: C 07760017
780: IF (ICZERO) 31970, 1970, 31970 07770017
781: 1970 CONTINUE 07780017
782: IVON01 = 1 07790017
783: LCTNT1 = .FALSE. 07800017
784: LCTNT2 = .FALSE. 07810017
785: IF ( LCTNT1 .OR. LCTNT2 ) IVON01 = 0 07820017
786: GO TO 41970 07830017
787: 31970 IVDELE = IVDELE + 1 07840017
788: WRITE (I02,80003) IVTNUM 07850017
789: IF (ICZERO) 41970, 1981, 41970 07860017
790: 41970 IF ( IVON01 - 1 ) 21970, 11970, 21970 07870017
791: 11970 IVPASS = IVPASS + 1 07880017
792: WRITE (I02,80001) IVTNUM 07890017
793: GO TO 1981 07900017
794: 21970 IVFAIL = IVFAIL + 1 07910017
795: IVCOMP = IVON01 07920017
796: IVCORR = 1 07930017
797: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 07940017
798: 1981 CONTINUE 07950017
799: IVTNUM = 198 07960017
800: C 07970017
801: C **** TEST 198 **** 07980017
802: C TEST 198 - LIKE TEST 197 FALSE .OR. TRUE TRUE PATH 07990017
803: C 08000017
804: C 08010017
805: IF (ICZERO) 31980, 1980, 31980 08020017
806: 1980 CONTINUE 08030017
807: IVON01 = 0 08040017
808: LCTNT1 = .FALSE. 08050017
809: LCTNT2 = .TRUE. 08060017
810: IF ( LCTNT1 .OR. LCTNT2 ) IVON01 = 1 08070017
811: GO TO 41980 08080017
812: 31980 IVDELE = IVDELE + 1 08090017
813: WRITE (I02,80003) IVTNUM 08100017
814: IF (ICZERO) 41980, 1991, 41980 08110017
815: 41980 IF ( IVON01 - 1 ) 21980, 11980, 21980 08120017
816: 11980 IVPASS = IVPASS + 1 08130017
817: WRITE (I02,80001) IVTNUM 08140017
818: GO TO 1991 08150017
819: 21980 IVFAIL = IVFAIL + 1 08160017
820: IVCOMP = IVON01 08170017
821: IVCORR = 1 08180017
822: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 08190017
823: 1991 CONTINUE 08200017
824: IVTNUM = 199 08210017
825: C 08220017
826: C **** TEST 199 **** 08230017
827: C TEST 199 - LIKE TEST 197. TRUE .OR. FALSE TRUE PATH. 08240017
828: C 08250017
829: C 08260017
830: IF (ICZERO) 31990, 1990, 31990 08270017
831: 1990 CONTINUE 08280017
832: IVON01 = 0 08290017
833: LCTNT1 = .TRUE. 08300017
834: LCTNT2 = .FALSE. 08310017
835: IF ( LCTNT1 .OR. LCTNT2 ) IVON01 = 1 08320017
836: GO TO 41990 08330017
837: 31990 IVDELE = IVDELE + 1 08340017
838: WRITE (I02,80003) IVTNUM 08350017
839: IF (ICZERO) 41990, 5001, 41990 08360017
840: 41990 IF ( IVON01 - 1 ) 21990, 11990, 21990 08370017
841: 11990 IVPASS = IVPASS + 1 08380017
842: WRITE (I02,80001) IVTNUM 08390017
843: GO TO 5001 08400017
844: 21990 IVFAIL = IVFAIL + 1 08410017
845: IVCOMP = IVON01 08420017
846: IVCORR = 1 08430017
847: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 08440017
848: 5001 CONTINUE 08450017
849: C 08460017
850: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 08470017
851: 99999 CONTINUE 08480017
852: WRITE (I02,90002) 08490017
853: WRITE (I02,90006) 08500017
854: WRITE (I02,90002) 08510017
855: WRITE (I02,90002) 08520017
856: WRITE (I02,90007) 08530017
857: WRITE (I02,90002) 08540017
858: WRITE (I02,90008) IVFAIL 08550017
859: WRITE (I02,90009) IVPASS 08560017
860: WRITE (I02,90010) IVDELE 08570017
861: C 08580017
862: C 08590017
863: C TERMINATE ROUTINE EXECUTION 08600017
864: STOP 08610017
865: C 08620017
866: C FORMAT STATEMENTS FOR PAGE HEADERS 08630017
867: 90000 FORMAT (1H1) 08640017
868: 90002 FORMAT (1H ) 08650017
869: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 08660017
870: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 08670017
871: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 08680017
872: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 08690017
873: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 08700017
874: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 08710017
875: C 08720017
876: C FORMAT STATEMENTS FOR RUN SUMMARIES 08730017
877: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 08740017
878: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 08750017
879: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 08760017
880: C 08770017
881: C FORMAT STATEMENTS FOR TEST RESULTS 08780017
882: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 08790017
883: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 08800017
884: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 08810017
885: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 08820017
886: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 08830017
887: C 08840017
888: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM017) 08850017
889: END 08860017
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.