|
|
1.1 root 1: PROGRAM FM257 00010257
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 00020257
6: C 00030257
7: C 00040257
8: C THIS ROUTINE IS A TEST OF THE PAUSE AND STOP STATEMENTS. THESE00050257
9: C STATEMENTS CAN NOW BE FOLLOWED BY A STRING OF NOT MORE THAN FIVE 00060257
10: C DIGITS, OR A CHARACTER CONSTANT. 00070257
11: C 00080257
12: C REFERENCES 00090257
13: C REFERENCES 00100257
14: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00110257
15: C X3.9-1978 00120257
16: C SECTION 11.12, STOP STATEMENT 00130257
17: C SECTION 11.13, PAUSE STATEMENT 00140257
18: C 00150257
19: C FM015 - TESTS THE STOP AND PAUSE STATEMENTS USING AN OCTAL 00160257
20: C DIGIT STRING OF LENGTH FROM ONE TO FIVE. 00170257
21: C 00180257
22: C 00190257
23: C 00200257
24: C ******************************************************************00210257
25: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00220257
26: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00230257
27: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00240257
28: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00250257
29: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00260257
30: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00270257
31: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00280257
32: C THE RESULT OF EXECUTING THESE TESTS. 00290257
33: C 00300257
34: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00310257
35: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00320257
36: C 00330257
37: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00340257
38: C DEPARTMENT OF THE NAVY 00350257
39: C FEDERAL COBOL COMPILER TESTING SERVICE 00360257
40: C WASHINGTON, D.C. 20376 00370257
41: C 00380257
42: C ******************************************************************00390257
43: C 00400257
44: C 00410257
45: IMPLICIT LOGICAL (L) 00420257
46: IMPLICIT CHARACTER*14 (C) 00430257
47: C 00440257
48: C 00450257
49: C 00460257
50: C INITIALIZATION SECTION. 00470257
51: C 00480257
52: C INITIALIZE CONSTANTS 00490257
53: C ******************** 00500257
54: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00510257
55: I01 = 5 00520257
56: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00530257
57: I02 = 6 00540257
58: C SYSTEM ENVIRONMENT SECTION 00550257
59: C 00560257
60: I01 = 5 00570257
61: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00580257
62: C (UNIT NUMBER FOR CARD READER). 00590257
63: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00600257
64: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00610257
65: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00620257
66: C 00630257
67: I02 = 6 00640257
68: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00650257
69: C (UNIT NUMBER FOR PRINTER). 00660257
70: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00670257
71: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00680257
72: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00690257
73: C 00700257
74: IVPASS = 0 00710257
75: IVFAIL = 0 00720257
76: IVDELE = 0 00730257
77: ICZERO = 0 00740257
78: C 00750257
79: C WRITE OUT PAGE HEADERS 00760257
80: C 00770257
81: WRITE (I02,90002) 00780257
82: WRITE (I02,90006) 00790257
83: WRITE (I02,90008) 00800257
84: WRITE (I02,90004) 00810257
85: WRITE (I02,90010) 00820257
86: WRITE (I02,90004) 00830257
87: WRITE (I02,90016) 00840257
88: WRITE (I02,90001) 00850257
89: WRITE (I02,90004) 00860257
90: WRITE (I02,90012) 00870257
91: WRITE (I02,90014) 00880257
92: WRITE (I02,90004) 00890257
93: C 00900257
94: C 00910257
95: C 00920257
96: C THE FOLLOWING SERIES OF TESTS CHECK THE VARIOUS FORMS OF THE 00930257
97: C PAUSE STATEMENT. IN EACH CASE THE WORD PAUSE (FOLLOWED BY A 00940257
98: C STRING OF CHARACTERS AS NOTED IN EACH TEST DESCRIPTION), SHOULD BE00950257
99: C DISPLAYED ON THE OPERATORS CONSOLE. FOR EACH TEST THE OPERATOR 00960257
100: C NEED ONLY DO WHATEVER IS NESSARY TO TELL THE SYSTEM TO CONTINUE 00970257
101: C THE EXECUTION OF THE ROUTINE. THE STRING FORMS ARE AS DESCRIBED 00980257
102: C IN SECTION 11.13. 00990257
103: C 01000257
104: C 01010257
105: C 01020257
106: C **** FCVS PROGRAM 257 - TEST 001 **** 01030257
107: C 01040257
108: C TEST 001 CHECKS THE PAUSE STATEMENT THAT IS NOT FOLLOWED BY 01050257
109: C A STRING OF ANYTHING EXCEPT BLANKS. ONLY THE WORD PAUSE SHOULD 01060257
110: C BE DISPLAYED. 01070257
111: C 01080257
112: C 01090257
113: IVTNUM = 1 01100257
114: IF (ICZERO) 30010, 0010, 30010 01110257
115: 0010 CONTINUE 01120257
116: PAUSE 01130257
117: C 01140257
118: C ***** THESE CARDS INITIALIZE IVCOMP AND IVCORR FOR THE NEXT 01150257
119: C FIVE TESTS EVEN THOUGH THEY ONLY APPEAR IN THE FAIL CODE 01160257
120: C OF THE BOILERPLATE.***** 01170257
121: IVCOMP = 1 01180257
122: IVCORR = 1 01190257
123: C 01200257
124: C 01210257
125: 40010 IF ( ICZERO ) 20010, 10010, 20010 01220257
126: 30010 IVDELE = IVDELE + 1 01230257
127: WRITE (I02,80000) IVTNUM 01240257
128: IF (ICZERO) 10010, 0021, 20010 01250257
129: 10010 IVPASS = IVPASS + 1 01260257
130: WRITE (I02,80002) IVTNUM 01270257
131: GO TO 0021 01280257
132: 20010 IVFAIL = IVFAIL + 1 01290257
133: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01300257
134: 0021 CONTINUE 01310257
135: C 01320257
136: C **** FCVS PROGRAM 257 - TEST 002 **** 01330257
137: C 01340257
138: C TEST 002 SHOULD DISPLAY THE WORD PAUSE FOLLOWED BY A SINGLE 01350257
139: C CHARACTER ZERO (0). 01360257
140: C 01370257
141: C 01380257
142: IVTNUM = 2 01390257
143: IF (ICZERO) 30020, 0020, 30020 01400257
144: 0020 CONTINUE 01410257
145: PAUSE 0 01420257
146: 40020 IF ( ICZERO ) 20020, 10020, 20020 01430257
147: 30020 IVDELE = IVDELE + 1 01440257
148: WRITE (I02,80000) IVTNUM 01450257
149: IF (ICZERO) 10020, 0031, 20020 01460257
150: 10020 IVPASS = IVPASS + 1 01470257
151: WRITE (I02,80002) IVTNUM 01480257
152: GO TO 0031 01490257
153: 20020 IVFAIL = IVFAIL + 1 01500257
154: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01510257
155: 0031 CONTINUE 01520257
156: C 01530257
157: C **** FCVS PROGRAM 257 - TEST 003 **** 01540257
158: C 01550257
159: C TEST 003 SHOULD DISPLAY THE WORD PAUSE FOLLOWED BY A STRING OF 01560257
160: C FIVE ZEROS (00000). 01570257
161: C 01580257
162: C 01590257
163: IVTNUM = 3 01600257
164: IF (ICZERO) 30030, 0030, 30030 01610257
165: 0030 CONTINUE 01620257
166: PAUSE 00000 01630257
167: 40030 IF ( ICZERO ) 20030, 10030, 20030 01640257
168: 30030 IVDELE = IVDELE + 1 01650257
169: WRITE (I02,80000) IVTNUM 01660257
170: IF (ICZERO) 10030, 0041, 20030 01670257
171: 10030 IVPASS = IVPASS + 1 01680257
172: WRITE (I02,80002) IVTNUM 01690257
173: GO TO 0041 01700257
174: 20030 IVFAIL = IVFAIL + 1 01710257
175: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01720257
176: 0041 CONTINUE 01730257
177: C 01740257
178: C **** FCVS PROGRAM 257 - TEST 004 **** 01750257
179: C 01760257
180: C TEST 004 SHOULD DISPLAY THE WORD PAUSE FOLLOWED BY THE STRING 01770257
181: C OF FIVE CHARACTERS 19283. 01780257
182: C 01790257
183: C 01800257
184: IVTNUM = 4 01810257
185: IF (ICZERO) 30040, 0040, 30040 01820257
186: 0040 CONTINUE 01830257
187: PAUSE 19283 01840257
188: 40040 IF ( ICZERO ) 20040, 10040, 20040 01850257
189: 30040 IVDELE = IVDELE + 1 01860257
190: WRITE (I02,80000) IVTNUM 01870257
191: IF (ICZERO) 10040, 0051, 20040 01880257
192: 10040 IVPASS = IVPASS + 1 01890257
193: WRITE (I02,80002) IVTNUM 01900257
194: GO TO 0051 01910257
195: 20040 IVFAIL = IVFAIL + 1 01920257
196: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01930257
197: 0051 CONTINUE 01940257
198: C 01950257
199: C **** FCVS PROGRAM 257 - TEST 005 **** 01960257
200: C 01970257
201: C TEST 005 SHOULD DISPLAY THE WORD PAUSE FOLLOWED BY THE STRING 01980257
202: C OF FOUR NINES (9999). 01990257
203: C 02000257
204: C 02010257
205: IVTNUM = 5 02020257
206: IF (ICZERO) 30050, 0050, 30050 02030257
207: 0050 CONTINUE 02040257
208: PAUSE 9999 02050257
209: 40050 IF ( ICZERO ) 20050, 10050, 20050 02060257
210: 30050 IVDELE = IVDELE + 1 02070257
211: WRITE (I02,80000) IVTNUM 02080257
212: IF (ICZERO) 10050, 0061, 20050 02090257
213: 10050 IVPASS = IVPASS + 1 02100257
214: WRITE (I02,80002) IVTNUM 02110257
215: GO TO 0061 02120257
216: 20050 IVFAIL = IVFAIL + 1 02130257
217: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02140257
218: 0061 CONTINUE 02150257
219: C 02160257
220: C **** FCVS PROGRAM 257 - TEST 006 **** 02170257
221: C 02180257
222: C TEST 006 IS FOR THE STOP STATEMENT - SECTION 11.12. 02190257
223: C SINCE THE STOP STATEMENT CAN ONLY BE EXECUTED ONCE IN A PROGRAM 02200257
224: C UNIT, VARIOUS FORMATS OF THE STOP STATEMENT WILL BE CHECKED FOR 02210257
225: C SYNTAX ONLY BY THE USE OF A COMPUTED GO TO STATEMENT. 02220257
226: C 02230257
227: C ONCE THE STOP STATEMENT HAS BEEN EXECUTED, THEN THE ROUTINE 02240257
228: C FM257 SHOULD NO LONGER EXECUTE. ANY CONTINUATION IS CONSIDERED AS02250257
229: C A FAILURE OF THIS TEST. 02260257
230: C 02270257
231: C 02280257
232: IVTNUM = 6 02290257
233: IF (ICZERO) 30060, 0060, 30060 02300257
234: 0060 CONTINUE 02310257
235: IVON01 = 6 02320257
236: GO TO ( 0062, 0063, 0064, 0065, 0066, 0067, 40060 ), IVON01 02330257
237: C 02340257
238: 0062 STOP 0 02350257
239: 0063 STOP 00000 02360257
240: 0064 STOP 12345 02370257
241: 0065 STOP 9999 02380257
242: 0066 STOP 'IMA 1' 02390257
243: 0067 STOP 'P ASS' 02400257
244: C 02410257
245: C **** THE TEST FAILS IF IT GOES BEYOND THE STOP STATEMENTS ****02420257
246: C 02430257
247: 40060 IF ( ICZERO ) 10060, 20060, 10060 02440257
248: C ***** NOTE THAT THE NORMAL PASS-10060 AND FAIL-20060 LABELS 02450257
249: C ARE REVERSED BECAUSE IF THE LOGIC EXECUTES THIS STATEMENT 02460257
250: C THEN THE STOP STATEMENT FAILS TO EXECUTE CORRECTLY. ***** 02470257
251: 30060 IVDELE = IVDELE + 1 02480257
252: WRITE (I02,80000) IVTNUM 02490257
253: IF (ICZERO) 10060, 0071, 20060 02500257
254: 10060 IVPASS = IVPASS + 1 02510257
255: WRITE (I02,80002) IVTNUM 02520257
256: GO TO 0071 02530257
257: 20060 IVFAIL = IVFAIL + 1 02540257
258: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02550257
259: 0071 CONTINUE 02560257
260: C 02570257
261: C 02580257
262: C WRITE OUT TEST SUMMARY 02590257
263: C 02600257
264: WRITE (I02,90004) 02610257
265: WRITE (I02,90014) 02620257
266: WRITE (I02,90004) 02630257
267: WRITE (I02,90000) 02640257
268: WRITE (I02,90004) 02650257
269: WRITE (I02,90020) IVFAIL 02660257
270: WRITE (I02,90022) IVPASS 02670257
271: WRITE (I02,90024) IVDELE 02680257
272: STOP 02690257
273: 90001 FORMAT (1H ,24X,5HFM257) 02700257
274: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM257) 02710257
275: C 02720257
276: C FORMATS FOR TEST DETAIL LINES 02730257
277: C 02740257
278: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 02750257
279: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 02760257
280: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 02770257
281: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 02780257
282: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 02790257
283: C 02800257
284: C FORMAT STATEMENTS FOR PAGE HEADERS 02810257
285: C 02820257
286: 90002 FORMAT (1H1) 02830257
287: 90004 FORMAT (1H ) 02840257
288: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 02850257
289: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 02860257
290: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 02870257
291: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 02880257
292: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 02890257
293: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 02900257
294: C 02910257
295: C FORMAT STATEMENTS FOR RUN SUMMARY 02920257
296: C 02930257
297: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 02940257
298: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 02950257
299: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 02960257
300: END 02970257
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.