|
|
1.1 root 1: C COMMENT SECTION 00010099
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 00020099
6: C FM099 00030099
7: C 00040099
8: C THIS ROUTINE TESTS VARIOUS MATHEMATICAL FUNCTIONS WHERE BOTH THE 00050099
9: C FUNCTION TYPE AND ARGUMENTS ARE REAL. THE REAL VARIABLES AND 00060099
10: C CONSTANTS CONTAIN BOTH POSITIVE AND NEGATIVE VALUES. THE 00070099
11: C FUNCTIONS TESTED IN FM099 INCLUDE 00080099
12: C 00090099
13: C TYPE OF 00100099
14: C FUNCTION NAME ARGUMENT FUNCTION 00110099
15: C ---------------- ---- -------- -------- 00120099
16: C EXPONENTIAL EXP REAL REAL 00130099
17: C NATURAL LOGARITHM ALOG REAL REAL 00140099
18: C COMMON LOGARITHM ALOG10 REAL REAL 00150099
19: C SQUARE ROOT SQRT REAL REAL 00160099
20: C TRIGONOMETRIC SINE SIN REAL REAL 00170099
21: C TRIGONOMETRIC COSINE COS REAL REAL 00180099
22: C HYPERBOLIC TANGENT TANH REAL REAL 00190099
23: C ARCTANGENT ATAN REAL REAL 00200099
24: C ATAN2 REAL REAL 00210099
25: C 00220099
26: C REFERENCES 00230099
27: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00240099
28: C X3.9-1978 00250099
29: C 00260099
30: C SECTION 8.7, EXTERNAL STATEMENT 00270099
31: C SECTION 15.5.2, FUNCTION REFERENCE 00280099
32: C 00290099
33: C 00300099
34: C ********************************************************** 00310099
35: C 00320099
36: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00330099
37: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00340099
38: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00350099
39: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00360099
40: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00370099
41: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00380099
42: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00390099
43: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00400099
44: C OF EXECUTING THESE TESTS. 00410099
45: C 00420099
46: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00430099
47: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00440099
48: C 00450099
49: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00460099
50: C 00470099
51: C DEPARTMENT OF THE NAVY 00480099
52: C FEDERAL COBOL COMPILER TESTING SERVICE 00490099
53: C WASHINGTON, D.C. 20376 00500099
54: C 00510099
55: C ********************************************************** 00520099
56: C 00530099
57: C 00540099
58: C 00550099
59: C INITIALIZATION SECTION 00560099
60: C 00570099
61: C INITIALIZE CONSTANTS 00580099
62: C ************** 00590099
63: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00600099
64: I01 = 5 00610099
65: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00620099
66: I02 = 6 00630099
67: C SYSTEM ENVIRONMENT SECTION 00640099
68: C 00650099
69: I01 = 5 00660099
70: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00670099
71: C (UNIT NUMBER FOR CARD READER). 00680099
72: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00690099
73: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00700099
74: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00710099
75: C 00720099
76: I02 = 6 00730099
77: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00740099
78: C (UNIT NUMBER FOR PRINTER). 00750099
79: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00760099
80: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00770099
81: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00780099
82: C 00790099
83: IVPASS=0 00800099
84: IVFAIL=0 00810099
85: IVDELE=0 00820099
86: ICZERO=0 00830099
87: C 00840099
88: C WRITE PAGE HEADERS 00850099
89: WRITE (I02,90000) 00860099
90: WRITE (I02,90001) 00870099
91: WRITE (I02,90002) 00880099
92: WRITE (I02, 90002) 00890099
93: WRITE (I02,90003) 00900099
94: WRITE (I02,90002) 00910099
95: WRITE (I02,90004) 00920099
96: WRITE (I02,90002) 00930099
97: WRITE (I02,90011) 00940099
98: WRITE (I02,90002) 00950099
99: WRITE (I02,90002) 00960099
100: WRITE (I02,90005) 00970099
101: WRITE (I02,90006) 00980099
102: WRITE (I02,90002) 00990099
103: C 01000099
104: C TEST SECTION 01010099
105: C 01020099
106: C TEST 939 THROUGH TEST 942 CONTAIN FUNCTION TESTS FOR EXPONENTIAL 01030099
107: C FUNCTIONS WHERE THE ARGUMENT AND FUNCTION ARE REAL 01040099
108: C 01050099
109: IVTNUM = 939 01060099
110: C 01070099
111: C **** TEST 939 **** 01080099
112: C 01090099
113: IF (ICZERO) 39390, 9390, 39390 01100099
114: 9390 CONTINUE 01110099
115: RVON01 = 0.0 01120099
116: RVCOMP = EXP (RVON01) 01130099
117: GO TO 49390 01140099
118: 39390 IVDELE = IVDELE + 1 01150099
119: WRITE (I02,80003) IVTNUM 01160099
120: IF (ICZERO) 49390, 9401, 49390 01170099
121: 49390 IF (RVCOMP - 0.95) 29390,19390,49391 01180099
122: 49391 IF (RVCOMP - 1.05) 19390,19390,29390 01190099
123: 19390 IVPASS = IVPASS + 1 01200099
124: WRITE (I02,80001) IVTNUM 01210099
125: GO TO 9401 01220099
126: 29390 IVFAIL = IVFAIL + 1 01230099
127: RVCORR = 1.00 01240099
128: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 01250099
129: 9401 CONTINUE 01260099
130: IVTNUM = 940 01270099
131: C 01280099
132: C **** TEST 940 **** 01290099
133: C 01300099
134: IF (ICZERO) 39400, 9400, 39400 01310099
135: 9400 CONTINUE 01320099
136: RVCOMP = EXP (0.5) 01330099
137: GO TO 49400 01340099
138: 39400 IVDELE = IVDELE + 1 01350099
139: WRITE (I02,80003) IVTNUM 01360099
140: IF (ICZERO) 49400, 9411, 49400 01370099
141: 49400 IF (RVCOMP - 1.60) 29400,19400,49401 01380099
142: 49401 IF (RVCOMP - 1.70) 19400,19400,29400 01390099
143: 19400 IVPASS = IVPASS + 1 01400099
144: WRITE (I02,80001) IVTNUM 01410099
145: GO TO 9411 01420099
146: 29400 IVFAIL = IVFAIL + 1 01430099
147: RVCORR = 1.65 01440099
148: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 01450099
149: 9411 CONTINUE 01460099
150: IVTNUM = 941 01470099
151: C 01480099
152: C **** TEST 941 **** 01490099
153: C 01500099
154: IF (ICZERO) 39410, 9410, 39410 01510099
155: 9410 CONTINUE 01520099
156: RVON01 = .1E1 01530099
157: RVCOMP = EXP (RVON01) 01540099
158: GO TO 49410 01550099
159: 39410 IVDELE = IVDELE + 1 01560099
160: WRITE (I02,80003) IVTNUM 01570099
161: IF (ICZERO) 49410, 9421, 49410 01580099
162: 49410 IF (RVCOMP - 2.67) 29410,19410,49411 01590099
163: 49411 IF (RVCOMP - 2.77) 19410,19410,29410 01600099
164: 19410 IVPASS = IVPASS + 1 01610099
165: WRITE (I02,80001) IVTNUM 01620099
166: GO TO 9421 01630099
167: 29410 IVFAIL = IVFAIL + 1 01640099
168: RVCORR = 2.72 01650099
169: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 01660099
170: 9421 CONTINUE 01670099
171: IVTNUM = 942 01680099
172: C 01690099
173: C **** TEST 942 **** 01700099
174: C 01710099
175: IF (ICZERO) 39420, 9420, 39420 01720099
176: 9420 CONTINUE 01730099
177: RVON01 = -1.0 01740099
178: RVCOMP = EXP (RVON01) 01750099
179: GO TO 49420 01760099
180: 39420 IVDELE = IVDELE + 1 01770099
181: WRITE (I02,80003) IVTNUM 01780099
182: IF (ICZERO) 49420, 9431, 49420 01790099
183: 49420 IF (RVCOMP - 0.363) 29420,19420,49421 01800099
184: 49421 IF (RVCOMP - 0.373) 19420,19420,29420 01810099
185: 19420 IVPASS = IVPASS + 1 01820099
186: WRITE (I02,80001) IVTNUM 01830099
187: GO TO 9431 01840099
188: 29420 IVFAIL = IVFAIL + 1 01850099
189: RVCORR = 0.368 01860099
190: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 01870099
191: 9431 CONTINUE 01880099
192: C 01890099
193: C TEST 943 THROUGH TEST 945 CONTAIN FUNCTION TESTS FOR NATURAL 01900099
194: C LOGARITHM FUNCTIONS WHERE THE ARGUMENT AND FUNCTION ARE REAL 01910099
195: C 01920099
196: IVTNUM = 943 01930099
197: C 01940099
198: C **** TEST 943 **** 01950099
199: C 01960099
200: IF (ICZERO) 39430, 9430, 39430 01970099
201: 9430 CONTINUE 01980099
202: RVON01 = 5E1 01990099
203: RVCOMP = ALOG (RVON01) 02000099
204: GO TO 49430 02010099
205: 39430 IVDELE = IVDELE + 1 02020099
206: WRITE (I02,80003) IVTNUM 02030099
207: IF (ICZERO) 49430, 9441, 49430 02040099
208: 49430 IF (RVCOMP - 3.9115) 29430,19430,49431 02050099
209: 49431 IF (RVCOMP - 3.9125) 19430,19430,29430 02060099
210: 19430 IVPASS = IVPASS + 1 02070099
211: WRITE (I02,80001) IVTNUM 02080099
212: GO TO 9441 02090099
213: 29430 IVFAIL = IVFAIL + 1 02100099
214: RVCORR = 3.9120 02110099
215: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 02120099
216: 9441 CONTINUE 02130099
217: IVTNUM = 944 02140099
218: C 02150099
219: C **** TEST 944 **** 02160099
220: C 02170099
221: IF (ICZERO) 39440, 9440, 39440 02180099
222: 9440 CONTINUE 02190099
223: RVON01 = 1.0 02200099
224: RVCOMP = ALOG (RVON01) 02210099
225: GO TO 49440 02220099
226: 39440 IVDELE = IVDELE + 1 02230099
227: WRITE (I02,80003) IVTNUM 02240099
228: IF (ICZERO) 49440, 9451, 49440 02250099
229: 49440 IF (RVCOMP + .00005) 29440,19440,49441 02260099
230: 49441 IF (RVCOMP - .00005) 19440,19440,29440 02270099
231: 19440 IVPASS = IVPASS + 1 02280099
232: WRITE (I02,80001) IVTNUM 02290099
233: GO TO 9451 02300099
234: 29440 IVFAIL = IVFAIL + 1 02310099
235: RVCORR = 0.00000 02320099
236: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 02330099
237: 9451 CONTINUE 02340099
238: IVTNUM = 945 02350099
239: C 02360099
240: C **** TEST 945 **** 02370099
241: C 02380099
242: IF (ICZERO) 39450, 9450, 39450 02390099
243: 9450 CONTINUE 02400099
244: RVCOMP = ALOG (2.0) 02410099
245: GO TO 49450 02420099
246: 39450 IVDELE = IVDELE + 1 02430099
247: WRITE (I02,80003) IVTNUM 02440099
248: IF (ICZERO) 49450, 9461, 49450 02450099
249: 49450 IF (RVCOMP - 0.688) 29450,19450,49451 02460099
250: 49451 IF (RVCOMP - 0.698) 19450,19450,29450 02470099
251: 19450 IVPASS = IVPASS + 1 02480099
252: WRITE (I02,80001) IVTNUM 02490099
253: GO TO 9461 02500099
254: 29450 IVFAIL = IVFAIL + 1 02510099
255: RVCORR = 0.693 02520099
256: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 02530099
257: 9461 CONTINUE 02540099
258: C 02550099
259: C TEST 946 THROUGH TEST 948 CONTAIN FUNCTION TESTS FOR COMMON 02560099
260: C LOGARITHM FUNCTIONS WHERE THE ARGUMENT AND FUNCTION ARE REAL 02570099
261: C 02580099
262: IVTNUM = 946 02590099
263: C 02600099
264: C **** TEST 946 **** 02610099
265: C 02620099
266: IF (ICZERO) 39460, 9460, 39460 02630099
267: 9460 CONTINUE 02640099
268: RVON01 = 2E2 02650099
269: RVCOMP = ALOG10 (RVON01) 02660099
270: GO TO 49460 02670099
271: 39460 IVDELE = IVDELE + 1 02680099
272: WRITE (I02,80003) IVTNUM 02690099
273: IF (ICZERO) 49460, 9471, 49460 02700099
274: 49460 IF (RVCOMP - 2.296) 29460,19460,49461 02710099
275: 49461 IF (RVCOMP - 2.306) 19460,19460,29460 02720099
276: 19460 IVPASS = IVPASS + 1 02730099
277: WRITE (I02,80001) IVTNUM 02740099
278: GO TO 9471 02750099
279: 29460 IVFAIL = IVFAIL + 1 02760099
280: RVCORR = 2.301 02770099
281: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 02780099
282: 9471 CONTINUE 02790099
283: IVTNUM = 947 02800099
284: C 02810099
285: C **** TEST 947 **** 02820099
286: C 02830099
287: IF (ICZERO) 39470, 9470, 39470 02840099
288: 9470 CONTINUE 02850099
289: RVON01 = .3E+3 02860099
290: RVCOMP = ALOG10 (RVON01) 02870099
291: GO TO 49470 02880099
292: 39470 IVDELE = IVDELE + 1 02890099
293: WRITE (I02,80003) IVTNUM 02900099
294: IF (ICZERO) 49470, 9481, 49470 02910099
295: 49470 IF (RVCOMP - 2.472) 29470,19470,49471 02920099
296: 49471 IF (RVCOMP - 2.482) 19470,19470,29470 02930099
297: 19470 IVPASS = IVPASS + 1 02940099
298: WRITE (I02,80001) IVTNUM 02950099
299: GO TO 9481 02960099
300: 29470 IVFAIL = IVFAIL + 1 02970099
301: RVCORR = 2.477 02980099
302: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 02990099
303: 9481 CONTINUE 03000099
304: IVTNUM = 948 03010099
305: C 03020099
306: C **** TEST 948 **** 03030099
307: C 03040099
308: IF (ICZERO) 39480, 9480, 39480 03050099
309: 9480 CONTINUE 03060099
310: RVON01 = 1350.0 03070099
311: RVCOMP = ALOG10 (RVON01) 03080099
312: GO TO 49480 03090099
313: 39480 IVDELE = IVDELE + 1 03100099
314: WRITE (I02,80003) IVTNUM 03110099
315: IF (ICZERO) 49480, 9491, 49480 03120099
316: 49480 IF (RVCOMP - 3.125) 29480,19480,49481 03130099
317: 49481 IF (RVCOMP - 3.135) 19480,19480,29480 03140099
318: 19480 IVPASS = IVPASS + 1 03150099
319: WRITE (I02,80001) IVTNUM 03160099
320: GO TO 9491 03170099
321: 29480 IVFAIL = IVFAIL + 1 03180099
322: RVCORR = 3.130 03190099
323: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 03200099
324: 9491 CONTINUE 03210099
325: C 03220099
326: C TEST 949 THROUGH TEST 951 CONTAIN FUNCTION TESTS FOR SQUARE ROOT 03230099
327: C FUNCTIONS WHERE THE ARGUMENT AND FUNCTION ARE REAL 03240099
328: C 03250099
329: IVTNUM = 949 03260099
330: C 03270099
331: C **** TEST 949 **** 03280099
332: C 03290099
333: IF (ICZERO) 39490, 9490, 39490 03300099
334: 9490 CONTINUE 03310099
335: RVON01 = 1.0 03320099
336: RVCOMP = SQRT (RVON01) 03330099
337: GO TO 49490 03340099
338: 39490 IVDELE = IVDELE + 1 03350099
339: WRITE (I02,80003) IVTNUM 03360099
340: IF (ICZERO) 49490, 9501, 49490 03370099
341: 49490 IF (RVCOMP - 0.95) 29490,19490,49491 03380099
342: 49491 IF (RVCOMP - 1.05) 19490,19490,29490 03390099
343: 19490 IVPASS = IVPASS + 1 03400099
344: WRITE (I02,80001) IVTNUM 03410099
345: GO TO 9501 03420099
346: 29490 IVFAIL = IVFAIL + 1 03430099
347: RVCORR = 1.00 03440099
348: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 03450099
349: 9501 CONTINUE 03460099
350: IVTNUM = 950 03470099
351: C 03480099
352: C **** TEST 950 **** 03490099
353: C 03500099
354: IF (ICZERO) 39500, 9500, 39500 03510099
355: 9500 CONTINUE 03520099
356: RVCOMP = SQRT (2.0) 03530099
357: GO TO 49500 03540099
358: 39500 IVDELE = IVDELE + 1 03550099
359: WRITE (I02,80003) IVTNUM 03560099
360: IF (ICZERO) 49500, 9511, 49500 03570099
361: 49500 IF (RVCOMP - 1.36) 29500,19500,49501 03580099
362: 49501 IF (RVCOMP - 1.46) 19500,19500,29500 03590099
363: 19500 IVPASS = IVPASS + 1 03600099
364: WRITE (I02,80001) IVTNUM 03610099
365: GO TO 9511 03620099
366: 29500 IVFAIL = IVFAIL + 1 03630099
367: RVCORR = 1.41 03640099
368: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 03650099
369: 9511 CONTINUE 03660099
370: IVTNUM = 951 03670099
371: C 03680099
372: C **** TEST 951 **** 03690099
373: C 03700099
374: IF (ICZERO) 39510, 9510, 39510 03710099
375: 9510 CONTINUE 03720099
376: RVON01 = .229E1 03730099
377: RVCOMP = SQRT (RVON01) 03740099
378: GO TO 49510 03750099
379: 39510 IVDELE = IVDELE + 1 03760099
380: WRITE (I02,80003) IVTNUM 03770099
381: IF (ICZERO) 49510, 9521, 49510 03780099
382: 49510 IF (RVCOMP - 1.46) 29510,19510,49511 03790099
383: 49511 IF (RVCOMP - 1.56) 19510,19510,29510 03800099
384: 19510 IVPASS = IVPASS + 1 03810099
385: WRITE (I02,80001) IVTNUM 03820099
386: GO TO 9521 03830099
387: 29510 IVFAIL = IVFAIL + 1 03840099
388: RVCORR = 1.51 03850099
389: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 03860099
390: 9521 CONTINUE 03870099
391: C 03880099
392: C TEST 952 THROUGH TEST 953 CONTAIN FUNCTION TESTS FOR TRIGONOMETRIC03890099
393: C SINE FUNCTIONS WHERE THE ARGUMENT AND FUNCTION ARE REAL 03900099
394: C 03910099
395: IVTNUM = 952 03920099
396: C 03930099
397: C **** TEST 952 **** 03940099
398: C 03950099
399: IF (ICZERO) 39520, 9520, 39520 03960099
400: 9520 CONTINUE 03970099
401: RVON01 = 0.00000 03980099
402: RVCOMP = SIN (RVON01) 03990099
403: GO TO 49520 04000099
404: 39520 IVDELE = IVDELE + 1 04010099
405: WRITE (I02,80003) IVTNUM 04020099
406: IF (ICZERO) 49520, 9531, 49520 04030099
407: 49520 IF (RVCOMP + .00005) 29520,19520,49521 04040099
408: 49521 IF (RVCOMP - .00005) 19520,19520,29520 04050099
409: 19520 IVPASS = IVPASS + 1 04060099
410: WRITE (I02,80001) IVTNUM 04070099
411: GO TO 9531 04080099
412: 29520 IVFAIL = IVFAIL + 1 04090099
413: RVCORR = 0.00000 04100099
414: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 04110099
415: 9531 CONTINUE 04120099
416: IVTNUM = 953 04130099
417: C 04140099
418: C **** TEST 953 **** 04150099
419: C 04160099
420: IF (ICZERO) 39530, 9530, 39530 04170099
421: 9530 CONTINUE 04180099
422: RVON01 = 0.5 04190099
423: RVCOMP = SIN (RVON01) 04200099
424: GO TO 49530 04210099
425: 39530 IVDELE = IVDELE + 1 04220099
426: WRITE (I02,80003) IVTNUM 04230099
427: IF (ICZERO) 49530, 9541, 49530 04240099
428: 49530 IF (RVCOMP - .474) 29530,19530,49531 04250099
429: 49531 IF (RVCOMP - .484) 19530,19530,29530 04260099
430: 19530 IVPASS = IVPASS + 1 04270099
431: WRITE (I02,80001) IVTNUM 04280099
432: GO TO 9541 04290099
433: 29530 IVFAIL = IVFAIL + 1 04300099
434: RVCORR = .479 04310099
435: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 04320099
436: 9541 CONTINUE 04330099
437: IVTNUM = 954 04340099
438: C 04350099
439: C **** TEST 954 **** 04360099
440: C 04370099
441: IF (ICZERO) 39540, 9540, 39540 04380099
442: 9540 CONTINUE 04390099
443: RVON01 = 4E0 04400099
444: RVCOMP = SIN (RVON01) 04410099
445: GO TO 49540 04420099
446: 39540 IVDELE = IVDELE + 1 04430099
447: WRITE (I02,80003) IVTNUM 04440099
448: IF (ICZERO) 49540, 9551, 49540 04450099
449: 49540 IF (RVCOMP + .762) 29540,19540,49541 04460099
450: 49541 IF (RVCOMP + .752) 19540,19540,29540 04470099
451: 19540 IVPASS = IVPASS + 1 04480099
452: WRITE (I02,80001) IVTNUM 04490099
453: GO TO 9551 04500099
454: 29540 IVFAIL = IVFAIL + 1 04510099
455: RVCORR = -.757 04520099
456: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 04530099
457: 9551 CONTINUE 04540099
458: C 04550099
459: C TEST 955 THROUGH TEST 957 CONTAIN FUNCTION TESTS FOR TRIGONOMETRIC04560099
460: C COSINE FUNCTIONS WHERE THE ARGUMENT AND FUNCTION ARE REAL 04570099
461: C 04580099
462: IVTNUM = 955 04590099
463: C 04600099
464: C **** TEST 955 **** 04610099
465: C 04620099
466: IF (ICZERO) 39550, 9550, 39550 04630099
467: 9550 CONTINUE 04640099
468: RVON01 = 0.00000 04650099
469: RVCOMP = COS (RVON01) 04660099
470: GO TO 49550 04670099
471: 39550 IVDELE = IVDELE + 1 04680099
472: WRITE (I02,80003) IVTNUM 04690099
473: IF (ICZERO) 49550, 9561, 49550 04700099
474: 49550 IF (RVCOMP - .995) 29550,19550,49551 04710099
475: 49551 IF (RVCOMP - 1.005) 19550,19550,29550 04720099
476: 19550 IVPASS = IVPASS + 1 04730099
477: WRITE (I02,80001) IVTNUM 04740099
478: GO TO 9561 04750099
479: 29550 IVFAIL = IVFAIL + 1 04760099
480: RVCORR = 1.000 04770099
481: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 04780099
482: 9561 CONTINUE 04790099
483: IVTNUM = 956 04800099
484: C 04810099
485: C **** TEST 956 **** 04820099
486: C 04830099
487: IF (ICZERO) 39560, 9560, 39560 04840099
488: 9560 CONTINUE 04850099
489: RVON01 = 1.0E0 04860099
490: RVCOMP = COS (RVON01) 04870099
491: GO TO 49560 04880099
492: 39560 IVDELE = IVDELE + 1 04890099
493: WRITE (I02,80003) IVTNUM 04900099
494: IF (ICZERO) 49560, 9571, 49560 04910099
495: 49560 IF (RVCOMP - .535) 29560,19560,49561 04920099
496: 49561 IF (RVCOMP - .545) 19560,19560,29560 04930099
497: 19560 IVPASS = IVPASS + 1 04940099
498: WRITE (I02,80001) IVTNUM 04950099
499: GO TO 9571 04960099
500: 29560 IVFAIL = IVFAIL + 1 04970099
501: RVCORR = 0.540 04980099
502: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 04990099
503: 9571 CONTINUE 05000099
504: IVTNUM = 957 05010099
505: C 05020099
506: C **** TEST 957 **** 05030099
507: C 05040099
508: IF (ICZERO) 39570, 9570, 39570 05050099
509: 9570 CONTINUE 05060099
510: RVCOMP = COS (4.0) 05070099
511: GO TO 49570 05080099
512: 39570 IVDELE = IVDELE + 1 05090099
513: WRITE (I02,80003) IVTNUM 05100099
514: IF (ICZERO) 49570, 9581, 49570 05110099
515: 49570 IF (RVCOMP + .659) 29570,19570,49571 05120099
516: 49571 IF (RVCOMP + .649) 19570,19570,29570 05130099
517: 19570 IVPASS = IVPASS + 1 05140099
518: WRITE (I02,80001) IVTNUM 05150099
519: GO TO 9581 05160099
520: 29570 IVFAIL = IVFAIL + 1 05170099
521: RVCORR = -0.654 05180099
522: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 05190099
523: 9581 CONTINUE 05200099
524: C 05210099
525: C TEST 958 THROUGH TEST 960 CONTAIN FUNCTION TESTS FOR HYPERBOLIC 05220099
526: C TANGENT FUNCTIONS WHERE THE ARGUMENT AND FUNCTION ARE REAL 05230099
527: C 05240099
528: IVTNUM = 958 05250099
529: C 05260099
530: C **** TEST 958 **** 05270099
531: C 05280099
532: IF (ICZERO) 39580, 9580, 39580 05290099
533: 9580 CONTINUE 05300099
534: RVCOMP = TANH (0.0) 05310099
535: GO TO 49580 05320099
536: 39580 IVDELE = IVDELE + 1 05330099
537: WRITE (I02,80003) IVTNUM 05340099
538: IF (ICZERO) 49580, 9591, 49580 05350099
539: 49580 IF (RVCOMP + .00005) 29580,19580,49581 05360099
540: 49581 IF (RVCOMP - .00005) 19580,19580,29580 05370099
541: 19580 IVPASS = IVPASS + 1 05380099
542: WRITE (I02,80001) IVTNUM 05390099
543: GO TO 9591 05400099
544: 29580 IVFAIL = IVFAIL + 1 05410099
545: RVCORR = 0.00000 05420099
546: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 05430099
547: 9591 CONTINUE 05440099
548: IVTNUM = 959 05450099
549: C 05460099
550: C **** TEST 959 **** 05470099
551: C 05480099
552: IF (ICZERO) 39590, 9590, 39590 05490099
553: 9590 CONTINUE 05500099
554: RVON01 = .5E0 05510099
555: RVCOMP = TANH (RVON01) 05520099
556: GO TO 49590 05530099
557: 39590 IVDELE = IVDELE + 1 05540099
558: WRITE (I02,80003) IVTNUM 05550099
559: IF (ICZERO) 49590, 9601, 49590 05560099
560: 49590 IF (RVCOMP - .457) 29590,19590,49591 05570099
561: 49591 IF (RVCOMP - .467) 19590,19590,29590 05580099
562: 19590 IVPASS = IVPASS + 1 05590099
563: WRITE (I02,80001) IVTNUM 05600099
564: GO TO 9601 05610099
565: 29590 IVFAIL = IVFAIL + 1 05620099
566: RVCORR = 0.462 05630099
567: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 05640099
568: 9601 CONTINUE 05650099
569: IVTNUM = 960 05660099
570: C 05670099
571: C **** TEST 960 **** 05680099
572: C 05690099
573: IF (ICZERO) 39600, 9600, 39600 05700099
574: 9600 CONTINUE 05710099
575: RVON01 = .25 05720099
576: RVCOMP = TANH (RVON01) 05730099
577: GO TO 49600 05740099
578: 39600 IVDELE = IVDELE + 1 05750099
579: WRITE (I02,80003) IVTNUM 05760099
580: IF (ICZERO) 49600, 9611, 49600 05770099
581: 49600 IF (RVCOMP - .240) 29600,19600,49601 05780099
582: 49601 IF (RVCOMP - .250) 19600,19600,29600 05790099
583: 19600 IVPASS = IVPASS + 1 05800099
584: WRITE (I02,80001) IVTNUM 05810099
585: GO TO 9611 05820099
586: 29600 IVFAIL = IVFAIL + 1 05830099
587: RVCORR = 0.245 05840099
588: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 05850099
589: 9611 CONTINUE 05860099
590: C 05870099
591: C TESTS 961 AND 962 CONTAIN TESTS FOR ARCTANGENT OF THE FORM 05880099
592: C ATAN (A) WHERE THE ARGUMENT AND FUNCTION ARE REAL 05890099
593: C 05900099
594: IVTNUM = 961 05910099
595: C 05920099
596: C **** TEST 961 **** 05930099
597: C 05940099
598: IF (ICZERO) 39610, 9610, 39610 05950099
599: 9610 CONTINUE 05960099
600: RVCOMP = ATAN (0.0) 05970099
601: GO TO 49610 05980099
602: 39610 IVDELE = IVDELE + 1 05990099
603: WRITE (I02,80003) IVTNUM 06000099
604: IF (ICZERO) 49610, 9621, 49610 06010099
605: 49610 IF (RVCOMP + .00005) 29610,19610,49611 06020099
606: 49611 IF (RVCOMP - .00005) 19610,19610,29610 06030099
607: 19610 IVPASS = IVPASS + 1 06040099
608: WRITE (I02,80001) IVTNUM 06050099
609: GO TO 9621 06060099
610: 29610 IVFAIL = IVFAIL + 1 06070099
611: RVCORR = 0.00000 06080099
612: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 06090099
613: 9621 CONTINUE 06100099
614: IVTNUM = 962 06110099
615: C 06120099
616: C **** TEST 962 **** 06130099
617: C 06140099
618: IF (ICZERO) 39620, 9620, 39620 06150099
619: 9620 CONTINUE 06160099
620: RVON01 = 5E-1 06170099
621: RVCOMP = ATAN (RVON01) 06180099
622: GO TO 49620 06190099
623: 39620 IVDELE = IVDELE + 1 06200099
624: WRITE (I02,80003) IVTNUM 06210099
625: IF (ICZERO) 49620, 9631, 49620 06220099
626: 49620 IF (RVCOMP - .459) 29620,19620,49621 06230099
627: 49621 IF (RVCOMP - .469) 19620,19620,29620 06240099
628: 19620 IVPASS = IVPASS + 1 06250099
629: WRITE (I02,80001) IVTNUM 06260099
630: GO TO 9631 06270099
631: 29620 IVFAIL = IVFAIL + 1 06280099
632: RVCORR = 0.464 06290099
633: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 06300099
634: 9631 CONTINUE 06310099
635: C 06320099
636: C TESTS 963 AND 964 CONTAIN TESTS FOR ARCTANGENT OF THE FORM 06330099
637: C ATAN2 (A1,A2) WHERE THE ARGUMENTS AND FUNCTION ARE REAL 06340099
638: C 06350099
639: IVTNUM = 963 06360099
640: C 06370099
641: C **** TEST 963 **** 06380099
642: C 06390099
643: IF (ICZERO) 39630, 9630, 39630 06400099
644: 9630 CONTINUE 06410099
645: RVON01 = 0.0 06420099
646: RVON02 = 1E0 06430099
647: RVCOMP = ATAN2 (RVON01,RVON02) 06440099
648: GO TO 49630 06450099
649: 39630 IVDELE = IVDELE + 1 06460099
650: WRITE (I02,80003) IVTNUM 06470099
651: IF (ICZERO) 49630, 9641, 49630 06480099
652: 49630 IF (RVCOMP + .00005) 29630,19630,49631 06490099
653: 49631 IF (RVCOMP - .00005) 19630,19630,29630 06500099
654: 19630 IVPASS = IVPASS + 1 06510099
655: WRITE (I02,80001) IVTNUM 06520099
656: GO TO 9641 06530099
657: 29630 IVFAIL = IVFAIL + 1 06540099
658: RVCORR = 0.00000 06550099
659: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 06560099
660: 9641 CONTINUE 06570099
661: IVTNUM = 964 06580099
662: C 06590099
663: C **** TEST 964 **** 06600099
664: C 06610099
665: IF (ICZERO) 39640, 9640, 39640 06620099
666: 9640 CONTINUE 06630099
667: RVON01 = 2E1 06640099
668: RVCOMP = ATAN2 (-1.0,RVON01) 06650099
669: GO TO 49640 06660099
670: 39640 IVDELE = IVDELE + 1 06670099
671: WRITE (I02,80003) IVTNUM 06680099
672: IF (ICZERO) 49640, 9651, 49640 06690099
673: 49640 IF (RVCOMP + .05001) 29640,19640,49641 06700099
674: 49641 IF (RVCOMP + .04991) 19640,19640,29640 06710099
675: 19640 IVPASS = IVPASS + 1 06720099
676: WRITE (I02,80001) IVTNUM 06730099
677: GO TO 9651 06740099
678: 29640 IVFAIL = IVFAIL + 1 06750099
679: RVCORR = -.04996 06760099
680: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 06770099
681: 9651 CONTINUE 06780099
682: C 06790099
683: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 06800099
684: 99999 CONTINUE 06810099
685: WRITE (I02,90002) 06820099
686: WRITE (I02,90006) 06830099
687: WRITE (I02,90002) 06840099
688: WRITE (I02,90002) 06850099
689: WRITE (I02,90007) 06860099
690: WRITE (I02,90002) 06870099
691: WRITE (I02,90008) IVFAIL 06880099
692: WRITE (I02,90009) IVPASS 06890099
693: WRITE (I02,90010) IVDELE 06900099
694: C 06910099
695: C 06920099
696: C TERMINATE ROUTINE EXECUTION 06930099
697: STOP 06940099
698: C 06950099
699: C FORMAT STATEMENTS FOR PAGE HEADERS 06960099
700: 90000 FORMAT (1H1) 06970099
701: 90002 FORMAT (1H ) 06980099
702: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 06990099
703: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 07000099
704: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 07010099
705: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 07020099
706: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 07030099
707: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 07040099
708: C 07050099
709: C FORMAT STATEMENTS FOR RUN SUMMARIES 07060099
710: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 07070099
711: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 07080099
712: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 07090099
713: C 07100099
714: C FORMAT STATEMENTS FOR TEST RESULTS 07110099
715: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 07120099
716: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 07130099
717: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 07140099
718: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 07150099
719: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 07160099
720: C 07170099
721: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM099) 07180099
722: END 07190099
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.