|
|
1.1 root 1: C COMMENT SECTION 00010005
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 00020005
6: C FM005 00030005
7: C 00040005
8: C THIS ROUTINE TESTS THE BASIC ASSUMPTIONS REGARDING THE SIMPLE 00050005
9: C FORMATTED WRITE STATEMENT OF FORM 00060005
10: C WRITE (U,F) OR 00070005
11: C WRITE (U,F) L 00080005
12: C WHERE U IS A LOGICAL UNIT NUMBER 00090005
13: C F IS A FORMAT STATEMENT LABEL, AND 00100005
14: C L IS A LIST OF INTEGER VARIABLES. 00110005
15: C THE FORMAT STATEMENT F CONTAINS NH HOLLERITH FIELD DESCRIPTORS, 00120005
16: C NX BLANK FIELD DESCRIPTORS AND IW NUMERIC FIELD DESCRIPTORS. 00130005
17: C 00140005
18: C THIS ROUTINE TESTS WHETHER THE FIRST CHARACTER OF A FORMAT 00150005
19: C RECORD FOR PRINTER OUTPUT DETERMINES VERTICAL SPACING AS FOLLOWS 00160005
20: C BLANK - ONE LINE 00170005
21: C 1 - ADVANCE TO FIRST LINE OF NEXT PAGE 00180005
22: C 00190005
23: C REFERENCES 00200005
24: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00210005
25: C X3.9-1978 00220005
26: C 00230005
27: C SECTION 12.8.2, INPUT/OUTPUT LISTS 00240005
28: C SECTION 12.9.5.2, READ, WRITE, AND PRINT STATEMENT 00250005
29: C SECTION 12.9.5.2.3, PRINTING OF FORMATTED RECORDS 00260005
30: C SECTION 13.5.2, H EDITING 00270005
31: C SECTION 13.5.3.2, X EDITING 00280005
32: C SECTION 13.5.9.1, NUMERIC EDITING 00290005
33: C 00300005
34: C ALL OF THE RESULTS OF THIS ROUTINE MUST BE VISUALLY CHECKED 00310005
35: C ON THE OUTPUT REPORT. THE USUAL TEST CODE FOR PASS, FAIL, OR 00320005
36: C DELETE DOES NOT APPLY TO THIS ROUTINE. IF ANY TEST IS TO BE 00330005
37: C DELETED, CHANGE THE OFFENDING WRITE OR FORMAT STATEMENT TO A 00340005
38: C COMMENT. THE PERSON RESPONSIBLE FOR CHECKING THE OUTPUT MUST ALSO00350005
39: C CHECK THE COMPILER LISTING TO SEE IF ANY STATEMENTS HAVE BEEN 00360005
40: C CHANGED TO COMMENTS. 00370005
41: C 00380005
42: C ********************************************************** 00390005
43: C 00400005
44: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00410005
45: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00420005
46: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00430005
47: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00440005
48: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00450005
49: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00460005
50: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00470005
51: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00480005
52: C OF EXECUTING THESE TESTS. 00490005
53: C 00500005
54: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00510005
55: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00520005
56: C 00530005
57: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00540005
58: C 00550005
59: C DEPARTMENT OF THE NAVY 00560005
60: C FEDERAL COBOL COMPILER TESTING SERVICE 00570005
61: C WASHINGTON, D.C. 20376 00580005
62: C 00590005
63: C ********************************************************** 00600005
64: C 00610005
65: C 00620005
66: C 00630005
67: C INITIALIZATION SECTION 00640005
68: C 00650005
69: C INITIALIZE CONSTANTS 00660005
70: C ************** 00670005
71: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00680005
72: I01 = 5 00690005
73: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00700005
74: I02 = 6 00710005
75: C SYSTEM ENVIRONMENT SECTION 00720005
76: C 00730005
77: I01 = 5 00740005
78: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00750005
79: C (UNIT NUMBER FOR CARD READER). 00760005
80: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00770005
81: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00780005
82: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00790005
83: C 00800005
84: I02 = 6 00810005
85: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00820005
86: C (UNIT NUMBER FOR PRINTER). 00830005
87: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00840005
88: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00850005
89: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00860005
90: C 00870005
91: IVPASS=0 00880005
92: IVFAIL=0 00890005
93: IVDELE=0 00900005
94: ICZERO=0 00910005
95: C 00920005
96: C WRITE PAGE HEADERS 00930005
97: WRITE (I02,90000) 00940005
98: WRITE (I02,90001) 00950005
99: WRITE (I02,90002) 00960005
100: WRITE (I02, 90002) 00970005
101: WRITE (I02,90003) 00980005
102: WRITE (I02,90002) 00990005
103: WRITE (I02,90004) 01000005
104: WRITE (I02,90002) 01010005
105: WRITE (I02,90011) 01020005
106: WRITE (I02,90002) 01030005
107: WRITE (I02,90002) 01040005
108: WRITE (I02,90006) 01050005
109: WRITE (I02,90002) 01060005
110: 331 CONTINUE 01070005
111: IVTNUM = 33 01080005
112: C 01090005
113: C **** TEST 033 **** 01100005
114: C TEST 33 - VERTICAL SPACING TEST 01110005
115: C 1 IN FIRST CHARACTER OF FORMATTED PRINT RECORD MEANS 01120005
116: C RECORD IS FIRST LINE AT TOP OF NEXT PAGE. 01130005
117: C 01140005
118: WRITE (I02,80001) IVTNUM 01150005
119: WRITE (I02,80331) 01160005
120: 80331 FORMAT (5X,22HLAST LINE ON THIS PAGE) 01170005
121: WRITE (I02,80330) 01180005
122: 80330 FORMAT (1H1,31H THIS IS FIRST LINE ON PAGE) 01190005
123: 341 CONTINUE 01200005
124: IVTNUM = 34 01210005
125: C 01220005
126: C **** TEST 034 **** 01230005
127: C TEST 34 - VERTICAL SPACING TEST 01240005
128: C PRINT BLANK LINES 01250005
129: C 01260005
130: WRITE (I02,90002) 01270005
131: WRITE (I02,80001) IVTNUM 01280005
132: WRITE (I02,80340) 01290005
133: 80340 FORMAT (1H , 10X) 01300005
134: WRITE (I02,80341) 01310005
135: 80341 FORMAT (41H THERE IS ONE BLANK LINE BEFORE THIS LINE) 01320005
136: WRITE (I02,80342) 01330005
137: WRITE (I02,80342) 01340005
138: 80342 FORMAT (11H ) 01350005
139: WRITE (I02,80343) 01360005
140: 80343 FORMAT (43H THERE ARE TWO BLANK LINES BEFORE THIS LINE) 01370005
141: WRITE (I02,80344) 01380005
142: WRITE (I02,80344) 01390005
143: WRITE (I02,80344) 01400005
144: 80344 FORMAT (11X) 01410005
145: WRITE (I02,80345) 01420005
146: 80345 FORMAT (45H THERE ARE THREE BLANK LINES BEFORE THIS LINE) 01430005
147: 351 CONTINUE 01440005
148: IVTNUM = 35 01450005
149: C 01460005
150: C **** TEST 035 **** 01470005
151: C TEST 35 - PRINT 54 CHARACTERS 01480005
152: C 01490005
153: WRITE (I02,90002) 01500005
154: WRITE (I02,80001)IVTNUM 01510005
155: WRITE (I02,80351) 01520005
156: 80351 FORMAT (33H NEXT LINE CONTAINS 54 CHARACTERS) 01530005
157: WRITE (I02,80350) 01540005
158: 80350 FORMAT(55H 123456789012345678901234567890123456789012345678901234)01550005
159: 361 CONTINUE 01560005
160: IVTNUM = 36 01570005
161: C 01580005
162: C **** TEST 036 **** 01590005
163: C TEST 36 - NUMERIC FIELD DESCRIPTOR I1 01600005
164: C 01610005
165: WRITE (I02,90000) 01620005
166: WRITE (I02,90002) 01630005
167: WRITE (I02,80001) IVTNUM 01640005
168: WRITE (I02,80361) 01650005
169: 80361 FORMAT (1H ,10X,38HTHIS TEST PRINTS 3 UNDER I1 DESCRIPTOR) 01660005
170: IVON01 = 3 01670005
171: WRITE (I02,80360) IVON01 01680005
172: 80360 FORMAT (1H ,10X,I1) 01690005
173: 371 CONTINUE 01700005
174: IVTNUM = 37 01710005
175: C 01720005
176: C **** TEST 037 **** 01730005
177: C TEST 37 - NUMERIC FIELD DESCRIPTOR I2 01740005
178: C 01750005
179: WRITE (I02,90002) 01760005
180: WRITE (I02,80001) IVTNUM 01770005
181: WRITE (I02,80371) 01780005
182: 80371 FORMAT (11X,39HTHIS TEST PRINTS 15 UNDER I2 DESCRIPTOR) 01790005
183: IVON01 = 15 01800005
184: WRITE (I02,80370) IVON01 01810005
185: 80370 FORMAT (1H ,10X,I2) 01820005
186: 381 CONTINUE 01830005
187: IVTNUM = 38 01840005
188: C 01850005
189: C **** TEST 038 **** 01860005
190: C TEST 38 - NUMERIC FIELD DESCRIPTOR I3 01870005
191: C 01880005
192: WRITE (I02,90002) 01890005
193: WRITE (I02,80001) IVTNUM 01900005
194: WRITE (I02,80381) 01910005
195: 80381 FORMAT (11X,40HTHIS TEST PRINTS 291 UNDER I3 DESCRIPTOR) 01920005
196: IVON01 = 291 01930005
197: WRITE (I02,80380) IVON01 01940005
198: 80380 FORMAT (11X,I3) 01950005
199: 391 CONTINUE 01960005
200: IVTNUM = 39 01970005
201: C 01980005
202: C **** TEST 039 **** 01990005
203: C TEST 39 - NUMERIC FIELD DESCRIPTOR I4 02000005
204: C 02010005
205: WRITE (I02,90002) 02020005
206: WRITE (I02,80001) IVTNUM 02030005
207: WRITE (I02,80391) 02040005
208: 80391 FORMAT (11X,41HTHIS TEST PRINTS 4321 UNDER I4 DESCRIPTOR) 02050005
209: IVON01 = 4321 02060005
210: WRITE (I02,80390) IVON01 02070005
211: 80390 FORMAT (11X,I4) 02080005
212: 401 CONTINUE 02090005
213: IVTNUM = 40 02100005
214: C 02110005
215: C **** TEST 040 **** 02120005
216: C TEST 40 - NUMERIC FIELD DESCRIPTOR I5 02130005
217: C 02140005
218: WRITE (I02,90002) 02150005
219: WRITE (I02,80001) IVTNUM 02160005
220: WRITE (I02,80401) 02170005
221: 80401 FORMAT (1H ,10X,42HTHIS TEST PRINTS 12345 UNDER I5 DESCRIPTOR) 02180005
222: IVON01 = 12345 02190005
223: WRITE (I02,80400) IVON01 02200005
224: 80400 FORMAT (1H ,10X,I5) 02210005
225: 411 CONTINUE 02220005
226: IVTNUM = 41 02230005
227: C 02240005
228: C **** TEST 041 **** 02250005
229: C TEST 41 - NUMERIC FIELD DESCRIPTORS, INTEGER CONVERSION 02260005
230: C 02270005
231: IVON01 = 1 02280005
232: IVON02 = 22 02290005
233: IVON03 = 333 02300005
234: IVON04 = 4444 02310005
235: IVON05 = 25555 02320005
236: WRITE (I02,90002) 02330005
237: WRITE (I02,80001) IVTNUM 02340005
238: WRITE (I02,80411) 02350005
239: 80411 FORMAT (3X,50HTHIS TEST PRINTS 1, 22, 333, 4444, AND 25555 UNDER) 02360005
240: WRITE (I02,80412) 02370005
241: 80412 FORMAT (10X,32H(10X,I1,3X,I2,3X,I3,3X,I4,3X,I5)) 02380005
242: WRITE (I02,80410) IVON01, IVON02, IVON03, IVON04, IVON05 02390005
243: 80410 FORMAT (10X,I1,3X,I2,3X,I3,3X,I4,3X,I5) 02400005
244: 421 CONTINUE 02410005
245: IVTNUM = 42 02420005
246: C 02430005
247: C **** TEST 042 **** 02440005
248: C TEST 42 - HOLLERITH, NUMERIC AND X FIELD DESCRIPTORS 02450005
249: C COMBINE HOLLERITH, NUMERIC AND X FIELD DESCRIPTORS IN 02460005
250: C ONE FORMAT STATEMENT 02470005
251: C 02480005
252: IVON01=113 02490005
253: IVON02=8 02500005
254: WRITE (I02,90002) 02510005
255: WRITE (I02,80001) IVTNUM 02520005
256: WRITE (I02,80421) 02530005
257: 80421 FORMAT (10X,28HNEXT TWO LINES ARE IDENTICAL) 02540005
258: WRITE (I02,80422) 02550005
259: 80422 FORMAT (35H IVON01 = 113 IVON02 = 8) 02560005
260: WRITE (I02,80420) IVON01, IVON02 02570005
261: 80420 FORMAT (6X,8HIVON01 =,I5,3X,8HIVON02 =,I5) 02580005
262: 431 CONTINUE 02590005
263: IVTNUM=43 02600005
264: C 02610005
265: C **** TEST 043 **** 02620005
266: C TEST 43 - NUMERIC FIELD DESCRIPTOR I2 02630005
267: C PRINT NEGATIVE INTEGER 02640005
268: C 02650005
269: IVON01 = -1 02660005
270: WRITE (I02,90000) 02670005
271: WRITE (I02,90002) 02680005
272: WRITE (I02,80001) IVTNUM 02690005
273: WRITE (I02,80431) 02700005
274: 80431 FORMAT (11X,39HTHIS TEST PRINTS -1 UNDER I2 DESCRIPTOR) 02710005
275: WRITE (I02,80430) IVON01 02720005
276: 80430 FORMAT (11X,I2) 02730005
277: 441 CONTINUE 02740005
278: IVTNUM = 44 02750005
279: C 02760005
280: C **** TEST 044 **** 02770005
281: C TEST 44 - NUMERIC FIELD DESCRIPTOR I3 02780005
282: C PRINT NEGATIVE INTEGER 02790005
283: C 02800005
284: IVON01 = -22 02810005
285: WRITE (I02,90002) 02820005
286: WRITE (I02,80001) IVTNUM 02830005
287: WRITE (I02,80441) 02840005
288: 80441 FORMAT (11X,40HTHIS TEST PRINTS -22 UNDER I3 DESCRIPTOR) 02850005
289: WRITE (I02,80440) IVON01 02860005
290: 80440 FORMAT (11X,I3) 02870005
291: 451 CONTINUE 02880005
292: IVTNUM = 45 02890005
293: C 02900005
294: C **** TEST 045 **** 02910005
295: C TEST 45 - NUMERIC FIELD DESCRIPTOR I4 02920005
296: C PRINT NEGATIVE INTEGER 02930005
297: C 02940005
298: IVON01 = -333 02950005
299: WRITE (I02,90002) 02960005
300: WRITE (I02,80001) IVTNUM 02970005
301: WRITE (I02,80451) 02980005
302: 80451 FORMAT (11X,41HTHIS TEST PRINTS -333 UNDER I4 DESCRIPTOR) 02990005
303: WRITE (I02,80450) IVON01 03000005
304: 80450 FORMAT (11X,I4) 03010005
305: 461 CONTINUE 03020005
306: IVTNUM = 46 03030005
307: C 03040005
308: C **** TEST 046 **** 03050005
309: C TEST 46 - NUMERIC FIELD DESCRIPTOR I5 03060005
310: C PRINT NEGATIVE INTEGER 03070005
311: C 03080005
312: IVON01 = -4444 03090005
313: WRITE (I02,90002) 03100005
314: WRITE (I02,80001) IVTNUM 03110005
315: WRITE (I02,80461) 03120005
316: 80461 FORMAT (11X,42HTHIS TEST PRINTS -4444 UNDER I5 DESCRIPTOR) 03130005
317: WRITE (I02,80460) IVON01 03140005
318: 80460 FORMAT (11X,I5) 03150005
319: 471 CONTINUE 03160005
320: IVTNUM = 47 03170005
321: C 03180005
322: C **** TEST 047 **** 03190005
323: C TEST 47 - NUMERIC FIELD DESCRIPTOR I6 03200005
324: C PRINT NEGATIVE INTEGER 03210005
325: C 03220005
326: IVON01 = -15555 03230005
327: WRITE (I02,90002) 03240005
328: WRITE (I02,80001) IVTNUM 03250005
329: WRITE (I02,80471) 03260005
330: 80471 FORMAT (11X,43HTHIS TEST PRINTS -15555 UNDER DESCRIPTOR I6) 03270005
331: WRITE (I02,80470) IVON01 03280005
332: 80470 FORMAT (11X,I6) 03290005
333: 481 CONTINUE 03300005
334: IVTNUM = 48 03310005
335: C 03320005
336: C **** TEST 048 **** 03330005
337: C TEST 48 - NUMERIC FIELD DESCRIPTORS, INTEGER CONVERSION 03340005
338: C PRINT NEGATIVE INTEGERS 03350005
339: C 03360005
340: IVON01 = -9 03370005
341: IVON02 = -88 03380005
342: IVON03 = -777 03390005
343: IVON04 = -6666 03400005
344: IVON05 = -25555 03410005
345: WRITE (I02,90002) 03420005
346: WRITE (I02,80001) IVTNUM 03430005
347: WRITE (I02,80481) 03440005
348: 80481 FORMAT (8X,49HTHIS TEST PRINTS -9, -88, -777, -6666, AND -25555) 03450005
349: WRITE (I02,80482) 03460005
350: 80482 FORMAT (11X,43HUNDER FORMAT 10X,I2,3X,I3,3X,I4,3X,I5,3X,I6) 03470005
351: WRITE (I02,80480) IVON01,IVON02,IVON03,IVON04,IVON05 03480005
352: 80480 FORMAT (10X,I2,3X,I3,3X,I4,3X,I5,3X,I6) 03490005
353: 491 CONTINUE 03500005
354: IVTNUM = 49 03510005
355: C 03520005
356: C **** TEST 049 **** 03530005
357: C TEST 49 - NUMERIC FIELD DESCRIPTOR I5 03540005
358: C MIX POSITIVE AND NEGATIVE INTEGER OUTPUT IN ONE FORMAT 03550005
359: C STATEMENT ALL UNDER I5 DESCRIPTOR 03560005
360: C 03570005
361: IVON01 =5 03580005
362: IVON02 = -54 03590005
363: IVON03 = 543 03600005
364: IVON04 = -5432 03610005
365: IVON05=32000 03620005
366: WRITE (I02,90002) 03630005
367: WRITE (I02,80001) IVTNUM 03640005
368: WRITE (I02,80491) 03650005
369: 80491 FORMAT (18X,46HTHIS TEST PRINTS 5, -54, 543, -5432, AND 32000) 03660005
370: WRITE (I02,80492) 03670005
371: 80492 FORMAT (11X,33HUNDER I5 NUMERIC FIELD DESCRIPTOR) 03680005
372: WRITE (I02,80490) IVON01,IVON02,IVON03,IVON04,IVON05 03690005
373: 80490 FORMAT (11X,I5,3X,I5,3X,I5,3X,I5,3X,I5) 03700005
374: C 03710005
375: C WRITE PAGE FOOTINGS 03720005
376: 99999 CONTINUE 03730005
377: WRITE (I02,90002) 03740005
378: WRITE (I02,90006) 03750005
379: WRITE (I02,90002) 03760005
380: WRITE (I02,90007) 03770005
381: C 03780005
382: C TERMINATE ROUTINE EXECUTION 03790005
383: STOP 03800005
384: C 03810005
385: C FORMAT STATEMENTS FOR PAGE HEADERS 03820005
386: 90000 FORMAT (1H1) 03830005
387: 90002 FORMAT (1H ) 03840005
388: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 03850005
389: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 03860005
390: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 03870005
391: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 03880005
392: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 03890005
393: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 03900005
394: C FORMAT STATEMENTS FOR THIS ROUTINE 03910005
395: 80001 FORMAT (10X,5HTEST ,I2) 03920005
396: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM005) 03930005
397: END 03940005
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.