|
|
1.1 root 1: PROGRAM FM201 00010201
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 00020201
6: C 00030201
7: C THIS ROUTINE VERIFIES THAT 00040201
8: C 00050201
9: C (1) THE VALUE OF A SIGNED ZERO IS THE SAME AS THE VALUE OF 00060201
10: C AN UNSIGNED ZERO FOR INTEGER AND REAL VARIABLES. 00070201
11: C 00080201
12: C (2) A BASIC REAL CONSTANT MAY BE WRITTEN WITH MORE DIGITS 00090201
13: C THAN A PROCESSOR WILL USE TO APPROXIMATE THE VALUE OF 00100201
14: C THE CONSTANT. 00110201
15: C 00120201
16: C (3) AN IMPLICIT STATEMENT CAN BE USED TO CHANGE THE DEFAULT 00130201
17: C IMPLICIT INTEGER AND REAL TYPING. 00140201
18: C 00150201
19: C (4) THE IMPLICIT INTEGER AND REAL TYPING OF AN IMPLICIT 00160201
20: C STATEMENT MAY BE OVERRIDDEN BY THE APPEARANCE OF A 00170201
21: C VARIABLE NAME IN A TYPE-STATEMENT. 00180201
22: C 00190201
23: C REFERENCES 00200201
24: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00210201
25: C X3.9-1978 00220201
26: C 00230201
27: C SECTION 4.1.3, DATA TYPE PROPERTIES 00240201
28: C SECTION 4.4.1, BASIC REAL CONSTANT 00250201
29: C SECTION 6.1.5, INTEGER DIVISION 00260201
30: C SECTION 8.4, TYPE-STATEMENTS 00270201
31: C SECTION 8.5, IMPLICIT STATEMENT 00280201
32: C 00290201
33: C 00300201
34: C ******************************************************************00310201
35: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00320201
36: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN STANDARD FORTRAN 00330201
37: C X3.9-1978, HAS BEEN DEVELOPED BY THE DEPARTMENT OF THE NAVY. THE 00340201
38: C FORTRAN COMPILER VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT 00350201
39: C ROUTINES, THEIR RELATED DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT00360201
40: C ROUTINE IS A FORTRAN PROGRAM OR SUBPROGRAM WHICH INCLUDES TESTS 00370201
41: C OF SPECIFIC LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING00380201
42: C THE RESULT OF EXECUTING THESE TESTS. 00390201
43: C 00400201
44: C THIS PARTICULAR PROGRAM OR SUBPROGRAM CONTAINS ONLY FEATURES 00410201
45: C FOUND IN THE SUBSET LEVEL OF THE STANDARD. 00420201
46: C 00430201
47: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO 00440201
48: C DEPARTMENT OF THE NAVY 00450201
49: C FEDERAL COBOL COMPILER TESTING SERVICE 00460201
50: C WASHINGTON, D.C. 20376 00470201
51: C 00480201
52: C ******************************************************************00490201
53: C 00500201
54: C 00510201
55: IMPLICIT LOGICAL (L) 00520201
56: IMPLICIT CHARACTER*14 (C) 00530201
57: C 00540201
58: IMPLICIT INTEGER (Y, V-X), REAL (M) 00550201
59: REAL RVTN01, RVTN02, RVTN03, YVTN02 00560201
60: INTEGER IVTN01, IVTN02, MVTN02 00570201
61: C THE ABOVE THREE STATEMENTS ARE REFERENCED IN TESTS 29 THRU 35. 00580201
62: C 00590201
63: C 00600201
64: C 00610201
65: C INITIALIZATION SECTION. 00620201
66: C 00630201
67: C INITIALIZE CONSTANTS 00640201
68: C ******************** 00650201
69: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER 00660201
70: I01 = 5 00670201
71: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER 00680201
72: I02 = 6 00690201
73: C SYSTEM ENVIRONMENT SECTION 00700201
74: C 00710201
75: I01 = 5 00720201
76: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00730201
77: C (UNIT NUMBER FOR CARD READER). 00740201
78: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD00750201
79: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00760201
80: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00770201
81: C 00780201
82: I02 = 6 00790201
83: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00800201
84: C (UNIT NUMBER FOR PRINTER). 00810201
85: CX021 THIS CARD IS PEPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD.00820201
86: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00830201
87: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00840201
88: C 00850201
89: IVPASS = 0 00860201
90: IVFAIL = 0 00870201
91: IVDELE = 0 00880201
92: ICZERO = 0 00890201
93: C 00900201
94: C WRITE OUT PAGE HEADERS 00910201
95: C 00920201
96: WRITE (I02,90002) 00930201
97: WRITE (I02,90006) 00940201
98: WRITE (I02,90008) 00950201
99: WRITE (I02,90004) 00960201
100: WRITE (I02,90010) 00970201
101: WRITE (I02,90004) 00980201
102: WRITE (I02,90016) 00990201
103: WRITE (I02,90001) 01000201
104: WRITE (I02,90004) 01010201
105: WRITE (I02,90012) 01020201
106: WRITE (I02,90014) 01030201
107: WRITE (I02,90004) 01040201
108: C 01050201
109: C 01060201
110: C TEST 14 THROUGH TEST 17 COMPARE INTEGER VARIABLES WHICH ARE 01070201
111: C SET TO SIGNED ZERO AND UNSIGNED ZERO VALUES BY THE FOLLOWING 01080201
112: C STATEMENTS 01090201
113: C 01100201
114: IVON01 = 0 01110201
115: IVON02 = -0 01120201
116: IVON03 = +0 01130201
117: C 01140201
118: C REFERENCE X3.9-1978, SECTION 4.1.3, DATA TYPE PROPERTIES 01150201
119: C 01160201
120: C **** FCVS PROGRAM 201 - TEST 014 **** 01170201
121: C 01180201
122: C COMPARE 0 TO -0 01190201
123: C 01200201
124: IVTNUM = 14 01210201
125: IF (ICZERO) 30140, 0140, 30140 01220201
126: 0140 CONTINUE 01230201
127: IVCOMP = 1 01240201
128: IVCORR = 0 01250201
129: IF (IVON01 .EQ. IVON02) IVCOMP = 0 01260201
130: 40140 IF (IVCOMP) 20140, 10140, 20140 01270201
131: 30140 IVDELE = IVDELE + 1 01280201
132: WRITE (I02,80000) IVTNUM 01290201
133: IF (ICZERO) 10140, 0151, 20140 01300201
134: 10140 IVPASS = IVPASS + 1 01310201
135: WRITE (I02,80002) IVTNUM 01320201
136: GO TO 0151 01330201
137: 20140 IVFAIL = IVFAIL + 1 01340201
138: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01350201
139: 0151 CONTINUE 01360201
140: C 01370201
141: C **** FCVS PROGRAM 201 - TEST 015 **** 01380201
142: C 01390201
143: C COMPARE 0 TO +0 01400201
144: C 01410201
145: IVTNUM = 15 01420201
146: IF (ICZERO) 30150, 0150, 30150 01430201
147: 0150 CONTINUE 01440201
148: IVCOMP = 1 01450201
149: IVCORR = 0 01460201
150: IF (IVON01 .EQ. IVON03) IVCOMP = 0 01470201
151: 40150 IF (IVCOMP) 20150, 10150, 20150 01480201
152: 30150 IVDELE = IVDELE + 1 01490201
153: WRITE (I02,80000) IVTNUM 01500201
154: IF (ICZERO) 10150, 0161, 20150 01510201
155: 10150 IVPASS = IVPASS + 1 01520201
156: WRITE (I02,80002) IVTNUM 01530201
157: GO TO 0161 01540201
158: 20150 IVFAIL = IVFAIL + 1 01550201
159: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01560201
160: 0161 CONTINUE 01570201
161: C 01580201
162: C **** FCVS PROGRAM 201 - TEST 016 **** 01590201
163: C 01600201
164: C COMPARE -0 TO +0 01610201
165: C 01620201
166: IVTNUM = 16 01630201
167: IF (ICZERO) 30160, 0160, 30160 01640201
168: 0160 CONTINUE 01650201
169: IVCOMP = 1 01660201
170: IVCORR = 0 01670201
171: IF (IVON02 .EQ. IVON03) IVCOMP = 0 01680201
172: 40160 IF (IVCOMP) 20160, 10160, 20160 01690201
173: 30160 IVDELE = IVDELE + 1 01700201
174: WRITE (I02,80000) IVTNUM 01710201
175: IF (ICZERO) 10160, 0171, 20160 01720201
176: 10160 IVPASS = IVPASS + 1 01730201
177: WRITE (I02,80002) IVTNUM 01740201
178: GO TO 0171 01750201
179: 20160 IVFAIL = IVFAIL + 1 01760201
180: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01770201
181: 0171 CONTINUE 01780201
182: C 01790201
183: C **** FCVS PROGRAM 201 - TEST 017 **** 01800201
184: C 01810201
185: C MINUS ZERO (-0) SHOULD NOT BE LESS THAN PLUS ZERO (+0) 01820201
186: C 01830201
187: IVTNUM = 17 01840201
188: IF (ICZERO) 30170, 0170, 30170 01850201
189: 0170 CONTINUE 01860201
190: IVCOMP = 1 01870201
191: IVCORR = 0 01880201
192: IF (IVON02 .LT. IVON03) GO TO 20170 01890201
193: IVCOMP = 0 01900201
194: GO TO 10170 01910201
195: 30170 IVDELE = IVDELE + 1 01920201
196: WRITE (I02,80000) IVTNUM 01930201
197: IF (ICZERO) 10170, 0181, 20170 01940201
198: 10170 IVPASS = IVPASS + 1 01950201
199: WRITE (I02,80002) IVTNUM 01960201
200: GO TO 0181 01970201
201: 20170 IVFAIL = IVFAIL + 1 01980201
202: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 01990201
203: 0181 CONTINUE 02000201
204: C 02010201
205: C TEST 18 THROUGH TEST 24 COMPARE REAL VARIABLES WHICH ARE SET 02020201
206: C TO SIGNED ZERO AND UNSIGNED ZERO VALUES BY THE FOLLOWING 02030201
207: C STATEMENTS 02040201
208: C 02050201
209: RVON01 = 0.0 02060201
210: RVON02 = -0.0 02070201
211: RVON03 = +0.0 02080201
212: RVON04 = -0.0E+01 02090201
213: RVON05 = -0E+10 02100201
214: C 02110201
215: C REFERENCE X3.9-1978, SECTION 4.1.3, DATA TYPE PROPERTIES 02120201
216: C 02130201
217: C **** FCVS PROGRAM 201 - TEST 018 **** 02140201
218: C 02150201
219: C COMPARE 0.0 TO -0.0 02160201
220: C 02170201
221: IVTNUM = 18 02180201
222: IF (ICZERO) 30180, 0180, 30180 02190201
223: 0180 CONTINUE 02200201
224: IVCOMP = 1 02210201
225: IVCORR = 0 02220201
226: IF (RVON01 .EQ. RVON02) IVCOMP = 0 02230201
227: 40180 IF (IVCOMP) 20180, 10180, 20180 02240201
228: 30180 IVDELE = IVDELE + 1 02250201
229: WRITE (I02,80000) IVTNUM 02260201
230: IF (ICZERO) 10180, 0191, 20180 02270201
231: 10180 IVPASS = IVPASS + 1 02280201
232: WRITE (I02,80002) IVTNUM 02290201
233: GO TO 0191 02300201
234: 20180 IVFAIL = IVFAIL + 1 02310201
235: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02320201
236: 0191 CONTINUE 02330201
237: C 02340201
238: C **** FCVS PROGRAM 201 - TEST 019 **** 02350201
239: C 02360201
240: C COMPARE 0.0 TO +0.0 02370201
241: C 02380201
242: IVTNUM = 19 02390201
243: IF (ICZERO) 30190, 0190, 30190 02400201
244: 0190 CONTINUE 02410201
245: IVCOMP = 1 02420201
246: IVCORR = 0 02430201
247: IF (RVON01 .EQ. RVON03) IVCOMP = 0 02440201
248: 40190 IF (IVCOMP) 20190, 10190, 20190 02450201
249: 30190 IVDELE = IVDELE + 1 02460201
250: WRITE (I02,80000) IVTNUM 02470201
251: IF (ICZERO) 10190, 0201, 20190 02480201
252: 10190 IVPASS = IVPASS + 1 02490201
253: WRITE (I02,80002) IVTNUM 02500201
254: GO TO 0201 02510201
255: 20190 IVFAIL = IVFAIL + 1 02520201
256: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02530201
257: 0201 CONTINUE 02540201
258: C 02550201
259: C **** FCVS PROGRAM 201 - TEST 020 **** 02560201
260: C 02570201
261: C COMPARE -0.0 TO +0.0 02580201
262: C 02590201
263: IVTNUM = 20 02600201
264: IF (ICZERO) 30200, 0200, 30200 02610201
265: 0200 CONTINUE 02620201
266: IVCOMP = 1 02630201
267: IVCORR = 0 02640201
268: IF (RVON02 .EQ. RVON03) IVCOMP = 0 02650201
269: 40200 IF (IVCOMP) 20200, 10200, 20200 02660201
270: 30200 IVDELE = IVDELE + 1 02670201
271: WRITE (I02,80000) IVTNUM 02680201
272: IF (ICZERO) 10200, 0211, 20200 02690201
273: 10200 IVPASS = IVPASS + 1 02700201
274: WRITE (I02,80002) IVTNUM 02710201
275: GO TO 0211 02720201
276: 20200 IVFAIL = IVFAIL + 1 02730201
277: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02740201
278: 0211 CONTINUE 02750201
279: C 02760201
280: C **** FCVS PROGRAM 201 - TEST 021 **** 02770201
281: C 02780201
282: C MINUS ZERO (-0.0) SHOULD NOT BE LESS THAN PLUS ZERO (+0.0) 02790201
283: C 02800201
284: IVTNUM = 21 02810201
285: IF (ICZERO) 30210, 0210, 30210 02820201
286: 0210 CONTINUE 02830201
287: IVCOMP = 1 02840201
288: IVCORR = 0 02850201
289: IF (RVON02 .LT. RVON03) GO TO 20210 02860201
290: IVCOMP = 0 02870201
291: GO TO 10210 02880201
292: 30210 IVDELE = IVDELE + 1 02890201
293: WRITE (I02,80000) IVTNUM 02900201
294: IF (ICZERO) 10210, 0221, 20210 02910201
295: 10210 IVPASS = IVPASS + 1 02920201
296: WRITE (I02,80002) IVTNUM 02930201
297: GO TO 0221 02940201
298: 20210 IVFAIL = IVFAIL + 1 02950201
299: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 02960201
300: 0221 CONTINUE 02970201
301: C 02980201
302: C **** FCVS PROGRAM 201 - TEST 022 **** 02990201
303: C 03000201
304: C COMPARE -0.0E+01 TO 0.0 03010201
305: C 03020201
306: IVTNUM = 22 03030201
307: IF (ICZERO) 30220, 0220, 30220 03040201
308: 0220 CONTINUE 03050201
309: IVCOMP = 1 03060201
310: IVCORR = 0 03070201
311: IF (RVON04 .EQ. RVON01) IVCOMP = 0 03080201
312: 40220 IF (IVCOMP) 20220, 10220, 20220 03090201
313: 30220 IVDELE = IVDELE + 1 03100201
314: WRITE (I02,80000) IVTNUM 03110201
315: IF (ICZERO) 10220, 0231, 20220 03120201
316: 10220 IVPASS = IVPASS + 1 03130201
317: WRITE (I02,80002) IVTNUM 03140201
318: GO TO 0231 03150201
319: 20220 IVFAIL = IVFAIL + 1 03160201
320: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03170201
321: 0231 CONTINUE 03180201
322: C 03190201
323: C **** FCVS PROGRAM 201 - TEST 023 **** 03200201
324: C 03210201
325: C COMPARE -0E+10 TO 0.0 03220201
326: C 03230201
327: IVTNUM = 23 03240201
328: IF (ICZERO) 30230, 0230, 30230 03250201
329: 0230 CONTINUE 03260201
330: IVCOMP = 1 03270201
331: IVCORR = 0 03280201
332: IF (RVON05 .EQ. RVON01) IVCOMP = 0 03290201
333: 40230 IF (IVCOMP) 20230, 10230, 20230 03300201
334: 30230 IVDELE = IVDELE + 1 03310201
335: WRITE (I02,80000) IVTNUM 03320201
336: IF (ICZERO) 10230, 0241, 20230 03330201
337: 10230 IVPASS = IVPASS + 1 03340201
338: WRITE (I02,80002) IVTNUM 03350201
339: GO TO 0241 03360201
340: 20230 IVFAIL = IVFAIL + 1 03370201
341: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03380201
342: 0241 CONTINUE 03390201
343: C 03400201
344: C **** FCVS PROGRAM 201 - TEST 024 **** 03410201
345: C 03420201
346: C COMPARE -0E+10 TO +0.0 03430201
347: C 03440201
348: IVTNUM = 24 03450201
349: IF (ICZERO) 30240, 0240, 30240 03460201
350: 0240 CONTINUE 03470201
351: IVCOMP = 1 03480201
352: IVCORR = 0 03490201
353: IF (RVON05 .NE. RVON03) GO TO 20240 03500201
354: IVCOMP = 0 03510201
355: GO TO 10240 03520201
356: 30240 IVDELE = IVDELE + 1 03530201
357: WRITE (I02,80000) IVTNUM 03540201
358: IF (ICZERO) 10240, 0251, 20240 03550201
359: 10240 IVPASS = IVPASS + 1 03560201
360: WRITE (I02,80002) IVTNUM 03570201
361: GO TO 0251 03580201
362: 20240 IVFAIL = IVFAIL + 1 03590201
363: WRITE (I02,80010) IVTNUM, IVCOMP, IVCORR 03600201
364: 0251 CONTINUE 03610201
365: C 03620201
366: C TEST 25 THROUGH TEST 28 VERIFY THAT A BASIC REAL CONSTANT MAY 03630201
367: C BE WRITTEN WITH MORE DIGITS THAN A PROCESSOR WILL USE TO APPROXI- 03640201
368: C MATE THE VALUE OF THE CONSTANT. 03650201
369: C 03660201
370: C REFERENCE X3.9-1978, SECTION 4.4.1, BASIC REAL CONSTANT 03670201
371: C 03680201
372: C 03690201
373: C **** FCVS PROGRAM 201 - TEST 025 **** 03700201
374: C 03710201
375: C EIGHT DIGITS IN BASIC REAL CONSTANT 03720201
376: C 03730201
377: IVTNUM = 25 03740201
378: IF (ICZERO) 30250, 0250, 30250 03750201
379: 0250 CONTINUE 03760201
380: RVON06 = 0.0 03770201
381: RVCOMP = 0.0 03780201
382: RVON06 = 3.1561234 03790201
383: RVCOMP = RVON06 03800201
384: RVCORR = 3.1561 03810201
385: 40250 IF (RVCOMP - 3.1556) 20250, 10250, 40251 03820201
386: 40251 IF (RVCOMP - 3.1566) 10250, 10250, 20250 03830201
387: 30250 IVDELE = IVDELE + 1 03840201
388: WRITE (I02,80000) IVTNUM 03850201
389: IF (ICZERO) 10250, 0261, 20250 03860201
390: 10250 IVPASS = IVPASS + 1 03870201
391: WRITE (I02,80002) IVTNUM 03880201
392: GO TO 0261 03890201
393: 20250 IVFAIL = IVFAIL + 1 03900201
394: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 03910201
395: 0261 CONTINUE 03920201
396: C 03930201
397: C **** FCVS PROGRAM 201 - TEST 026 **** 03940201
398: C 03950201
399: C EIGHT DIGITS IN BASIC REAL CONSTANT PLUS A REAL EXPONENT. 03960201
400: C 03970201
401: IVTNUM = 26 03980201
402: IF (ICZERO) 30260, 0260, 30260 03990201
403: 0260 CONTINUE 04000201
404: RVON06 = 0.0 04010201
405: RVCOMP = 0.0 04020201
406: RVON06 = .31561234E+01 04030201
407: RVCOMP = RVON06 04040201
408: RVCORR = 3.1561 04050201
409: 40260 IF (RVCOMP - 3.1556) 20260, 10260, 40261 04060201
410: 40261 IF (RVCOMP - 3.1566) 10260, 10260, 20260 04070201
411: 30260 IVDELE = IVDELE + 1 04080201
412: WRITE (I02,80000) IVTNUM 04090201
413: IF (ICZERO) 10260, 0271, 20260 04100201
414: 10260 IVPASS = IVPASS + 1 04110201
415: WRITE (I02,80002) IVTNUM 04120201
416: GO TO 0271 04130201
417: 20260 IVFAIL = IVFAIL + 1 04140201
418: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 04150201
419: 0271 CONTINUE 04160201
420: C 04170201
421: C **** FCVS PROGRAM 201 - TEST 027 **** 04180201
422: C 04190201
423: C TWELVE DIGITS IN BASIC REAL CONSTANT. 04200201
424: C 04210201
425: IVTNUM = 27 04220201
426: IF (ICZERO) 30270, 0270, 30270 04230201
427: 0270 CONTINUE 04240201
428: RVON06 = 0.0 04250201
429: RVCOMP = 0.0 04260201
430: RVON06 = 315612347833 E-11 04270201
431: RVCOMP = RVON06 04280201
432: RVCORR = 3.1561 04290201
433: 40270 IF (RVCOMP - 3.1556) 20270, 10270, 40271 04300201
434: 40271 IF (RVCOMP - 3.1566) 10270, 10270, 20270 04310201
435: 30270 IVDELE = IVDELE + 1 04320201
436: WRITE (I02,80000) IVTNUM 04330201
437: IF (ICZERO) 10270, 0281, 20270 04340201
438: 10270 IVPASS = IVPASS + 1 04350201
439: WRITE (I02,80002) IVTNUM 04360201
440: GO TO 0281 04370201
441: 20270 IVFAIL = IVFAIL + 1 04380201
442: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 04390201
443: 0281 CONTINUE 04400201
444: C 04410201
445: C **** FCVS PROGRAM 201 - TEST 028 **** 04420201
446: C 04430201
447: C TWENTY-FIVE DIGITS IN BASIC REAL CONSTANT. 04440201
448: C 04450201
449: IVTNUM = 28 04460201
450: IF (ICZERO) 30280, 0280, 30280 04470201
451: 0280 CONTINUE 04480201
452: RVON06 = 0.0 04490201
453: RVCOMP = 0.0 04500201
454: RVON06 = 31.56123478334867532834672E-1 04510201
455: RVCOMP = RVON06 04520201
456: RVCORR = 3.1561 04530201
457: 40280 IF (RVCOMP - 3.1556) 20280, 10280, 40281 04540201
458: 40281 IF (RVCOMP - 3.1566) 10280, 10280, 20280 04550201
459: 30280 IVDELE = IVDELE + 1 04560201
460: WRITE (I02,80000) IVTNUM 04570201
461: IF (ICZERO) 10280, 0291, 20280 04580201
462: 10280 IVPASS = IVPASS + 1 04590201
463: WRITE (I02,80002) IVTNUM 04600201
464: GO TO 0291 04610201
465: 20280 IVFAIL = IVFAIL + 1 04620201
466: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 04630201
467: 0291 CONTINUE 04640201
468: C 04650201
469: C TEST 29 THROUGH TEST 33 REFERENCE VARIABLES WHOSE TYPE WAS 04660201
470: C SPECIFIED BY AN IMPLICIT STATEMENT. DIVISION IS USED TO VERIFY 04670201
471: C THAT THE TYPE IS INTEGER OR REAL. 04680201
472: C 04690201
473: C REFERENCE X3.9-1978, SECTION 8.5, IMPLICIT STATEMENT 04700201
474: C 04710201
475: C 04720201
476: C **** FCVS PROGRAM 201 - TEST 029 **** 04730201
477: C 04740201
478: C VERIFY YVIN01 IS AN INTEGER VARIABLE. 04750201
479: C 04760201
480: IVTNUM = 29 04770201
481: IF (ICZERO) 30290, 0290, 30290 04780201
482: 0290 CONTINUE 04790201
483: RVCOMP = 10.0 04800201
484: YVIN01 = 4.0 04810201
485: RVCOMP = YVIN01/5 04820201
486: RVCORR = 0.0 04830201
487: 40290 IF (RVCOMP) 20290, 10290, 20290 04840201
488: 30290 IVDELE = IVDELE + 1 04850201
489: WRITE (I02,80000) IVTNUM 04860201
490: IF (ICZERO) 10290, 0301, 20290 04870201
491: 10290 IVPASS = IVPASS + 1 04880201
492: WRITE (I02,80002) IVTNUM 04890201
493: GO TO 0301 04900201
494: 20290 IVFAIL = IVFAIL + 1 04910201
495: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 04920201
496: 0301 CONTINUE 04930201
497: C 04940201
498: C **** FCVS PROGRAM 201 - TEST 030 **** 04950201
499: C 04960201
500: C VERIFY VVIN01 IS AN INTEGER VARIABLE 04970201
501: C 04980201
502: IVTNUM = 30 04990201
503: IF (ICZERO) 30300, 0300, 30300 05000201
504: 0300 CONTINUE 05010201
505: RVCOMP = 10.0 05020201
506: VVIN01 = 4.0 05030201
507: RVCOMP = VVIN01/5 05040201
508: RVCORR = 0.0 05050201
509: 40300 IF (RVCOMP) 20300, 10300, 20300 05060201
510: 30300 IVDELE = IVDELE + 1 05070201
511: WRITE (I02,80000) IVTNUM 05080201
512: IF (ICZERO) 10300, 0311, 20300 05090201
513: 10300 IVPASS = IVPASS + 1 05100201
514: WRITE (I02,80002) IVTNUM 05110201
515: GO TO 0311 05120201
516: 20300 IVFAIL = IVFAIL + 1 05130201
517: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05140201
518: 0311 CONTINUE 05150201
519: C 05160201
520: C **** FCVS PROGRAM 201 - TEST 031 **** 05170201
521: C 05180201
522: C VERIFY WVIN01 IS AN INTEGER VARIABLE. 05190201
523: C 05200201
524: IVTNUM = 31 05210201
525: IF (ICZERO) 30310, 0310, 30310 05220201
526: 0310 CONTINUE 05230201
527: RVCOMP = 10.0 05240201
528: WVIN01 = 4.0 05250201
529: RVCOMP = WVIN01/5 05260201
530: RVCORR = 0.0 05270201
531: 40310 IF (RVCOMP) 20310, 10310, 20310 05280201
532: 30310 IVDELE = IVDELE + 1 05290201
533: WRITE (I02,80000) IVTNUM 05300201
534: IF (ICZERO) 10310, 0321, 20310 05310201
535: 10310 IVPASS = IVPASS + 1 05320201
536: WRITE (I02,80002) IVTNUM 05330201
537: GO TO 0321 05340201
538: 20310 IVFAIL = IVFAIL + 1 05350201
539: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05360201
540: 0321 CONTINUE 05370201
541: C 05380201
542: C **** FCVS PROGRAM 201 - TEST 032 **** 05390201
543: C 05400201
544: C VERIFY XVIN01 IS AN INTEGER VARIABLE. 05410201
545: C 05420201
546: IVTNUM = 32 05430201
547: IF (ICZERO) 30320, 0320, 30320 05440201
548: 0320 CONTINUE 05450201
549: XVIN01 = 4 05460201
550: RVCOMP = 10.0 05470201
551: RVCOMP = XVIN01/5 05480201
552: RVCORR = 0.0 05490201
553: 40320 IF (RVCOMP) 20320, 10320, 20320 05500201
554: 30320 IVDELE = IVDELE + 1 05510201
555: WRITE (I02,80000) IVTNUM 05520201
556: IF (ICZERO) 10320, 0331, 20320 05530201
557: 10320 IVPASS = IVPASS + 1 05540201
558: WRITE (I02,80002) IVTNUM 05550201
559: GO TO 0331 05560201
560: 20320 IVFAIL = IVFAIL + 1 05570201
561: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05580201
562: 0331 CONTINUE 05590201
563: C 05600201
564: C **** FCVS PROGRAM 201 - TEST 033 **** 05610201
565: C 05620201
566: C VERIFY MVIN01 IS A REAL VARIABLE. 05630201
567: C 05640201
568: IVTNUM = 33 05650201
569: IF (ICZERO) 30330, 0330, 30330 05660201
570: 0330 CONTINUE 05670201
571: RVCOMP = 10.0 05680201
572: MVIN01 = 4 05690201
573: RVCOMP = MVIN01/5 05700201
574: RVCORR = 0.8 05710201
575: 40330 IF (RVCOMP - 0.79995) 20330, 10330, 40331 05720201
576: 40331 IF (RVCOMP - 0.80005) 10330, 10330, 20330 05730201
577: 30330 IVDELE = IVDELE + 1 05740201
578: WRITE (I02,80000) IVTNUM 05750201
579: IF (ICZERO) 10330, 0341, 20330 05760201
580: 10330 IVPASS = IVPASS + 1 05770201
581: WRITE (I02,80002) IVTNUM 05780201
582: GO TO 0341 05790201
583: 20330 IVFAIL = IVFAIL + 1 05800201
584: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 05810201
585: 0341 CONTINUE 05820201
586: C 05830201
587: C TEST 34 AND TEST 35 VERIFY THAT THE IMPLICIT TYPE SPECIFICA- 05840201
588: C TION FOR A VARIABLE IS OVERRIDDEN BY THE APPEARANCE OF THAT 05850201
589: C VARIABLE NAME IN A TYPE-STATEMENT. 05860201
590: C 05870201
591: C REFERENCE X3.9-1977, SECTION 8.4, TYPE-STATEMENTS 05880201
592: C SECTION 8.5, IMPLICIT STATEMENT 05890201
593: C 05900201
594: C 05910201
595: C **** FCVS PROGRAM 201 - TEST 034 **** 05920201
596: C 05930201
597: C VERIFY YVTN02 IS A REAL VARIABLE. 05940201
598: C 05950201
599: IVTNUM = 34 05960201
600: IF (ICZERO) 30340, 0340, 30340 05970201
601: 0340 CONTINUE 05980201
602: RVCOMP = 10.0 05990201
603: YVTN02 = 4 06000201
604: RVCOMP = YVTN02/5 06010201
605: RVCORR = 0.8 06020201
606: 40340 IF (RVCOMP - 0.79995) 20340, 10340, 40341 06030201
607: 40341 IF (RVCOMP - 0.80005) 10340, 10340, 20340 06040201
608: 30340 IVDELE = IVDELE + 1 06050201
609: WRITE (I02,80000) IVTNUM 06060201
610: IF (ICZERO) 10340, 0351, 20340 06070201
611: 10340 IVPASS = IVPASS + 1 06080201
612: WRITE (I02,80002) IVTNUM 06090201
613: GO TO 0351 06100201
614: 20340 IVFAIL = IVFAIL + 1 06110201
615: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 06120201
616: 0351 CONTINUE 06130201
617: C 06140201
618: C **** FCVS PROGRAM 201 - TEST 035 **** 06150201
619: C 06160201
620: C VERIFY MVTN02 IS AN INTEGER VARIABLE. 06170201
621: C 06180201
622: IVTNUM = 35 06190201
623: IF (ICZERO) 30350, 0350, 30350 06200201
624: 0350 CONTINUE 06210201
625: RVCOMP = 10.0 06220201
626: MVTN02 = 4.0 06230201
627: RVCOMP = MVTN02/5 06240201
628: RVCORR = 0.0 06250201
629: 40350 IF (RVCOMP) 20350, 10350, 20350 06260201
630: 30350 IVDELE = IVDELE + 1 06270201
631: WRITE (I02,80000) IVTNUM 06280201
632: IF (ICZERO) 10350, 0361, 20350 06290201
633: 10350 IVPASS = IVPASS + 1 06300201
634: WRITE (I02,80002) IVTNUM 06310201
635: GO TO 0361 06320201
636: 20350 IVFAIL = IVFAIL + 1 06330201
637: WRITE (I02,80012) IVTNUM, RVCOMP, RVCORR 06340201
638: 0361 CONTINUE 06350201
639: C 06360201
640: C 06370201
641: C WRITE OUT TEST SUMMARY 06380201
642: C 06390201
643: WRITE (I02,90004) 06400201
644: WRITE (I02,90014) 06410201
645: WRITE (I02,90004) 06420201
646: WRITE (I02,90000) 06430201
647: WRITE (I02,90004) 06440201
648: WRITE (I02,90020) IVFAIL 06450201
649: WRITE (I02,90022) IVPASS 06460201
650: WRITE (I02,90024) IVDELE 06470201
651: STOP 06480201
652: 90001 FORMAT (1H ,24X,5HFM201) 06490201
653: 90000 FORMAT (1H ,20X,20HEND OF PROGRAM FM201) 06500201
654: C 06510201
655: C FORMATS FOR TEST DETAIL LINES 06520201
656: C 06530201
657: 80000 FORMAT (1H ,4X,I5,6X,7HDELETED) 06540201
658: 80002 FORMAT (1H ,4X,I5,7X,4HPASS) 06550201
659: 80010 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 06560201
660: 80012 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 06570201
661: 80018 FORMAT (1H ,4X,I5,7X,4HFAIL,2X,A14,1X,A14) 06580201
662: C 06590201
663: C FORMAT STATEMENTS FOR PAGE HEADERS 06600201
664: C 06610201
665: 90002 FORMAT (1H1) 06620201
666: 90004 FORMAT (1H ) 06630201
667: 90006 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 06640201
668: 90008 FORMAT (1H ,21X,11HVERSION 1.0) 06650201
669: 90010 FORMAT (1H ,8X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 06660201
670: 90012 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL,5X,8HCOMPUTED,8X,7HCORRECT) 06670201
671: 90014 FORMAT (1H ,5X,46H----------------------------------------------) 06680201
672: 90016 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 06690201
673: C 06700201
674: C FORMAT STATEMENTS FOR RUN SUMMARY 06710201
675: C 06720201
676: 90020 FORMAT (1H ,19X,I5,13H TESTS FAILED) 06730201
677: 90022 FORMAT (1H ,19X,I5,13H TESTS PASSED) 06740201
678: 90024 FORMAT (1H ,19X,I5,14H TESTS DELETED) 06750201
679: END 06760201
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.