|
|
1.1 root 1: C 00010050
2: C DATE***82/08/02*18.33.46
3: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/
4: C AUDIT FCVS78 V2.0
5: C COMMENT SECTION 00020050
6: C 00030050
7: C FM050 00040050
8: C 00050050
9: C THIS ROUTINE CONTAINS BASIC SUBROUTINE AND FUNCTION REFERENCE00060050
10: C TESTS. FOUR SUBROUTINES AND ONE FUNCTION ARE CALLED OR 00070050
11: C REFERENCED. FS051 IS CALLED TO TEST THE CALLING AND PASSING OF 00080050
12: C ARGUMENTS THROUGH UNLABELED COMMON. NO ARGUMENTS ARE SPECIFIED 00090050
13: C IN THE CALL LINE. FS052 IS IDENTICAL TO FS051 EXCEPT THAT SEVERAL00100050
14: C RETURNS ARE USED. FS053 UTILIZES MANY ARGUMENTS ON THE CALL 00110050
15: C STATEMENT AND MANY RETURN STATEMENTS IN THE SUBROUTINE BODY. 00120050
16: C FF054 IS A FUNCTION SUBROUTINE IN WHICH MANY ARGUMENTS AND RETURN 00130050
17: C STATEMENTS ARE USED. AND FINALLY FS055 PASSES A ONE DIMENIONAL 00140050
18: C ARRAY BACK TO FM050. 00150050
19: C 00160050
20: C REFERENCES 00170050
21: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00180050
22: C X3.9-1978 00190050
23: C 00200050
24: C SECTION 15.5.2, REFERENCING AN EXTERNAL FUNCTION 00210050
25: C SECTION 15.6.2, SUBROUTINE REFERENCE 00220050
26: C 00230050
27: COMMON RVCN01,IVCN01,IVCN02,IACN11(20) 00240050
28: INTEGER FF054 00250050
29: C 00260050
30: C ********************************************************** 00270050
31: C 00280050
32: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00290050
33: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00300050
34: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00310050
35: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00320050
36: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00330050
37: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00340050
38: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00350050
39: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00360050
40: C OF EXECUTING THESE TESTS. 00370050
41: C 00380050
42: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00390050
43: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00400050
44: C 00410050
45: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00420050
46: C 00430050
47: C DEPARTMENT OF THE NAVY 00440050
48: C FEDERAL COBOL COMPILER TESTING SERVICE 00450050
49: C WASHINGTON, D.C. 20376 00460050
50: C 00470050
51: C ********************************************************** 00480050
52: C 00490050
53: C 00500050
54: C 00510050
55: C INITIALIZATION SECTION 00520050
56: C 00530050
57: C INITIALIZE CONSTANTS 00540050
58: C ************** 00550050
59: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00560050
60: I01 = 5 00570050
61: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00580050
62: I02 = 6 00590050
63: C SYSTEM ENVIRONMENT SECTION 00600050
64: C 00610050
65: I01 = 5 00620050
66: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00630050
67: C (UNIT NUMBER FOR CARD READER). 00640050
68: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00650050
69: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00660050
70: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00670050
71: C 00680050
72: I02 = 6 00690050
73: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00700050
74: C (UNIT NUMBER FOR PRINTER). 00710050
75: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00720050
76: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00730050
77: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00740050
78: C 00750050
79: IVPASS=0 00760050
80: IVFAIL=0 00770050
81: IVDELE=0 00780050
82: ICZERO=0 00790050
83: C 00800050
84: C WRITE PAGE HEADERS 00810050
85: WRITE (I02,90000) 00820050
86: WRITE (I02,90001) 00830050
87: WRITE (I02,90002) 00840050
88: WRITE (I02, 90002) 00850050
89: WRITE (I02,90003) 00860050
90: WRITE (I02,90002) 00870050
91: WRITE (I02,90004) 00880050
92: WRITE (I02,90002) 00890050
93: WRITE (I02,90011) 00900050
94: WRITE (I02,90002) 00910050
95: WRITE (I02,90002) 00920050
96: WRITE (I02,90005) 00930050
97: WRITE (I02,90006) 00940050
98: WRITE (I02,90002) 00950050
99: C TEST SECTION 00960050
100: C 00970050
101: C SUBROUTINE AND FUNCTION SUBPROGRAMS 00980050
102: C 00990050
103: 4001 CONTINUE 01000050
104: IVTNUM = 400 01010050
105: C 01020050
106: C **** TEST 400 **** 01030050
107: C TEST 400 TESTS THE CALL TO A SUBROUTINE CONTAINING NO ARGUMENTS. 01040050
108: C ALL PARAMETERS ARE PASSED THROUGH UNLABELED COMMON. 01050050
109: C 01060050
110: IF (ICZERO) 34000, 4000, 34000 01070050
111: 4000 CONTINUE 01080050
112: RVCN01 = 2.1654 01090050
113: CALL FS051 01100050
114: RVCOMP = RVCN01 01110050
115: GO TO 44000 01120050
116: 34000 IVDELE = IVDELE + 1 01130050
117: WRITE (I02,80003) IVTNUM 01140050
118: IF (ICZERO) 44000, 4011, 44000 01150050
119: 44000 IF (RVCOMP - 3.1649) 24000,14000,44001 01160050
120: 44001 IF (RVCOMP - 3.1659) 14000,14000,24000 01170050
121: 14000 IVPASS = IVPASS + 1 01180050
122: WRITE (I02,80001) IVTNUM 01190050
123: GO TO 4011 01200050
124: 24000 IVFAIL = IVFAIL + 1 01210050
125: RVCORR = 3.1654 01220050
126: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 01230050
127: 4011 CONTINUE 01240050
128: C 01250050
129: C TEST 401 THROUGH TEST 403 TEST THE CALL TO SUBROUTINE FS052 WHICH 01260050
130: C CONTAINS NO ARGUMENTS. ALL PARAMETERS ARE PASSED THROUGH 01270050
131: C UNLABELED COMMON. SUBROUTINE FS052 CONTAIN SEVERAL RETURN 01280050
132: C STATEMENTS. 01290050
133: C 01300050
134: IVTNUM = 401 01310050
135: C 01320050
136: C **** TEST 401 **** 01330050
137: C 01340050
138: IF (ICZERO) 34010, 4010, 34010 01350050
139: 4010 CONTINUE 01360050
140: IVCN01 = 5 01370050
141: IVCN02 = 1 01380050
142: CALL FS052 01390050
143: IVCOMP = IVCN01 01400050
144: GO TO 44010 01410050
145: 34010 IVDELE = IVDELE + 1 01420050
146: WRITE (I02,80003) IVTNUM 01430050
147: IF (ICZERO) 44010, 4021, 44010 01440050
148: 44010 IF (IVCOMP - 6) 24010,14010,24010 01450050
149: 14010 IVPASS = IVPASS + 1 01460050
150: WRITE (I02,80001) IVTNUM 01470050
151: GO TO 4021 01480050
152: 24010 IVFAIL = IVFAIL + 1 01490050
153: IVCORR = 6 01500050
154: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01510050
155: 4021 CONTINUE 01520050
156: IVTNUM = 402 01530050
157: C 01540050
158: C **** TEST 402 **** 01550050
159: C 01560050
160: IF (ICZERO) 34020, 4020, 34020 01570050
161: 4020 CONTINUE 01580050
162: IVCN01 = 10 01590050
163: IVCN02 = 5 01600050
164: CALL FS052 01610050
165: IVCOMP = IVCN01 01620050
166: GO TO 44020 01630050
167: 34020 IVDELE = IVDELE + 1 01640050
168: WRITE (I02,80003) IVTNUM 01650050
169: IF (ICZERO) 44020, 4031, 44020 01660050
170: 44020 IF (IVCOMP - 15) 24020,14020,24020 01670050
171: 14020 IVPASS = IVPASS + 1 01680050
172: WRITE (I02,80001) IVTNUM 01690050
173: GO TO 4031 01700050
174: 24020 IVFAIL = IVFAIL + 1 01710050
175: IVCORR = 15 01720050
176: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01730050
177: 4031 CONTINUE 01740050
178: IVTNUM = 403 01750050
179: C 01760050
180: C **** TEST 403 **** 01770050
181: C 01780050
182: IF (ICZERO) 34030, 4030, 34030 01790050
183: 4030 CONTINUE 01800050
184: IVCN01 = 30 01810050
185: IVCN02 = 3 01820050
186: CALL FS052 01830050
187: IVCOMP = IVCN01 01840050
188: GO TO 44030 01850050
189: 34030 IVDELE = IVDELE + 1 01860050
190: WRITE (I02,80003) IVTNUM 01870050
191: IF (ICZERO) 44030, 4041, 44030 01880050
192: 44030 IF (IVCOMP - 33) 24030,14030,24030 01890050
193: 14030 IVPASS = IVPASS + 1 01900050
194: WRITE (I02,80001) IVTNUM 01910050
195: GO TO 4041 01920050
196: 24030 IVFAIL = IVFAIL + 1 01930050
197: IVCORR = 33 01940050
198: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 01950050
199: 4041 CONTINUE 01960050
200: C 01970050
201: C TEST 404 THROUGH TEST 406 TEST THE CALL TO SUBROUTINE FS053 WHICH 01980050
202: C CONTAINS SEVERAL ARGUMENTS AND SEVERAL RETURN STATEMENTS. 01990050
203: C 02000050
204: IVTNUM = 404 02010050
205: C 02020050
206: C **** TEST 404 **** 02030050
207: C 02040050
208: IF (ICZERO) 34040, 4040, 34040 02050050
209: 4040 CONTINUE 02060050
210: CALL FS053 (6,10,11,IVON04,1) 02070050
211: IVCOMP = IVON04 02080050
212: GO TO 44040 02090050
213: 34040 IVDELE = IVDELE + 1 02100050
214: WRITE (I02,80003) IVTNUM 02110050
215: IF (ICZERO) 44040, 4051, 44040 02120050
216: 44040 IF (IVCOMP - 6) 24040,14040,24040 02130050
217: 14040 IVPASS = IVPASS + 1 02140050
218: WRITE (I02,80001) IVTNUM 02150050
219: GO TO 4051 02160050
220: 24040 IVFAIL = IVFAIL + 1 02170050
221: IVCORR = 6 02180050
222: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02190050
223: 4051 CONTINUE 02200050
224: IVTNUM = 405 02210050
225: C 02220050
226: C **** TEST 405 **** 02230050
227: C 02240050
228: IF (ICZERO) 34050, 4050, 34050 02250050
229: 4050 CONTINUE 02260050
230: IVCN01 = 10 02270050
231: CALL FS053 (6,IVCN01,11,IVON04,2) 02280050
232: IVCOMP = IVON04 02290050
233: GO TO 44050 02300050
234: 34050 IVDELE = IVDELE + 1 02310050
235: WRITE (I02,80003) IVTNUM 02320050
236: IF (ICZERO) 44050, 4061, 44050 02330050
237: 44050 IF (IVCOMP - 16) 24050,14050,24050 02340050
238: 14050 IVPASS = IVPASS + 1 02350050
239: WRITE (I02,80001) IVTNUM 02360050
240: GO TO 4061 02370050
241: 24050 IVFAIL = IVFAIL + 1 02380050
242: IVCORR = 16 02390050
243: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02400050
244: 4061 CONTINUE 02410050
245: IVTNUM = 406 02420050
246: C 02430050
247: C **** TEST 406 **** 02440050
248: C 02450050
249: IF (ICZERO) 34060, 4060, 34060 02460050
250: 4060 CONTINUE 02470050
251: IVON01 = 6 02480050
252: IVON02 = 10 02490050
253: IVON03 = 11 02500050
254: IVON05 = 3 02510050
255: CALL FS053 (IVON01,IVON02,IVON03,IVON04,IVON05) 02520050
256: IVCOMP = IVON04 02530050
257: GO TO 44060 02540050
258: 34060 IVDELE = IVDELE + 1 02550050
259: WRITE (I02,80003) IVTNUM 02560050
260: IF (ICZERO) 44060, 4071, 44060 02570050
261: 44060 IF (IVCOMP - 27) 24060,14060,24060 02580050
262: 14060 IVPASS = IVPASS + 1 02590050
263: WRITE (I02,80001) IVTNUM 02600050
264: GO TO 4071 02610050
265: 24060 IVFAIL = IVFAIL + 1 02620050
266: IVCORR = 27 02630050
267: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02640050
268: 4071 CONTINUE 02650050
269: C 02660050
270: C TEST 407 THROUGH 409 TEST THE REFERENCE TO FUNCTION FF054 WHICH 02670050
271: C CONTAINS SEVERAL ARGUMENTS AND SEVERAL RETURN STATEMENTS 02680050
272: C 02690050
273: IVTNUM = 407 02700050
274: C 02710050
275: C **** TEST 407 **** 02720050
276: C 02730050
277: IF (ICZERO) 34070, 4070, 34070 02740050
278: 4070 CONTINUE 02750050
279: IVCOMP = FF054 (300,1,21,1) 02760050
280: GO TO 44070 02770050
281: 34070 IVDELE = IVDELE + 1 02780050
282: WRITE (I02,80003) IVTNUM 02790050
283: IF (ICZERO) 44070, 4081, 44070 02800050
284: 44070 IF (IVCOMP - 300) 24070,14070,24070 02810050
285: 14070 IVPASS = IVPASS + 1 02820050
286: WRITE (I02,80001) IVTNUM 02830050
287: GO TO 4081 02840050
288: 24070 IVFAIL = IVFAIL + 1 02850050
289: IVCORR = 300 02860050
290: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 02870050
291: 4081 CONTINUE 02880050
292: IVTNUM = 408 02890050
293: C 02900050
294: C **** TEST 408 **** 02910050
295: C 02920050
296: IF (ICZERO) 34080, 4080, 34080 02930050
297: 4080 CONTINUE 02940050
298: IVON01 = 300 02950050
299: IVON04 = 2 02960050
300: IVCOMP = FF054 (IVON01,77,5,IVON04) 02970050
301: GO TO 44080 02980050
302: 34080 IVDELE = IVDELE + 1 02990050
303: WRITE (I02,80003) IVTNUM 03000050
304: IF (ICZERO) 44080, 4091, 44080 03010050
305: 44080 IF (IVCOMP - 377) 24080,14080,24080 03020050
306: 14080 IVPASS = IVPASS + 1 03030050
307: WRITE (I02,80001) IVTNUM 03040050
308: GO TO 4091 03050050
309: 24080 IVFAIL = IVFAIL + 1 03060050
310: IVCORR = 377 03070050
311: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03080050
312: 4091 CONTINUE 03090050
313: IVTNUM = 409 03100050
314: C 03110050
315: C **** TEST 409 **** 03120050
316: C 03130050
317: IF (ICZERO) 34090, 4090, 34090 03140050
318: 4090 CONTINUE 03150050
319: IVON01 = 71 03160050
320: IVON02 = 21 03170050
321: IVON03 = 17 03180050
322: IVON04 = 3 03190050
323: IVCOMP = FF054 (IVON01,IVON02,IVON03,IVON04) 03200050
324: GO TO 44090 03210050
325: 34090 IVDELE = IVDELE + 1 03220050
326: WRITE (I02,80003) IVTNUM 03230050
327: IF (ICZERO) 44090, 4101, 44090 03240050
328: 44090 IF (IVCOMP - 109) 24090,14090,24090 03250050
329: 14090 IVPASS = IVPASS + 1 03260050
330: WRITE (I02,80001) IVTNUM 03270050
331: GO TO 4101 03280050
332: 24090 IVFAIL = IVFAIL + 1 03290050
333: IVCORR = 109 03300050
334: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03310050
335: 4101 CONTINUE 03320050
336: C 03330050
337: C TEST 410 THROUGH 429 TEST THE CALL TO SUBROUTINE FS055 WHICH 03340050
338: C CONTAINS NO ARGUMENTS. THE PARAMETERS ARE PASSED THROUGH AN 03350050
339: C INTEGER ARRAY VARIABLE IN UNLABELED COMMON. 03360050
340: C 03370050
341: CALL FS055 03380050
342: DO 20 I = 1,20 03390050
343: IF (ICZERO) 34100, 4100, 34100 03400050
344: 4100 CONTINUE 03410050
345: IVTNUM = 409 + I 03420050
346: IVCOMP = IACN11(I) 03430050
347: GO TO 44100 03440050
348: 34100 IVDELE = IVDELE + 1 03450050
349: WRITE (I02,80003) IVTNUM 03460050
350: IF (ICZERO) 44100, 4111, 44100 03470050
351: 44100 IF (IVCOMP - I) 24100,14100,24100 03480050
352: 14100 IVPASS = IVPASS + 1 03490050
353: WRITE (I02,80001) IVTNUM 03500050
354: GO TO 4111 03510050
355: 24100 IVFAIL = IVFAIL + 1 03520050
356: IVCORR = I 03530050
357: WRITE (I02,80004) IVTNUM, IVCOMP ,IVCORR 03540050
358: 4111 CONTINUE 03550050
359: 20 CONTINUE 03560050
360: C 03570050
361: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 03580050
362: 99999 CONTINUE 03590050
363: WRITE (I02,90002) 03600050
364: WRITE (I02,90006) 03610050
365: WRITE (I02,90002) 03620050
366: WRITE (I02,90002) 03630050
367: WRITE (I02,90007) 03640050
368: WRITE (I02,90002) 03650050
369: WRITE (I02,90008) IVFAIL 03660050
370: WRITE (I02,90009) IVPASS 03670050
371: WRITE (I02,90010) IVDELE 03680050
372: C 03690050
373: C 03700050
374: C TERMINATE ROUTINE EXECUTION 03710050
375: STOP 03720050
376: C 03730050
377: C FORMAT STATEMENTS FOR PAGE HEADERS 03740050
378: 90000 FORMAT (1H1) 03750050
379: 90002 FORMAT (1H ) 03760050
380: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 03770050
381: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 03780050
382: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 03790050
383: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 03800050
384: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 03810050
385: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 03820050
386: C 03830050
387: C FORMAT STATEMENTS FOR RUN SUMMARIES 03840050
388: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 03850050
389: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 03860050
390: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 03870050
391: C 03880050
392: C FORMAT STATEMENTS FOR TEST RESULTS 03890050
393: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 03900050
394: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 03910050
395: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 03920050
396: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 03930050
397: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 03940050
398: C 03950050
399: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM050) 03960050
400: END 03970050
401: C 00010051
402: C DATE***82/08/02*18.33.46
403: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/
404: C AUDIT FCVS78 V2.0
405: C COMMENT SECTION 00020051
406: C 00030051
407: C FS051 00040051
408: C 00050051
409: C FS051 IS A SUBROUTINE SUBPROGRAM WHICH IS CALLED BY THE MAIN 00060051
410: C PROGRAM FM050. NO ARGUMENTS ARE SPECIFIED THEREFORE ALL 00070051
411: C PARAMETERS ARE PASSED VIA UNLABELED COMMON. THE SUBROUTINE FS051 00080051
412: C INCREMENTS THE VALUE OF A REAL VARIABLE BY 1 AND RETURNS CONTROL 00090051
413: C TO THE CALLING PROGRAM FM050. 00100051
414: C 00110051
415: C REFERENCES 00120051
416: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00130051
417: C X3.9-1978 00140051
418: C 00150051
419: C SECTION 15.6, SUBROUTINES 00160051
420: C SECTION 15.8, RETURN STATEMENT 00170051
421: C 00180051
422: C TEST SECTION 00190051
423: C 00200051
424: C SUBROUTINE SUBPROGRAM - NO ARGUMENTS 00210051
425: C 00220051
426: SUBROUTINE FS051 00230051
427: COMMON //RVCN01 00240051
428: RVCN01 = RVCN01 + 1.0 00250051
429: RETURN 00260051
430: END 00270051
431: C 00010052
432: C DATE***82/08/02*18.33.46
433: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/
434: C AUDIT FCVS78 V2.0
435: C COMMENT SECTION 00020052
436: C 00030052
437: C FS052 00040052
438: C 00050052
439: C FS052 IS A SUBROUTINE SUBPROGRAM WHICH IS CALLED BY THE MAIN 00060052
440: C PROGRAM FM050. NO ARGUMENTS ARE SPECIFIED THEREFORE ALL 00070052
441: C PARAMETERS ARE PASSED VIA UNLABELED COMMON. THE SUBROUTINE FS052 00080052
442: C INCREMENTS THE VALUE OF ONE INTEGER VARIABLE BY 1,2,3,4 OR 5 00090052
443: C DEPENDING ON THE VALUE OF A SECOND INTEGER VARIABLE AND THEN 00100052
444: C RETURNS CONTROL TO THE CALLING PROGRAM FM050. SEVERAL RETURN 00110052
445: C STATEMENTS ARE INCLUDED. 00120052
446: C 00130052
447: C REFERENCES 00140052
448: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00150052
449: C X3.9-1978 00160052
450: C 00170052
451: C SECTION 15.6, SUBROUTINES 00180052
452: C SECTION 15.8, RETURN STATEMENT 00190052
453: C 00200052
454: C TEST SECTION 00210052
455: C 00220052
456: C SUBROUTINE SUBPROGRAM - NO ARGUMENTS, MANY RETURNS 00230052
457: C 00240052
458: SUBROUTINE FS052 00250052
459: COMMON RVDN01,IVCN01,IVCN02 00260052
460: GO TO (10,20,30,40,50),IVCN02 00270052
461: 10 IVCN01 = IVCN01 + 1 00280052
462: RETURN 00290052
463: 20 IVCN01 = IVCN01 + 2 00300052
464: RETURN 00310052
465: 30 IVCN01 = IVCN01 + 3 00320052
466: RETURN 00330052
467: 40 IVCN01 = IVCN01 + 4 00340052
468: RETURN 00350052
469: 50 IVCN01 = IVCN01 + 5 00360052
470: RETURN 00370052
471: END 00380052
472: C 00010053
473: C DATE***82/08/02*18.33.46
474: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/
475: C AUDIT FCVS78 V2.0
476: C COMMENT SECTION 00020053
477: C 00030053
478: C FS053 00040053
479: C 00050053
480: C FS053 IS A SUBROUTINE SUBPROGRAM WHICH IS CALLED BY THE MAIN 00060053
481: C PROGRAM FM050. FIVE INTEGER VARIABLE ARGUMENTS ARE PASSED AND 00070053
482: C SEVERAL RETURN STATEMENTS ARE SPECIFIED. THE SUBROUTINE FS053 00080053
483: C ADDS TOGETHER THE VALUES OF THE FIRST ONE, TWO OR THREE ARGUMENTS 00090053
484: C DEPENDING ON THE VALUE OF THE FIFTH ARGUMENT. THE RESULTING SUM 00100053
485: C IS THEN RETURNED TO THE CALLING PROGRAM FM050 THROUGH THE FOURTH 00110053
486: C ARGUMENT. 00120053
487: C 00130053
488: C REFERENCES 00140053
489: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00150053
490: C X3.9-1978 00160053
491: C 00170053
492: C SECTION 15.6, SUBROUTINES 00180053
493: C SECTION 15.8, RETURN STATEMENT 00190053
494: C 00200053
495: C TEST SECTION 00210053
496: C 00220053
497: C SUBROUTINE SUBPROGRAM - SEVERAL ARGUMENTS, SEVERAL RETURNS 00230053
498: C 00240053
499: SUBROUTINE FS053 (IVON01,IVON02,IVON03,IVON04,IVON05) 00250053
500: GO TO (10,20,30),IVON05 00260053
501: 10 IVON04 = IVON01 00270053
502: RETURN 00280053
503: 20 IVON04 = IVON01 + IVON02 00290053
504: RETURN 00300053
505: 30 IVON04 = IVON01 + IVON02 + IVON03 00310053
506: RETURN 00320053
507: END 00330053
508: C 00010054
509: C DATE***82/08/02*18.33.46
510: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/
511: C AUDIT FCVS78 V2.0
512: C COMMENT SECTION 00020054
513: C 00030054
514: C FF054 00040054
515: C 00050054
516: C FF054 IS A FUNCTION SUBPROGRAM WHICH IS REFERENCED BY THE 00060054
517: C MAIN PROGRAM. FIVE INTEGER VARIABLE ARGUMENTS ARE PASSED AND 00070054
518: C SEVERAL RETURN STATEMENTS ARE SPECIFIED. THE FUNCTION FF054 00080054
519: C ADDS TOGETHER THE VALUES OF THE FIRST ONE, TWO OR THREE ARGUMENTS 00090054
520: C DEPENDING ON THE VALUE OF THE FOURTH ARGUMENT. THE RESULTING SUM 00100054
521: C IS THEN RETURNED TO THE REFERENCING PROGRAM FM050 THROUGH THE 00110054
522: C FUNCTION REFERENCE. 00120054
523: C 00130054
524: C REFERENCES 00140054
525: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00150054
526: C X3.9-1978 00160054
527: C 00170054
528: C SECTION 15.5.1, FUNCTION SUBPROGRAM AND FUNCTION STATEMENT 00180054
529: C SECTION 15.8, RETURN STATEMENT 00190054
530: C 00200054
531: C TEST SECTION 00210054
532: C 00220054
533: C FUNCTION SUBPROGRAM - SEVERAL ARGUMENTS, SEVERAL RETURNS 00230054
534: C 00240054
535: INTEGER FUNCTION FF054 (IVON01,IVON02,IVON03,IVON04) 00250054
536: GO TO (10,20,30),IVON04 00260054
537: 10 FF054 = IVON01 00270054
538: RETURN 00280054
539: 20 FF054 = IVON01 + IVON02 00290054
540: RETURN 00300054
541: 30 FF054 = IVON01 + IVON02 + IVON03 00310054
542: RETURN 00320054
543: END 00330054
544: C 00010055
545: C DATE***82/08/02*18.33.46
546: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/
547: C AUDIT FCVS78 V2.0
548: C COMMENT SECTION 00020055
549: C 00030055
550: C FS055 00040055
551: C 00050055
552: C FS055 IS A SUBROUTINE SUBPROGRAM WHICH IS CALLED BY THE MAIN 00060055
553: C PROGRAM FM050. NO ARGUMENTS ARE SPECIFIED THEREFORE ALL 00070055
554: C PARAMETERS ARE PASSED VIA UNLABELED COMMON. THE SUBROUTINE FS055 00080055
555: C INITIALIZES A ONE DIMENSIONAL INTEGER ARRAY OF 20 ELEMENTS WITH 00090055
556: C THE VALUES 1 THROUGH 20 RESPECTIVELY. CONTROL IS THEN RETURNED 00100055
557: C TO THE CALLING PROGRAM FM050. 00110055
558: C 00120055
559: C REFERENCES 00130055
560: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00140055
561: C X3.9-1978 00150055
562: C 00160055
563: C SECTION 15.6, SUBROUTINES 00170055
564: C SECTION 15.8, RETURN STATEMENT 00180055
565: C 00190055
566: C TEST SECTION 00200055
567: C 00210055
568: C SUBROUTINE SUBPROGRAM - ARRAY ARGUMENTS 00220055
569: C 00230055
570: SUBROUTINE FS055 00240055
571: COMMON RVCN01,IVCN01,IVCN02,IACN11 00250055
572: DIMENSION IACN11(20) 00260055
573: DO 20 I = 1,20 00270055
574: IACN11(I) = I 00280055
575: 20 CONTINUE 00290055
576: RETURN 00300055
577: END 00310055
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.