|
|
1.1 root 1: PROGRAM FM411 00010411
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 00020411
6: C 00030411
7: C 00040411
8: C THIS ROUTINE TESTS FOR PROPER PROCESSING OF UNFORMATTED RECORDS00050411
9: C WITH A FILE CONNECTED FOR SEQUENTIAL ACCESS. UNFORMATTED RECORDS00060411
10: C MAY BE READ OR WRITTEN ONLY BY UNFORMATTED INPUT/OUTPUT STATE- 00070411
11: C MENTS. THIS ROUTINE TESTS SEVERAL SYNTACTICAL VARIATIONS OF THE 00080411
12: C UNFORMATTED READ AND WRITE STATEMENTS AS WELL AS THE FILE 00090411
13: C POSITIONING STATEMENTS BACKSPACE, ENDFILE AND REWIND. IN 00100411
14: C ADDITION UNFORMATTED RECORDS MAY HAVE BOTH CHARACTER AND 00110411
15: C NONCHARACTER DATA. THIS DATA IS TRANSFERRED WITHOUT EDITING 00120411
16: C BETWEEN THE CURRENT RECORD AND ENTITIES SPECIFIED BY THE INPUT/ 00130411
17: C OUTPUT LIST ITEMS. THIS ROUTINE BOTH READS AND WRITES 00140411
18: C RECORDS CONTAINING DATA OF LOGICAL, REAL AND INTEGER TYPE WITH 00150411
19: C I/O LIST ITEMS REPRESENTED AS VARIABLE NAMES, ARRAY ELEMENT 00160411
20: C NAMES AND ARRAY NAMES. THIS ROUTINE DOES NOT TEST DATA OF TYPE 00170411
21: C CHARACTER. 00180411
22: C ROUTINE FM413 TESTS USE OF UNFORMATTED RECORDS WITH A FILE 00190411
23: C CONNECTED FOR DIRECT ACCESS. 00200411
24: C 00210411
25: C THIS ROUTINE TESTS 00220411
26: C 00230411
27: C (1) THE STATEMENT CONSTRUCTS 00240411
28: C 00250411
29: C A. WRITE (U) VARIABLE-NAME,... 00260411
30: C B. WRITE (U) ARRAY-ELEMENT-NAME,... 00270411
31: C C. WRITE (U) ARRAY-NAME,... 00280411
32: C D. WRITE (U) - NO OUTPUT LIST 00290411
33: C E. WRITE (U) IMPLIED-DO-LIST 00300411
34: C F. READ (U) VARIABLE-NAME,... 00310411
35: C G. READ (U) ARRAY-ELEMENT-NAME,... 00320411
36: C H. READ (U) ARRAY-NAME,... 00330411
37: C I. READ (U,END=S) - NO INPUT LIST 00340411
38: C J. READ (U,END=S) VARIABLE-NAME 00350411
39: C K. READ (U) IMPLIED-DO-LIST 00360411
40: C 00370411
41: C (2) USE OF A READ STATEMENT WHERE THE NUMBER OF VALUES 00380411
42: C IN THE INPUT LIST IS LESS THAN OR EQUAL TO THE 00390411
43: C NUMBER OF VALUES IN THE RECORD. 00400411
44: C 00410411
45: C (3) USE OF THE BACKSPACE, REWIND AND ENDFILE STATEMENT 00420411
46: C ON A FILE CONTAINING UNFORMATTED RECORDS. 00430411
47: C 00440411
48: C (4) USE OF A REWIND STATEMENT ON A FILE THAT IS CONNECTED 00450411
49: C BUT DOES NOT EXIST. 00460411
50: C 00470411
51: C (5) USE OF AN ENDFILE STATEMENT TO CREATE A FILE THAT 00480411
52: C DOES NOT EXIST 00490411
53: C 00500411
54: C REFERENCES - 00510411
55: C 00520411
56: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00530411
57: C X3.9-1977 00540411
58: C 00550411
59: C SECTION 4.1, DATA TYPES 00560411
60: C SECTION 12.1.2, UNFORMATTED RECORDS 00570411
61: C SECTION 12.2.1, FILE EXISTENCE 00580411
62: C SECTION 12.2.4, FILE ACCESS 00590411
63: C SECTION 12.2.4.1, SEQUENTIAL ACCESS 00600411
64: C SECTION 12.3.3, UNIT SPECIFIER AND IDENTIFIER 00610411
65: C SECTION 12.7.2, END-OF-FILE SPECIFIER 00620411
66: C SECTION 12.8, READ, WRITE AND PRINT STATEMENTS 00630411
67: C SECTION 12.8.1, CONTROL INFORMATION LIST 00640411
68: C SECTION 12.8.2, INPUT/OUTPUT LIST 00650411
69: C SECTION 12.8.2.1, INPUT LIST ITEMS 00660411
70: C SECTION 12.8.2.2, OUTPUT LIST ITEMS 00670411
71: C SECTION 12.8.2.3, IMPLIED-DO LIST 00680411
72: C SECTION 12.9.5.1, UNFORMATTED DATA TRANSFER 00690411
73: C SECTION 12.10.4, FILE POSITIONING STATEMENTS 00700411
74: C SECTION 12.10.4.1 BACKSPACE STATEMENT 00710411
75: C SECTION 12.10.4.2, ENDFILE STATEMENT 00720411
76: C SECTION 12.10.4.3, REWIND STATEMENT 00730411
77: C 00740411
78: C 00750411
79: C 00760411
80: C ******************************************************************00770411
81: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00780411
82: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00790411
83: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00800411
84: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00810411
85: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00820411
86: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00830411
87: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00840411
88: C THE RESULT OF EXECUTING THESE TESTS. 00850411
89: C 00860411
90: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00870411
91: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00880411
92: C 00890411
93: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00900411
94: C DEPARTMENT OF THE NAVY 00910411
95: C FEDERAL COBOL COMPILER TESTING SERVICE 00920411
96: C WASHINGTON, D.C. 20376 00930411
97: C 00940411
98: C ******************************************************************00950411
99: C 00960411
100: C 00970411
101: IMPLICIT LOGICAL (L) 00980411
102: IMPLICIT CHARACTER*14 (C) 00990411
103: C 01000411
104: LOGICAL LAON11, LAON21, LAON31, LCONT1, LCONF2, LVONT1, LVONF2 01010411
105: LOGICAL LAON12, LAON22, LAON32, LCONT3, LCONF4, LVONT3, LVONF4 01020411
106: LOGICAL LCONT5, LCONF6, LCONT7, LCONF8, LVONT5, LVONF6, LVONT7 01030411
107: LOGICAL LVONF8 01040411
108: DIMENSION IDUMP(80) 01050411
109: DIMENSION IAON11(8), IAON21(2,4), IAON31(2,2,2) 01060411
110: DIMENSION IAON12(8), IAON22(2,4), IAON32(2,2,2) 01070411
111: DIMENSION RAON11(8), RAON21(2,4), RAON31(2,2,2) 01080411
112: DIMENSION RAON12(8), RAON22(2,4), RAON32(2,2,2) 01090411
113: DIMENSION LAON11(8), LAON21(2,4), LAON31(2,2,2) 01100411
114: DIMENSION LAON12(8), LAON22(2,4), LAON32(2,2,2) 01110411
115: DATA IAON11 /11, -11, 777, -777, 512, -512, -32767, 32767/ 01120411
116: DATA IAON21 /11, -11, 777, -777, 512, -512, -32767, 32767/ 01130411
117: DATA IAON31 /11, -11, 777, -777, 512, -512, -32767, 32767/ 01140411
118: DATA LAON11 /.TRUE., .FALSE., .TRUE., .FALSE., .TRUE., .FALSE., 01150411
119: 1 .TRUE., .FALSE./ 01160411
120: DATA LAON21 /.TRUE., .FALSE., .TRUE., .FALSE., .TRUE., .FALSE., 01170411
121: 1 .TRUE., .FALSE./ 01180411
122: DATA LAON31 /.TRUE., .FALSE., .TRUE., .FALSE., .TRUE., .FALSE., 01190411
123: 1 .TRUE., .FALSE./ 01200411
124: DATA RAON11 /11., -11., 7.77, -7.77,.512, -.512, -32767., 32767./01210411
125: DATA RAON21 /11., -11., 7.77, -7.77,.512, -.512, -32767., 32767./01220411
126: DATA RAON31 /11., -11., 7.77, -7.77,.512, -.512, -32767., 32767./01230411
127: ICON21 = 11 01240411
128: ICON22 = -11 01250411
129: ICON31 = +777 01260411
130: ICON32 = -777 01270411
131: ICON33 = 512 01280411
132: ICON34 = -512 01290411
133: ICON55 = -32767 01300411
134: ICON56 = 32767 01310411
135: RCON21 = 11. 01320411
136: RCON22 = -11. 01330411
137: RCON31 = +7.77 01340411
138: RCON32 = -7.77 01350411
139: RCON33 = .512 01360411
140: RCON34 = -.512 01370411
141: RCON55 = -32767. 01380411
142: RCON56 = 32767. 01390411
143: LCONT1 = .TRUE. 01400411
144: LCONF2 = .FALSE. 01410411
145: LCONT3 = .TRUE. 01420411
146: LCONF4 = .FALSE. 01430411
147: LCONT5 = .TRUE. 01440411
148: LCONF6 = .FALSE. 01450411
149: LCONT7 = .TRUE. 01460411
150: LCONF8 = .FALSE. 01470411
151: C 01480411
152: C THE FILE USED IN THIS ROUTINE HAS THE FOLLOWING PROPERTIES 01490411
153: C 01500411
154: C FILE IDENTIFIER - I04 (X-NUMBER 04) 01510411
155: C RECORD SIZE - 80 01520411
156: C ACCESS METHOD - SEQUENTIAL 01530411
157: C RECORD TYPE - UNFORMATTED 01540411
158: C DESIGNATED DEVICE - DISK 01550411
159: C TYPE OF DATA - INTEGER, REAL AND LOGICAL 01560411
160: C RECORDS IN FILE - 142 PLUS ENDFILE RECORD 01570411
161: C 01580411
162: C THE FIRST 6 FIELDS OF EACH RECORD IN THE FILE UNIQUELY IDENT-01590411
163: C IFIES THAT RECORD. THE REMAINING FIELDS OF THE RECORD CONTAIN 01600411
164: C DATA WHICH ARE USED IN TESTING. A DESCRIPTION OF EACH FIELD 01610411
165: C OF THE PREAMBLE FOLLOWS. 01620411
166: C 01630411
167: C VARIABLE NAME IN PROGRAM FIELD NUMBER 01640411
168: C ------------------------ ------------ 01650411
169: C 01660411
170: C IPROG (ROUTINE NAME) - 1 01670411
171: C IFILE (LOGICAL/X-NUMBER) - 2 01680411
172: C ITOTR (RECORDS IN FILE) - 3 01690411
173: C IRLGN (LENGTH OF RECORD) - 4 01700411
174: C IRECN (RECORD NUMBER) - 5 01710411
175: C IEOF (9999 IF LAST RECORD) - 6 01720411
176: C 01730411
177: C 01740411
178: C 01750411
179: C 01760411
180: C INITIALIZATION SECTION. 01770411
181: C 01780411
182: C INITIALIZE CONSTANTS 01790411
183: C ******************** 01800411
184: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 01810411
185: I01 = 5 01820411
186: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 01830411
187: I02 = 6 01840411
188: C SYSTEM ENVIRONMENT SECTION 01850411
189: C 01860411
190: I01 = 5 01870411
191: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 01880411
192: C (UNIT NUMBER FOR CARD READER). 01890411
193: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD01900411
194: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01910411
195: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 01920411
196: C 01930411
197: I02 = 6 01940411
198: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 01950411
199: C (UNIT NUMBER FOR PRINTER). 01960411
200: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.01970411
201: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01980411
202: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 01990411
203: C 02000411
204: IVPASS = 0 02010411
205: IVFAIL = 0 02020411
206: IVDELE = 0 02030411
207: ICZERO = 0 02040411
208: C 02050411
209: C WRITE OUT PAGE HEADERS 02060411
210: C 02070411
211: WRITE (I02,90002) 02080411
212: WRITE (I02,90006) 02090411
213: WRITE (I02,90008) 02100411
214: WRITE (I02,90004) 02110411
215: WRITE (I02,90010) 02120411
216: WRITE (I02,90004) 02130411
217: WRITE (I02,90016) 02140411
218: WRITE (I02,90001) 02150411
219: WRITE (I02,90004) 02160411
220: WRITE (I02,90012) 02170411
221: WRITE (I02,90014) 02180411
222: WRITE (I02,90004) 02190411
223: C 02200411
224: I04 = 8 02210411
225: C I04 CONTAINS THE LOGICAL UNIT NUMBER FOR A SEQUENTIAL ACCESS FILE02220411
226: OPEN(UNIT=I04,ACCESS='SEQUENTIAL',FORM='UNFORMATTED') 02230411
227: CX041 THIS CARD IS REPLACED BY CONTENTS OF X-041 CARD 02240411
228: IPROG = 411 02250411
229: IFILE = I04 02260411
230: ITOTR = 142 02270411
231: IRLGN = 80 02280411
232: IRECN = 0 02290411
233: IEOF = 0 02300411
234: C 02310411
235: C **** FCVS PROGRAM 411 - TEST 001 **** 02320411
236: C 02330411
237: C 02340411
238: C TEST 001 USES THE REWIND STATEMENT ON A FILE THAT IS CONNECTED 02350411
239: C BUT DOES NOT EXIST. THERE SHOULD BE NO EFFECT ON THE FILE WHEN 02360411
240: C THIS STATEMENT IS EXECUTED. CONNECTION OF THE FILE TO A UNIT 02370411
241: C IS ASSUMED TO BE DONE BY PRECONNECTION. 02380411
242: C 02390411
243: C SEE SECTION 12.10.4.3, REWIND STATEMENT 02400411
244: C 02410411
245: C 02420411
246: IVTNUM = 1 02430411
247: IF (ICZERO) 30010, 0010, 30010 02440411
248: 0010 CONTINUE 02450411
249: IVCORR = 1 02460411
250: IVCOMP = 0 02470411
251: REWIND I04 02480411
252: IVCOMP = 1 02490411
253: 40010 IF (IVCOMP - 1) 20010, 10010, 20010 02500411
254: 30010 IVDELE = IVDELE + 1 02510411
255: WRITE (I02,80000) IVTNUM 02520411
256: IF (ICZERO) 10010, 0021, 20010 02530411
257: 10010 IVPASS = IVPASS + 1 02540411
258: WRITE (I02,80002) IVTNUM 02550411
259: GO TO 0021 02560411
260: 20010 IVFAIL = IVFAIL + 1 02570411
261: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02580411
262: 0021 CONTINUE 02590411
263: C 02600411
264: C **** FCVS PROGRAM 411 - TEST 002 **** 02610411
265: C 02620411
266: C 02630411
267: C TEST 002 USES THE ENDFILE STATEMENT TO CREATE A FILE THAT IS 02640411
268: C CONNECTED BUT DOES NOT EXIST. NO RECORDS HAVE BEEN WRITTEN TO 02650411
269: C THE FILE BEFORE THE ENDFILE STATEMENT IS EXECUTED. AS IN THE 02660411
270: C PRECEDING TEST, IT IS ASSUMED THAT CONNECTION OF THE FILE TO A 02670411
271: C UNIT IS DONE BY PRECONNECTION. 02680411
272: C 02690411
273: C SEE SECTIONS 12.2.1, FILE EXISTENCE 02700411
274: C 12.10.4.2, ENDFILE STATEMENT 02710411
275: C 02720411
276: C 02730411
277: IVTNUM = 2 02740411
278: IF (ICZERO) 30020, 0020, 30020 02750411
279: 0020 CONTINUE 02760411
280: IVCORR = 1 02770411
281: IVCOMP = 0 02780411
282: ENDFILE I04 02790411
283: REWIND I04 02800411
284: READ (I04, END = 0023) IVON01 02810411
285: C 02820411
286: C TO TEST CREATION OF A FILE VIA A ENDFILE STATEMENT THE FILE 02830411
287: C IS REWOUND AND READ. AN END-OF-FILE CONDITION IS EXPECTED TO 02840411
288: C OCCUR ON THE FIRST READ SINCE THE ONLY RECORD WRITTEN TO THE 02850411
289: C FILE WAS THE ENDFILE RECORD. 02860411
290: C 02870411
291: IVCOMP = 0 02880411
292: GO TO 40020 02890411
293: 0023 IVCOMP = 1 02900411
294: 40020 IF (IVCOMP - 1) 20020, 10020, 20020 02910411
295: 30020 IVDELE = IVDELE + 1 02920411
296: WRITE (I02,80000) IVTNUM 02930411
297: IF (ICZERO) 10020, 0031, 20020 02940411
298: 10020 IVPASS = IVPASS + 1 02950411
299: WRITE (I02,80002) IVTNUM 02960411
300: GO TO 0031 02970411
301: 20020 IVFAIL = IVFAIL + 1 02980411
302: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02990411
303: 0031 CONTINUE 03000411
304: C 03010411
305: C 03020411
306: C TESTS 003 THROUGH 019 USE A PRECONNECTED FILE FOR SEQUENTIAL 03030411
307: C ACCESS TO WRITE 141 RECORDS TO THE FILE. THESE TESTS TEST USE OF 03040411
308: C THE ALLOWABLE FORMS OF THE WRITE STATEMENT ON A FILE CONNECTED 03050411
309: C FOR SEQUENTIAL ACCESS. THE WRITE STATEMENT IS USED WITH 03060411
310: C THE I/O LIST ITEM AS A VARIABLE, ARRAY ELEMENT AND AN ARRAY. 03070411
311: C THE PURPOSE OF TESTS 003 THROUGH 019 IS TO CHECK THE COMPILER'S03080411
312: C ABILITY TO HANDLE THE VARIOUS STATEMENT CONSTRUCTS OF THE 03090411
313: C WRITE STATEMENT. LATER TESTS WITHIN THIS ROUINE READ AND 03100411
314: C CHECK THE RECORDS WHICH ARE CREATED. 03110411
315: C THE VALUE IN IVCORR FOR TESTS 002 THROUGH 013 IS THE RECORD 03120411
316: C NUMBER FOR THE RECORD. 03130411
317: C 03140411
318: C 03150411
319: C 03160411
320: C **** FCVS PROGRAM 411 - TEST 003 **** 03170411
321: C 03180411
322: C 03190411
323: IVTNUM = 3 03200411
324: IF (ICZERO) 30030, 0030, 30030 03210411
325: 0030 CONTINUE 03220411
326: REWIND I04 03230411
327: C REPOSITION TO BEGINNING OF FILE 03240411
328: C 03250411
329: C TEST 003 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 03260411
330: C IS A VARIABLE OF INTEGER TYPE. 03270411
331: C 03280411
332: IRECN = 01 03290411
333: IVCORR = 01 03300411
334: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 03310411
335: 1 ICON21, ICON22, ICON31, ICON32, ICON33, ICON34, ICON55, ICON56 03320411
336: IVCOMP = IRECN 03330411
337: 40030 IF (IVCOMP - 01) 20030, 10030, 20030 03340411
338: 30030 IVDELE = IVDELE + 1 03350411
339: WRITE (I02,80000) IVTNUM 03360411
340: IF (ICZERO) 10030, 0041, 20030 03370411
341: 10030 IVPASS = IVPASS + 1 03380411
342: WRITE (I02,80002) IVTNUM 03390411
343: GO TO 0041 03400411
344: 20030 IVFAIL = IVFAIL + 1 03410411
345: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03420411
346: 0041 CONTINUE 03430411
347: C 03440411
348: C **** FCVS PROGRAM 411 - TEST 004 **** 03450411
349: C 03460411
350: C 03470411
351: C TEST 004 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 03480411
352: C IS A VARIABLE OF REAL TYPE. 03490411
353: C 03500411
354: C 03510411
355: IVTNUM = 4 03520411
356: IF (ICZERO) 30040, 0040, 30040 03530411
357: 0040 CONTINUE 03540411
358: IRECN = 02 03550411
359: IVCORR = 02 03560411
360: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 03570411
361: 1 RCON21, RCON22, RCON31, RCON32, RCON33, RCON34, RCON55, RCON56 03580411
362: IVCOMP = IRECN 03590411
363: 40040 IF (IVCOMP - 02) 20040, 10040, 20040 03600411
364: 30040 IVDELE = IVDELE + 1 03610411
365: WRITE (I02,80000) IVTNUM 03620411
366: IF (ICZERO) 10040, 0051, 20040 03630411
367: 10040 IVPASS = IVPASS + 1 03640411
368: WRITE (I02,80002) IVTNUM 03650411
369: GO TO 0051 03660411
370: 20040 IVFAIL = IVFAIL + 1 03670411
371: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03680411
372: 0051 CONTINUE 03690411
373: C 03700411
374: C **** FCVS PROGRAM 411 - TEST 005 **** 03710411
375: C 03720411
376: C 03730411
377: C TEST 005 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 03740411
378: C IS A VARIABLE OF LOGICAL TYPE. 03750411
379: C 03760411
380: C 03770411
381: IVTNUM = 5 03780411
382: IF (ICZERO) 30050, 0050, 30050 03790411
383: 0050 CONTINUE 03800411
384: IRECN = 03 03810411
385: IVCORR = 03 03820411
386: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 03830411
387: 1 LCONT1, LCONF2, LCONT3, LCONF4, LCONT5, LCONF6, LCONT7, LCONF803840411
388: IVCOMP = IRECN 03850411
389: 40050 IF (IVCOMP - 03) 20050, 10050, 20050 03860411
390: 30050 IVDELE = IVDELE + 1 03870411
391: WRITE (I02,80000) IVTNUM 03880411
392: IF (ICZERO) 10050, 0061, 20050 03890411
393: 10050 IVPASS = IVPASS + 1 03900411
394: WRITE (I02,80002) IVTNUM 03910411
395: GO TO 0061 03920411
396: 20050 IVFAIL = IVFAIL + 1 03930411
397: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03940411
398: 0061 CONTINUE 03950411
399: C 03960411
400: C **** FCVS PROGRAM 411 - TEST 006 **** 03970411
401: C 03980411
402: C 03990411
403: C TEST 006 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 04000411
404: C IS AN ARRAY ELEMENT OF INTEGER TYPE. ONE, TWO AND THREE 04010411
405: C DIMENSION ARRAYS ARE USED. 04020411
406: C 04030411
407: C 04040411
408: IVTNUM = 6 04050411
409: IF (ICZERO) 30060, 0060, 30060 04060411
410: 0060 CONTINUE 04070411
411: IRECN = 04 04080411
412: IVCORR = 04 04090411
413: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 04100411
414: 1 IAON11(1), IAON11(2), IAON21(1,2), IAON21(2,2), IAON31(1,1,2), 04110411
415: 2 IAON31(2,1,2), IAON11(7), IAON11(8) 04120411
416: IVCOMP = IRECN 04130411
417: 40060 IF (IVCOMP - 04) 20060, 10060, 20060 04140411
418: 30060 IVDELE = IVDELE + 1 04150411
419: WRITE (I02,80000) IVTNUM 04160411
420: IF (ICZERO) 10060, 0071, 20060 04170411
421: 10060 IVPASS = IVPASS + 1 04180411
422: WRITE (I02,80002) IVTNUM 04190411
423: GO TO 0071 04200411
424: 20060 IVFAIL = IVFAIL + 1 04210411
425: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04220411
426: 0071 CONTINUE 04230411
427: C 04240411
428: C **** FCVS PROGRAM 411 - TEST 007 **** 04250411
429: C 04260411
430: C 04270411
431: C TEST 007 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 04280411
432: C IS AN ARRAY ELEMENT OF REAL TYPE. ONE, TWO AND THREE 04290411
433: C DIMENSION ARRAYS ARE USED. 04300411
434: C 04310411
435: C 04320411
436: IVTNUM = 7 04330411
437: IF (ICZERO) 30070, 0070, 30070 04340411
438: 0070 CONTINUE 04350411
439: IRECN = 05 04360411
440: IVCORR = 05 04370411
441: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 04380411
442: 1 RAON11(1), RAON11(2), RAON21(1,2), RAON21(2,2), RAON31(1,1,2), 04390411
443: 2RAON31(2,1,2), RAON11(7), RAON11 (8) 04400411
444: IVCOMP = IRECN 04410411
445: 40070 IF (IVCOMP - 05) 20070, 10070, 20070 04420411
446: 30070 IVDELE = IVDELE + 1 04430411
447: WRITE (I02,80000) IVTNUM 04440411
448: IF (ICZERO) 10070, 0081, 20070 04450411
449: 10070 IVPASS = IVPASS + 1 04460411
450: WRITE (I02,80002) IVTNUM 04470411
451: GO TO 0081 04480411
452: 20070 IVFAIL = IVFAIL + 1 04490411
453: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04500411
454: 0081 CONTINUE 04510411
455: C 04520411
456: C **** FCVS PROGRAM 411 - TEST 008 **** 04530411
457: C 04540411
458: C 04550411
459: C 04560411
460: IVTNUM = 8 04570411
461: IF (ICZERO) 30080, 0080, 30080 04580411
462: 0080 CONTINUE 04590411
463: IRECN = 06 04600411
464: IVCORR = 06 04610411
465: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 04620411
466: 1 LAON11(1), LAON11(2), LAON21(1,2), LAON21(2,2), LAON31(1,1,2), 04630411
467: 2 LAON31(2,1,2), LAON11(7), LAON11(8) 04640411
468: IVCOMP = IRECN 04650411
469: 40080 IF (IVCOMP - 06) 20080, 10080, 20080 04660411
470: 30080 IVDELE = IVDELE + 1 04670411
471: WRITE (I02,80000) IVTNUM 04680411
472: IF (ICZERO) 10080, 0091, 20080 04690411
473: 10080 IVPASS = IVPASS + 1 04700411
474: WRITE (I02,80002) IVTNUM 04710411
475: GO TO 0091 04720411
476: 20080 IVFAIL = IVFAIL + 1 04730411
477: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04740411
478: 0091 CONTINUE 04750411
479: C 04760411
480: C **** FCVS PROGRAM 411 - TEST 009 **** 04770411
481: C 04780411
482: C 04790411
483: C TEST 009 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 04800411
484: C IS AN ARRAY OF INTEGER TYPE. 04810411
485: C 04820411
486: C 04830411
487: IVTNUM = 9 04840411
488: IF (ICZERO) 30090, 0090, 30090 04850411
489: 0090 CONTINUE 04860411
490: IRECN = 07 04870411
491: IVCORR = 07 04880411
492: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 04890411
493: 1 IAON31 04900411
494: IVCOMP = IRECN 04910411
495: 40090 IF (IVCOMP - 07) 20090, 10090, 20090 04920411
496: 30090 IVDELE = IVDELE + 1 04930411
497: WRITE (I02,80000) IVTNUM 04940411
498: IF (ICZERO) 10090, 0101, 20090 04950411
499: 10090 IVPASS = IVPASS + 1 04960411
500: WRITE (I02,80002) IVTNUM 04970411
501: GO TO 0101 04980411
502: 20090 IVFAIL = IVFAIL + 1 04990411
503: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05000411
504: 0101 CONTINUE 05010411
505: C 05020411
506: C **** FCVS PROGRAM 411 - TEST 010 **** 05030411
507: C 05040411
508: C 05050411
509: C TEST 010 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 05060411
510: C IS AN ARRAY OF REAL TYPE. 05070411
511: C 05080411
512: C 05090411
513: IVTNUM = 10 05100411
514: IF (ICZERO) 30100, 0100, 30100 05110411
515: 0100 CONTINUE 05120411
516: IRECN = 08 05130411
517: IVCORR = 08 05140411
518: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 05150411
519: 1 RAON31 05160411
520: IVCOMP = IRECN 05170411
521: 40100 IF (IVCOMP - 08) 20100, 10100, 20100 05180411
522: 30100 IVDELE = IVDELE + 1 05190411
523: WRITE (I02,80000) IVTNUM 05200411
524: IF (ICZERO) 10100, 0111, 20100 05210411
525: 10100 IVPASS = IVPASS + 1 05220411
526: WRITE (I02,80002) IVTNUM 05230411
527: GO TO 0111 05240411
528: 20100 IVFAIL = IVFAIL + 1 05250411
529: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05260411
530: 0111 CONTINUE 05270411
531: C 05280411
532: C **** FCVS PROGRAM 411 - TEST 011 **** 05290411
533: C 05300411
534: C 05310411
535: C TEST 011 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 05320411
536: C IS AN ARRAY OF LOGICAL TYPE. 05330411
537: C 05340411
538: C 05350411
539: IVTNUM = 11 05360411
540: IF (ICZERO) 30110, 0110, 30110 05370411
541: 0110 CONTINUE 05380411
542: IRECN = 09 05390411
543: IVCORR = 09 05400411
544: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 05410411
545: 1 LAON31 05420411
546: IVCOMP = IRECN 05430411
547: 40110 IF (IVCOMP - 09) 20110, 10110, 20110 05440411
548: 30110 IVDELE = IVDELE + 1 05450411
549: WRITE (I02,80000) IVTNUM 05460411
550: IF (ICZERO) 10110, 0121, 20110 05470411
551: 10110 IVPASS = IVPASS + 1 05480411
552: WRITE (I02,80002) IVTNUM 05490411
553: GO TO 0121 05500411
554: 20110 IVFAIL = IVFAIL + 1 05510411
555: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05520411
556: 0121 CONTINUE 05530411
557: C 05540411
558: C **** FCVS PROGRAM 411 - TEST 012 **** 05550411
559: C 05560411
560: C 05570411
561: C TEST 012 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 05580411
562: C IS AN IMPLIED-DO WITH AN ITEM OF INTEGER TYPE. 05590411
563: C THE FIELD VALUES ARE WRITTEN IN MIXED ORDER VIS-A-VIS THE 05600411
564: C ELEMENT SEQUENCE OF ARRAY IAON31. THE SEQUENCE OF VALUES WRITTEN 05610411
565: C IN THE RECORD ARE 11, 512, 777, -32767, -11, -512, -777, 32767. 05620411
566: C 05630411
567: C 05640411
568: IVTNUM = 12 05650411
569: IF (ICZERO) 30120, 0120, 30120 05660411
570: 0120 CONTINUE 05670411
571: IRECN = 10 05680411
572: IVCORR = 10 05690411
573: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 05700411
574: 1 (((IAON31 (J,K,I), I=1,2), K=1,2), J=1,2) 05710411
575: IVCOMP = IRECN 05720411
576: 40120 IF (IVCOMP - 10) 20120, 10120, 20120 05730411
577: 30120 IVDELE = IVDELE + 1 05740411
578: WRITE (I02,80000) IVTNUM 05750411
579: IF (ICZERO) 10120, 0131, 20120 05760411
580: 10120 IVPASS = IVPASS + 1 05770411
581: WRITE (I02,80002) IVTNUM 05780411
582: GO TO 0131 05790411
583: 20120 IVFAIL = IVFAIL + 1 05800411
584: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05810411
585: 0131 CONTINUE 05820411
586: C 05830411
587: C **** FCVS PROGRAM 411 - TEST 013 **** 05840411
588: C 05850411
589: C 05860411
590: C TEST 013 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 05870411
591: C IS AN IMPLIED-DO WITH AN ITEM OF REAL TYPE. THE FIELD VALUES 05880411
592: C (IN FIELD POSITION ORDER) WRITTEN IN THE RECORD ARE 11., -11., 05890411
593: C 7.77, -7.77, .512, -.512, -32767., 32767. 05900411
594: C 05910411
595: C 05920411
596: IVTNUM = 13 05930411
597: IF (ICZERO) 30130, 0130, 30130 05940411
598: 0130 CONTINUE 05950411
599: IRECN = 11 05960411
600: IVCORR = 11 05970411
601: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 05980411
602: 1 (((RAON31 (J,K,I), J=1,2), K=1,2), I=1,2) 05990411
603: IVCOMP = IRECN 06000411
604: 40130 IF (IVCOMP - 11) 20130, 10130, 20130 06010411
605: 30130 IVDELE = IVDELE + 1 06020411
606: WRITE (I02,80000) IVTNUM 06030411
607: IF (ICZERO) 10130, 0141, 20130 06040411
608: 10130 IVPASS = IVPASS + 1 06050411
609: WRITE (I02,80002) IVTNUM 06060411
610: GO TO 0141 06070411
611: 20130 IVFAIL = IVFAIL + 1 06080411
612: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06090411
613: 0141 CONTINUE 06100411
614: C 06110411
615: C **** FCVS PROGRAM 411 - TEST 014 **** 06120411
616: C 06130411
617: C 06140411
618: C TEST 014 USES A WRITE STATEMENT WHERE THE OUTPUT LIST ITEM 06150411
619: C IS AN IMPLIED-DO WITH AN ITEM OF LOGICAL TYPE. 06160411
620: C THE FIELD VALUES ARE WRITTEN IN MIXED ORDER (AN ORDER 06170411
621: C DIFFERENT THAN TEST 012 ABOVE) VIS-A-VIS THE 06180411
622: C ELEMENT SEQUENCE OF ARRAY LAON31. THE SEQUENCE OF VALUES WRITTEN 06190411
623: C IN THE RECORD ARE .TRUE., .TRUE., .FALSE., .FALSE., .TRUE., .TRUE.06200411
624: C .FALSE, .FALSE. 06210411
625: C 06220411
626: C 06230411
627: IVTNUM = 14 06240411
628: IF (ICZERO) 30140, 0140, 30140 06250411
629: 0140 CONTINUE 06260411
630: IRECN = 12 06270411
631: IVCORR = 12 06280411
632: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 06290411
633: 1 (((LAON31 (J,K,I), K=1,2), J=1,2), I=1,2) 06300411
634: IVCOMP = IRECN 06310411
635: 40140 IF (IVCOMP - 12) 20140, 10140, 20140 06320411
636: 30140 IVDELE = IVDELE + 1 06330411
637: WRITE (I02,80000) IVTNUM 06340411
638: IF (ICZERO) 10140, 0151, 20140 06350411
639: 10140 IVPASS = IVPASS + 1 06360411
640: WRITE (I02,80002) IVTNUM 06370411
641: GO TO 0151 06380411
642: 20140 IVFAIL = IVFAIL + 1 06390411
643: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06400411
644: 0151 CONTINUE 06410411
645: C 06420411
646: C **** FCVS PROGRAM 411 - TEST 015 **** 06430411
647: C 06440411
648: C 06450411
649: C TEST 015 USES A WRITE STATEMENT WITHOUT ANY OUTPUT LIST ITEMS. 06460411
650: C THE OUTPUT LIST ITEMS ARE OPTIONAL. 06470411
651: C ALSO THE LENGTH OF AN UNFORMATTED RECORD MAY BE ZERO. 06480411
652: C 06490411
653: C SEE SECTIONS 12.1.2, UNFORMATTED RECORDS 06500411
654: C 12.8, READ, WRITE AND PRINT STATEMENTS 06510411
655: C 06520411
656: C 06530411
657: IVTNUM = 15 06540411
658: IF (ICZERO) 30150, 0150, 30150 06550411
659: 0150 CONTINUE 06560411
660: IRECN = 13 06570411
661: IVCORR = 13 06580411
662: WRITE (I04) 06590411
663: IVCOMP = IRECN 06600411
664: 40150 IF (IVCOMP - 13) 20150, 10150, 20150 06610411
665: 30150 IVDELE = IVDELE + 1 06620411
666: WRITE (I02,80000) IVTNUM 06630411
667: IF (ICZERO) 10150, 0161, 20150 06640411
668: 10150 IVPASS = IVPASS + 1 06650411
669: WRITE (I02,80002) IVTNUM 06660411
670: GO TO 0161 06670411
671: 20150 IVFAIL = IVFAIL + 1 06680411
672: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06690411
673: 0161 CONTINUE 06700411
674: C 06710411
675: C **** FCVS PROGRAM 411 - TEST 016 **** 06720411
676: C 06730411
677: C 06740411
678: C TEST 016 IS SIMILAR TO THE PREVIOUS TEST EXCEPT THE WRITE 06750411
679: C STATEMENT CONTAINS OUTPUT LIST ITEMS. ONE HUNDRED RECORDS ARE 06760411
680: C WRITTEN. 06770411
681: C 06780411
682: C 06790411
683: IVTNUM = 16 06800411
684: IF (ICZERO) 30160, 0160, 30160 06810411
685: 0160 CONTINUE 06820411
686: IRECN = 13 06830411
687: DO 4132 I = 1,100 06840411
688: IRECN = IRECN + 1 06850411
689: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 06860411
690: 1 ICON21, ICON22, ICON31, ICON32, ICON33, ICON34, ICON55, ICON56 06870411
691: 4132 CONTINUE 06880411
692: IVCORR = 100 06890411
693: IVCOMP = IRECN - 13 06900411
694: 40160 IF (IVCOMP - 100) 20160, 10160, 20160 06910411
695: 30160 IVDELE = IVDELE + 1 06920411
696: WRITE (I02,80000) IVTNUM 06930411
697: IF (ICZERO) 10160, 0171, 20160 06940411
698: 10160 IVPASS = IVPASS + 1 06950411
699: WRITE (I02,80002) IVTNUM 06960411
700: GO TO 0171 06970411
701: 20160 IVFAIL = IVFAIL + 1 06980411
702: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06990411
703: 0171 CONTINUE 07000411
704: C 07010411
705: C 07020411
706: C THE NEXT THREE TESTS TEST USE OF THE BACKSPACE AND ENDFILE 07030411
707: C STATEMENTS 07040411
708: C 07050411
709: C 07060411
710: C 07070411
711: C **** FCVS PROGRAM 411 - TEST 017 **** 07080411
712: C 07090411
713: C TEST 017 USES AN ENDFILE STATEMENT TO WRITE AN ENDFILE 07100411
714: C RECORD TO A FILE WITH UNFORMATTED RECORDS. AFTER EXECUTION 07110411
715: C OF THIS STATEMENT THE FILE SHOULD BE POSITION AFTER THE ENDFILE 07120411
716: C RECORD. 07130411
717: C 07140411
718: C 07150411
719: IVTNUM = 17 07160411
720: IF (ICZERO) 30170, 0170, 30170 07170411
721: 0170 CONTINUE 07180411
722: IVCORR = 1 07190411
723: IVCOMP = 0 07200411
724: 0172 ENDFILE I04 07210411
725: IVCOMP = 1 07220411
726: 40170 IF (IVCOMP - 1) 20170, 10170, 20170 07230411
727: C 07240411
728: 30170 IVDELE = IVDELE + 1 07250411
729: WRITE (I02,80000) IVTNUM 07260411
730: IF (ICZERO) 10170, 0181, 20170 07270411
731: 10170 IVPASS = IVPASS + 1 07280411
732: WRITE (I02,80002) IVTNUM 07290411
733: GO TO 0181 07300411
734: 20170 IVFAIL = IVFAIL + 1 07310411
735: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07320411
736: 0181 CONTINUE 07330411
737: C 07340411
738: C **** FCVS PROGRAM 411 - TEST 018 **** 07350411
739: C 07360411
740: C 07370411
741: C TEST 018 USES THE BACKSPACE STATEMENT TO REPOSITION THE FILE 07380411
742: C BEFORE THE ENDFILE RECORD. 07390411
743: C 07400411
744: C SEE SECTIONS 12.10.4.1, BACKSPACE STATEMENT 07410411
745: C 12.10.4.2, ENDFILE STATEMENT 07420411
746: C 07430411
747: C 07440411
748: IVTNUM = 18 07450411
749: IF (ICZERO) 30180, 0180, 30180 07460411
750: 0180 CONTINUE 07470411
751: IVCORR = 1 07480411
752: IVCOMP = 0 07490411
753: BACKSPACE I04 07500411
754: IVCOMP = 1 07510411
755: 40180 IF (IVCOMP - 1) 20180, 10180, 20180 07520411
756: 30180 IVDELE = IVDELE + 1 07530411
757: WRITE (I02,80000) IVTNUM 07540411
758: IF (ICZERO) 10180, 0191, 20180 07550411
759: 10180 IVPASS = IVPASS + 1 07560411
760: WRITE (I02,80002) IVTNUM 07570411
761: GO TO 0191 07580411
762: 20180 IVFAIL = IVFAIL + 1 07590411
763: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 07600411
764: 0191 CONTINUE 07610411
765: C 07620411
766: C **** FCVS PROGRAM 411 - TEST 019 **** 07630411
767: C 07640411
768: C 07650411
769: C TEST 019 IS A CONTINUATION OF THE ENDFILE AND BACKSPACE TESTS 07660411
770: C (TWO PREVIOUS TESTS). THIS TEST CONTINUES WRITTING RECORDS TO THE07670411
771: C FILE OVER THE ENDFILE RECORD PREVIOUSLY WRITTEN IN TEST 017. 07680411
772: C TWENTY EIGHT RECORDS ARE WRITTEN TO THE FILE FOLLOWED BY AN 07690411
773: C ENDFILE. 07700411
774: C 07710411
775: C 07720411
776: IVTNUM = 19 07730411
777: IF (ICZERO) 30190, 0190, 30190 07740411
778: 0190 CONTINUE 07750411
779: IVCOMP = 0 07760411
780: IRECN = 113 07770411
781: DO 4112 I = 1,28 07780411
782: IRECN = IRECN + 1 07790411
783: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 07800411
784: 1 ICON21, ICON22, ICON31, ICON32, ICON33, ICON34, ICON55, ICON56 07810411
785: IVCOMP = IVCOMP + 1 07820411
786: 4112 CONTINUE 07830411
787: IVCORR = 29 07840411
788: IEOF = 9999 07850411
789: IRECN = IRECN + 1 07860411
790: WRITE (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF 07870411
791: IVCOMP = IVCOMP + 1 07880411
792: ENDFILE I04 07890411
793: C 07900411
794: C THERE SHOULD BE A TOTAL OF 142 RECORDS PLUS AN ENDFILE RECORD 07910411
795: C IN THE FILE AFTER EXECUTION OF THIS TEST. 07920411
796: C 07930411
797: 40190 IF (IVCOMP - 29) 20190, 10190, 20190 07940411
798: 30190 IVDELE = IVDELE + 1 07950411
799: WRITE (I02,80000) IVTNUM 07960411
800: IF (ICZERO) 10190, 0201, 20190 07970411
801: 10190 IVPASS = IVPASS + 1 07980411
802: WRITE (I02,80002) IVTNUM 07990411
803: GO TO 0201 08000411
804: 20190 IVFAIL = IVFAIL + 1 08010411
805: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08020411
806: 0201 CONTINUE 08030411
807: C 08040411
808: C 08050411
809: C THE NEXT SERIES OF TESTS READ AND CHECK THE RECORDS CREATED IN 08060411
810: C TESTS 03 THROUGH 019. EACH OF THE TESTS IN THIS SET IS CHECKING 08070411
811: C TWO THINGS. FIRST, THAT THE READ STATEMENT CONSTRUCT IS ACCEPTED 08080411
812: C BY THE COMPILER AND SECOND THAT THE RECORDS CREATED IN TESTS 003 08090411
813: C THROUGH 019 AND READ IN THESE TESTS CAN GIVE PREDICTIBLE VALUES. 08100411
814: C THE READ STATEMENT IS USED WITH THE I/O LIST ITEMS AS A VARIABLE, 08110411
815: C AN ARRAY ELEMENT AND AN ARRAY. 08120411
816: C 08130411
817: C 08140411
818: C 08150411
819: C **** FCVS PROGRAM 411 - TEST 020 **** 08160411
820: C 08170411
821: C 08180411
822: C TEST 020 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 08190411
823: C VARIABLE OF INTEGER TYPE. 08200411
824: C 08210411
825: C 08220411
826: IVTNUM = 20 08230411
827: IF (ICZERO) 30200, 0200, 30200 08240411
828: 0200 CONTINUE 08250411
829: REWIND I04 08260411
830: C REPOSITION THE FILE TO THE FIRST RECORD 08270411
831: IVON22 = 0 08280411
832: IVON56 = 0 08290411
833: IVCORR = 30 08300411
834: IVCOMP = 1 08310411
835: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 08320411
836: 1 IVON21, IVON22, IVON31, IVON32, IVON33, IVON34, IVON55, IVON56 08330411
837: IF (IRECN .EQ. 01) IVCOMP = IVCOMP * 2 08340411
838: IF (IVON22 .EQ. -11) IVCOMP = IVCOMP * 3 08350411
839: IF (IVON56 .EQ. 32767) IVCOMP = IVCOMP * 5 08360411
840: 40200 IF (IVCOMP - 30) 20200, 10200, 20200 08370411
841: 30200 IVDELE = IVDELE + 1 08380411
842: WRITE (I02,80000) IVTNUM 08390411
843: IF (ICZERO) 10200, 0211, 20200 08400411
844: 10200 IVPASS = IVPASS + 1 08410411
845: WRITE (I02,80002) IVTNUM 08420411
846: GO TO 0211 08430411
847: 20200 IVFAIL = IVFAIL + 1 08440411
848: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08450411
849: 0211 CONTINUE 08460411
850: C 08470411
851: C **** FCVS PROGRAM 411 - TEST 021 **** 08480411
852: C 08490411
853: C 08500411
854: C TEST 021 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 08510411
855: C VARIABLE OF REAL TYPE. 08520411
856: C 08530411
857: C 08540411
858: IVTNUM = 21 08550411
859: IF (ICZERO) 30210, 0210, 30210 08560411
860: 0210 CONTINUE 08570411
861: RVON22 = 0.0 08580411
862: RVON31 = 0.0 08590411
863: IVCORR = 30 08600411
864: IVCOMP = 1 08610411
865: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 08620411
866: 1 RVON21, RVON22, RVON31, RVON32, RVON33, RVON34, RVON55, RVON56 08630411
867: IF (IRECN .EQ. 02) IVCOMP = IVCOMP * 2 08640411
868: IF (RVON22 .EQ. -11.) IVCOMP = IVCOMP * 3 08650411
869: IF (RVON31 .EQ. 7.77) IVCOMP = IVCOMP * 5 08660411
870: 40210 IF (IVCOMP - 30) 20210, 10210, 20210 08670411
871: 30210 IVDELE = IVDELE + 1 08680411
872: WRITE (I02,80000) IVTNUM 08690411
873: IF (ICZERO) 10210, 0221, 20210 08700411
874: 10210 IVPASS = IVPASS + 1 08710411
875: WRITE (I02,80002) IVTNUM 08720411
876: GO TO 0221 08730411
877: 20210 IVFAIL = IVFAIL + 1 08740411
878: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 08750411
879: 0221 CONTINUE 08760411
880: C 08770411
881: C **** FCVS PROGRAM 411 - TEST 022 **** 08780411
882: C 08790411
883: C 08800411
884: C TEST 022 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 08810411
885: C VARIABLE OF LOGICAL TYPE. 08820411
886: C 08830411
887: C 08840411
888: IVTNUM = 22 08850411
889: IF (ICZERO) 30220, 0220, 30220 08860411
890: 0220 CONTINUE 08870411
891: LVONT1 = .FALSE. 08880411
892: LVONF6 = .TRUE. 08890411
893: IVCORR = 30 08900411
894: IVCOMP = 1 08910411
895: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 08920411
896: 1 LVONT1, LVONF2, LVONT3, LVONF4, LVONT5, LVONF6, LVONT7, LVONF808930411
897: IF (IRECN .EQ. 03) IVCOMP = IVCOMP * 2 08940411
898: IF (.NOT. LVONF6) IVCOMP = IVCOMP * 3 08950411
899: IF (LVONT1) IVCOMP = IVCOMP * 5 08960411
900: 40220 IF (IVCOMP - 30) 20220, 10220, 20220 08970411
901: 30220 IVDELE = IVDELE + 1 08980411
902: WRITE (I02,80000) IVTNUM 08990411
903: IF (ICZERO) 10220, 0231, 20220 09000411
904: 10220 IVPASS = IVPASS + 1 09010411
905: WRITE (I02,80002) IVTNUM 09020411
906: GO TO 0231 09030411
907: 20220 IVFAIL = IVFAIL + 1 09040411
908: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 09050411
909: 0231 CONTINUE 09060411
910: C 09070411
911: C **** FCVS PROGRAM 411 - TEST 023 **** 09080411
912: C 09090411
913: C 09100411
914: C TEST 023 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 09110411
915: C ARRAY ELEMENT OF INTEGER TYPE. ONE, TWO, AND THREE 09120411
916: C DIMENSION ARRAYS ARE USED. 09130411
917: C 09140411
918: C 09150411
919: IVTNUM = 23 09160411
920: IF (ICZERO) 30230, 0230, 30230 09170411
921: 0230 CONTINUE 09180411
922: IAON12(2) = 0 09190411
923: IAON12(8) = 0 09200411
924: IVCORR = 30 09210411
925: IVCOMP = 1 09220411
926: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 09230411
927: 1 IAON12(1), IAON12(2), IAON22(1,2), IAON22(2,2), IAON32(1,1,2), 09240411
928: 2 IAON32(2,1,2), IAON12(7), IAON12(8) 09250411
929: IF (IRECN .EQ. 04) IVCOMP = IVCOMP * 2 09260411
930: IF (IAON12(2) .EQ. -11) IVCOMP = IVCOMP * 3 09270411
931: IF (IAON12(8) .EQ. 32767) IVCOMP = IVCOMP * 5 09280411
932: C 09290411
933: C THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER, A NEGATIVE 09300411
934: C FIELD VALUE AND A POSITIVE FIELD VALUE. 09310411
935: C 09320411
936: 40230 IF (IVCOMP - 30) 20230, 10230, 20230 09330411
937: 30230 IVDELE = IVDELE + 1 09340411
938: WRITE (I02,80000) IVTNUM 09350411
939: IF (ICZERO) 10230, 0241, 20230 09360411
940: 10230 IVPASS = IVPASS + 1 09370411
941: WRITE (I02,80002) IVTNUM 09380411
942: GO TO 0241 09390411
943: 20230 IVFAIL = IVFAIL + 1 09400411
944: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 09410411
945: 0241 CONTINUE 09420411
946: C 09430411
947: C **** FCVS PROGRAM 411 - TEST 024 **** 09440411
948: C 09450411
949: C 09460411
950: C TEST 024 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 09470411
951: C ARRAY ELEMENT OF REAL TYPE. ONE, TWO, AND THREE 09480411
952: C DIMENSION ARRAYS ARE USED. 09490411
953: C 09500411
954: C 09510411
955: IVTNUM = 24 09520411
956: IF (ICZERO) 30240, 0240, 30240 09530411
957: 0240 CONTINUE 09540411
958: RAON22(2,2) = 0.0 09550411
959: RAON32(1,1,2) = 0.0 09560411
960: IVCORR = 30 09570411
961: IVCOMP = 1 09580411
962: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 09590411
963: 1 RAON12(1), RAON12(2), RAON22(1,2), RAON22(2,2), RAON32(1,1,2), 09600411
964: 2 RAON32(2,1,2), RAON12(7), RAON12(8) 09610411
965: IF (IRECN .EQ. 05) IVCOMP = IVCOMP * 2 09620411
966: IF (RAON22(2,2) .EQ. -7.77) IVCOMP = IVCOMP * 3 09630411
967: IF (RAON32(1,1,2) .EQ. .512 ) IVCOMP = IVCOMP * 5 09640411
968: C 09650411
969: C THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER, A NEGATIVE 09660411
970: C FIELD VALUE AND A POSITIVE FIELD VALUE. 09670411
971: C 09680411
972: 40240 IF (IVCOMP - 30) 20240, 10240, 20240 09690411
973: 30240 IVDELE = IVDELE + 1 09700411
974: WRITE (I02,80000) IVTNUM 09710411
975: IF (ICZERO) 10240, 0251, 20240 09720411
976: 10240 IVPASS = IVPASS + 1 09730411
977: WRITE (I02,80002) IVTNUM 09740411
978: GO TO 0251 09750411
979: 20240 IVFAIL = IVFAIL + 1 09760411
980: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 09770411
981: 0251 CONTINUE 09780411
982: C 09790411
983: C **** FCVS PROGRAM 411 - TEST 025 **** 09800411
984: C 09810411
985: C 09820411
986: C TEST 025 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 09830411
987: C ARRAY ELEMENT OF LOGICAL TYPE. ONE, TWO, AND THREE 09840411
988: C DIMENSION ARRAYS ARE USED. 09850411
989: C 09860411
990: C 09870411
991: C 09880411
992: IVTNUM = 25 09890411
993: IF (ICZERO) 30250, 0250, 30250 09900411
994: 0250 CONTINUE 09910411
995: LAON12(1) = .FALSE. 09920411
996: LAON32(2,1,2) = .TRUE. 09930411
997: IVCORR = 30 09940411
998: IVCOMP = 1 09950411
999: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 09960411
1000: 1 LAON12(1), LAON12(2), LAON22(1,2), LAON22(2,2), LAON32(1,1,2), 09970411
1001: 2 LAON32(2,1,2), LAON12(7), LAON12(8) 09980411
1002: IF (IRECN .EQ. 06) IVCOMP = IVCOMP * 2 09990411
1003: IF (LAON12(1)) IVCOMP = IVCOMP * 3 10000411
1004: IF (.NOT. LAON32(2,1,2)) IVCOMP = IVCOMP * 5 10010411
1005: 40250 IF (IVCOMP - 30) 20250, 10250, 20250 10020411
1006: 30250 IVDELE = IVDELE + 1 10030411
1007: WRITE (I02,80000) IVTNUM 10040411
1008: IF (ICZERO) 10250, 0261, 20250 10050411
1009: 10250 IVPASS = IVPASS + 1 10060411
1010: WRITE (I02,80002) IVTNUM 10070411
1011: GO TO 0261 10080411
1012: 20250 IVFAIL = IVFAIL + 1 10090411
1013: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 10100411
1014: 0261 CONTINUE 10110411
1015: C 10120411
1016: C **** FCVS PROGRAM 411 - TEST 026 **** 10130411
1017: C 10140411
1018: C 10150411
1019: C TEST 026 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 10160411
1020: C ARRAY OF INTEGER TYPE. 10170411
1021: C 10180411
1022: C 10190411
1023: IVTNUM = 26 10200411
1024: IF (ICZERO) 30260, 0260, 30260 10210411
1025: 0260 CONTINUE 10220411
1026: IAON32(2,1,1) = 0 10230411
1027: IAON32(2,2,2) = 0 10240411
1028: IVCORR = 30 10250411
1029: IVCOMP = 1 10260411
1030: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 10270411
1031: 1 IAON32 10280411
1032: IF (IRECN .EQ. 07) IVCOMP = IVCOMP * 2 10290411
1033: IF (IAON32(2,1,1) .EQ. -11) IVCOMP = IVCOMP * 3 10300411
1034: IF (IAON32(2,2,2) .EQ. 32767) IVCOMP = IVCOMP * 5 10310411
1035: C 10320411
1036: C THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER, A NEGATIVE 10330411
1037: C FIELD VALUE AND A POSITIVE FIELD VALUE. 10340411
1038: C 10350411
1039: 40260 IF (IVCOMP - 30) 20260, 10260, 20260 10360411
1040: 30260 IVDELE = IVDELE + 1 10370411
1041: WRITE (I02,80000) IVTNUM 10380411
1042: IF (ICZERO) 10260, 0271, 20260 10390411
1043: 10260 IVPASS = IVPASS + 1 10400411
1044: WRITE (I02,80002) IVTNUM 10410411
1045: GO TO 0271 10420411
1046: 20260 IVFAIL = IVFAIL + 1 10430411
1047: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 10440411
1048: 0271 CONTINUE 10450411
1049: C 10460411
1050: C **** FCVS PROGRAM 411 - TEST 027 **** 10470411
1051: C 10480411
1052: C 10490411
1053: C TEST 027 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 10500411
1054: C ARRAY OF REAL TYPE. 10510411
1055: C 10520411
1056: C 10530411
1057: IVTNUM = 27 10540411
1058: IF (ICZERO) 30270, 0270, 30270 10550411
1059: 0270 CONTINUE 10560411
1060: RAON32(2,1,1) = 0.0 10570411
1061: RAON32(2,2,2) = 0.0 10580411
1062: IVCORR = 30 10590411
1063: IVCOMP = 1 10600411
1064: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 10610411
1065: 1 RAON32 10620411
1066: IF (IRECN .EQ. 08) IVCOMP = IVCOMP * 2 10630411
1067: IF (RAON32(2,1,1) .EQ. -11.) IVCOMP = IVCOMP * 3 10640411
1068: IF (RAON32(2,2,2) .EQ. 32767.) IVCOMP = IVCOMP * 5 10650411
1069: C 10660411
1070: C THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER, A NEGATIVE 10670411
1071: C FIELD VALUE AND A POSITIVE FIELD VALUE. 10680411
1072: C 10690411
1073: 40270 IF (IVCOMP - 30) 20270, 10270, 20270 10700411
1074: 30270 IVDELE = IVDELE + 1 10710411
1075: WRITE (I02,80000) IVTNUM 10720411
1076: IF (ICZERO) 10270, 0281, 20270 10730411
1077: 10270 IVPASS = IVPASS + 1 10740411
1078: WRITE (I02,80002) IVTNUM 10750411
1079: GO TO 0281 10760411
1080: 20270 IVFAIL = IVFAIL + 1 10770411
1081: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 10780411
1082: 0281 CONTINUE 10790411
1083: C 10800411
1084: C **** FCVS PROGRAM 411 - TEST 028 **** 10810411
1085: C 10820411
1086: C 10830411
1087: C TEST 028 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 10840411
1088: C ARRAY OF LOGICAL TYPE. 10850411
1089: C 10860411
1090: C 10870411
1091: IVTNUM = 28 10880411
1092: IF (ICZERO) 30280, 0280, 30280 10890411
1093: 0280 CONTINUE 10900411
1094: LAON32(1,1,1) = .FALSE. 10910411
1095: LAON32(2,2,2) = .TRUE. 10920411
1096: IVCORR = 30 10930411
1097: IVCOMP = 1 10940411
1098: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 10950411
1099: 1 LAON32 10960411
1100: IF (IRECN .EQ. 09) IVCOMP = IVCOMP * 2 10970411
1101: IF (LAON32(1,1,1)) IVCOMP = IVCOMP * 3 10980411
1102: IF (.NOT. LAON32(2,2,2)) IVCOMP = IVCOMP * 5 10990411
1103: 40280 IF (IVCOMP - 30) 20280, 10280, 20280 11000411
1104: 30280 IVDELE = IVDELE + 1 11010411
1105: WRITE (I02,80000) IVTNUM 11020411
1106: IF (ICZERO) 10280, 0291, 20280 11030411
1107: 10280 IVPASS = IVPASS + 1 11040411
1108: WRITE (I02,80002) IVTNUM 11050411
1109: GO TO 0291 11060411
1110: 20280 IVFAIL = IVFAIL + 1 11070411
1111: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 11080411
1112: 0291 CONTINUE 11090411
1113: C 11100411
1114: C **** FCVS PROGRAM 411 - TEST 029 **** 11110411
1115: C 11120411
1116: C 11130411
1117: C TEST 029 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 11140411
1118: C IMPLIED-DO WITH AN ITEM OF INTEGER TYPE. THE STORAGE VALUES IN 11150411
1119: C THE ARRAY (BY THE IMPLIED-DO DURING THE READ) SHOULD RESULT IN A 11160411
1120: C DIFFERENT STORAGE SEQUENCE IN THE ARRAY THAN FOUND IN THE RECORD 11170411
1121: C OF THE FILE. THIS RECORD IS RECORD NUMBER 10 AND WAS CREATED IN 11180411
1122: C TEST 012 ABOVE. THE FIELD VALUE, FIELD POSITION, POSITION WITHIN 11190411
1123: C ARRAY IAON32 AND SUBSCRIPT VALUE AFTER THE READ IS 11200411
1124: C 11210411
1125: C VALUE 11 777 512 -32767 -11 -777 -512 32767 11220411
1126: C FIELD POS 1 3 2 4 5 7 6 8 11230411
1127: C IAON32 1 2 3 4 5 6 7 8 11240411
1128: C SUBSCRIPT 1,1,1 2,1,1 1,2,1 2,2,1 1,1,2 2,1,2 1,2,2 2,2,211250411
1129: C 11260411
1130: C 11270411
1131: IVTNUM = 29 11280411
1132: IF (ICZERO) 30290, 0290, 30290 11290411
1133: 0290 CONTINUE 11300411
1134: IAON32(2,1,1) = 0 11310411
1135: IAON32(2,2,1) = 0 11320411
1136: IVCORR = 30 11330411
1137: IVCOMP = 1 11340411
1138: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 11350411
1139: 1 (((IAON32 (J,K,I), K=1,2), J=1,2), I=1,2) 11360411
1140: IF (IRECN .EQ. 10) IVCOMP = IVCOMP * 2 11370411
1141: IF (IAON32(2,1,1) .EQ. 777) IVCOMP = IVCOMP * 3 11380411
1142: IF (IAON32(2,2,1) .EQ. -32767) IVCOMP = IVCOMP * 5 11390411
1143: C 11400411
1144: C THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER, A NEGATIVE 11410411
1145: C FIELD VALUE AND A POSITIVE FIELD VALUE. 11420411
1146: C 11430411
1147: 40290 IF (IVCOMP - 30) 20290, 10290, 20290 11440411
1148: 30290 IVDELE = IVDELE + 1 11450411
1149: WRITE (I02,80000) IVTNUM 11460411
1150: IF (ICZERO) 10290, 0301, 20290 11470411
1151: 10290 IVPASS = IVPASS + 1 11480411
1152: WRITE (I02,80002) IVTNUM 11490411
1153: GO TO 0301 11500411
1154: 20290 IVFAIL = IVFAIL + 1 11510411
1155: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 11520411
1156: 0301 CONTINUE 11530411
1157: C 11540411
1158: C **** FCVS PROGRAM 411 - TEST 030 **** 11550411
1159: C 11560411
1160: C 11570411
1161: C TEST 030 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 11580411
1162: C IMPLIED-DO WITH AN ITEM OF REAL TYPE. THE STORAGE VALUES IN 11590411
1163: C THE ARRAY (BY THE IMPLIED-DO DURING THE READ) SHOULD RESULT IN A 11600411
1164: C SEQUENCE THE SAME AS FOUND IN THE RECORD OF THE FILE. THIS REC- 11610411
1165: C ORD IS RECORD NUMBER 011 AND WAS CREATED IN TEST 013 ABOVE. 11620411
1166: C THE FIELD VALUE, FIELD POSITION, POSITION WITHIN ARRAY RAON32 AND11630411
1167: C SUBSCRIPT VALUE AFTER THE THE READ IS 11640411
1168: C 11650411
1169: C VALUE 11. -11. 7.77 -7.77 .512 -.512 -32767. 32767.11660411
1170: C FIELD POS 1 2 3 4 5 6 7 8 11670411
1171: C RAON32 1 2 3 4 5 6 7 8 11680411
1172: C SUBSCRIPT 1,1,1 2,1,1 1,2,1 2,2,1 1,1,2 2,1,2 1,2,2 2,2,211690411
1173: C 11700411
1174: C 11710411
1175: IVTNUM = 30 11720411
1176: IF (ICZERO) 30300, 0300, 30300 11730411
1177: 0300 CONTINUE 11740411
1178: RAON32(1,2,1) = 0.0 11750411
1179: RAON32(1,2,2) = 0.0 11760411
1180: IVCORR = 30 11770411
1181: IVCOMP = 1 11780411
1182: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 11790411
1183: 1 (((RAON32 (J,K,I), J=1,2), K=1,2), I=1,2) 11800411
1184: IF (IRECN .EQ. 11) IVCOMP = IVCOMP * 2 11810411
1185: IF (RAON32(1,2,1) .EQ. 7.77) IVCOMP = IVCOMP * 3 11820411
1186: IF (RAON32(1,2,2) .EQ. -32767.) IVCOMP = IVCOMP * 5 11830411
1187: C 11840411
1188: C THE ABOVE 3 IF STATEMENTS CHECK THE RECORD NUMBER, A NEGATIVE 11850411
1189: C FIELD VALUE AND A POSITIVE FIELD VALUE. 11860411
1190: C 11870411
1191: 40300 IF (IVCOMP - 30) 20300, 10300, 20300 11880411
1192: 30300 IVDELE = IVDELE + 1 11890411
1193: WRITE (I02,80000) IVTNUM 11900411
1194: IF (ICZERO) 10300, 0311, 20300 11910411
1195: 10300 IVPASS = IVPASS + 1 11920411
1196: WRITE (I02,80002) IVTNUM 11930411
1197: GO TO 0311 11940411
1198: 20300 IVFAIL = IVFAIL + 1 11950411
1199: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 11960411
1200: 0311 CONTINUE 11970411
1201: C 11980411
1202: C **** FCVS PROGRAM 411 - TEST 031 **** 11990411
1203: C 12000411
1204: C 12010411
1205: C TEST 031 USES A READ STATEMENT WHERE THE INPUT LIST ITEM IS A 12020411
1206: C IMPLIED-DO WITH AN ITEM OF LOGICAL TYPE. THE STORAGE VALUES IN 12030411
1207: C THE ARRAY (BY THE IMPLIED-DO DURING THE READ) SHOULD RESULT IN A 12040411
1208: C DIFFERENT STORAGE SEQUENCE IN THE ARRAY THAN FOUND IN THE RECORD 12050411
1209: C OF THE FILE. THIS RECORD IS RECORD NUMBER 12 AND WAS CREATED IN 12060411
1210: C TEST 014 ABOVE. THE FIELD VALUE, FIELD POSITION, POSITION WITHIN 12070411
1211: C ARRAY LAON32 AND SUBSCRIPT VALUE AFTER THE READ IS 12080411
1212: C 12090411
1213: C VALUE T T F F T T F F 12100411
1214: C FIELD POS 1 5 3 7 2 6 4 8 12110411
1215: C LAON32 1 2 3 4 5 6 7 8 12120411
1216: C SUBSCRIPT 1,1,1 2,1,1 1,2,1 2,2,1 1,1,2 2,1,2 1,2,2 2,2,212130411
1217: C 12140411
1218: C 12150411
1219: IVTNUM = 31 12160411
1220: IF (ICZERO) 30310, 0310, 30310 12170411
1221: 0310 CONTINUE 12180411
1222: LAON32(1,2,1) = .TRUE. 12190411
1223: LAON32(2,1,1) = .FALSE. 12200411
1224: IVCORR = 30 12210411
1225: IVCOMP = 1 12220411
1226: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 12230411
1227: 1 (((LAON32 (J,K,I), I=1,2), K=1,2), J=1,2) 12240411
1228: IF (IRECN .EQ. 12) IVCOMP = IVCOMP * 2 12250411
1229: IF ( .NOT. LAON32(1,2,1)) IVCOMP = IVCOMP * 3 12260411
1230: IF (LAON32(2,1,1)) IVCOMP = IVCOMP * 5 12270411
1231: 40310 IF (IVCOMP - 30) 20310, 10310, 20310 12280411
1232: 30310 IVDELE = IVDELE + 1 12290411
1233: WRITE (I02,80000) IVTNUM 12300411
1234: IF (ICZERO) 10310, 0321, 20310 12310411
1235: 10310 IVPASS = IVPASS + 1 12320411
1236: WRITE (I02,80002) IVTNUM 12330411
1237: GO TO 0321 12340411
1238: 20310 IVFAIL = IVFAIL + 1 12350411
1239: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 12360411
1240: 0321 CONTINUE 12370411
1241: C 12380411
1242: C **** FCVS PROGRAM 411 - TEST 032 **** 12390411
1243: C 12400411
1244: C 12410411
1245: C TEST 032 USES A READ STATEMENT WITHOUT ANY INPUT LIST ITEMS 12420411
1246: C (INPUT LIST ITEMS ARE OPTIONAL FOR THE READ STATEMENT). THIS 12430411
1247: C RECORD WAS WRITTEN IN TEST 15 AND SHOULD BE RECORD NUMBER 13. 12440411
1248: C THE PURPOSE OF THIS TEST IS TO SEE THAT THE STATEMENT CONSTRUCT 12450411
1249: C IS ACCEPTABLE TO THE COMPILER. 12460411
1250: C ALSO THE LENGTH OF AN UNFORMATTED RECORD MAY BE ZERO. 12470411
1251: C 12480411
1252: C SEE SECTIONS 12.1.2, UNFORMATTED RECORDS 12490411
1253: C 12.8, READ, WRITE AND PRINT STATEMENTS12500411
1254: C 12510411
1255: C 12520411
1256: IVTNUM = 32 12530411
1257: IF (ICZERO) 30320, 0320, 30320 12540411
1258: 0320 CONTINUE 12550411
1259: IRECN = 13 12560411
1260: IVCORR = 13 12570411
1261: READ (I04) 12580411
1262: IVCOMP = IRECN 12590411
1263: 40320 IF (IVCOMP - 13) 20320, 10320, 20320 12600411
1264: 30320 IVDELE = IVDELE + 1 12610411
1265: WRITE (I02,80000) IVTNUM 12620411
1266: IF (ICZERO) 10320, 0331, 20320 12630411
1267: 10320 IVPASS = IVPASS + 1 12640411
1268: WRITE (I02,80002) IVTNUM 12650411
1269: GO TO 0331 12660411
1270: 20320 IVFAIL = IVFAIL + 1 12670411
1271: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 12680411
1272: 0331 CONTINUE 12690411
1273: C 12700411
1274: C **** FCVS PROGRAM 411 - TEST 033 **** 12710411
1275: C 12720411
1276: C 12730411
1277: C TEST 033 USES A READ STATEMENT IN WHICH THE NUMBER OF VALUES 12740411
1278: C REQUIRED BY THE INPUT LIST IS LESS THAN THE NUMBER OF VALUES IN 12750411
1279: C THE RECORD. THIS TEST READS RECORD NUMBER 14 WHICH WAS CREATED 12760411
1280: C IN TEST 016. 12770411
1281: C 12780411
1282: C SEE SECTION 12.9.5.1, UNFORMATED DATA TRANSFER 12790411
1283: C 12800411
1284: C 12810411
1285: IVTNUM = 33 12820411
1286: IF (ICZERO) 30330, 0330, 30330 12830411
1287: 0330 CONTINUE 12840411
1288: IVON21 = 0 12850411
1289: IVON22 = 0 12860411
1290: IVON31 = 0 12870411
1291: IVCORR = 0 12880411
1292: IVCOMP = 1 12890411
1293: READ (I04) IPROG, IFILE, ITOTR, IRLGN, IRECN, IEOF, 12900411
1294: 1 IVON21, IVON22, IVON31 12910411
1295: IF (IRECN .EQ. 14) IVCOMP = IVCOMP * 2 12920411
1296: IF (IVON21 .EQ. 11) IVCOMP = IVCOMP * 3 12930411
1297: IF (IVON22 .EQ. -11) IVCOMP = IVCOMP * 5 12940411
1298: 40330 IF (IVCOMP - 30) 20330, 10330, 20330 12950411
1299: 30330 IVDELE = IVDELE + 1 12960411
1300: WRITE (I02,80000) IVTNUM 12970411
1301: IF (ICZERO) 10330, 0341, 20330 12980411
1302: 10330 IVPASS = IVPASS + 1 12990411
1303: WRITE (I02,80002) IVTNUM 13000411
1304: GO TO 0341 13010411
1305: 20330 IVFAIL = IVFAIL + 1 13020411
1306: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 13030411
1307: 0341 CONTINUE 13040411
1308: C 13050411
1309: C 13060411
1310: C THE FOLLOWING TWO TESTS USE THE READ STATEMENT WITH THE 13070411
1311: C END SPECIFIER. 13080411
1312: C 13090411
1313: C 13100411
1314: C 13110411
1315: C **** FCVS PROGRAM 411 - TEST 034 **** 13120411
1316: C 13130411
1317: C 13140411
1318: C TEST 034 USES THE READ STATEMENT WITHOUT ANY I/O LIST ITEMS. 13150411
1319: C THE FILE IS READ UNTIL AN END-OF-FILE CONDITION OCCURS. 13160411
1320: C 13170411
1321: IVTNUM = 34 13180411
1322: IF (ICZERO) 30340, 0340, 30340 13190411
1323: 0340 CONTINUE 13200411
1324: REWIND I04 13210411
1325: C 13220411
1326: IVCOMP = 1 13230411
1327: IVON01 = 0 13240411
1328: IVCORR = 6 13250411
1329: DO 0342 I=1,150 13260411
1330: READ (I04, END = 0343) 13270411
1331: IVON01 = IVON01 + 1 13280411
1332: IF (IVON01 .GT. 150) GO TO 40340 13290411
1333: 0342 CONTINUE 13300411
1334: GO TO 40340 13310411
1335: 0343 IVCOMP = IVCOMP * 2 13320411
1336: IF (IVON01 .EQ. 142) IVCOMP = IVCOMP * 3 13330411
1337: 40340 IF (IVCOMP - 6) 20340, 10340, 20340 13340411
1338: 30340 IVDELE = IVDELE + 1 13350411
1339: WRITE (I02,80000) IVTNUM 13360411
1340: IF (ICZERO) 10340, 0351, 20340 13370411
1341: 10340 IVPASS = IVPASS + 1 13380411
1342: WRITE (I02,80002) IVTNUM 13390411
1343: GO TO 0351 13400411
1344: 20340 IVFAIL = IVFAIL + 1 13410411
1345: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 13420411
1346: 0351 CONTINUE 13430411
1347: C 13440411
1348: C **** FCVS PROGRAM 411 - TEST 035 **** 13450411
1349: C 13460411
1350: C 13470411
1351: C TEST 035 USES THE READ STATEMENT WITH INPUT LIST ITEMS. 13480411
1352: C THE FILE IS READ UNTIL AN END-OF-FILE CONDITION OCCURS. 13490411
1353: C 13500411
1354: C 13510411
1355: IVTNUM = 35 13520411
1356: IF (ICZERO) 30350, 0350, 30350 13530411
1357: 0350 CONTINUE 13540411
1358: REWIND I04 13550411
1359: IVCOMP = 1 13560411
1360: IVCORR = 6 13570411
1361: IVON01 = 0 13580411
1362: IRECCK = 0 13590411
1363: DO 0352 I = 1,150 13600411
1364: IRECCK = IRECCK + 1 13610411
1365: IF (IRECCK .EQ. 13) GO TO 0353 13620411
1366: C TEST 015 WROTE A RECORD WITHOUT ANY I/O LIST ITEMS THEREFORE 13630411
1367: C THE RECORD IS READ WITHOUT ANY I/O LIST ITEMS. 13640411
1368: READ (I04, END = 0354) IPROG, IFILE, ITOTR, IRLGN, IRECN,IEOF 13650411
1369: GO TO 0355 13660411
1370: 0353 READ (I04) 13670411
1371: IVON01 = IVON01 + 1 13680411
1372: 0355 IF (IRECN .EQ. IRECCK) IVON01 = IVON01 + 1 13690411
1373: 0352 CONTINUE 13700411
1374: GO TO 40350 13710411
1375: 0354 IVCOMP = IVCOMP * 2 13720411
1376: IF (IVON01 .EQ. 142) IVCOMP = IVCOMP * 3 13730411
1377: 40350 IF (IVCOMP - 6) 20350, 10350, 20350 13740411
1378: 30350 IVDELE = IVDELE + 1 13750411
1379: WRITE (I02,80000) IVTNUM 13760411
1380: IF (ICZERO) 10350, 0361, 20350 13770411
1381: 10350 IVPASS = IVPASS + 1 13780411
1382: WRITE (I02,80002) IVTNUM 13790411
1383: GO TO 0361 13800411
1384: 20350 IVFAIL = IVFAIL + 1 13810411
1385: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 13820411
1386: 0361 CONTINUE 13830411
1387: C 13840411
1388: C 13850411
1389: C THE FOLLOWING SOURCE CODE BRACKETED BY THE COMMENT LINES 13860411
1390: C ***** BEGIN-FILE-DUMP SECTION AND ***** END-FILE-DUMP SECTION 13870411
1391: C MAY OR MAY NOT APPEAR AS COMMENTS IN THE SOURCE PROGRAM. 13880411
1392: C THIS CODE IS OPTIONAL AND BY DEFAULT IT IS AUTOMATICALLY COMMENTED13890411
1393: C OUT BY THE EXECUTIVE ROUTINE. A DUMP OF THE FILE USED BY THIS 13900411
1394: C ROUTINE IS PROVIDED BY USING THE *OPT1 EXECUTIVE ROUTINE CONTROL 13910411
1395: C CARD. IF THE OPTIONAL CODE IS SELECTED THE ROUTINE WILL DUMP 13920411
1396: C THE CONTENTS OF THE FILE TO THE PRINT FILE FOLLOWING THE TEST 13930411
1397: C REPORT AND BEFORE THE TEST REPORT SUMMARY. 13940411
1398: CDB** BEGIN FILE DUMP CODE 13950411
1399: C REWIND I04 13960411
1400: C ITOTR = 142 13970411
1401: C ILUN = I04 13980411
1402: C IRLGN = 80 13990411
1403: C IRNUM = 1 14000411
1404: C7701 FORMAT (80A1) 14010411
1405: C7702 FORMAT (1X,80A1) 14020411
1406: C7703 FORMAT (10X,5HFILE ,I2,5H HAS ,I3,13H RECORDS - OK) 14030411
1407: C7704 FORMAT (10X,5HFILE ,I2,5H HAS ,I3,27H RECORDS - THERE SHOULD BE ,I14040411
1408: C 13,9H RECORDS.) 14050411
1409: C DO 7771 IRNUM = 1, ITOTR 14060411
1410: C READ (ILUN, END = 7772) (IDUMP(ICH), ICH = 1, IRLGN) 14070411
1411: C WRITE (I02,7702) (IDUMP(ICH), ICH = 1, IRLGN) 14080411
1412: C7771 CONTINUE 14090411
1413: C7772 CONTINUE 14100411
1414: CDE** END OF DUMP CODE 14110411
1415: C TEST 035 IS THE LAST TEST IN THIS PROGRAM. THE ROUTINE SHOULD14120411
1416: C HAVE MADE 35 EXPLICIT TESTS AND PROCESSED ONE FILE CONNECTED FOR 14130411
1417: C SEQUENTIAL ACCESS 14140411
1418: C 14150411
1419: C 14160411
1420: C 14170411
1421: C WRITE OUT TEST SUMMARY 14180411
1422: C 14190411
1423: WRITE (I02,90004) 14200411
1424: WRITE (I02,90014) 14210411
1425: WRITE (I02,90004) 14220411
1426: WRITE (I02,90000) 14230411
1427: WRITE (I02,90004) 14240411
1428: WRITE (I02,90020) IVFAIL 14250411
1429: WRITE (I02,90022) IVPASS 14260411
1430: WRITE (I02,90024) IVDELE 14270411
1431: STOP 14280411
1432: 90001 FORMAT (1H ,24X,5HFM411) 14290411
1433: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM411) 14300411
1434: C 14310411
1435: C FORMATS FOR TEST DETAIL LINES 14320411
1436: C 14330411
1437: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 14340411
1438: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 14350411
1439: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 14360411
1440: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 14370411
1441: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 14380411
1442: C 14390411
1443: C FORMAT STATEMENTS FOR PAGE HEADERS 14400411
1444: C 14410411
1445: 90002 FORMAT (1H1) 14420411
1446: 90004 FORMAT (1H ) 14430411
1447: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 14440411
1448: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 14450411
1449: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 14460411
1450: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 14470411
1451: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 14480411
1452: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 14490411
1453: C 14500411
1454: C FORMAT STATEMENTS FOR RUN SUMMARY 14510411
1455: C 14520411
1456: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 14530411
1457: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 14540411
1458: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 14550411
1459: END 14560411
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.