|
|
1.1 root 1: PROGRAM FM302 00010302
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 00020302
6: C 00030302
7: C THIS ROUTINE TESTS THE SUBSET LEVEL FEATURES OF THE COMMON 00040302
8: C SPECIFICATION STATEMENT. INTEGER, REAL AND LOGICAL VARIABLES AND 00050302
9: C ARRAYS ARE PASSED BACK-AND-FORTH BETWEEN THE MAIN PROGRAM,EXTERNAL00060302
10: C FUNCTIONS AND SUBROUTINES. BOTH NAMED AND UNNAMED (BLANK) COMMON 00070302
11: C ARE TESTED. SPECIFIC TESTS ARE INCLUDED FOR RENAMING ENTITIES IN 00080302
12: C COMMON BETWEEN PROGRAM UNITS, THE PASSING OF DATA THROUGH COMMON 00090302
13: C BY EQUIVALENCE ASSOCIATION, AND THE SPECIFYING OF BLANK COMMON OF 00100302
14: C DIFFERENT LENGTHS IN DIFFERENT PROGRAM UNITS. THE SUBSET LEVEL 00110302
15: C FEATURES OF THE COMMON STATEMENT ARE ALSO TESTED IN FM022 THROUGH 00120302
16: C FM025, FM050 AND FM056. 00130302
17: C 00140302
18: C REFERENCES. 00150302
19: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00160302
20: C X3.9-1978 00170302
21: C 00180302
22: C SECTION 8.2, EQUIVALENCE STATEMENT 00190302
23: C SECTION 8.3, COMMON STATEMENT 00200302
24: C SECTION 15.5, EXTERNAL FUNCTIONS 00210302
25: C SECTION 15.6, SUBROUTINES 00220302
26: C SECTION 15.9.4, COMMON BLOCKS 00230302
27: C 00240302
28: C 00250302
29: C ******************************************************************00260302
30: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00270302
31: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00280302
32: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00290302
33: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00300302
34: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00310302
35: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00320302
36: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00330302
37: C THE RESULT OF EXECUTING THESE TESTS. 00340302
38: C 00350302
39: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00360302
40: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00370302
41: C 00380302
42: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00390302
43: C DEPARTMENT OF THE NAVY 00400302
44: C FEDERAL COBOL COMPILER TESTING SERVICE 00410302
45: C WASHINGTON, D.C. 20376 00420302
46: C 00430302
47: C ******************************************************************00440302
48: C 00450302
49: C 00460302
50: IMPLICIT LOGICAL (L) 00470302
51: IMPLICIT CHARACTER*14 (C) 00480302
52: C 00490302
53: 00500302
54: C 00510302
55: C *** SPECIFICATION STATEMENT FOR TEST 001 *** 00520302
56: C 00530302
57: COMMON IVCN01 00540302
58: C 00550302
59: C *** SPECIFICATION STATEMENT FOR TEST 002 *** 00560302
60: C 00570302
61: COMMON //IVCN02,LVCN01 00580302
62: C 00590302
63: C *** SPECIFICATION STATEMENT FOR TEST 003 *** 00600302
64: C 00610302
65: COMMON RVCN01//IVCN03 00620302
66: C 00630302
67: C *** SPECIFICATION STATEMENT FOR TEST 004 *** 00640302
68: C 00650302
69: COMMON IVCN04, IVCN05, // IACN11(4) 00660302
70: C 00670302
71: C *** SPECIFICATION STATEMENT FOR TEST 005 *** 00680302
72: C 00690302
73: COMMON /BLK1/ IVCNA1 00700302
74: C 00710302
75: C *** SPECIFICATION STATEMENT FOR TEST 006 *** 00720302
76: C 00730302
77: COMMON /BLK2/IVCNB1,RVCNB1, /BLK2/IVCNB2 00740302
78: C 00750302
79: C *** SPECIFICATION STATEMENT FOR TEST 007 *** 00760302
80: C 00770302
81: DIMENSION RACN11(10) 00780302
82: COMMON /BLK3/LVCNC1,IVCNC1/BLK4/RACN11,IACN21(2,3) 00790302
83: C 00800302
84: C *** SPECIFICATION STATEMENT FOR TEST 008 *** 00810302
85: C 00820302
86: COMMON /BLK5/IVCND1, IVCND2 00830302
87: C 00840302
88: C *** SPECIFICATION STATEMENT FOR TEST 009 *** 00850302
89: C 00860302
90: COMMON IVCN06/BLK5/RVCND1,LVCND1//IVCN07,IVCN08/BLK6/RVCNE1 00870302
91: C 00880302
92: C *** SPECIFICATION STATEMENT FOR TEST 010 *** 00890302
93: C 00900302
94: DIMENSION IACN1F(3) 00910302
95: COMMON /BLK7/IVCNF1,IVCNF2,IVCNF3,IACN1F 00920302
96: C 00930302
97: C *** SPECIFICATION STATEMENT FOR TEST 011 *** 00940302
98: C 00950302
99: EQUIVALENCE (IVCEH1,IVCEH2) 00960302
100: COMMON /BLK8/IVCEH1 00970302
101: C 00980302
102: C *** SPECIFICATION STATEMENT FOR TEST 012 00990302
103: EQUIVALENCE (IVCE09,IVCE10) 01000302
104: COMMON IVCE09 01010302
105: C 01020302
106: C *** SPECIFICATION STATEMENT FOR TEST 013 01030302
107: C 01040302
108: EQUIVALENCE (IVCEI1,IACE1I) 01050302
109: DIMENSION IACE1I(3) 01060302
110: COMMON /BLK9/IVCEI1 01070302
111: C 01080302
112: C *** SPECIFICATION STATEMENT FOR TEST 014 *** 01090302
113: C 01100302
114: COMMON IVCN12 01110302
115: C 01120302
116: C *** SPECIFICATION STATEMENT FOR TEST 015 *** 01130302
117: C 01140302
118: COMMON /BLK10/IVCNJ1 01150302
119: C 01160302
120: C *** SPECIFICATION STATEMENT FOR TEST 016 *** 01170302
121: C 01180302
122: COMMON /BLKCHR/CVTN01,CVTN02,CATN11 01190302
123: CHARACTER CVTN01*2, CVTN02*3, CATN11(3)*5 01200302
124: INTEGER FF304 01210302
125: C 01220302
126: C 01230302
127: C 01240302
128: C INITIALIZATION SECTION. 01250302
129: C 01260302
130: C INITIALIZE CONSTANTS 01270302
131: C ******************** 01280302
132: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 01290302
133: I01 = 5 01300302
134: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 01310302
135: I02 = 6 01320302
136: C SYSTEM ENVIRONMENT SECTION 01330302
137: C 01340302
138: I01 = 5 01350302
139: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 01360302
140: C (UNIT NUMBER FOR CARD READER). 01370302
141: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD01380302
142: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01390302
143: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 01400302
144: C 01410302
145: I02 = 6 01420302
146: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 01430302
147: C (UNIT NUMBER FOR PRINTER). 01440302
148: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.01450302
149: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 01460302
150: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 01470302
151: C 01480302
152: IVPASS = 0 01490302
153: IVFAIL = 0 01500302
154: IVDELE = 0 01510302
155: ICZERO = 0 01520302
156: C 01530302
157: C WRITE OUT PAGE HEADERS 01540302
158: C 01550302
159: WRITE (I02,90002) 01560302
160: WRITE (I02,90006) 01570302
161: WRITE (I02,90008) 01580302
162: WRITE (I02,90004) 01590302
163: WRITE (I02,90010) 01600302
164: WRITE (I02,90004) 01610302
165: WRITE (I02,90016) 01620302
166: WRITE (I02,90001) 01630302
167: WRITE (I02,90004) 01640302
168: WRITE (I02,90012) 01650302
169: WRITE (I02,90014) 01660302
170: WRITE (I02,90004) 01670302
171: C 01680302
172: C 01690302
173: C THE FOLLOWING ASSIGNMENT STATEMENTS INITIALIZE THE DATA 01700302
174: C ENTITIES BEING PASSED THROUGH COMMON TO SUBROUTINE FS303. ONLY 01710302
175: C ONE REFERENCE TO THIS SUBPROGRAM IS MADE FROM THIS PROGRAM. THE 01720302
176: C CONTENTS OF THE DATA ENTITIES BEING RETURNED THROUGH COMMON ARE 01730302
177: C THEN CHECKED IN THIS PROGRAM. 01740302
178: C 01750302
179: C 01760302
180: IVCN01 = 3 01770302
181: IVCN02 = 2 01780302
182: LVCN01 = .FALSE. 01790302
183: IVCNA1 = 25 01800302
184: IVCNB1 = 3 01810302
185: RVCNB1 = 4.0 01820302
186: IVCNB2 = 5 01830302
187: LVCNC1 = .TRUE. 01840302
188: IVCNC1 = 13 01850302
189: RACN11(1) = 1. 01860302
190: RACN11(10) = 10.0 01870302
191: IACN21(1,1) = 11 01880302
192: IACN21(2,3) = 23 01890302
193: IVCNF1 = 41 01900302
194: IVCNF3 = 43 01910302
195: IACN1F(1) = 141 01920302
196: IACN1F(2) = 142 01930302
197: IVCEH1 = 1 01940302
198: IVCEH2 = 5 01950302
199: CVTN01 = 'AB' 01960302
200: CVTN02 = 'CDE' 01970302
201: CATN11(1) = 'FGHIJ' 01980302
202: CATN11(2) = 'KLMNO' 01990302
203: CATN11(3) = 'PQRST' 02000302
204: CALL FS303 02010302
205: C 02020302
206: C THE FOLLOWING ASSIGNMENT STATEMENTS INITIALIZE THE DATA 02030302
207: C ENTITIES BEING PASSED THROUGH COMMON TO EXTERNAL FUNCTION FF304. 02040302
208: C ONLY ONE REFERENCE TO THIS SUBPROGRAM IS MADE FROM THIS PROGRAM. 02050302
209: C THE CONTENTS OF THE DATA ENTITIES BEING RETURNED THROUGH COMMON 02060302
210: C ARE THEN CHECKED IN THIS PROGRAM. 02070302
211: C 02080302
212: RVCN01 = 6.4 02090302
213: IVCN03 = 11 02100302
214: IVCN03 = IVCN03*2 02110302
215: IVCN04 = 16 02120302
216: IVCN05 = 16 02130302
217: IACN11(1) = 1 02140302
218: IACN11(2) = 2 02150302
219: IACN11(3) = 3 02160302
220: IACN11(4) = 4 02170302
221: IVCND1 = +33 02180302
222: IVCND2 = 10 02190302
223: IVCN06 = 6 02200302
224: IVCN07 = 7 02210302
225: IVCN08 = 8 02220302
226: RVCND1 = 1.3 02230302
227: LVCND1 = .FALSE. 02240302
228: RVCNE1 = +3.5 02250302
229: IVCE09 = 9 02260302
230: IVCE10 = 10 02270302
231: IVCEI1 = 5 02280302
232: IACE1I(1) = 10 02290302
233: IACE1I(2) = 15 02300302
234: IACE1I(3) = 20 02310302
235: IVCNJ1 = 1 02320302
236: IVON99 = FF304 ( ) 02330302
237: C 02340302
238: C TESTS 001 THROUGH 009 ARE DESIGNED TO TEST VARIOUS 02350302
239: C SYNTACTICAL CONSTRUCTS OF THE COMMON STATEMENT USING NAMED AND 02360302
240: C UNNAMED (BLANK) COMMON IN THE MAIN PROGRAM, A SUBROUTINE AND AN 02370302
241: C EXTERNAL FUNCTION. DATA ENTITIES CONSIST OF INTEGER, REAL AND 02380302
242: C LOGICAL VARIABLES AND INTEGER AND REAL ARRAYS. 02390302
243: C 02400302
244: C **** FCVS PROGRAM 302 - TEST 001 **** 02410302
245: C 02420302
246: C TESTS 001 AND 002 TEST THE USE OF UNNAMED COMMON IN A MAIN 02430302
247: C PROGRAM AND A SUBROUTINE. 02440302
248: C 02450302
249: IVTNUM = 1 02460302
250: IF (ICZERO) 30010, 0010, 30010 02470302
251: 0010 CONTINUE 02480302
252: IVCOMP = 0 02490302
253: IVCOMP = IVCN01 02500302
254: IVCORR = 4 02510302
255: 40010 IF (IVCOMP - 4) 20010, 10010, 20010 02520302
256: 30010 IVDELE = IVDELE + 1 02530302
257: WRITE (I02,80000) IVTNUM 02540302
258: IF (ICZERO) 10010, 0021, 20010 02550302
259: 10010 IVPASS = IVPASS + 1 02560302
260: WRITE (I02,80002) IVTNUM 02570302
261: GO TO 0021 02580302
262: 20010 IVFAIL = IVFAIL + 1 02590302
263: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02600302
264: 0021 CONTINUE 02610302
265: C 02620302
266: C **** FCVS PROGRAM 302 - TEST 002 **** 02630302
267: C 02640302
268: C 02650302
269: IVTNUM = 2 02660302
270: IF (ICZERO) 30020, 0020, 30020 02670302
271: 0020 CONTINUE 02680302
272: IVCOMP = 1 02690302
273: IF (IVCN02 .EQ. 7) IVCOMP = IVCOMP * 2 02700302
274: IF (LVCN01) IVCOMP = IVCOMP * 3 02710302
275: IVCORR = 6 02720302
276: C 6 = 2 * 3 02730302
277: 40020 IF (IVCOMP - 6) 20020, 10020, 20020 02740302
278: 30020 IVDELE = IVDELE + 1 02750302
279: WRITE (I02,80000) IVTNUM 02760302
280: IF (ICZERO) 10020, 0031, 20020 02770302
281: 10020 IVPASS = IVPASS + 1 02780302
282: WRITE (I02,80002) IVTNUM 02790302
283: GO TO 0031 02800302
284: 20020 IVFAIL = IVFAIL + 1 02810302
285: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02820302
286: 0031 CONTINUE 02830302
287: C 02840302
288: C **** FCVS PROGRAM 302 - TEST 003 **** 02850302
289: C 02860302
290: C TESTS 003 AND 004 TEST THE USE OF UNNAMED COMMON IN A MAIN 02870302
291: C PROGRAM AND AN EXTERNAL FUNCTION. 02880302
292: C 02890302
293: IVTNUM = 3 02900302
294: IF (ICZERO) 30030, 0030, 30030 02910302
295: 0030 CONTINUE 02920302
296: IVCOMP = 1 02930302
297: IF (RVCN01 .GE. 4.1995 .AND. RVCN01 .LE. 4.2005) IVCOMP=IVCOMP*2 02940302
298: IF (IVCN03 .EQ. 23) IVCOMP = IVCOMP * 3 02950302
299: IVCORR = 6 02960302
300: C 6 = 2 * 3 02970302
301: 40030 IF (IVCOMP - 6) 20030, 10030, 20030 02980302
302: 30030 IVDELE = IVDELE + 1 02990302
303: WRITE (I02,80000) IVTNUM 03000302
304: IF (ICZERO) 10030, 0041, 20030 03010302
305: 10030 IVPASS = IVPASS + 1 03020302
306: WRITE (I02,80002) IVTNUM 03030302
307: GO TO 0041 03040302
308: 20030 IVFAIL = IVFAIL + 1 03050302
309: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03060302
310: 0041 CONTINUE 03070302
311: C 03080302
312: C **** FCVS PROGRAM 302 - TEST 004 **** 03090302
313: C 03100302
314: C 03110302
315: IVTNUM = 4 03120302
316: IF (ICZERO) 30040, 0040, 30040 03130302
317: 0040 CONTINUE 03140302
318: IVCOMP = 1 03150302
319: IF (IVCN04 .EQ. 8) IVCOMP = IVCOMP * 2 03160302
320: IF (IVCN05 .EQ. 16) IVCOMP = IVCOMP * 3 03170302
321: IF (IACN11(1) .EQ. 5) IVCOMP = IVCOMP * 5 03180302
322: IF (IACN11(2) .EQ. 5) IVCOMP = IVCOMP * 7 03190302
323: IF (IACN11(3) .EQ. 5) IVCOMP = IVCOMP * 11 03200302
324: IF (IACN11(4) .EQ. 5) IVCOMP = IVCOMP * 13 03210302
325: IVCORR = 30030 03220302
326: C 30030 = 2 * 3 * 5 * 7 * 11 * 13 03230302
327: 40040 IF (IVCOMP - 30030) 20040, 10040, 20040 03240302
328: 30040 IVDELE = IVDELE + 1 03250302
329: WRITE (I02,80000) IVTNUM 03260302
330: IF (ICZERO) 10040, 0051, 20040 03270302
331: 10040 IVPASS = IVPASS + 1 03280302
332: WRITE (I02,80002) IVTNUM 03290302
333: GO TO 0051 03300302
334: 20040 IVFAIL = IVFAIL + 1 03310302
335: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03320302
336: 0051 CONTINUE 03330302
337: C 03340302
338: C **** FCVS PROGRAM 302 - TEST 005 **** 03350302
339: C 03360302
340: C TESTS 005 THROUGH 007 TEST THE USE OF NAMED COMMON BLOCKS 03370302
341: C IN A MAIN PROGRAM AND A SUBROUTINE. 03380302
342: C 03390302
343: IVTNUM = 5 03400302
344: IF (ICZERO) 30050, 0050, 30050 03410302
345: 0050 CONTINUE 03420302
346: IVCOMP = 0 03430302
347: IVCOMP = IVCNA1 03440302
348: IVCORR = 5 03450302
349: 40050 IF (IVCOMP - 5) 20050, 10050, 20050 03460302
350: 30050 IVDELE = IVDELE + 1 03470302
351: WRITE (I02,80000) IVTNUM 03480302
352: IF (ICZERO) 10050, 0061, 20050 03490302
353: 10050 IVPASS = IVPASS + 1 03500302
354: WRITE (I02,80002) IVTNUM 03510302
355: GO TO 0061 03520302
356: 20050 IVFAIL = IVFAIL + 1 03530302
357: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03540302
358: 0061 CONTINUE 03550302
359: C 03560302
360: C **** FCVS PROGRAM 302 - TEST 006 **** 03570302
361: C 03580302
362: C 03590302
363: IVTNUM = 6 03600302
364: IF (ICZERO) 30060, 0060, 30060 03610302
365: 0060 CONTINUE 03620302
366: IVCOMP = 1 03630302
367: IF (IVCNB1 .EQ. 8) IVCOMP = IVCOMP * 2 03640302
368: IF (RVCNB1 .GE. 3.4995 .AND. RVCNB1 .LE. 3.5005) IVCOMP=IVCOMP*3 03650302
369: IF (IVCNB2 .EQ. 5) IVCOMP = IVCOMP * 5 03660302
370: IVCORR = 30 03670302
371: C 30 = 2 * 3 * 5 03680302
372: 40060 IF (IVCOMP - 30) 20060, 10060, 20060 03690302
373: 30060 IVDELE = IVDELE + 1 03700302
374: WRITE (I02,80000) IVTNUM 03710302
375: IF (ICZERO) 10060, 0071, 20060 03720302
376: 10060 IVPASS = IVPASS + 1 03730302
377: WRITE (I02,80002) IVTNUM 03740302
378: GO TO 0071 03750302
379: 20060 IVFAIL = IVFAIL + 1 03760302
380: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03770302
381: 0071 CONTINUE 03780302
382: C 03790302
383: C **** FCVS PROGRAM 302 - TEST 007 **** 03800302
384: C 03810302
385: C 03820302
386: IVTNUM = 7 03830302
387: IF (ICZERO) 30070, 0070, 30070 03840302
388: 0070 CONTINUE 03850302
389: IVCOMP = 1 03860302
390: IF (.NOT. LVCNC1) IVCOMP = IVCOMP * 2 03870302
391: IF (IVCNC1 .EQ. 12) IVCOMP = IVCOMP * 3 03880302
392: IF (RACN11(1).GE.110.95 .AND. RACN11(1).LE.111.05) IVCOMP=IVCOMP*503890302
393: IF (RACN11(10).GE.109.95.AND.RACN11(10).LE.110.05)IVCOMP=IVCOMP*7 03900302
394: IF (IACN21(1,1) .EQ. 12) IVCOMP = IVCOMP * 11 03910302
395: IF (IACN21 (2,3) .EQ. 24) IVCOMP = IVCOMP * 13 03920302
396: IVCORR = 30030 03930302
397: C 30030 = 2* 3 * 5 * 7 * 11 * 13 03940302
398: 40070 IF (IVCOMP - 30030) 20070, 10070, 20070 03950302
399: 30070 IVDELE = IVDELE + 1 03960302
400: WRITE (I02,80000) IVTNUM 03970302
401: IF (ICZERO) 10070, 0081, 20070 03980302
402: 10070 IVPASS = IVPASS + 1 03990302
403: WRITE (I02,80002) IVTNUM 04000302
404: GO TO 0081 04010302
405: 20070 IVFAIL = IVFAIL + 1 04020302
406: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04030302
407: 0081 CONTINUE 04040302
408: C 04050302
409: C **** FCVS PROGRAM 302 - TEST 008 **** 04060302
410: C 04070302
411: C TESTS 008 AND 009 TEST THE USE OF NAMED COMMON BLOCKS IN A 04080302
412: C MAIN PROGRAM AND AN EXTERNAL FUNCTION. 04090302
413: C 04100302
414: IVTNUM = 8 04110302
415: IF (ICZERO) 30080, 0080, 30080 04120302
416: 0080 CONTINUE 04130302
417: IVCOMP = 1 04140302
418: IF (IVCND1 .EQ. 34) IVCOMP = IVCOMP * 2 04150302
419: IF (IVCND2 .EQ. 11) IVCOMP = IVCOMP * 3 04160302
420: IVCORR = 6 04170302
421: C 6 = 2 * 3 04180302
422: 40080 IF (IVCOMP - 6) 20080, 10080, 20080 04190302
423: 30080 IVDELE = IVDELE + 1 04200302
424: WRITE (I02,80000) IVTNUM 04210302
425: IF (ICZERO) 10080, 0091, 20080 04220302
426: 10080 IVPASS = IVPASS + 1 04230302
427: WRITE (I02,80002) IVTNUM 04240302
428: GO TO 0091 04250302
429: 20080 IVFAIL = IVFAIL + 1 04260302
430: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04270302
431: 0091 CONTINUE 04280302
432: C 04290302
433: C **** FCVS PROGRAM 302 - TEST 009 **** 04300302
434: C 04310302
435: C 04320302
436: IVTNUM = 9 04330302
437: IF (ICZERO) 30090, 0090, 30090 04340302
438: 0090 CONTINUE 04350302
439: IVCOMP = 1 04360302
440: IF (IVCN06 .EQ. 7) IVCOMP = IVCOMP * 2 04370302
441: IF (RVCND1 .GE. 4.4995 .AND. RVCND1 .LE. 4.5005) IVCOMP = IVCOMP*304380302
442: IF (LVCND1) IVCOMP = IVCOMP * 5 04390302
443: IF (IVCN07 .EQ. -7) IVCOMP = IVCOMP * 7 04400302
444: IF (IVCN08 .EQ. -3) IVCOMP = IVCOMP * 11 04410302
445: IF (RVCNE1.GE.-6.7005.AND.RVCNE1.LE.-6.6995) IVCOMP=IVCOMP*13 04420302
446: IVCORR = 30030 04430302
447: C 30030 = 2 * 3 * 5 * 7 * 11 * 13 04440302
448: 40090 IF (IVCOMP - 30030) 20090, 10090, 20090 04450302
449: 30090 IVDELE = IVDELE + 1 04460302
450: WRITE (I02,80000) IVTNUM 04470302
451: IF (ICZERO) 10090, 0101, 20090 04480302
452: 10090 IVPASS = IVPASS + 1 04490302
453: WRITE (I02,80002) IVTNUM 04500302
454: GO TO 0101 04510302
455: 20090 IVFAIL = IVFAIL + 1 04520302
456: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04530302
457: 0101 CONTINUE 04540302
458: C 04550302
459: C **** FCVS PROGRAM 302 - TEST 010 **** 04560302
460: C 04570302
461: C TEST 010 IS DESIGNED TO TEST THE ABILITY TO RENAME ENTITIES 04580302
462: C IN NAMED COMMON BETWEEN A MAIN PROGRAM AND A SUBROUTINE. 04590302
463: C 04600302
464: IVTNUM = 10 04610302
465: IF (ICZERO) 30100, 0100, 30100 04620302
466: 0100 CONTINUE 04630302
467: IVCOMP = 1 04640302
468: IF (IVCNF1 .EQ. 42) IVCOMP = IVCOMP * 2 04650302
469: IF (IVCNF2 .EQ. 43) IVCOMP = IVCOMP * 3 04660302
470: IF (IVCNF3 .EQ. 44) IVCOMP = IVCOMP * 5 04670302
471: IF (IACN1F(1) .EQ. 142) IVCOMP = IVCOMP * 7 04680302
472: IF (IACN1F(2) .EQ. 143) IVCOMP = IVCOMP * 11 04690302
473: IF (IACN1F(3) .EQ. 144) IVCOMP = IVCOMP * 13 04700302
474: IVCORR = 30030 04710302
475: C 30030 = 2 * 3 * 5 * 7 * 11 * 13 04720302
476: 40100 IF (IVCOMP - 30030) 20100, 10100, 20100 04730302
477: 30100 IVDELE = IVDELE + 1 04740302
478: WRITE (I02,80000) IVTNUM 04750302
479: IF (ICZERO) 10100, 0111, 20100 04760302
480: 10100 IVPASS = IVPASS + 1 04770302
481: WRITE (I02,80002) IVTNUM 04780302
482: GO TO 0111 04790302
483: 20100 IVFAIL = IVFAIL + 1 04800302
484: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 04810302
485: 0111 CONTINUE 04820302
486: C 04830302
487: C **** FCVS PROGRAM 302 - TEST 011 **** 04840302
488: C 04850302
489: C TEST 011 IS DESIGNED TO TEST THE STORAGE OF A VARIABLE IN 04860302
490: C NAMED COMMON BY EQUIVALENCE ASSOCIATION. 04870302
491: C 04880302
492: IVTNUM = 11 04890302
493: IF (ICZERO) 30110, 0110, 30110 04900302
494: 0110 CONTINUE 04910302
495: IVCOMP = 0 04920302
496: IVCOMP = IVCEH2 04930302
497: IVCORR = 6 04940302
498: 40110 IF (IVCOMP - 6) 20110, 10110, 20110 04950302
499: 30110 IVDELE = IVDELE + 1 04960302
500: WRITE (I02,80000) IVTNUM 04970302
501: IF (ICZERO) 10110, 0121, 20110 04980302
502: 10110 IVPASS = IVPASS + 1 04990302
503: WRITE (I02,80002) IVTNUM 05000302
504: GO TO 0121 05010302
505: 20110 IVFAIL = IVFAIL + 1 05020302
506: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05030302
507: 0121 CONTINUE 05040302
508: C 05050302
509: C **** FCVS PROGRAM 302 - TEST 012 **** 05060302
510: C 05070302
511: C TEST 012 IS DESIGNED TO TEST THE STORAGE OF A VARIABLE IN 05080302
512: C UNNAMED COMMON BY EQUIVALENCE ASSOCIATION. 05090302
513: C 05100302
514: IVTNUM = 12 05110302
515: IF (ICZERO) 30120, 0120, 30120 05120302
516: 0120 CONTINUE 05130302
517: IVCOMP = 1 05140302
518: IF (IVCE09 .EQ. 100) IVCOMP = IVCOMP * 2 05150302
519: IF (IVCE10 .EQ. 100) IVCOMP = IVCOMP * 3 05160302
520: IVCORR = 6 05170302
521: C 6 = 2 * 3 05180302
522: 40120 IF (IVCOMP - 6) 20120, 10120, 20120 05190302
523: 30120 IVDELE = IVDELE + 1 05200302
524: WRITE (I02,80000) IVTNUM 05210302
525: IF (ICZERO) 10120, 0131, 20120 05220302
526: 10120 IVPASS = IVPASS + 1 05230302
527: WRITE (I02,80002) IVTNUM 05240302
528: GO TO 0131 05250302
529: 20120 IVFAIL = IVFAIL + 1 05260302
530: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05270302
531: 0131 CONTINUE 05280302
532: C 05290302
533: C **** FCVS PROGRAM 302 - TEST 013 **** 05300302
534: C 05310302
535: C TEST 013 IS DESIGNED TO TEST THE EXTENSION OF NAMED COMMON 05320302
536: C BLOCK STORAGE BY EQUIVALENCE ASSOCIATION OF A VARIABLE AND AN 05330302
537: C ARRAY. 05340302
538: C 05350302
539: IVTNUM = 13 05360302
540: IF (ICZERO) 30130, 0130, 30130 05370302
541: 0130 CONTINUE 05380302
542: IVCOMP = 1 05390302
543: IF (IVCEI1 .EQ. 11) IVCOMP = IVCOMP * 2 05400302
544: IF (IACE1I(1) .EQ. 11) IVCOMP = IVCOMP * 3 05410302
545: IF (IACE1I(2) .EQ. 16) IVCOMP = IVCOMP * 5 05420302
546: IF (IACE1I(3) .EQ. 21) IVCOMP = IVCOMP * 7 05430302
547: IVCORR = 210 05440302
548: C 210 = 2 * 3 * 5 * 7 05450302
549: 40130 IF (IVCOMP - 210) 20130, 10130, 20130 05460302
550: 30130 IVDELE = IVDELE + 1 05470302
551: WRITE (I02,80000) IVTNUM 05480302
552: IF (ICZERO) 10130, 0141, 20130 05490302
553: 10130 IVPASS = IVPASS + 1 05500302
554: WRITE (I02,80002) IVTNUM 05510302
555: GO TO 0141 05520302
556: 20130 IVFAIL = IVFAIL + 1 05530302
557: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05540302
558: 0141 CONTINUE 05550302
559: C 05560302
560: C **** FCVS PROGRAM 302 - TEST 014 **** 05570302
561: C 05580302
562: C TEST 014 IS DESIGNED TO TEST THE ABILITY OF PASSING DATA 05590302
563: C THROUGH UNNAMED COMMON FROM EXTERNAL FUNCTIONS WHICH HAVE MORE 05600302
564: C ENTITIES IN UNNAMED COMMON THAN THE MAIN PROGRAM. 05610302
565: C 05620302
566: IVTNUM = 14 05630302
567: IF (ICZERO) 30140, 0140, 30140 05640302
568: 0140 CONTINUE 05650302
569: IVCOMP = 0 05660302
570: IVCOMP = IVCN12 05670302
571: IVCORR = 11 05680302
572: 40140 IF (IVCOMP - 11) 20140, 10140, 20140 05690302
573: 30140 IVDELE = IVDELE + 1 05700302
574: WRITE (I02,80000) IVTNUM 05710302
575: IF (ICZERO) 10140, 0151, 20140 05720302
576: 10140 IVPASS = IVPASS + 1 05730302
577: WRITE (I02,80002) IVTNUM 05740302
578: GO TO 0151 05750302
579: 20140 IVFAIL = IVFAIL + 1 05760302
580: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 05770302
581: 0151 CONTINUE 05780302
582: C 05790302
583: C **** FCVS PROGRAM 302 - TEST 015 **** 05800302
584: C 05810302
585: C TEST 015 IS DESIGNED TO TEST THE ABILITY OF PASSING DATA 05820302
586: C THROUGH NAMED COMMON BETWEEN EXTERNAL FUNCTIONS WHERE THE NAMED 05830302
587: C COMMON BLOCK IS NOT SPECIFIED IN THE MAIN PROGRAM. 05840302
588: C 05850302
589: IVTNUM = 15 05860302
590: IF (ICZERO) 30150, 0150, 30150 05870302
591: 0150 CONTINUE 05880302
592: IVCOMP = 0 05890302
593: IVCOMP = IVCNJ1 05900302
594: IVCORR = 5 05910302
595: 40150 IF (IVCOMP - 5) 20150, 10150, 20150 05920302
596: 30150 IVDELE = IVDELE + 1 05930302
597: WRITE (I02,80000) IVTNUM 05940302
598: IF (ICZERO) 10150, 0161, 20150 05950302
599: 10150 IVPASS = IVPASS + 1 05960302
600: WRITE (I02,80002) IVTNUM 05970302
601: GO TO 0161 05980302
602: 20150 IVFAIL = IVFAIL + 1 05990302
603: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06000302
604: 0161 CONTINUE 06010302
605: C 06020302
606: C **** FCVS PROGRAM 302 - TEST 016 **** 06030302
607: C 06040302
608: C TEST 016 IS DESIGNED TO TEST THE PASSING OF CHARACTER DATA 06050302
609: C IN NAMED COMMON BETWEEN THE MAIN PROGRAM AND A SUBROUTINE. 06060302
610: C 06070302
611: IVTNUM = 16 06080302
612: IF (ICZERO) 30160, 0160, 30160 06090302
613: 0160 CONTINUE 06100302
614: IVCOMP = 1 06110302
615: IF (CVTN01 .EQ. 'YZ') IVCOMP = IVCOMP * 2 06120302
616: IF (CVTN02 .EQ. 'UVW') IVCOMP = IVCOMP * 3 06130302
617: IF (CATN11(1) .EQ. 'VWXYZ') IVCOMP = IVCOMP * 5 06140302
618: IF (CATN11(2) .EQ. 'KLMNO') IVCOMP = IVCOMP * 7 06150302
619: IF (CATN11(3) .EQ. 'ABCDE') IVCOMP = IVCOMP * 11 06160302
620: IVCORR = 2310 06170302
621: C 2310 = 2 * 3 * 5 * 7 * 11 06180302
622: 40160 IF (IVCOMP - 2310) 20160, 10160, 20160 06190302
623: 30160 IVDELE = IVDELE + 1 06200302
624: WRITE (I02,80000) IVTNUM 06210302
625: IF (ICZERO) 10160, 0171, 20160 06220302
626: 10160 IVPASS = IVPASS + 1 06230302
627: WRITE (I02,80002) IVTNUM 06240302
628: GO TO 0171 06250302
629: 20160 IVFAIL = IVFAIL + 1 06260302
630: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 06270302
631: 0171 CONTINUE 06280302
632: C 06290302
633: C 06300302
634: C WRITE OUT TEST SUMMARY 06310302
635: C 06320302
636: WRITE (I02,90004) 06330302
637: WRITE (I02,90014) 06340302
638: WRITE (I02,90004) 06350302
639: WRITE (I02,90000) 06360302
640: WRITE (I02,90004) 06370302
641: WRITE (I02,90020) IVFAIL 06380302
642: WRITE (I02,90022) IVPASS 06390302
643: WRITE (I02,90024) IVDELE 06400302
644: STOP 06410302
645: 90001 FORMAT (1H ,24X,5HFM302) 06420302
646: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM302) 06430302
647: C 06440302
648: C FORMATS FOR TEST DETAIL LINES 06450302
649: C 06460302
650: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 06470302
651: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 06480302
652: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 06490302
653: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 06500302
654: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 06510302
655: C 06520302
656: C FORMAT STATEMENTS FOR PAGE HEADERS 06530302
657: C 06540302
658: 90002 FORMAT (1H1) 06550302
659: 90004 FORMAT (1H ) 06560302
660: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 06570302
661: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 06580302
662: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 06590302
663: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 06600302
664: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 06610302
665: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 06620302
666: C 06630302
667: C FORMAT STATEMENTS FOR RUN SUMMARY 06640302
668: C 06650302
669: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 06660302
670: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 06670302
671: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 06680302
672: END 06690302
673: SUBROUTINE FS303 00010303
674: C DATE***82/08/02*18.33.46
675: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/
676: C AUDIT FCVS78 V2.0
677: C 00020303
678: C FS303 IS A SUBROUTINE WHICH IS CALLED ONCE FROM PROGRAM FM302. 00030303
679: C IT IS USED TO MODIFY VARIABLES AND ARRAY PASSED THROUGH NAMED AND 00040303
680: C UNNAMED COMMON FROM FM302. AFTER THE DATA ENTITIES ARE MODIFIED 00050303
681: C CONTROL IS RETURNED TO FM302 WHERE EACH ENTITY IS TESTED. 00060303
682: C 00070303
683: IMPLICIT LOGICAL (L) 00080303
684: DIMENSION RACN11(10) 00090303
685: COMMON IVCN01 00100303
686: COMMON //IVCN02, LVCN01 00110303
687: COMMON RVCN01//IVCN03 00120303
688: COMMON IVCN04,IVCN05, //IACN11(4) 00130303
689: COMMON /BLK1/IVCNA1 00140303
690: COMMON /BLK2/IVCNB1,RVCNB1,/BLK2/IVCNB2 00150303
691: COMMON /BLK3/LVCNC1,IVCNC1/BLK4/RACN11,IACN21(2,3) 00160303
692: COMMON /BLK7/IACN1G(5),IVCNG1 00170303
693: COMMON /BLK8/IVCNH1 00180303
694: COMMON /BLKCHR/CVTN01,CVTN02,CATN11 00190303
695: CHARACTER CVTN01*2, CVTN02*3, CATN11(3)*5 00200303
696: C TEST 001 00210303
697: IVCN01 = IVCN01 + 1 00220303
698: C TEST 002 00230303
699: IVCN02 = IVCN02 + 5 00240303
700: LVCN01 = .NOT. LVCN01 00250303
701: C TEST 005 00260303
702: IVCNA1 = IVCNA1 / 5 00270303
703: C TEST 006 00280303
704: IVCNB1 = IVCNB1 + IVCNB2 00290303
705: RVCNB1 = 3.5 00300303
706: C TEST 007 00310303
707: LVCNC1 = .FALSE. 00320303
708: IVCNC1 = IVCNC1 - 1 00330303
709: RACN11(1) = 111. 00340303
710: RACN11(10) = 110. 00350303
711: IACN21(1,1) = IACN21(1,1) + 1 00360303
712: IACN21(2,3) = IACN21(2,3) + 1 00370303
713: C TEST 010 00380303
714: IACN1G(1) = IACN1G(1) + 1 00390303
715: IACN1G(2) = 43 00400303
716: IACN1G(3) = IACN1G(3) + 1 00410303
717: IACN1G(4) = IACN1G(4) + 1 00420303
718: IACN1G(5) = IACN1G(5) + 1 00430303
719: IVCNG1 = 144 00440303
720: C TEST 011 00450303
721: IVCNH1 = IVCNH1 + 1 00460303
722: C TEST 017 00470303
723: CVTN01 = 'YZ' 00480303
724: CVTN02 = 'UVW' 00490303
725: CATN11(1) = 'VWXYZ' 00500303
726: CATN11(3) = 'ABCDE' 00510303
727: RETURN 00520303
728: END 00530303
729: INTEGER FUNCTION FF304 () 00010304
730: C DATE***82/08/02*18.33.46
731: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/
732: C AUDIT FCVS78 V2.0
733: C 00020304
734: C FF304 IS AN EXTERNAL FUNCTION WHICH IS REFERENCED ONCE FROM 00030304
735: C PROGRAM FM302. IT IS USED TO MODIFY VARIABLES AND ARRAYS PASSED 00040304
736: C THROUGH NAMED AND UNNAMED COMMON FROM FM302. AFTER THE DATA 00050304
737: C ENTITIES ARE MODIFIED CONTROL IS RETURNED TO FM302 WHERE EACH 00060304
738: C ENTITY IS TESTED. A FUNCTION VALUE OF 999 IS RETURNED BUT IT IS 00070304
739: C NOT SIGNIFICANT NOR IS IT TESTED BY FM302. 00080304
740: C 00090304
741: IMPLICIT LOGICAL (L) 00100304
742: DIMENSION IACN11(4) 00110304
743: COMMON IVCN01 00120304
744: COMMON IVCN02, LVCN01 00130304
745: COMMON RVCN01, IVCN03 00140304
746: COMMON IVCN04,IVCN05,IACN11 00150304
747: COMMON /BLK5/IVCND1,IVCND2 00160304
748: COMMON IVCN06 00170304
749: COMMON /BLK5/RVCND1,LVCND1 00180304
750: COMMON IVCN07, IVCN08 00190304
751: COMMON /BLK6/RVCNE1 00200304
752: COMMON IVCN10 00210304
753: COMMON /BLK9/IVCNI1, IVCNI2, IVCNI3 00220304
754: COMMON IVCN12, IVCN13 00230304
755: COMMON /BLK10/IVCNJ1 00240304
756: COMMON /BLK11/IVCNK1 00250304
757: INTEGER FF305 00260304
758: C TEST 003 00270304
759: RVCN01 = 4.2 00280304
760: IVCN03 = IVCN03 + 1 00290304
761: C TEST 004 00300304
762: IVCN04 = 32 00310304
763: IVCN04 = IVCN04 / 4 00320304
764: IVCN05 = IVCN05 00330304
765: IACN11(1) = IACN11(1) + 4 00340304
766: IACN11(2) = IACN11(2) + 3 00350304
767: IACN11(3) = IACN11(3) + 2 00360304
768: IACN11(4) = IACN11(4) + 1 00370304
769: C TEST 008 00380304
770: IVCND1 = IVCND1 + 1 00390304
771: IVCND2 = IVCND2 + 1 00400304
772: C TEST 009 00410304
773: IVCN06 = IVCN06 + 1 00420304
774: RVCND1 = 4.5 00430304
775: LVCND1 = .TRUE. 00440304
776: IVCN07 = -IVCN07 00450304
777: IVCN08 = -3 00460304
778: RVCNE1 = -6.7 00470304
779: C TEST 012 00480304
780: IVCN10 = IVCN10 * IVCN10 00490304
781: C TEST 013 00500304
782: IVCNI1 = IVCNI1 + 1 00510304
783: IVCNI2 = IVCNI2 + 1 00520304
784: IVCNI3 = IVCNI3 + 1 00530304
785: C TEST 014 00540304
786: IVCN13 = 5 00550304
787: C TEST 015 00560304
788: IVCNK1 = 3 00570304
789: C 00580304
790: C FOR TESTS 014 AND 015 EXTERNAL FUNCTION FF305 IS REFERENCED 00590304
791: C 00600304
792: IVON99 = FF305 () 00610304
793: C TEST 014 00620304
794: IVCN12 = IVCN13 00630304
795: C TEST 015 00640304
796: IVCNJ1 = IVCNK1 00650304
797: FF304 = 999 00660304
798: RETURN 00670304
799: END 00680304
800: INTEGER FUNCTION FF305 () 00010305
801: C DATE***82/08/02*18.33.46
802: C OWNER PRE/850703/TC-85- -410/ /FSTC/278FCVS*F78UBP20/
803: C AUDIT FCVS78 V2.0
804: C 00020305
805: C FF305 IS AN EXTERNAL FUNCTION WHICH IS USED IN TEST 014 AND 00030305
806: C 015 OF PROGRAM FM302. THIS SUBPROGRAM IS REFERENCED FROM EXTERNAL 00040305
807: C FUNCTION FF304. 00050305
808: C 00060305
809: COMMON IACN11(15) 00070305
810: COMMON IVCN12, IVCN13, IVCN14 00080305
811: COMMON /BLK10/IVCNJ1, /BLK11/IVCNK1 00090305
812: C TEST 014 00100305
813: IVCN14 = 11 00110305
814: IVCN13 = IVCN14 00120305
815: C TEST 015 00130305
816: IVCNK1 = 5 00140305
817: FF305 = 999 00150305
818: RETURN 00160305
819: END 00170305
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.