|
|
1.1 root 1: PROGRAM FM202 00010202
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 00020202
6: C 00030202
7: C THIS ROUTINE IS THE FIRST ROUTINE TO TEST CHARACTER DATA 00040202
8: C TYPES. CHARACTER TYPE-STATEMENTS SPECIFY CHARACTER VARIABLES OF 00050202
9: C LENGTH ONE AND LENGTH TWO. THE TESTS IN THIS ROUTINE DETERMINE 00060202
10: C THAT THE FOLLOWING LANGUAGE FEATURES FUNCTION CORRECTLY. 00070202
11: C 00080202
12: C (1) CHARACTER ASSIGNMENT STATEMENTS OF THE FORM 00090202
13: C 00100202
14: C CHARACTER VARIABLE = CHARACTER CONSTANT 00110202
15: C CHARACTER VARIABLE = CHARACTER VARIABLE 00120202
16: C 00130202
17: C WHERE THE VARIABLES AND CONSTANTS ARE THE SAME LENGTH. 00140202
18: C 00150202
19: C (2) THE REPRESENTATION OF AN APOSTROPHE IN A CHARACTER 00160202
20: C CONSTANT IS TWO CONSECUTIVE APOSTROPHES WITH NO INTERVENING 00170202
21: C BLANKS. 00180202
22: C 00190202
23: C (3) CHARACTER RELATIONAL EXPRESSION OF THE FORM 00200202
24: C 00210202
25: C CHARACTER VARIABLE RELOP CHARACTER CONSTANT 00220202
26: C CHARACTER CONSTANT RELOP CHARACTER VARIABLE 00230202
27: C CHARACTER VARIABLE RELOP CHARACTER VARIABLE 00240202
28: C 00250202
29: C WHERE THE CHARACTER ENTITIES ARE THE SAME LENGTH. 00260202
30: C 00270202
31: C (4) CHARACTER RELATIONAL EXPRESSIONS OF THE FORM 00280202
32: C 00290202
33: C CHARACTER VARIABLE .EQ. CHARACTER CONSTANT 00300202
34: C 00310202
35: C ARE USED IN THIS ROUTINE TO VERIFY THE CHARACTER ASSIGNMENT 00320202
36: C STATEMENTS. 00330202
37: C 00340202
38: C REFERENCES 00350202
39: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00360202
40: C X3.9-1978 00370202
41: C 00380202
42: C SECTION 4.8, CHARACTER TYPE 00390202
43: C SECTION 4.8.1, CHARACTER CONSTANT 00400202
44: C SECTION 6.2, CHARACTER EXPRESSIONS 00410202
45: C SECTION 6.3.4, CHARACTER RELATIONAL EXPRESSION 00420202
46: C SECTION 6.3.5, INTERPRETATION OF CHARACTER RELATIONAL 00430202
47: C EXPRESSIONS 00440202
48: C SECTION 8.4.2, CHARACTER TYPE-STATEMENT 00450202
49: C SECTION 10.4, CHARACTER ASSIGNMENT STATEMENT 00460202
50: C 00470202
51: C 00480202
52: C 00490202
53: C ******************************************************************00500202
54: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00510202
55: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00520202
56: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00530202
57: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00540202
58: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00550202
59: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00560202
60: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00570202
61: C THE RESULT OF EXECUTING THESE TESTS. 00580202
62: C 00590202
63: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00600202
64: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00610202
65: C 00620202
66: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00630202
67: C DEPARTMENT OF THE NAVY 00640202
68: C FEDERAL COBOL COMPILER TESTING SERVICE 00650202
69: C WASHINGTON, D.C. 20376 00660202
70: C 00670202
71: C ******************************************************************00680202
72: C 00690202
73: C 00700202
74: IMPLICIT LOGICAL (L) 00710202
75: IMPLICIT CHARACTER*14 (C) 00720202
76: C 00730202
77: CHARACTER *1 CVTN01, CVTN02 00740202
78: CHARACTER *2 CVTN03, CVTN04 00750202
79: C 00760202
80: C 00770202
81: C 00780202
82: C INITIALIZATION SECTION. 00790202
83: C 00800202
84: C INITIALIZE CONSTANTS 00810202
85: C ******************** 00820202
86: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00830202
87: I01 = 5 00840202
88: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00850202
89: I02 = 6 00860202
90: C SYSTEM ENVIRONMENT SECTION 00870202
91: C 00880202
92: I01 = 5 00890202
93: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00900202
94: C (UNIT NUMBER FOR CARD READER). 00910202
95: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00920202
96: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00930202
97: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00940202
98: C 00950202
99: I02 = 6 00960202
100: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00970202
101: C (UNIT NUMBER FOR PRINTER). 00980202
102: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00990202
103: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01000202
104: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 01010202
105: C 01020202
106: IVPASS = 0 01030202
107: IVFAIL = 0 01040202
108: IVDELE = 0 01050202
109: ICZERO = 0 01060202
110: C 01070202
111: C WRITE OUT PAGE HEADERS 01080202
112: C 01090202
113: WRITE (I02,90002) 01100202
114: WRITE (I02,90006) 01110202
115: WRITE (I02,90008) 01120202
116: WRITE (I02,90004) 01130202
117: WRITE (I02,90010) 01140202
118: WRITE (I02,90004) 01150202
119: WRITE (I02,90016) 01160202
120: WRITE (I02,90001) 01170202
121: WRITE (I02,90004) 01180202
122: WRITE (I02,90012) 01190202
123: WRITE (I02,90014) 01200202
124: WRITE (I02,90004) 01210202
125: C 01220202
126: C 01230202
127: C TEST 1 THROUGH TEST 6 VERIFY THAT THE CHARACTER ASSIGNMENT 01240202
128: C STATEMENT 01250202
129: C 01260202
130: C CHARACTER VARIABLE (LEN 1) = CHARACTER CONSTANT (LEN 1) 01270202
131: C 01280202
132: C IS CORRECT. THE CHARACTER RELATIONAL EXPRESSION 01290202
133: C 01300202
134: C CHARACTER VARIABLE (LEN 1) RELOP CHARACTER CONSTANT (LEN 1) 01310202
135: C 01320202
136: C IS USED TO VERIFY THE ASSIGNMENT STATEMENT. BOTH OF THE ABOVE 01330202
137: C STATEMENTS MUST MEET THE LANGUAGE SPECIFICATIONS FOR THESE TESTS 01340202
138: C TO PASS. 01350202
139: C 01360202
140: C 01370202
141: C **** FCVS PROGRAM 202 - TEST 001 **** 01380202
142: C 01390202
143: C 01400202
144: IVTNUM = 1 01410202
145: IF (ICZERO) 30010, 0010, 30010 01420202
146: 0010 CONTINUE 01430202
147: IVCOMP = 0 01440202
148: CVTN01 = ' ' 01450202
149: IVCORR = 1 01460202
150: IF (CVTN01 .EQ. ' ') IVCOMP = 1 01470202
151: 40010 IF (IVCOMP - 1) 20010,10010,20010 01480202
152: 30010 IVDELE = IVDELE + 1 01490202
153: WRITE (I02,80000) IVTNUM 01500202
154: IF (ICZERO) 10010, 0021, 20010 01510202
155: 10010 IVPASS = IVPASS + 1 01520202
156: WRITE (I02,80002) IVTNUM 01530202
157: GO TO 0021 01540202
158: 20010 IVFAIL = IVFAIL + 1 01550202
159: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01560202
160: 0021 CONTINUE 01570202
161: C 01580202
162: C **** FCVS PROGRAM 202 - TEST 002 **** 01590202
163: C 01600202
164: C 01610202
165: IVTNUM = 2 01620202
166: IF (ICZERO) 30020, 0020, 30020 01630202
167: 0020 CONTINUE 01640202
168: IVCOMP = 0 01650202
169: CVTN01 = 'M' 01660202
170: IVCORR = 1 01670202
171: IF (CVTN01 .EQ. 'M') IVCOMP = 1 01680202
172: 40020 IF (IVCOMP - 1) 20020,10020,20020 01690202
173: 30020 IVDELE = IVDELE + 1 01700202
174: WRITE (I02,80000) IVTNUM 01710202
175: IF (ICZERO) 10020, 0031, 20020 01720202
176: 10020 IVPASS = IVPASS + 1 01730202
177: WRITE (I02,80002) IVTNUM 01740202
178: GO TO 0031 01750202
179: 20020 IVFAIL = IVFAIL + 1 01760202
180: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01770202
181: 0031 CONTINUE 01780202
182: C 01790202
183: C **** FCVS PROGRAM 202 - TEST 003 **** 01800202
184: C 01810202
185: C 01820202
186: IVTNUM = 3 01830202
187: IF (ICZERO) 30030, 0030, 30030 01840202
188: 0030 CONTINUE 01850202
189: IVCOMP = 0 01860202
190: IVCORR = 1 01870202
191: CVTN01 = '4' 01880202
192: IF (CVTN01 .EQ. '4') IVCOMP = 1 01890202
193: 40030 IF (IVCOMP - 1) 20030,10030,20030 01900202
194: 30030 IVDELE = IVDELE + 1 01910202
195: WRITE (I02,80000) IVTNUM 01920202
196: IF (ICZERO) 10030, 0041, 20030 01930202
197: 10030 IVPASS = IVPASS + 1 01940202
198: WRITE (I02,80002) IVTNUM 01950202
199: GO TO 0041 01960202
200: 20030 IVFAIL = IVFAIL + 1 01970202
201: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01980202
202: 0041 CONTINUE 01990202
203: C 02000202
204: C **** FCVS PROGRAM 202 - TEST 004 **** 02010202
205: C 02020202
206: C 02030202
207: IVTNUM = 4 02040202
208: IF (ICZERO) 30040, 0040, 30040 02050202
209: 0040 CONTINUE 02060202
210: IVCOMP = 0 02070202
211: IVCORR = 1 02080202
212: CVTN01 = '=' 02090202
213: IF (CVTN01 .EQ. '=') IVCOMP = 1 02100202
214: 40040 IF (IVCOMP - 1) 20040,10040,20040 02110202
215: 30040 IVDELE = IVDELE + 1 02120202
216: WRITE (I02,80000) IVTNUM 02130202
217: IF (ICZERO) 10040, 0051, 20040 02140202
218: 10040 IVPASS = IVPASS + 1 02150202
219: WRITE (I02,80002) IVTNUM 02160202
220: GO TO 0051 02170202
221: 20040 IVFAIL = IVFAIL + 1 02180202
222: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02190202
223: 0051 CONTINUE 02200202
224: C 02210202
225: C **** FCVS PROGRAM 202 - TEST 005 **** 02220202
226: C 02230202
227: C 02240202
228: IVTNUM = 5 02250202
229: IF (ICZERO) 30050, 0050, 30050 02260202
230: 0050 CONTINUE 02270202
231: IVCOMP = 0 02280202
232: IVCORR = 1 02290202
233: CVTN01 = '/' 02300202
234: IF (CVTN01 .EQ. '/') IVCOMP = 1 02310202
235: 40050 IF (IVCOMP - 1) 20050,10050,20050 02320202
236: 30050 IVDELE = IVDELE + 1 02330202
237: WRITE (I02,80000) IVTNUM 02340202
238: IF (ICZERO) 10050, 0061, 20050 02350202
239: 10050 IVPASS = IVPASS + 1 02360202
240: WRITE (I02,80002) IVTNUM 02370202
241: GO TO 0061 02380202
242: 20050 IVFAIL = IVFAIL + 1 02390202
243: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02400202
244: 0061 CONTINUE 02410202
245: C 02420202
246: C **** FCVS PROGRAM 202 - TEST 006 **** 02430202
247: C 02440202
248: C AN APOSTROPHE IN A CHARACTER CONSTANT IS REPRESENTED BY TWO 02450202
249: C CONSECUTIVE APOSTROPHES WITH NO INTERVENING BLANKS. 02460202
250: C 02470202
251: IVTNUM = 6 02480202
252: IF (ICZERO) 30060, 0060, 30060 02490202
253: 0060 CONTINUE 02500202
254: IVCOMP = 0 02510202
255: IVCORR = 1 02520202
256: CVTN01 = '''' 02530202
257: IF (CVTN01 .EQ. '''') IVCOMP = 1 02540202
258: 40060 IF (IVCOMP - 1) 20060,10060,20060 02550202
259: 30060 IVDELE = IVDELE + 1 02560202
260: WRITE (I02,80000) IVTNUM 02570202
261: IF (ICZERO) 10060, 0071, 20060 02580202
262: 10060 IVPASS = IVPASS + 1 02590202
263: WRITE (I02,80002) IVTNUM 02600202
264: GO TO 0071 02610202
265: 20060 IVFAIL = IVFAIL + 1 02620202
266: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02630202
267: 0071 CONTINUE 02640202
268: C 02650202
269: C TEST 7 THROUGH TEST 12 VERIFY THAT THE CHARACTER ASSIGNMENT 02660202
270: C STATEMENTS 02670202
271: C 02680202
272: C CHARACTER VARIABLE (LEN 1) = CHARACTER CONSTANT (LEN 1) 02690202
273: C CHARACTER VARIABLE (LEN 1) = CHARACTER VARIABLE (LEN 1) 02700202
274: C 02710202
275: C ARE CORRECT. THE CHARACTER RELATIONAL EXPRESSION 02720202
276: C 02730202
277: C CHARACTER VARIABLE (LEN 1) .EQ. CHARACTER CONSTANT (LEN 1) 02740202
278: C 02750202
279: C IS USED TO VERIFY THE RESULT OF THE ASSIGNMENT STATEMENTS. 02760202
280: C 02770202
281: C 02780202
282: C **** FCVS PROGRAM 202 - TEST 007 **** 02790202
283: C 02800202
284: C 02810202
285: IVTNUM = 7 02820202
286: IF (ICZERO) 30070, 0070, 30070 02830202
287: 0070 CONTINUE 02840202
288: IVCOMP = 0 02850202
289: IVCORR = 1 02860202
290: CVTN01 = ' ' 02870202
291: CVTN02 = CVTN01 02880202
292: IF (CVTN02 .EQ. ' ') IVCOMP = 1 02890202
293: 40070 IF (IVCOMP - 1) 20070, 10070, 20070 02900202
294: 30070 IVDELE = IVDELE + 1 02910202
295: WRITE (I02,80000) IVTNUM 02920202
296: IF (ICZERO) 10070, 0081, 20070 02930202
297: 10070 IVPASS = IVPASS + 1 02940202
298: WRITE (I02,80002) IVTNUM 02950202
299: GO TO 0081 02960202
300: 20070 IVFAIL = IVFAIL + 1 02970202
301: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02980202
302: 0081 CONTINUE 02990202
303: C 03000202
304: C **** FCVS PROGRAM 202 - TEST 008 **** 03010202
305: C 03020202
306: C 03030202
307: IVTNUM = 8 03040202
308: IF (ICZERO) 30080, 0080, 30080 03050202
309: 0080 CONTINUE 03060202
310: IVCOMP = 0 03070202
311: IVCORR = 1 03080202
312: CVTN01 = 'M' 03090202
313: CVTN02 = CVTN01 03100202
314: IF (CVTN02 .EQ. 'M') IVCOMP = 1 03110202
315: 40080 IF (IVCOMP - 1) 20080,10080,20080 03120202
316: 30080 IVDELE = IVDELE + 1 03130202
317: WRITE (I02,80000) IVTNUM 03140202
318: IF (ICZERO) 10080, 0091, 20080 03150202
319: 10080 IVPASS = IVPASS + 1 03160202
320: WRITE (I02,80002) IVTNUM 03170202
321: GO TO 0091 03180202
322: 20080 IVFAIL = IVFAIL + 1 03190202
323: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03200202
324: 0091 CONTINUE 03210202
325: C 03220202
326: C **** FCVS PROGRAM 202 - TEST 009 **** 03230202
327: C 03240202
328: C 03250202
329: IVTNUM = 9 03260202
330: IF (ICZERO) 30090, 0090, 30090 03270202
331: 0090 CONTINUE 03280202
332: IVCOMP = 0 03290202
333: IVCORR = 1 03300202
334: CVTN01 = '4' 03310202
335: CVTN02 = CVTN01 03320202
336: IF (CVTN02 .EQ. '4') IVCOMP = 1 03330202
337: 40090 IF (IVCOMP - 1) 20090,10090,20090 03340202
338: 30090 IVDELE = IVDELE + 1 03350202
339: WRITE (I02,80000) IVTNUM 03360202
340: IF (ICZERO) 10090, 0101, 20090 03370202
341: 10090 IVPASS = IVPASS + 1 03380202
342: WRITE (I02,80002) IVTNUM 03390202
343: GO TO 0101 03400202
344: 20090 IVFAIL = IVFAIL + 1 03410202
345: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03420202
346: 0101 CONTINUE 03430202
347: C 03440202
348: C **** FCVS PROGRAM 202 - TEST 010 **** 03450202
349: C 03460202
350: C 03470202
351: IVTNUM = 10 03480202
352: IF (ICZERO) 30100, 0100, 30100 03490202
353: 0100 CONTINUE 03500202
354: IVCOMP = 0 03510202
355: IVCORR = 1 03520202
356: CVTN01 = '=' 03530202
357: CVTN02 = CVTN01 03540202
358: IF (CVTN02 .EQ. '=') IVCOMP = 1 03550202
359: 40100 IF (IVCOMP - 1) 20100,10100,20100 03560202
360: 30100 IVDELE = IVDELE + 1 03570202
361: WRITE (I02,80000) IVTNUM 03580202
362: IF (ICZERO) 10100, 0111, 20100 03590202
363: 10100 IVPASS = IVPASS + 1 03600202
364: WRITE (I02,80002) IVTNUM 03610202
365: GO TO 0111 03620202
366: 20100 IVFAIL = IVFAIL + 1 03630202
367: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03640202
368: 0111 CONTINUE 03650202
369: C 03660202
370: C **** FCVS PROGRAM 202 - TEST 011 **** 03670202
371: C 03680202
372: C 03690202
373: IVTNUM = 11 03700202
374: IF (ICZERO) 30110, 0110, 30110 03710202
375: 0110 CONTINUE 03720202
376: IVCOMP =0 03730202
377: IVCORR = 1 03740202
378: CVTN01 = '/' 03750202
379: CVTN02 = CVTN01 03760202
380: IF (CVTN02 .EQ. '/') IVCOMP = 1 03770202
381: 40110 IF (IVCOMP - 1) 20110,10110,20110 03780202
382: 30110 IVDELE = IVDELE + 1 03790202
383: WRITE (I02,80000) IVTNUM 03800202
384: IF (ICZERO) 10110, 0121, 20110 03810202
385: 10110 IVPASS = IVPASS + 1 03820202
386: WRITE (I02,80002) IVTNUM 03830202
387: GO TO 0121 03840202
388: 20110 IVFAIL = IVFAIL + 1 03850202
389: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03860202
390: 0121 CONTINUE 03870202
391: C 03880202
392: C **** FCVS PROGRAM 202 - TEST 012 **** 03890202
393: C 03900202
394: C AN APOSTROPHE IN A CHARACTER CONSTANT IS REPRESENTED BY TWO 03910202
395: C CONSECUTIVE APOSTROPHES WITH NO INTERVENING BLANKS. 03920202
396: C 03930202
397: IVTNUM = 12 03940202
398: IF (ICZERO) 30120, 0120, 30120 03950202
399: 0120 CONTINUE 03960202
400: IVCOMP = 0 03970202
401: IVCORR = 1 03980202
402: CVTN01 = '''' 03990202
403: CVTN02 = CVTN01 04000202
404: IF (CVTN02 .EQ. '''') IVCOMP = 1 04010202
405: 40120 IF (IVCOMP - 1) 20120,10120,20120 04020202
406: 30120 IVDELE = IVDELE + 1 04030202
407: WRITE (I02,80000) IVTNUM 04040202
408: IF (ICZERO) 10120, 0131, 20120 04050202
409: 10120 IVPASS = IVPASS + 1 04060202
410: WRITE (I02,80002) IVTNUM 04070202
411: GO TO 0131 04080202
412: 20120 IVFAIL = IVFAIL + 1 04090202
413: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04100202
414: 0131 CONTINUE 04110202
415: C 04120202
416: C TEST 13 THROUGH TEST 18 VERIFY THE RESULTS OF THE CHARACTER 04130202
417: C RELATIONAL EXPRESSION USING EACH OF THE SIX RELATIONAL OPERATORS 04140202
418: C IN THE STATEMENT FORM 04150202
419: C 04160202
420: C CHARACTER VARIABLE (LEN 1) RELOP CHARACTER CONSTANT (LEN 1). 04170202
421: C 04180202
422: C THE VARIABLE AND CONSTANT CONTAIN THE CHARACTER DATUM C. 04190202
423: C 04200202
424: CVTN01 = 'C' 04210202
425: C 04220202
426: C **** FCVS PROGRAM 202 - TEST 013 **** 04230202
427: C 04240202
428: C RELATIONAL OPERATOR .EQ. 04250202
429: C 04260202
430: IVTNUM = 13 04270202
431: IF (ICZERO) 30130, 0130, 30130 04280202
432: 0130 CONTINUE 04290202
433: IVCOMP = 0 04300202
434: IVCORR = 1 04310202
435: IF (CVTN01 .EQ. 'C') IVCOMP = 1 04320202
436: 40130 IF (IVCOMP - 1) 20130,10130,20130 04330202
437: 30130 IVDELE = IVDELE + 1 04340202
438: WRITE (I02,80000) IVTNUM 04350202
439: IF (ICZERO) 10130, 0141, 20130 04360202
440: 10130 IVPASS = IVPASS + 1 04370202
441: WRITE (I02,80002) IVTNUM 04380202
442: GO TO 0141 04390202
443: 20130 IVFAIL = IVFAIL + 1 04400202
444: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04410202
445: 0141 CONTINUE 04420202
446: C 04430202
447: C **** FCVS PROGRAM 202 - TEST 014 **** 04440202
448: C 04450202
449: C RELATIONAL OPERATOR .NE. 04460202
450: C 04470202
451: IVTNUM = 14 04480202
452: IF (ICZERO) 30140, 0140, 30140 04490202
453: 0140 CONTINUE 04500202
454: IVCOMP = 0 04510202
455: IVCORR = 0 04520202
456: IF (CVTN01 .NE. 'C') IVCOMP = 1 04530202
457: 40140 IF (IVCOMP) 20140,10140,20140 04540202
458: 30140 IVDELE = IVDELE + 1 04550202
459: WRITE (I02,80000) IVTNUM 04560202
460: IF (ICZERO) 10140, 0151, 20140 04570202
461: 10140 IVPASS = IVPASS + 1 04580202
462: WRITE (I02,80002) IVTNUM 04590202
463: GO TO 0151 04600202
464: 20140 IVFAIL = IVFAIL + 1 04610202
465: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04620202
466: 0151 CONTINUE 04630202
467: C 04640202
468: C **** FCVS PROGRAM 202 - TEST 015 **** 04650202
469: C 04660202
470: C RELATIONAL OPERATOR .LE. 04670202
471: C 04680202
472: IVTNUM = 15 04690202
473: IF (ICZERO) 30150, 0150, 30150 04700202
474: 0150 CONTINUE 04710202
475: IVCOMP = 0 04720202
476: IVCORR = 1 04730202
477: IF (CVTN01 .LE. 'C') IVCOMP = 1 04740202
478: IF (IVCOMP - 1) 20150,10150,20150 04750202
479: 30150 IVDELE = IVDELE + 1 04760202
480: WRITE (I02,80000) IVTNUM 04770202
481: IF (ICZERO) 10150, 0161, 20150 04780202
482: 10150 IVPASS = IVPASS + 1 04790202
483: WRITE (I02,80002) IVTNUM 04800202
484: GO TO 0161 04810202
485: 20150 IVFAIL = IVFAIL + 1 04820202
486: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04830202
487: 0161 CONTINUE 04840202
488: C 04850202
489: C **** FCVS PROGRAM 202 - TEST 016 **** 04860202
490: C 04870202
491: C RELATIONAL OPERATOR .LT. 04880202
492: C 04890202
493: IVTNUM = 16 04900202
494: IF (ICZERO) 30160, 0160, 30160 04910202
495: 0160 CONTINUE 04920202
496: IVCOMP=0 04930202
497: IVCORR=0 04940202
498: IF (CVTN01 .LT. 'C') IVCOMP = 1 04950202
499: IF (IVCOMP) 20160,10160,20160 04960202
500: 30160 IVDELE = IVDELE + 1 04970202
501: WRITE (I02,80000) IVTNUM 04980202
502: IF (ICZERO) 10160, 0171, 20160 04990202
503: 10160 IVPASS = IVPASS + 1 05000202
504: WRITE (I02,80002) IVTNUM 05010202
505: GO TO 0171 05020202
506: 20160 IVFAIL = IVFAIL + 1 05030202
507: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05040202
508: 0171 CONTINUE 05050202
509: C 05060202
510: C **** FCVS PROGRAM 202 - TEST 017 **** 05070202
511: C 05080202
512: C RELATIONAL OPERATOR .GE. 05090202
513: C 05100202
514: IVTNUM = 17 05110202
515: IF (ICZERO) 30170, 0170, 30170 05120202
516: 0170 CONTINUE 05130202
517: IVCOMP = 0 05140202
518: IVCORR = 1 05150202
519: IF (CVTN01 .GE. 'C') IVCOMP = 1 05160202
520: 40170 IF (IVCOMP - 1) 20170,10170,20170 05170202
521: 30170 IVDELE = IVDELE + 1 05180202
522: WRITE (I02,80000) IVTNUM 05190202
523: IF (ICZERO) 10170, 0181, 20170 05200202
524: 10170 IVPASS = IVPASS + 1 05210202
525: WRITE (I02,80002) IVTNUM 05220202
526: GO TO 0181 05230202
527: 20170 IVFAIL = IVFAIL + 1 05240202
528: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05250202
529: 0181 CONTINUE 05260202
530: C 05270202
531: C **** FCVS PROGRAM 202 - TEST 018 **** 05280202
532: C 05290202
533: C RELATIONAL OPERATOR .GT. 05300202
534: C 05310202
535: IVTNUM = 18 05320202
536: IF (ICZERO) 30180, 0180, 30180 05330202
537: 0180 CONTINUE 05340202
538: IVCOMP = 0 05350202
539: IVCORR = 0 05360202
540: IF (CVTN01 .GT. 'C') IVCOMP = 1 05370202
541: 40180 IF (IVCOMP) 20180,10180,20180 05380202
542: 30180 IVDELE = IVDELE + 1 05390202
543: WRITE (I02,80000) IVTNUM 05400202
544: IF (ICZERO) 10180, 0191, 20180 05410202
545: 10180 IVPASS = IVPASS + 1 05420202
546: WRITE (I02,80002) IVTNUM 05430202
547: GO TO 0191 05440202
548: 20180 IVFAIL = IVFAIL + 1 05450202
549: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05460202
550: 0191 CONTINUE 05470202
551: C 05480202
552: C TEST 19 THROUGH TEST 21 VERIFY THAT THE CHARACTER ASSIGNMENT 05490202
553: C STATEMENT 05500202
554: C 05510202
555: C CHARACTER VARIABLE (LEN 2) = CHARACTER CONSTANT (LEN 2) 05520202
556: C 05530202
557: C OPERATES CORRECTLY. THE CHARACTER RELATIONAL EXPRESSION 05540202
558: C 05550202
559: C CHARACTER VARIABLE (LEN 2) .EQ. CHARACTER CONSTANT (LEN 2) 05560202
560: C 05570202
561: C IS USED TO VERIFY THE RESULT OF THE ASSIGNMENT STATEMENT. 05580202
562: C 05590202
563: C 05600202
564: C **** FCVS PROGRAM 202 - TEST 019 **** 05610202
565: C 05620202
566: C 05630202
567: IVTNUM = 19 05640202
568: IF (ICZERO) 30190, 0190, 30190 05650202
569: 0190 CONTINUE 05660202
570: IVCOMP =0 05670202
571: IVCORR =1 05680202
572: CVTN03 = 'AZ' 05690202
573: IF (CVTN03 .EQ. 'AZ') IVCOMP = 1 05700202
574: 40190 IF (IVCOMP - 1) 20190,10190,20190 05710202
575: 30190 IVDELE = IVDELE + 1 05720202
576: WRITE (I02,80000) IVTNUM 05730202
577: IF (ICZERO) 10190, 0201, 20190 05740202
578: 10190 IVPASS = IVPASS + 1 05750202
579: WRITE (I02,80002) IVTNUM 05760202
580: GO TO 0201 05770202
581: 20190 IVFAIL = IVFAIL + 1 05780202
582: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05790202
583: 0201 CONTINUE 05800202
584: C 05810202
585: C **** FCVS PROGRAM 202 - TEST 020 **** 05820202
586: C 05830202
587: C 05840202
588: IVTNUM = 20 05850202
589: IF (ICZERO) 30200, 0200, 30200 05860202
590: 0200 CONTINUE 05870202
591: IVCOMP = 0 05880202
592: IVCORR = 1 05890202
593: CVTN03 = 'B''' 05900202
594: IF (CVTN03 .EQ. 'B''') IVCOMP = 1 05910202
595: 40200 IF (IVCOMP - 1) 20200,10200,20200 05920202
596: 30200 IVDELE = IVDELE + 1 05930202
597: WRITE (I02,80000) IVTNUM 05940202
598: IF (ICZERO) 10200, 0211, 20200 05950202
599: 10200 IVPASS = IVPASS + 1 05960202
600: WRITE (I02,80002) IVTNUM 05970202
601: GO TO 0211 05980202
602: 20200 IVFAIL = IVFAIL + 1 05990202
603: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06000202
604: 0211 CONTINUE 06010202
605: C 06020202
606: C **** FCVS PROGRAM 202 - TEST 021 **** 06030202
607: C 06040202
608: C 06050202
609: IVTNUM = 21 06060202
610: IF (ICZERO) 30210, 0210, 30210 06070202
611: 0210 CONTINUE 06080202
612: IVCOMP = 0 06090202
613: IVCORR = 1 06100202
614: CVTN03 = '//' 06110202
615: IF (CVTN03 .EQ. '//') IVCOMP = 1 06120202
616: 40210 IF (IVCOMP - 1) 20210,10210,20210 06130202
617: 30210 IVDELE = IVDELE + 1 06140202
618: WRITE (I02,80000) IVTNUM 06150202
619: IF (ICZERO) 10210, 0221, 20210 06160202
620: 10210 IVPASS = IVPASS + 1 06170202
621: WRITE (I02,80002) IVTNUM 06180202
622: GO TO 0221 06190202
623: 20210 IVFAIL = IVFAIL + 1 06200202
624: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06210202
625: 0221 CONTINUE 06220202
626: C 06230202
627: C TEST 22 THROUGH TEST 24 VERIFY THAT THE CHARACTER ASSIGNMENT 06240202
628: C STATEMENTS 06250202
629: C 06260202
630: C CHARACTER VARIABLE (LEN 2) = CHARACTER CONSTANT (LEN 2) 06270202
631: C CHARACTER VARIABLE (LEN 2) = CHARACTER VARIABLE (LEN 2) 06280202
632: C 06290202
633: C OPERATE CORRECTLY. 06300202
634: C 06310202
635: C 06320202
636: C **** FCVS PROGRAM 202 - TEST 022 **** 06330202
637: C 06340202
638: C 06350202
639: IVTNUM = 22 06360202
640: IF (ICZERO) 30220, 0220, 30220 06370202
641: 0220 CONTINUE 06380202
642: IVCOMP = 0 06390202
643: IVCORR = 1 06400202
644: CVTN03 = 'AZ' 06410202
645: CVTN04 = CVTN03 06420202
646: IF (CVTN04 .EQ. 'AZ') IVCOMP=1 06430202
647: 40220 IF (IVCOMP - 1) 20220,10220,20220 06440202
648: 30220 IVDELE = IVDELE + 1 06450202
649: WRITE (I02,80000) IVTNUM 06460202
650: IF (ICZERO) 10220, 0231, 20220 06470202
651: 10220 IVPASS = IVPASS + 1 06480202
652: WRITE (I02,80002) IVTNUM 06490202
653: GO TO 0231 06500202
654: 20220 IVFAIL = IVFAIL + 1 06510202
655: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06520202
656: 0231 CONTINUE 06530202
657: C 06540202
658: C **** FCVS PROGRAM 202 - TEST 023 **** 06550202
659: C 06560202
660: C 06570202
661: IVTNUM = 23 06580202
662: IF (ICZERO) 30230, 0230, 30230 06590202
663: 0230 CONTINUE 06600202
664: IVCOMP = 0 06610202
665: IVCORR = 1 06620202
666: CVTN03 = 'B''' 06630202
667: CVTN04 = CVTN03 06640202
668: IF (CVTN04 .EQ. 'B''') IVCOMP = 1 06650202
669: 40230 IF (IVCOMP - 1) 20230,10230,20230 06660202
670: 30230 IVDELE = IVDELE + 1 06670202
671: WRITE (I02,80000) IVTNUM 06680202
672: IF (ICZERO) 10230, 0241, 20230 06690202
673: 10230 IVPASS = IVPASS + 1 06700202
674: WRITE (I02,80002) IVTNUM 06710202
675: GO TO 0241 06720202
676: 20230 IVFAIL = IVFAIL + 1 06730202
677: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06740202
678: 0241 CONTINUE 06750202
679: C 06760202
680: C **** FCVS PROGRAM 202 - TEST 024 **** 06770202
681: C 06780202
682: C 06790202
683: IVTNUM = 24 06800202
684: IF (ICZERO) 30240, 0240, 30240 06810202
685: 0240 CONTINUE 06820202
686: IVCOMP = 0 06830202
687: IVCORR = 1 06840202
688: CVTN03 = '//' 06850202
689: CVTN04 = CVTN03 06860202
690: IF (CVTN04 .EQ. '//') IVCOMP = 1 06870202
691: 40240 IF (IVCOMP - 1) 20240,10240,20240 06880202
692: 30240 IVDELE = IVDELE + 1 06890202
693: WRITE (I02,80000) IVTNUM 06900202
694: IF (ICZERO) 10240, 0251, 20240 06910202
695: 10240 IVPASS = IVPASS + 1 06920202
696: WRITE (I02,80002) IVTNUM 06930202
697: GO TO 0251 06940202
698: 20240 IVFAIL = IVFAIL + 1 06950202
699: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06960202
700: 0251 CONTINUE 06970202
701: C 06980202
702: C TEST 25 THROUGH TEST 30 VERIFY THE RESULTS OF THE CHARACTER 06990202
703: C RELATIONAL EXPRESSION USING EACH OF THE SIX RELATIONAL OPERATORS 07000202
704: C IN THE EXPRESSION FORM 07010202
705: C 07020202
706: C CHARACTER VARIABLE (LEN 2) RELOP CHARACTER VARIABLE (LEN 2) 07030202
707: C 07040202
708: C THE VARIABLES CONTAIN THE CHARACTER DATUM CC. 07050202
709: C 07060202
710: CVTN03 = 'CC' 07070202
711: CVTN04 = 'CC' 07080202
712: C 07090202
713: C **** FCVS PROGRAM 202 - TEST 025 **** 07100202
714: C 07110202
715: C RELATIONAL OPERATOR .EQ. 07120202
716: C 07130202
717: IVTNUM = 25 07140202
718: IF (ICZERO) 30250, 0250, 30250 07150202
719: 0250 CONTINUE 07160202
720: IVCOMP = 0 07170202
721: IVCORR = 1 07180202
722: IF (CVTN03 .EQ. CVTN04) IVCOMP = 1 07190202
723: 40250 IF (IVCOMP - 1) 20250,10250,20250 07200202
724: 30250 IVDELE = IVDELE + 1 07210202
725: WRITE (I02,80000) IVTNUM 07220202
726: IF (ICZERO) 10250, 0261, 20250 07230202
727: 10250 IVPASS = IVPASS + 1 07240202
728: WRITE (I02,80002) IVTNUM 07250202
729: GO TO 0261 07260202
730: 20250 IVFAIL = IVFAIL + 1 07270202
731: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07280202
732: 0261 CONTINUE 07290202
733: C 07300202
734: C **** FCVS PROGRAM 202 - TEST 026 **** 07310202
735: C 07320202
736: C RELATIONAL OPERATOR .NE. 07330202
737: C 07340202
738: IVTNUM = 26 07350202
739: IF (ICZERO) 30260, 0260, 30260 07360202
740: 0260 CONTINUE 07370202
741: IVCOMP = 0 07380202
742: IVCORR = 0 07390202
743: IF (CVTN03 .NE. CVTN04) IVCOMP = 1 07400202
744: 40260 IF (IVCOMP) 20260,10260,20260 07410202
745: 30260 IVDELE = IVDELE + 1 07420202
746: WRITE (I02,80000) IVTNUM 07430202
747: IF (ICZERO) 10260, 0271, 20260 07440202
748: 10260 IVPASS = IVPASS + 1 07450202
749: WRITE (I02,80002) IVTNUM 07460202
750: GO TO 0271 07470202
751: 20260 IVFAIL = IVFAIL + 1 07480202
752: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07490202
753: 0271 CONTINUE 07500202
754: C 07510202
755: C **** FCVS PROGRAM 202 - TEST 027 **** 07520202
756: C 07530202
757: C RELATIONAL OPERATOR .LE. 07540202
758: C 07550202
759: IVTNUM = 27 07560202
760: IF (ICZERO) 30270, 0270, 30270 07570202
761: 0270 CONTINUE 07580202
762: IVCOMP = 0 07590202
763: IVCORR = 1 07600202
764: IF (CVTN03 .LE. CVTN04) IVCOMP = 1 07610202
765: 40270 IF (IVCOMP - 1) 20270,10270,20270 07620202
766: 30270 IVDELE = IVDELE + 1 07630202
767: WRITE (I02,80000) IVTNUM 07640202
768: IF (ICZERO) 10270, 0281, 20270 07650202
769: 10270 IVPASS = IVPASS + 1 07660202
770: WRITE (I02,80002) IVTNUM 07670202
771: GO TO 0281 07680202
772: 20270 IVFAIL = IVFAIL + 1 07690202
773: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07700202
774: 0281 CONTINUE 07710202
775: C 07720202
776: C **** FCVS PROGRAM 202 - TEST 028 **** 07730202
777: C 07740202
778: C RELATIONAL OPERATOR .LT. 07750202
779: C 07760202
780: IVTNUM = 28 07770202
781: IF (ICZERO) 30280, 0280, 30280 07780202
782: 0280 CONTINUE 07790202
783: IVCOMP = 0 07800202
784: IVCORR = 0 07810202
785: IF (CVTN03 .LT. CVTN04) IVCOMP=1 07820202
786: 40280 IF (IVCOMP) 20280,10280,20280 07830202
787: 30280 IVDELE = IVDELE + 1 07840202
788: WRITE (I02,80000) IVTNUM 07850202
789: IF (ICZERO) 10280, 0291, 20280 07860202
790: 10280 IVPASS = IVPASS + 1 07870202
791: WRITE (I02,80002) IVTNUM 07880202
792: GO TO 0291 07890202
793: 20280 IVFAIL = IVFAIL + 1 07900202
794: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07910202
795: 0291 CONTINUE 07920202
796: C 07930202
797: C **** FCVS PROGRAM 202 - TEST 029 **** 07940202
798: C 07950202
799: C RELATIONAL OPERATOR .GE. 07960202
800: C 07970202
801: IVTNUM = 29 07980202
802: IF (ICZERO) 30290, 0290, 30290 07990202
803: 0290 CONTINUE 08000202
804: IVCOMP = 0 08010202
805: IVCORR = 1 08020202
806: IF (CVTN03 .GE. CVTN04) IVCOMP = 1 08030202
807: 40290 IF (IVCOMP - 1) 20290,10290,20290 08040202
808: 30290 IVDELE = IVDELE + 1 08050202
809: WRITE (I02,80000) IVTNUM 08060202
810: IF (ICZERO) 10290, 0301, 20290 08070202
811: 10290 IVPASS = IVPASS + 1 08080202
812: WRITE (I02,80002) IVTNUM 08090202
813: GO TO 0301 08100202
814: 20290 IVFAIL = IVFAIL + 1 08110202
815: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08120202
816: 0301 CONTINUE 08130202
817: C 08140202
818: C **** FCVS PROGRAM 202 - TEST 030 **** 08150202
819: C 08160202
820: C RELATIONAL OPERATOR .GT. 08170202
821: C 08180202
822: IVTNUM = 30 08190202
823: IF (ICZERO) 30300, 0300, 30300 08200202
824: 0300 CONTINUE 08210202
825: IVCOMP = 0 08220202
826: IVCORR = 0 08230202
827: IF (CVTN03 .GT. CVTN04) IVCOMP = 1 08240202
828: 40300 IF (IVCOMP) 20300,10300,20300 08250202
829: 30300 IVDELE = IVDELE + 1 08260202
830: WRITE (I02,80000) IVTNUM 08270202
831: IF (ICZERO) 10300, 0311, 20300 08280202
832: 10300 IVPASS = IVPASS + 1 08290202
833: WRITE (I02,80002) IVTNUM 08300202
834: GO TO 0311 08310202
835: 20300 IVFAIL = IVFAIL + 1 08320202
836: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08330202
837: 0311 CONTINUE 08340202
838: C 08350202
839: C 08360202
840: C WRITE OUT TEST SUMMARY 08370202
841: C 08380202
842: WRITE (I02,90004) 08390202
843: WRITE (I02,90014) 08400202
844: WRITE (I02,90004) 08410202
845: WRITE (I02,90000) 08420202
846: WRITE (I02,90004) 08430202
847: WRITE (I02,90020) IVFAIL 08440202
848: WRITE (I02,90022) IVPASS 08450202
849: WRITE (I02,90024) IVDELE 08460202
850: STOP 08470202
851: 90001 FORMAT (1H ,24X,5HFM202) 08480202
852: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM202) 08490202
853: C 08500202
854: C FORMATS FOR TEST DETAIL LINES 08510202
855: C 08520202
856: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 08530202
857: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 08540202
858: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 08550202
859: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 08560202
860: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 08570202
861: C 08580202
862: C FORMAT STATEMENTS FOR PAGE HEADERS 08590202
863: C 08600202
864: 90002 FORMAT (1H1) 08610202
865: 90004 FORMAT (1H ) 08620202
866: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 08630202
867: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 08640202
868: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 08650202
869: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 08660202
870: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 08670202
871: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 08680202
872: C 08690202
873: C FORMAT STATEMENTS FOR RUN SUMMARY 08700202
874: C 08710202
875: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 08720202
876: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 08730202
877: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 08740202
878: END 08750202
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.