|
|
1.1 root 1: C COMMENT SECTION 00010062
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 00020062
6: C FM062 00030062
7: C 00040062
8: C THIS ROUTINE TESTS ARITHMETIC ASSIGNMENT STATEMENTS WHERE 00050062
9: C AN ARITHMETIC EXPRESSION FORMED FROM REAL VARIABLES AND 00060062
10: C CONSTANTS CONNECTED BY ARITHMETIC OPERATORS IS ASSIGNED TO 00070062
11: C A REAL VARIABLE. IN CASES INVOLVING THE EXPONENTIATION 00080062
12: C OPERATOR, REAL VALUES ARE RAISED TO INTEGER POWERS ONLY. 00090062
13: C 00100062
14: C A REAL DATUM IS A PROCESSOR APPROXIMATION TO THE VALUE OF A 00110062
15: C REAL NUMBER. IT MAY ASSUME POSITIVE, NEGATIVE AND ZERO VALUES. 00120062
16: C 00130062
17: C A BASIC REAL CONSTANT IS WRITTEN AS AN INTEGER PART, A 00140062
18: C DECIMAL POINT, AND A DECIMAL FRACTION PART IN THAT ORDER. BOTH 00150062
19: C THE INTEGER PART AND THE DECIMAL PART ARE STRINGS OF DIGITS; 00160062
20: C EITHER ONE OF THESE STRINGS MAY BE EMPTY BUT NOT BOTH. THE 00170062
21: C CONSTANT IS AN APPROXIMATION TO THE DIGIT STRING INTERPRETED AS A 00180062
22: C DECIMAL NUMERAL. 00190062
23: C 00200062
24: C A DECIMAL EXPONENT IS WRITTEN AS THE LETTER E, FOLLOWED BY AN 00210062
25: C OPTIONALLY SIGNED INTEGER CONSTANT. 00220062
26: C 00230062
27: C A REAL CONSTANT IS INDICATED BY WRITING A BASIC REAL CONSTANT,00240062
28: C A BASIC REAL CONSTANT FOLLOWED BY A DECIMAL EXPONENT, OR AN 00250062
29: C INTEGER CONSTANT FOLLOWED BY A DECIMAL EXPONENT. 00260062
30: C 00270062
31: C REFERENCES 00280062
32: C AMERICAN NATIONAL STANDARD PROGRAMMING LANGUAGE FORTRAN, 00290062
33: C X3.9-1978 00300062
34: C 00310062
35: C SECTION 4.4, REAL TYPE 00320062
36: C SECTION 4.4.1, REAL CONSTANT 00330062
37: C SECTION 6.1, ARITHMETIC EXPRESSIONS 00340062
38: C SECTION 6.6, EVALUATION OF EXPRESSIONS 00350062
39: C SECTION 10.1, ARITHMETIC ASSIGNMENT STATEMENT 00360062
40: C 00370062
41: C ********************************************************** 00380062
42: C 00390062
43: C A COMPILER VALIDATION SYSTEM FOR THE FORTRAN LANGUAGE 00400062
44: C BASED ON SPECIFICATIONS AS DEFINED IN AMERICAN NATIONAL STANDARD 00410062
45: C PROGRAMMING LANGUAGE FORTRAN X3.9-1978, HAS BEEN DEVELOPED BY THE 00420062
46: C FEDERAL COBOL COMPILER TESTING SERVICE. THE FORTRAN COMPILER 00430062
47: C VALIDATION SYSTEM (FCVS) CONSISTS OF AUDIT ROUTINES, THEIR RELATED00440062
48: C DATA, AND AN EXECUTIVE SYSTEM. EACH AUDIT ROUTINE IS A FORTRAN 00450062
49: C PROGRAM, SUBPROGRAM OR FUNCTION WHICH INCLUDES TESTS OF SPECIFIC 00460062
50: C LANGUAGE ELEMENTS AND SUPPORTING PROCEDURES INDICATING THE RESULT 00470062
51: C OF EXECUTING THESE TESTS. 00480062
52: C 00490062
53: C THIS PARTICULAR PROGRAM/SUBPROGRAM/FUNCTION CONTAINS FEATURES 00500062
54: C FOUND ONLY IN THE SUBSET AS DEFINED IN X3.9-1978. 00510062
55: C 00520062
56: C SUGGESTIONS AND COMMENTS SHOULD BE FORWARDED TO - 00530062
57: C 00540062
58: C DEPARTMENT OF THE NAVY 00550062
59: C FEDERAL COBOL COMPILER TESTING SERVICE 00560062
60: C WASHINGTON, D.C. 20376 00570062
61: C 00580062
62: C ********************************************************** 00590062
63: C 00600062
64: C 00610062
65: C 00620062
66: C INITIALIZATION SECTION 00630062
67: C 00640062
68: C INITIALIZE CONSTANTS 00650062
69: C ************** 00660062
70: C I01 CONTAINS THE LOGICAL UNIT NUMBER FOR THE CARD READER. 00670062
71: I01 = 5 00680062
72: C I02 CONTAINS THE LOGICAL UNIT NUMBER FOR THE PRINTER. 00690062
73: I02 = 6 00700062
74: C SYSTEM ENVIRONMENT SECTION 00710062
75: C 00720062
76: I01 = 5 00730062
77: C THE CX010 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I01 = 5 00740062
78: C (UNIT NUMBER FOR CARD READER). 00750062
79: CX011 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-011 CONTROL CARD. 00760062
80: C THE CX011 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00770062
81: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX010 ABOVE. 00780062
82: C 00790062
83: I02 = 6 00800062
84: C THE CX020 CARD IS FOR OVERRIDING THE PROGRAM DEFAULT I02 = 6 00810062
85: C (UNIT NUMBER FOR PRINTER). 00820062
86: CX021 THIS CARD IS REPLACED BY CONTENTS OF FEXEC X-021 CONTROL CARD. 00830062
87: C THE CX021 CARD IS FOR SYSTEMS WHICH REQUIRE ADDITIONAL 00840062
88: C FORTRAN STATEMENTS FOR FILES ASSOCIATED WITH CX020 ABOVE. 00850062
89: C 00860062
90: IVPASS=0 00870062
91: IVFAIL=0 00880062
92: IVDELE=0 00890062
93: ICZERO=0 00900062
94: C 00910062
95: C WRITE PAGE HEADERS 00920062
96: WRITE (I02,90000) 00930062
97: WRITE (I02,90001) 00940062
98: WRITE (I02,90002) 00950062
99: WRITE (I02, 90002) 00960062
100: WRITE (I02,90003) 00970062
101: WRITE (I02,90002) 00980062
102: WRITE (I02,90004) 00990062
103: WRITE (I02,90002) 01000062
104: WRITE (I02,90011) 01010062
105: WRITE (I02,90002) 01020062
106: WRITE (I02,90002) 01030062
107: WRITE (I02,90005) 01040062
108: WRITE (I02,90006) 01050062
109: WRITE (I02,90002) 01060062
110: C 01070062
111: C TEST SECTION 01080062
112: C 01090062
113: C ARITHMETIC ASSIGNMENT STATEMENT 01100062
114: C 01110062
115: C 01120062
116: C TESTS 62 THROUGH 70 USE A MIXTURE OF REAL VARIABLES AND REAL 01130062
117: C CONSTANTS CONNECTED BY TWO IDENTICAL ARITHMETIC OPERATORS. 01140062
118: C TESTS OCCUR IN PAIRS, ONE WITHOUT PARENTHESES AND ONE WITH 01150062
119: C PARENTHESES TO ALTER THE NORMAL ORDER OF EVALUATION. 01160062
120: C 01170062
121: C TESTS 71 THROUGH 90 USE THREE REAL VARIABLES CONNECTED BY A 01180062
122: C PAIR OF DISSIMILAR OPERATORS. ALL COMBINATIONS AND ORDERINGS 01190062
123: C OF OPERATORS ARE EXERCIZED. WHERE EXPONENTIATION IS TESTED, 01200062
124: C INTEGER VARIABLES ARE USED FOR THE POWER PRIMARIES. 01210062
125: C 01220062
126: C TESTS 91 AND 92 USE A SERIES OF REAL VARIABLES CONNECTED BY ONE 01230062
127: C EACH OF THE ARITHMETIC OPERTORS. PARENTHETICAL NOTATIONS ARE 01240062
128: C ALSO TESTED. 01250062
129: C 01260062
130: C 01270062
131: C 01280062
132: C 01290062
133: C 01300062
134: IVTNUM = 62 01310062
135: C 01320062
136: C **** TEST 62 **** 01330062
137: C 01340062
138: IF (ICZERO) 30620, 620, 30620 01350062
139: 620 CONTINUE 01360062
140: RVON01 = 7.5 01370062
141: RVON02 = 5E2 01380062
142: RVCOMP = RVON01 + RVON02 + 33E-1 01390062
143: GO TO 40620 01400062
144: 30620 IVDELE = IVDELE + 1 01410062
145: WRITE (I02,80003) IVTNUM 01420062
146: IF (ICZERO) 40620, 631, 40620 01430062
147: 40620 IF (RVCOMP - 510.75) 20620,10620,40621 01440062
148: 40621 IF (RVCOMP - 510.85) 10620,10620,20620 01450062
149: 10620 IVPASS = IVPASS + 1 01460062
150: WRITE (I02,80001) IVTNUM 01470062
151: GO TO 631 01480062
152: 20620 IVFAIL = IVFAIL + 1 01490062
153: RVCORR = 510.8 01500062
154: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 01510062
155: 631 CONTINUE 01520062
156: IVTNUM = 63 01530062
157: C 01540062
158: C **** TEST 63 **** 01550062
159: C 01560062
160: IF (ICZERO) 30630, 630, 30630 01570062
161: 630 CONTINUE 01580062
162: RVON01 = 75E-1 01590062
163: RVON02 = 500.0 01600062
164: RVCOMP = RVON01 + (RVON02 + 3.3) 01610062
165: GO TO 40630 01620062
166: 30630 IVDELE = IVDELE + 1 01630062
167: WRITE (I02,80003) IVTNUM 01640062
168: IF (ICZERO) 40630, 641, 40630 01650062
169: 40630 IF (RVCOMP - 510.75) 20630,10630,40631 01660062
170: 40631 IF (RVCOMP - 510.85) 10630,10630,20630 01670062
171: 10630 IVPASS = IVPASS + 1 01680062
172: WRITE (I02,80001) IVTNUM 01690062
173: GO TO 641 01700062
174: 20630 IVFAIL = IVFAIL + 1 01710062
175: RVCORR = 510.8 01720062
176: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 01730062
177: 641 CONTINUE 01740062
178: IVTNUM = 64 01750062
179: C 01760062
180: C **** TEST 64 **** 01770062
181: C 01780062
182: IF (ICZERO) 30640, 640, 30640 01790062
183: 640 CONTINUE 01800062
184: RVCOMP = 7.5 - 500. - 3.3 01810062
185: GO TO 40640 01820062
186: 30640 IVDELE = IVDELE + 1 01830062
187: WRITE (I02,80003) IVTNUM 01840062
188: IF (ICZERO) 40640, 651, 40640 01850062
189: 40640 IF (RVCOMP + 495.85) 20640,10640,40641 01860062
190: 40641 IF (RVCOMP + 495.75) 10640,10640,20640 01870062
191: 10640 IVPASS = IVPASS + 1 01880062
192: WRITE (I02,80001) IVTNUM 01890062
193: GO TO 651 01900062
194: 20640 IVFAIL = IVFAIL + 1 01910062
195: RVCORR = -495.8 01920062
196: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 01930062
197: 651 CONTINUE 01940062
198: IVTNUM = 65 01950062
199: C 01960062
200: C **** TEST 65 **** 01970062
201: C 01980062
202: IF (ICZERO) 30650, 650, 30650 01990062
203: 650 CONTINUE 02000062
204: RVON01 = 7.5 02010062
205: RVON02 = 5E2 02020062
206: RVCOMP = RVON01 - (33E-1 - RVON02) 02030062
207: GO TO 40650 02040062
208: 30650 IVDELE = IVDELE + 1 02050062
209: WRITE (I02,80003) IVTNUM 02060062
210: IF (ICZERO) 40650, 661, 40650 02070062
211: 40650 IF (RVCOMP - 504.15) 20650,10650,40651 02080062
212: 40651 IF (RVCOMP - 504.25) 10650,10650,20650 02090062
213: 10650 IVPASS = IVPASS + 1 02100062
214: WRITE (I02,80001) IVTNUM 02110062
215: GO TO 661 02120062
216: 20650 IVFAIL = IVFAIL + 1 02130062
217: RVCORR = 504.2 02140062
218: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 02150062
219: 661 CONTINUE 02160062
220: IVTNUM = 66 02170062
221: C 02180062
222: C **** TEST 66 **** 02190062
223: C 02200062
224: IF (ICZERO) 30660, 660, 30660 02210062
225: 660 CONTINUE 02220062
226: RVON01 = 7.5 02230062
227: RVCOMP = 5E2 * 33E-1 * RVON01 02240062
228: GO TO 40660 02250062
229: 30660 IVDELE = IVDELE + 1 02260062
230: WRITE (I02,80003) IVTNUM 02270062
231: IF (ICZERO) 40660, 671, 40660 02280062
232: 40660 IF (RVCOMP - 12370) 20660,10660,40661 02290062
233: 40661 IF (RVCOMP - 12380) 10660,10660,20660 02300062
234: 10660 IVPASS = IVPASS + 1 02310062
235: WRITE (I02,80001) IVTNUM 02320062
236: GO TO 671 02330062
237: 20660 IVFAIL = IVFAIL + 1 02340062
238: RVCORR = 12375. 02350062
239: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 02360062
240: 671 CONTINUE 02370062
241: IVTNUM = 67 02380062
242: C 02390062
243: C **** TEST 67 **** 02400062
244: C 02410062
245: IF (ICZERO) 30670, 670, 30670 02420062
246: 670 CONTINUE 02430062
247: RVON01 = 7.5 02440062
248: RVCOMP = 5E2 * (RVON01 * 33E-1) 02450062
249: GO TO 40670 02460062
250: 30670 IVDELE = IVDELE + 1 02470062
251: WRITE (I02,80003) IVTNUM 02480062
252: IF (ICZERO) 40670, 681, 40670 02490062
253: 40670 IF (RVCOMP - 12370) 20670,10670,40671 02500062
254: 40671 IF (RVCOMP - 12380) 10670,10670,20670 02510062
255: 10670 IVPASS = IVPASS + 1 02520062
256: WRITE (I02,80001) IVTNUM 02530062
257: GO TO 681 02540062
258: 20670 IVFAIL = IVFAIL + 1 02550062
259: RVCORR = 12375. 02560062
260: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 02570062
261: 681 CONTINUE 02580062
262: IVTNUM = 68 02590062
263: C 02600062
264: C **** TEST 68 **** 02610062
265: C 02620062
266: IF (ICZERO) 30680, 680, 30680 02630062
267: 680 CONTINUE 02640062
268: RVON01 = 7.5 02650062
269: RVON02 = 33E-1 02660062
270: RVON03 = -5E+2 02670062
271: RVCOMP = RVON01 / RVON02 / RVON03 02680062
272: GO TO 40680 02690062
273: 30680 IVDELE = IVDELE + 1 02700062
274: WRITE (I02,80003) IVTNUM 02710062
275: IF (ICZERO) 40680, 691, 40680 02720062
276: 40680 IF (RVCOMP + .00459) 20680,10680,40681 02730062
277: 40681 IF (RVCOMP + .00449) 10680,10680,20680 02740062
278: 10680 IVPASS = IVPASS + 1 02750062
279: WRITE (I02,80001) IVTNUM 02760062
280: GO TO 691 02770062
281: 20680 IVFAIL = IVFAIL + 1 02780062
282: RVCORR = -.0045454 02790062
283: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 02800062
284: 691 CONTINUE 02810062
285: IVTNUM = 69 02820062
286: C 02830062
287: C **** TEST 69 **** 02840062
288: C 02850062
289: IF (ICZERO) 30690, 690, 30690 02860062
290: 690 CONTINUE 02870062
291: RVON01 = 7.5 02880062
292: RVON02 = 33E-1 02890062
293: RVON03 = -5E+2 02900062
294: RVCOMP = RVON01 / (RVON02 / RVON03) 02910062
295: GO TO 40690 02920062
296: 30690 IVDELE = IVDELE + 1 02930062
297: WRITE (I02,80003) IVTNUM 02940062
298: IF (ICZERO) 40690, 701, 40690 02950062
299: 40690 IF (RVCOMP + 1180.) 20690,10690,40691 02960062
300: 40691 IF (RVCOMP + 1080.) 10690,10690,20690 02970062
301: 10690 IVPASS = IVPASS + 1 02980062
302: WRITE (I02,80001) IVTNUM 02990062
303: GO TO 701 03000062
304: 20690 IVFAIL = IVFAIL + 1 03010062
305: RVCORR = -1136.4 03020062
306: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 03030062
307: 701 CONTINUE 03040062
308: IVTNUM = 70 03050062
309: C 03060062
310: C **** TEST 70 **** 03070062
311: C 03080062
312: IF (ICZERO) 30700, 700, 30700 03090062
313: 700 CONTINUE 03100062
314: RVON01 = 3.835E3 03110062
315: IVON01 = 5 03120062
316: RVCOMP = RVON01 ** IVON01 03130062
317: GO TO 40700 03140062
318: 30700 IVDELE = IVDELE + 1 03150062
319: WRITE (I02,80003) IVTNUM 03160062
320: IF (ICZERO) 40700, 711, 40700 03170062
321: 40700 IF (RVCOMP - 8.29E17) 20700,10700,40701 03180062
322: 40701 IF (RVCOMP - 8.30E17) 10700,10700,20700 03190062
323: 10700 IVPASS = IVPASS + 1 03200062
324: WRITE (I02,80001) IVTNUM 03210062
325: GO TO 711 03220062
326: 20700 IVFAIL = IVFAIL + 1 03230062
327: RVCORR = 8.295E17 03240062
328: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 03250062
329: 711 CONTINUE 03260062
330: C 03270062
331: C TESTS 71 THROUGH 74 TEST RV1 + RV2 <OP2> RV3 03280062
332: C 03290062
333: IVTNUM = 71 03300062
334: C 03310062
335: C **** TEST 71 **** 03320062
336: C 03330062
337: IF (ICZERO) 30710, 710, 30710 03340062
338: 710 CONTINUE 03350062
339: RVON01 = 524.87 03360062
340: RVON02 = 3.35 03370062
341: RVON03 = .005679 03380062
342: RVCOMP = RVON01 + RVON02 - RVON03 03390062
343: GO TO 40710 03400062
344: 30710 IVDELE = IVDELE + 1 03410062
345: WRITE (I02,80003) IVTNUM 03420062
346: IF (ICZERO) 40710, 721, 40710 03430062
347: 40710 IF (RVCOMP - 528.16) 20710,10710,40711 03440062
348: 40711 IF (RVCOMP - 528.26) 10710,10710,20710 03450062
349: 10710 IVPASS = IVPASS + 1 03460062
350: WRITE (I02,80001) IVTNUM 03470062
351: GO TO 721 03480062
352: 20710 IVFAIL = IVFAIL + 1 03490062
353: RVCORR = 528.21 03500062
354: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 03510062
355: 721 CONTINUE 03520062
356: IVTNUM = 72 03530062
357: C 03540062
358: C **** TEST 72 **** 03550062
359: C 03560062
360: IF (ICZERO) 30720, 720, 30720 03570062
361: 720 CONTINUE 03580062
362: RVON01 = 524.87 03590062
363: RVON02 = 3.35 03600062
364: RVON03 = .005679 03610062
365: RVCOMP = RVON01 + RVON02 * RVON03 03620062
366: GO TO 40720 03630062
367: 30720 IVDELE = IVDELE + 1 03640062
368: WRITE (I02,80003) IVTNUM 03650062
369: IF (ICZERO) 40720, 731, 40720 03660062
370: 40720 IF (RVCOMP - 524.84) 20720,10720,40721 03670062
371: 40721 IF (RVCOMP - 524.94) 10720,10720,20720 03680062
372: 10720 IVPASS = IVPASS + 1 03690062
373: WRITE (I02,80001) IVTNUM 03700062
374: GO TO 731 03710062
375: 20720 IVFAIL = IVFAIL + 1 03720062
376: RVCORR = 524.89 03730062
377: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 03740062
378: 731 CONTINUE 03750062
379: IVTNUM = 73 03760062
380: C 03770062
381: C **** TEST 73 **** 03780062
382: C 03790062
383: IF (ICZERO) 30730, 730, 30730 03800062
384: 730 CONTINUE 03810062
385: RVON01 = 524.87 03820062
386: RVON02 = 3.35 03830062
387: RVON03 = .005679 03840062
388: RVCOMP = RVON01 + RVON02 / RVON03 03850062
389: GO TO 40730 03860062
390: 30730 IVDELE = IVDELE + 1 03870062
391: WRITE (I02,80003) IVTNUM 03880062
392: IF (ICZERO) 40730, 741, 40730 03890062
393: 40730 IF (RVCOMP - 1114.2) 20730,10730,40731 03900062
394: 40731 IF (RVCOMP - 1115.2) 10730,10730,20730 03910062
395: 10730 IVPASS = IVPASS + 1 03920062
396: WRITE (I02,80001) IVTNUM 03930062
397: GO TO 741 03940062
398: 20730 IVFAIL = IVFAIL + 1 03950062
399: RVCORR = 1114.8 03960062
400: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 03970062
401: 741 CONTINUE 03980062
402: IVTNUM = 74 03990062
403: C 04000062
404: C **** TEST 74 **** 04010062
405: C 04020062
406: IF (ICZERO) 30740, 740, 30740 04030062
407: 740 CONTINUE 04040062
408: RVON01 = 524.87 04050062
409: RVON02 = 3.35 04060062
410: IVON01 = 7 04070062
411: RVCOMP = RVON01 + RVON02 ** IVON01 04080062
412: GO TO 40740 04090062
413: 30740 IVDELE = IVDELE + 1 04100062
414: WRITE (I02,80003) IVTNUM 04110062
415: IF (ICZERO) 40740, 751, 40740 04120062
416: 40740 IF (RVCOMP - 5259.3) 20740,10740,40741 04130062
417: 40741 IF (RVCOMP - 5260.3) 10740,10740,20740 04140062
418: 10740 IVPASS = IVPASS + 1 04150062
419: WRITE (I02,80001) IVTNUM 04160062
420: GO TO 751 04170062
421: 20740 IVFAIL = IVFAIL + 1 04180062
422: RVCORR = 5259.8 04190062
423: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 04200062
424: 751 CONTINUE 04210062
425: C 04220062
426: C TESTS 75 THROUGH 78 CHECK RV1 - RV2 <OP2> RV3 04230062
427: C 04240062
428: IVTNUM = 75 04250062
429: C 04260062
430: C **** TEST 75 **** 04270062
431: C 04280062
432: IF (ICZERO) 30750, 750, 30750 04290062
433: 750 CONTINUE 04300062
434: RVON01 = 524.87 04310062
435: RVON02 = 3.35 04320062
436: RVON03 = .5679 04330062
437: RVCOMP = RVON01 - RVON02 + RVON03 04340062
438: GO TO 40750 04350062
439: 30750 IVDELE = IVDELE + 1 04360062
440: WRITE (I02,80003) IVTNUM 04370062
441: IF (ICZERO) 40750, 761, 40750 04380062
442: 40750 IF (RVCOMP - 522.03) 20750,10750,40751 04390062
443: 40751 IF (RVCOMP - 522.13) 10750,10750,20750 04400062
444: 10750 IVPASS = IVPASS + 1 04410062
445: WRITE (I02,80001) IVTNUM 04420062
446: GO TO 761 04430062
447: 20750 IVFAIL = IVFAIL + 1 04440062
448: RVCORR = 522.09 04450062
449: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 04460062
450: 761 CONTINUE 04470062
451: IVTNUM = 76 04480062
452: C 04490062
453: C **** TEST 76 **** 04500062
454: C 04510062
455: IF (ICZERO) 30760, 760, 30760 04520062
456: 760 CONTINUE 04530062
457: RVON01 = 524.87 04540062
458: RVON02 = 3.35 04550062
459: RVON03 = .5679 04560062
460: RVCOMP = RVON01 - RVON02 * RVON03 04570062
461: GO TO 40760 04580062
462: 30760 IVDELE = IVDELE + 1 04590062
463: WRITE (I02,80003) IVTNUM 04600062
464: IF (ICZERO) 40760, 771, 40760 04610062
465: 40760 IF (RVCOMP - 522.92) 20760,10760,40761 04620062
466: 40761 IF (RVCOMP - 523.02) 10760,10760,20760 04630062
467: 10760 IVPASS = IVPASS + 1 04640062
468: WRITE (I02,80001) IVTNUM 04650062
469: GO TO 771 04660062
470: 20760 IVFAIL = IVFAIL + 1 04670062
471: RVCORR = 522.97 04680062
472: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 04690062
473: 771 CONTINUE 04700062
474: IVTNUM = 77 04710062
475: C 04720062
476: C **** TEST 77 **** 04730062
477: C 04740062
478: IF (ICZERO) 30770, 770, 30770 04750062
479: 770 CONTINUE 04760062
480: RVON01 = 524.87 04770062
481: RVON02 = 3.35 04780062
482: RVON03 = .5679 04790062
483: RVCOMP = RVON01 - RVON02 / RVON03 04800062
484: GO TO 40770 04810062
485: 30770 IVDELE = IVDELE + 1 04820062
486: WRITE (I02,80003) IVTNUM 04830062
487: IF (ICZERO) 40770, 781, 40770 04840062
488: 40770 IF (RVCOMP - 518.92) 20770,10770,40771 04850062
489: 40771 IF (RVCOMP - 519.02) 10770,10770,20770 04860062
490: 10770 IVPASS = IVPASS + 1 04870062
491: WRITE (I02,80001) IVTNUM 04880062
492: GO TO 781 04890062
493: 20770 IVFAIL = IVFAIL + 1 04900062
494: RVCORR = 518.97 04910062
495: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 04920062
496: 781 CONTINUE 04930062
497: IVTNUM = 78 04940062
498: C 04950062
499: C **** TEST 78 **** 04960062
500: C 04970062
501: IF (ICZERO) 30780, 780, 30780 04980062
502: 780 CONTINUE 04990062
503: RVON01 = 524.87 05000062
504: RVON02 = 3.35 05010062
505: IVON01 = 7 05020062
506: RVCOMP = RVON01 - RVON02 ** IVON01 05030062
507: GO TO 40780 05040062
508: 30780 IVDELE = IVDELE + 1 05050062
509: WRITE (I02,80003) IVTNUM 05060062
510: IF (ICZERO) 40780, 791, 40780 05070062
511: 40780 IF (RVCOMP + 4210.6) 20780,10780,40781 05080062
512: 40781 IF (RVCOMP + 4209.6) 10780,10780,20780 05090062
513: 10780 IVPASS = IVPASS + 1 05100062
514: WRITE (I02,80001) IVTNUM 05110062
515: GO TO 791 05120062
516: 20780 IVFAIL = IVFAIL + 1 05130062
517: RVCORR = -4210.1 05140062
518: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 05150062
519: 791 CONTINUE 05160062
520: C 05170062
521: C TESTS 79 THROUGH 82 CHECK RV1 * RV2 <OP2> RV3 05180062
522: C 05190062
523: IVTNUM = 79 05200062
524: C 05210062
525: C **** TEST 79 **** 05220062
526: C 05230062
527: IF (ICZERO) 30790, 790, 30790 05240062
528: 790 CONTINUE 05250062
529: RVON01 = 524.87 05260062
530: RVON02 = .5679 05270062
531: RVON03 = 3.35 05280062
532: RVCOMP = RVON01 * RVON02 + RVON03 05290062
533: GO TO 40790 05300062
534: 30790 IVDELE = IVDELE + 1 05310062
535: WRITE (I02,80003) IVTNUM 05320062
536: IF (ICZERO) 40790, 801, 40790 05330062
537: 40790 IF (RVCOMP - 301.37) 20790,10790,40791 05340062
538: 40791 IF (RVCOMP - 301.47) 10790,10790,20790 05350062
539: 10790 IVPASS = IVPASS + 1 05360062
540: WRITE (I02,80001) IVTNUM 05370062
541: GO TO 801 05380062
542: 20790 IVFAIL = IVFAIL + 1 05390062
543: RVCORR = 301.42 05400062
544: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 05410062
545: 801 CONTINUE 05420062
546: IVTNUM = 80 05430062
547: C 05440062
548: C **** TEST 80 **** 05450062
549: C 05460062
550: IF (ICZERO) 30800, 800, 30800 05470062
551: 800 CONTINUE 05480062
552: RVON01 = 524.87 05490062
553: RVON02 = .5679 05500062
554: RVON03 = 3.35 05510062
555: RVCOMP = RVON01 * RVON02 - RVON03 05520062
556: GO TO 40800 05530062
557: 30800 IVDELE = IVDELE + 1 05540062
558: WRITE (I02,80003) IVTNUM 05550062
559: IF (ICZERO) 40800, 811, 40800 05560062
560: 40800 IF (RVCOMP - 294.67) 20800,10800,40801 05570062
561: 40801 IF (RVCOMP - 294.77) 10800,10800,20800 05580062
562: 10800 IVPASS = IVPASS + 1 05590062
563: WRITE (I02,80001) IVTNUM 05600062
564: GO TO 811 05610062
565: 20800 IVFAIL = IVFAIL + 1 05620062
566: RVCORR = 294.72 05630062
567: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 05640062
568: 811 CONTINUE 05650062
569: IVTNUM = 81 05660062
570: C 05670062
571: C **** TEST 81 **** 05680062
572: C 05690062
573: IF (ICZERO) 30810, 810, 30810 05700062
574: 810 CONTINUE 05710062
575: RVON01 = 524.87 05720062
576: RVON02 = .5679 05730062
577: RVON03 = 3.35 05740062
578: RVCOMP = RVON01 * RVON02 / RVON03 05750062
579: GO TO 40810 05760062
580: 30810 IVDELE = IVDELE + 1 05770062
581: WRITE (I02,80003) IVTNUM 05780062
582: IF (ICZERO) 40810, 821, 40810 05790062
583: 40810 IF (RVCOMP - 88.92) 20810,10810,40811 05800062
584: 40811 IF (RVCOMP - 89.02) 10810,10810,20810 05810062
585: 10810 IVPASS = IVPASS + 1 05820062
586: WRITE (I02,80001) IVTNUM 05830062
587: GO TO 821 05840062
588: 20810 IVFAIL = IVFAIL + 1 05850062
589: RVCORR = 88.977 05860062
590: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 05870062
591: 821 CONTINUE 05880062
592: IVTNUM = 82 05890062
593: C 05900062
594: C **** TEST 82 **** 05910062
595: C 05920062
596: IF (ICZERO) 30820, 820, 30820 05930062
597: 820 CONTINUE 05940062
598: RVON01 = 524.87 05950062
599: RVON02 = .5679 05960062
600: IVON01 = 7 05970062
601: RVCOMP = RVON01 * RVON02 ** IVON01 05980062
602: GO TO 40820 05990062
603: 30820 IVDELE = IVDELE + 1 06000062
604: WRITE (I02,80003) IVTNUM 06010062
605: IF (ICZERO) 40820, 831, 40820 06020062
606: 40820 IF (RVCOMP - 9.94) 20820,10820,40821 06030062
607: 40821 IF (RVCOMP - 10.04) 10820,10820,20820 06040062
608: 10820 IVPASS = IVPASS + 1 06050062
609: WRITE (I02,80001) IVTNUM 06060062
610: GO TO 831 06070062
611: 20820 IVFAIL = IVFAIL + 1 06080062
612: RVCORR = 9.999 06090062
613: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 06100062
614: 831 CONTINUE 06110062
615: C 06120062
616: C TESTS 83 THROUGH 86 CHECK RV1 / RV2 <OP2> RV3 06130062
617: C 06140062
618: IVTNUM = 83 06150062
619: C 06160062
620: C **** TEST 83 **** 06170062
621: C 06180062
622: IF (ICZERO) 30830, 830, 30830 06190062
623: 830 CONTINUE 06200062
624: RVON01 = 524.87 06210062
625: RVON02 = 3.35 06220062
626: RVON03 = .5679 06230062
627: RVCOMP = RVON01 / RVON02 + RVON03 06240062
628: GO TO 40830 06250062
629: 30830 IVDELE = IVDELE + 1 06260062
630: WRITE (I02,80003) IVTNUM 06270062
631: IF (ICZERO) 40830, 841, 40830 06280062
632: 40830 IF (RVCOMP - 157.19) 20830,10830,40831 06290062
633: 40831 IF (RVCOMP - 157.29) 10830,10830,20830 06300062
634: 10830 IVPASS = IVPASS + 1 06310062
635: WRITE (I02,80001) IVTNUM 06320062
636: GO TO 841 06330062
637: 20830 IVFAIL = IVFAIL + 1 06340062
638: RVCORR = 157.25 06350062
639: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 06360062
640: 841 CONTINUE 06370062
641: IVTNUM = 84 06380062
642: C 06390062
643: C **** TEST 84 **** 06400062
644: C 06410062
645: IF (ICZERO) 30840, 840, 30840 06420062
646: 840 CONTINUE 06430062
647: RVON01 = 524.87 06440062
648: RVON02 = 3.35 06450062
649: RVON03 = .8507 06460062
650: RVCOMP = RVON01 / RVON02 - RVON03 06470062
651: GO TO 40840 06480062
652: 30840 IVDELE = IVDELE + 1 06490062
653: WRITE (I02,80003) IVTNUM 06500062
654: IF (ICZERO) 40840, 851, 40840 06510062
655: 40840 IF (RVCOMP - 155.77) 20840,10840,40841 06520062
656: 40841 IF (RVCOMP - 155.87) 10840,10840,20840 06530062
657: 10840 IVPASS = IVPASS + 1 06540062
658: WRITE (I02,80001) IVTNUM 06550062
659: GO TO 851 06560062
660: 20840 IVFAIL = IVFAIL + 1 06570062
661: RVCORR = 155.83 06580062
662: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 06590062
663: 851 CONTINUE 06600062
664: IVTNUM = 85 06610062
665: C 06620062
666: C **** TEST 85 **** 06630062
667: C 06640062
668: IF (ICZERO) 30850, 850, 30850 06650062
669: 850 CONTINUE 06660062
670: RVON01 = 524.87 06670062
671: RVON02 = 3.35 06680062
672: RVON03 = .8507 06690062
673: RVCOMP = RVON01 / RVON02 * RVON03 06700062
674: GO TO 40850 06710062
675: 30850 IVDELE = IVDELE + 1 06720062
676: WRITE (I02,80003) IVTNUM 06730062
677: IF (ICZERO) 40850, 861, 40850 06740062
678: 40850 IF (RVCOMP - 132.7) 20850,10850,40851 06750062
679: 40851 IF (RVCOMP - 133.7) 10850,10850,20850 06760062
680: 10850 IVPASS = IVPASS + 1 06770062
681: WRITE (I02,80001) IVTNUM 06780062
682: GO TO 861 06790062
683: 20850 IVFAIL = IVFAIL + 1 06800062
684: RVCORR = 133.29 06810062
685: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 06820062
686: 861 CONTINUE 06830062
687: IVTNUM = 86 06840062
688: C 06850062
689: C **** TEST 86 **** 06860062
690: C 06870062
691: IF (ICZERO) 30860, 860, 30860 06880062
692: 860 CONTINUE 06890062
693: RVON01 = 524.87 06900062
694: RVON02 = 3.35 06910062
695: IVON01 = 7 06920062
696: RVCOMP = RVON01 / RVON02 ** IVON01 06930062
697: GO TO 40860 06940062
698: 30860 IVDELE = IVDELE + 1 06950062
699: WRITE (I02,80003) IVTNUM 06960062
700: IF (ICZERO) 40860, 871, 40860 06970062
701: 40860 IF (RVCOMP - .106) 20860,10860,40861 06980062
702: 40861 IF (RVCOMP - .116) 10860,10860,20860 06990062
703: 10860 IVPASS = IVPASS + 1 07000062
704: WRITE (I02,80001) IVTNUM 07010062
705: GO TO 871 07020062
706: 20860 IVFAIL = IVFAIL + 1 07030062
707: RVCORR = .11085 07040062
708: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 07050062
709: 871 CONTINUE 07060062
710: C 07070062
711: C TESTS 87 THROUGH 90 CHECK RV1 ** IV1 <OP2> RV2 07080062
712: C 07090062
713: IVTNUM = 87 07100062
714: C 07110062
715: C **** TEST 87 **** 07120062
716: C 07130062
717: IF (ICZERO) 30870, 870, 30870 07140062
718: 870 CONTINUE 07150062
719: RVON01 = 3.35 07160062
720: IVON01 = 7 07170062
721: RVON02 = 524.87 07180062
722: RVCOMP = RVON01 ** IVON01 + RVON02 07190062
723: GO TO 40870 07200062
724: 30870 IVDELE = IVDELE + 1 07210062
725: WRITE (I02,80003) IVTNUM 07220062
726: IF (ICZERO) 40870, 881, 40870 07230062
727: 40870 IF (RVCOMP - 5210.) 20870,10870,40871 07240062
728: 40871 IF (RVCOMP - 5310.) 10870,10870,20870 07250062
729: 10870 IVPASS = IVPASS + 1 07260062
730: WRITE (I02,80001) IVTNUM 07270062
731: GO TO 881 07280062
732: 20870 IVFAIL = IVFAIL + 1 07290062
733: RVCORR = 5259.8 07300062
734: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 07310062
735: 881 CONTINUE 07320062
736: IVTNUM = 88 07330062
737: C 07340062
738: C **** TEST 88 **** 07350062
739: C 07360062
740: IF (ICZERO) 30880, 880, 30880 07370062
741: 880 CONTINUE 07380062
742: RVON01 = 3.35 07390062
743: IVON01 = 7 07400062
744: RVON02 = 524.87 07410062
745: RVCOMP = RVON01 ** IVON01 - RVON02 07420062
746: GO TO 40880 07430062
747: 30880 IVDELE = IVDELE + 1 07440062
748: WRITE (I02,80003) IVTNUM 07450062
749: IF (ICZERO) 40880, 891, 40880 07460062
750: 40880 IF (RVCOMP - 4160.) 20880,10880,40881 07470062
751: 40881 IF (RVCOMP - 4260.) 10880,10880,20880 07480062
752: 10880 IVPASS = IVPASS + 1 07490062
753: WRITE (I02,80001) IVTNUM 07500062
754: GO TO 891 07510062
755: 20880 IVFAIL = IVFAIL + 1 07520062
756: RVCORR = 4210.1 07530062
757: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 07540062
758: 891 CONTINUE 07550062
759: IVTNUM = 89 07560062
760: C 07570062
761: C **** TEST 89 **** 07580062
762: C 07590062
763: IF (ICZERO) 30890, 890, 30890 07600062
764: 890 CONTINUE 07610062
765: RVON01 = 3.35 07620062
766: IVON01 = 7 07630062
767: RVON02 = 524.87 07640062
768: RVCOMP = RVON01 ** IVON01 * RVON02 07650062
769: GO TO 40890 07660062
770: 30890 IVDELE = IVDELE + 1 07670062
771: WRITE (I02,80003) IVTNUM 07680062
772: IF (ICZERO) 40890, 901, 40890 07690062
773: 40890 IF (RVCOMP - 2.43E6) 20890,10890,40891 07700062
774: 40891 IF (RVCOMP - 2.53E6) 10890,10890,20890 07710062
775: 10890 IVPASS = IVPASS + 1 07720062
776: WRITE (I02,80001) IVTNUM 07730062
777: GO TO 901 07740062
778: 20890 IVFAIL = IVFAIL + 1 07750062
779: RVCORR = 2.4852E6 07760062
780: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 07770062
781: 901 CONTINUE 07780062
782: IVTNUM = 90 07790062
783: C 07800062
784: C **** TEST 90 **** 07810062
785: C 07820062
786: IF (ICZERO) 30900, 900, 30900 07830062
787: 900 CONTINUE 07840062
788: RVON01 = 3.35 07850062
789: IVON01 = 7 07860062
790: RVON02 = 524.87 07870062
791: RVCOMP = RVON01 ** IVON01 / RVON02 07880062
792: GO TO 40900 07890062
793: 30900 IVDELE = IVDELE + 1 07900062
794: WRITE (I02,80003) IVTNUM 07910062
795: IF (ICZERO) 40900, 911, 40900 07920062
796: 40900 IF (RVCOMP - 8.97) 20900,10900,40901 07930062
797: 40901 IF (RVCOMP - 9.07) 10900,10900,20900 07940062
798: 10900 IVPASS = IVPASS + 1 07950062
799: WRITE (I02,80001) IVTNUM 07960062
800: GO TO 911 07970062
801: 20900 IVFAIL = IVFAIL + 1 07980062
802: RVCORR = 9.0211 07990062
803: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 08000062
804: 911 CONTINUE 08010062
805: C 08020062
806: C TESTS 91 AND 92 CHECK ALL ARITHMETIC OPERATORS USED TOGETHER 08030062
807: C 08040062
808: IVTNUM = 91 08050062
809: C 08060062
810: C **** TEST 91 **** 08070062
811: C 08080062
812: IF (ICZERO) 30910, 910, 30910 08090062
813: 910 CONTINUE 08100062
814: RVON01 = 780.56 08110062
815: RVON02 = .803 08120062
816: RVON03 = 3.35 08130062
817: IVON01 = 7 08140062
818: RVON04 = 20.07 08150062
819: RVON05 = 511.9 08160062
820: RVCOMP = - RVON01 + RVON02 * RVON03 ** IVON01 / RVON04 - RVON05 08170062
821: GO TO 40910 08180062
822: 30910 IVDELE = IVDELE + 1 08190062
823: WRITE (I02,80003) IVTNUM 08200062
824: IF (ICZERO) 40910, 921, 40910 08210062
825: 40910 IF (RVCOMP + 1113.0) 20910,10910,40911 08220062
826: 40911 IF (RVCOMP + 1093.0) 10910,10910,20910 08230062
827: 10910 IVPASS = IVPASS + 1 08240062
828: WRITE (I02,80001) IVTNUM 08250062
829: GO TO 921 08260062
830: 20910 IVFAIL = IVFAIL + 1 08270062
831: RVCORR = -1103.0 08280062
832: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 08290062
833: 921 CONTINUE 08300062
834: IVTNUM = 92 08310062
835: C 08320062
836: C **** TEST 92 **** 08330062
837: C 08340062
838: IF (ICZERO) 30920, 920, 30920 08350062
839: 920 CONTINUE 08360062
840: RVON01 = 780.56 08370062
841: RVON02 = .803 08380062
842: RVON03 = 3.35 08390062
843: IVON01 = 7 08400062
844: RVON04 = 20.07 08410062
845: RVON05 = 511.9 08420062
846: RVCOMP = (-RVON01) + (RVON02 * RVON03) ** IVON01 / (RVON04-RVON05)08430062
847: GO TO 40920 08440062
848: 30920 IVDELE = IVDELE + 1 08450062
849: WRITE (I02,80003) IVTNUM 08460062
850: IF (ICZERO) 40920, 931, 40920 08470062
851: 40920 IF (RVCOMP + 788.) 20920,10920,40921 08480062
852: 40921 IF (RVCOMP + 777.) 10920,10920,20920 08490062
853: 10920 IVPASS = IVPASS + 1 08500062
854: WRITE (I02,80001) IVTNUM 08510062
855: GO TO 931 08520062
856: 20920 IVFAIL = IVFAIL + 1 08530062
857: RVCORR = -782.63 08540062
858: WRITE (I02,80005) IVTNUM, RVCOMP, RVCORR 08550062
859: 931 CONTINUE 08560062
860: C 08570062
861: C WRITE PAGE FOOTINGS AND RUN SUMMARIES 08580062
862: 99999 CONTINUE 08590062
863: WRITE (I02,90002) 08600062
864: WRITE (I02,90006) 08610062
865: WRITE (I02,90002) 08620062
866: WRITE (I02,90002) 08630062
867: WRITE (I02,90007) 08640062
868: WRITE (I02,90002) 08650062
869: WRITE (I02,90008) IVFAIL 08660062
870: WRITE (I02,90009) IVPASS 08670062
871: WRITE (I02,90010) IVDELE 08680062
872: C 08690062
873: C 08700062
874: C TERMINATE ROUTINE EXECUTION 08710062
875: STOP 08720062
876: C 08730062
877: C FORMAT STATEMENTS FOR PAGE HEADERS 08740062
878: 90000 FORMAT (1H1) 08750062
879: 90002 FORMAT (1H ) 08760062
880: 90001 FORMAT (1H ,10X,34HFORTRAN COMPILER VALIDATION SYSTEM) 08770062
881: 90003 FORMAT (1H ,21X,11HVERSION 1.0) 08780062
882: 90004 FORMAT (1H ,10X,38HFOR OFFICIAL USE ONLY - COPYRIGHT 1978) 08790062
883: 90005 FORMAT (1H ,5X,4HTEST,5X,9HPASS/FAIL, 5X,8HCOMPUTED,8X,7HCORRECT) 08800062
884: 90006 FORMAT (1H ,5X,46H----------------------------------------------) 08810062
885: 90011 FORMAT (1H ,18X,17HSUBSET LEVEL TEST) 08820062
886: C 08830062
887: C FORMAT STATEMENTS FOR RUN SUMMARIES 08840062
888: 90008 FORMAT (1H ,15X,I5,19H ERRORS ENCOUNTERED) 08850062
889: 90009 FORMAT (1H ,15X,I5,13H TESTS PASSED) 08860062
890: 90010 FORMAT (1H ,15X,I5,14H TESTS DELETED) 08870062
891: C 08880062
892: C FORMAT STATEMENTS FOR TEST RESULTS 08890062
893: 80001 FORMAT (1H ,4X,I5,7X,4HPASS) 08900062
894: 80002 FORMAT (1H ,4X,I5,7X,4HFAIL) 08910062
895: 80003 FORMAT (1H ,4X,I5,7X,7HDELETED) 08920062
896: 80004 FORMAT (1H ,4X,I5,7X,4HFAIL,10X,I6,9X,I6) 08930062
897: 80005 FORMAT (1H ,4X,I5,7X,4HFAIL,4X,E12.5,3X,E12.5) 08940062
898: C 08950062
899: 90007 FORMAT (1H ,20X,20HEND OF PROGRAM FM062) 08960062
900: END 08970062
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.