|
|
1.1 root 1: c comment section
2: c
3: c fm062
4: c
5: c this routine tests arithmetic assignment statements where
6: c an arithmetic expression formed from real variables and
7: c constants connected by arithmetic operators is assigned to
8: c a real variable. in cases involving the exponentiation
9: c operator, real values are raised to integer powers only.
10: c
11: c a real datum is a processor approximation to the value of a
12: c real number. it may assume positive, negative and zero values.
13: c
14: c a basic real constant is written as an integer part, a
15: c decimal point, and a decimal fraction part in that order. both
16: c the integer part and the decimal part are strings of digits;
17: c either one of these strings may be empty but not both. the
18: c constant is an approximation to the digit string interpreted as a
19: c decimal numeral.
20: c
21: c a decimal exponent is written as the letter e, followed by an
22: c optionally signed integer constant.
23: c
24: c a real constant is indicated by writing a basic real constant,
25: c a basic real constant followed by a decimal exponent, or an
26: c integer constant followed by a decimal exponent.
27: c
28: c references
29: c american national standard programming language fortran,
30: c x3.9-1978
31: c
32: c section 4.4, real type
33: c section 4.4.1, real constant
34: c section 6.1, arithmetic expressions
35: c section 6.6, evaluation of expressions
36: c section 10.1, arithmetic assignment statement
37: c
38: c **********************************************************
39: c
40: c a compiler validation system for the fortran language
41: c based on specifications as defined in american national standard
42: c programming language fortran x3.9-1978, has been developed by the
43: c federal cobol compiler testing service. the fortran compiler
44: c validation system (fcvs) consists of audit routines, their related
45: c data, and an executive system. each audit routine is a fortran
46: c program, subprogram or function which includes tests of specific
47: c language elements and supporting procedures indicating the result
48: c of executing these tests.
49: c
50: c this particular program/subprogram/function contains features
51: c found only in the subset as defined in x3.9-1978.
52: c
53: c suggestions and comments should be forwarded to -
54: c
55: c department of the navy
56: c federal cobol compiler testing service
57: c washington, d.c. 20376
58: c
59: c **********************************************************
60: c
61: c
62: c
63: c initialization section
64: c
65: c initialize constants
66: c **************
67: c i01 contains the logical unit number for the card reader.
68: i01 = 5
69: c i02 contains the logical unit number for the printer.
70: i02 = 6
71: c system environment section
72: c
73: cx010 this card is replaced by contents of fexec x-010 control card.
74: c the cx010 card is for overriding the program default i01 = 5
75: c (unit number for card reader).
76: cx011 this card is replaced by contents of fexec x-011 control card.
77: c the cx011 card is for systems which require additional
78: c fortran statements for files associated with cx010 above.
79: c
80: cx020 this card is replaced by contents of fexec x-020 control card.
81: c the cx020 card is for overriding the program default i02 = 6
82: c (unit number for printer).
83: cx021 this card is replaced by contents of fexec x-021 control card.
84: c the cx021 card is for systems which require additional
85: c fortran statements for files associated with cx020 above.
86: c
87: ivpass=0
88: ivfail=0
89: ivdele=0
90: iczero=0
91: c
92: c write page headers
93: write (i02,90000)
94: write (i02,90001)
95: write (i02,90002)
96: write (i02, 90002)
97: write (i02,90003)
98: write (i02,90002)
99: write (i02,90004)
100: write (i02,90002)
101: write (i02,90011)
102: write (i02,90002)
103: write (i02,90002)
104: write (i02,90005)
105: write (i02,90006)
106: write (i02,90002)
107: c
108: c test section
109: c
110: c arithmetic assignment statement
111: c
112: c
113: c tests 62 through 70 use a mixture of real variables and real
114: c constants connected by two identical arithmetic operators.
115: c tests occur in pairs, one without parentheses and one with
116: c parentheses to alter the normal order of evaluation.
117: c
118: c tests 71 through 90 use three real variables connected by a
119: c pair of dissimilar operators. all combinations and orderings
120: c of operators are exercized. where exponentiation is tested,
121: c integer variables are used for the power primaries.
122: c
123: c tests 91 and 92 use a series of real variables connected by one
124: c each of the arithmetic opertors. parenthetical notations are
125: c also tested.
126: c
127: c
128: c
129: c
130: c
131: ivtnum = 62
132: c
133: c **** test 62 ****
134: c
135: if (iczero) 30620, 620, 30620
136: 620 continue
137: rvon01 = 7.5
138: rvon02 = 5e2
139: rvcomp = rvon01 + rvon02 + 33e-1
140: go to 40620
141: 30620 ivdele = ivdele + 1
142: write (i02,80003) ivtnum
143: if (iczero) 40620, 631, 40620
144: 40620 if (rvcomp - 510.75) 20620,10620,40621
145: 40621 if (rvcomp - 510.85) 10620,10620,20620
146: 10620 ivpass = ivpass + 1
147: write (i02,80001) ivtnum
148: go to 631
149: 20620 ivfail = ivfail + 1
150: rvcorr = 510.8
151: write (i02,80005) ivtnum, rvcomp, rvcorr
152: 631 continue
153: ivtnum = 63
154: c
155: c **** test 63 ****
156: c
157: if (iczero) 30630, 630, 30630
158: 630 continue
159: rvon01 = 75e-1
160: rvon02 = 500.0
161: rvcomp = rvon01 + (rvon02 + 3.3)
162: go to 40630
163: 30630 ivdele = ivdele + 1
164: write (i02,80003) ivtnum
165: if (iczero) 40630, 641, 40630
166: 40630 if (rvcomp - 510.75) 20630,10630,40631
167: 40631 if (rvcomp - 510.85) 10630,10630,20630
168: 10630 ivpass = ivpass + 1
169: write (i02,80001) ivtnum
170: go to 641
171: 20630 ivfail = ivfail + 1
172: rvcorr = 510.8
173: write (i02,80005) ivtnum, rvcomp, rvcorr
174: 641 continue
175: ivtnum = 64
176: c
177: c **** test 64 ****
178: c
179: if (iczero) 30640, 640, 30640
180: 640 continue
181: rvcomp = 7.5 - 500. - 3.3
182: go to 40640
183: 30640 ivdele = ivdele + 1
184: write (i02,80003) ivtnum
185: if (iczero) 40640, 651, 40640
186: 40640 if (rvcomp + 495.85) 20640,10640,40641
187: 40641 if (rvcomp + 495.75) 10640,10640,20640
188: 10640 ivpass = ivpass + 1
189: write (i02,80001) ivtnum
190: go to 651
191: 20640 ivfail = ivfail + 1
192: rvcorr = -495.8
193: write (i02,80005) ivtnum, rvcomp, rvcorr
194: 651 continue
195: ivtnum = 65
196: c
197: c **** test 65 ****
198: c
199: if (iczero) 30650, 650, 30650
200: 650 continue
201: rvon01 = 7.5
202: rvon02 = 5e2
203: rvcomp = rvon01 - (33e-1 - rvon02)
204: go to 40650
205: 30650 ivdele = ivdele + 1
206: write (i02,80003) ivtnum
207: if (iczero) 40650, 661, 40650
208: 40650 if (rvcomp - 504.15) 20650,10650,40651
209: 40651 if (rvcomp - 504.25) 10650,10650,20650
210: 10650 ivpass = ivpass + 1
211: write (i02,80001) ivtnum
212: go to 661
213: 20650 ivfail = ivfail + 1
214: rvcorr = 504.2
215: write (i02,80005) ivtnum, rvcomp, rvcorr
216: 661 continue
217: ivtnum = 66
218: c
219: c **** test 66 ****
220: c
221: if (iczero) 30660, 660, 30660
222: 660 continue
223: rvon01 = 7.5
224: rvcomp = 5e2 * 33e-1 * rvon01
225: go to 40660
226: 30660 ivdele = ivdele + 1
227: write (i02,80003) ivtnum
228: if (iczero) 40660, 671, 40660
229: 40660 if (rvcomp - 12370) 20660,10660,40661
230: 40661 if (rvcomp - 12380) 10660,10660,20660
231: 10660 ivpass = ivpass + 1
232: write (i02,80001) ivtnum
233: go to 671
234: 20660 ivfail = ivfail + 1
235: rvcorr = 12375.
236: write (i02,80005) ivtnum, rvcomp, rvcorr
237: 671 continue
238: ivtnum = 67
239: c
240: c **** test 67 ****
241: c
242: if (iczero) 30670, 670, 30670
243: 670 continue
244: rvon01 = 7.5
245: rvcomp = 5e2 * (rvon01 * 33e-1)
246: go to 40670
247: 30670 ivdele = ivdele + 1
248: write (i02,80003) ivtnum
249: if (iczero) 40670, 681, 40670
250: 40670 if (rvcomp - 12370) 20670,10670,40671
251: 40671 if (rvcomp - 12380) 10670,10670,20670
252: 10670 ivpass = ivpass + 1
253: write (i02,80001) ivtnum
254: go to 681
255: 20670 ivfail = ivfail + 1
256: rvcorr = 12375.
257: write (i02,80005) ivtnum, rvcomp, rvcorr
258: 681 continue
259: ivtnum = 68
260: c
261: c **** test 68 ****
262: c
263: if (iczero) 30680, 680, 30680
264: 680 continue
265: rvon01 = 7.5
266: rvon02 = 33e-1
267: rvon03 = -5e+2
268: rvcomp = rvon01 / rvon02 / rvon03
269: go to 40680
270: 30680 ivdele = ivdele + 1
271: write (i02,80003) ivtnum
272: if (iczero) 40680, 691, 40680
273: 40680 if (rvcomp + .00459) 20680,10680,40681
274: 40681 if (rvcomp + .00449) 10680,10680,20680
275: 10680 ivpass = ivpass + 1
276: write (i02,80001) ivtnum
277: go to 691
278: 20680 ivfail = ivfail + 1
279: rvcorr = -.0045454
280: write (i02,80005) ivtnum, rvcomp, rvcorr
281: 691 continue
282: ivtnum = 69
283: c
284: c **** test 69 ****
285: c
286: if (iczero) 30690, 690, 30690
287: 690 continue
288: rvon01 = 7.5
289: rvon02 = 33e-1
290: rvon03 = -5e+2
291: rvcomp = rvon01 / (rvon02 / rvon03)
292: go to 40690
293: 30690 ivdele = ivdele + 1
294: write (i02,80003) ivtnum
295: if (iczero) 40690, 701, 40690
296: 40690 if (rvcomp + 1180.) 20690,10690,40691
297: 40691 if (rvcomp + 1080.) 10690,10690,20690
298: 10690 ivpass = ivpass + 1
299: write (i02,80001) ivtnum
300: go to 701
301: 20690 ivfail = ivfail + 1
302: rvcorr = -1136.4
303: write (i02,80005) ivtnum, rvcomp, rvcorr
304: 701 continue
305: ivtnum = 70
306: c
307: c **** test 70 ****
308: c
309: if (iczero) 30700, 700, 30700
310: 700 continue
311: rvon01 = 3.835e3
312: ivon01 = 5
313: rvcomp = rvon01 ** ivon01
314: go to 40700
315: 30700 ivdele = ivdele + 1
316: write (i02,80003) ivtnum
317: if (iczero) 40700, 711, 40700
318: 40700 if (rvcomp - 8.29e17) 20700,10700,40701
319: 40701 if (rvcomp - 8.30e17) 10700,10700,20700
320: 10700 ivpass = ivpass + 1
321: write (i02,80001) ivtnum
322: go to 711
323: 20700 ivfail = ivfail + 1
324: rvcorr = 8.295e17
325: write (i02,80005) ivtnum, rvcomp, rvcorr
326: 711 continue
327: c
328: c tests 71 through 74 test rv1 + rv2 <op2> rv3
329: c
330: ivtnum = 71
331: c
332: c **** test 71 ****
333: c
334: if (iczero) 30710, 710, 30710
335: 710 continue
336: rvon01 = 524.87
337: rvon02 = 3.35
338: rvon03 = .005679
339: rvcomp = rvon01 + rvon02 - rvon03
340: go to 40710
341: 30710 ivdele = ivdele + 1
342: write (i02,80003) ivtnum
343: if (iczero) 40710, 721, 40710
344: 40710 if (rvcomp - 528.16) 20710,10710,40711
345: 40711 if (rvcomp - 528.26) 10710,10710,20710
346: 10710 ivpass = ivpass + 1
347: write (i02,80001) ivtnum
348: go to 721
349: 20710 ivfail = ivfail + 1
350: rvcorr = 528.21
351: write (i02,80005) ivtnum, rvcomp, rvcorr
352: 721 continue
353: ivtnum = 72
354: c
355: c **** test 72 ****
356: c
357: if (iczero) 30720, 720, 30720
358: 720 continue
359: rvon01 = 524.87
360: rvon02 = 3.35
361: rvon03 = .005679
362: rvcomp = rvon01 + rvon02 * rvon03
363: go to 40720
364: 30720 ivdele = ivdele + 1
365: write (i02,80003) ivtnum
366: if (iczero) 40720, 731, 40720
367: 40720 if (rvcomp - 524.84) 20720,10720,40721
368: 40721 if (rvcomp - 524.94) 10720,10720,20720
369: 10720 ivpass = ivpass + 1
370: write (i02,80001) ivtnum
371: go to 731
372: 20720 ivfail = ivfail + 1
373: rvcorr = 524.89
374: write (i02,80005) ivtnum, rvcomp, rvcorr
375: 731 continue
376: ivtnum = 73
377: c
378: c **** test 73 ****
379: c
380: if (iczero) 30730, 730, 30730
381: 730 continue
382: rvon01 = 524.87
383: rvon02 = 3.35
384: rvon03 = .005679
385: rvcomp = rvon01 + rvon02 / rvon03
386: go to 40730
387: 30730 ivdele = ivdele + 1
388: write (i02,80003) ivtnum
389: if (iczero) 40730, 741, 40730
390: 40730 if (rvcomp - 1114.2) 20730,10730,40731
391: 40731 if (rvcomp - 1115.2) 10730,10730,20730
392: 10730 ivpass = ivpass + 1
393: write (i02,80001) ivtnum
394: go to 741
395: 20730 ivfail = ivfail + 1
396: rvcorr = 1114.8
397: write (i02,80005) ivtnum, rvcomp, rvcorr
398: 741 continue
399: ivtnum = 74
400: c
401: c **** test 74 ****
402: c
403: if (iczero) 30740, 740, 30740
404: 740 continue
405: rvon01 = 524.87
406: rvon02 = 3.35
407: ivon01 = 7
408: rvcomp = rvon01 + rvon02 ** ivon01
409: go to 40740
410: 30740 ivdele = ivdele + 1
411: write (i02,80003) ivtnum
412: if (iczero) 40740, 751, 40740
413: 40740 if (rvcomp - 5259.3) 20740,10740,40741
414: 40741 if (rvcomp - 5260.3) 10740,10740,20740
415: 10740 ivpass = ivpass + 1
416: write (i02,80001) ivtnum
417: go to 751
418: 20740 ivfail = ivfail + 1
419: rvcorr = 5259.8
420: write (i02,80005) ivtnum, rvcomp, rvcorr
421: 751 continue
422: c
423: c tests 75 through 78 check rv1 - rv2 <op2> rv3
424: c
425: ivtnum = 75
426: c
427: c **** test 75 ****
428: c
429: if (iczero) 30750, 750, 30750
430: 750 continue
431: rvon01 = 524.87
432: rvon02 = 3.35
433: rvon03 = .5679
434: rvcomp = rvon01 - rvon02 + rvon03
435: go to 40750
436: 30750 ivdele = ivdele + 1
437: write (i02,80003) ivtnum
438: if (iczero) 40750, 761, 40750
439: 40750 if (rvcomp - 522.03) 20750,10750,40751
440: 40751 if (rvcomp - 522.13) 10750,10750,20750
441: 10750 ivpass = ivpass + 1
442: write (i02,80001) ivtnum
443: go to 761
444: 20750 ivfail = ivfail + 1
445: rvcorr = 522.09
446: write (i02,80005) ivtnum, rvcomp, rvcorr
447: 761 continue
448: ivtnum = 76
449: c
450: c **** test 76 ****
451: c
452: if (iczero) 30760, 760, 30760
453: 760 continue
454: rvon01 = 524.87
455: rvon02 = 3.35
456: rvon03 = .5679
457: rvcomp = rvon01 - rvon02 * rvon03
458: go to 40760
459: 30760 ivdele = ivdele + 1
460: write (i02,80003) ivtnum
461: if (iczero) 40760, 771, 40760
462: 40760 if (rvcomp - 522.92) 20760,10760,40761
463: 40761 if (rvcomp - 523.02) 10760,10760,20760
464: 10760 ivpass = ivpass + 1
465: write (i02,80001) ivtnum
466: go to 771
467: 20760 ivfail = ivfail + 1
468: rvcorr = 522.97
469: write (i02,80005) ivtnum, rvcomp, rvcorr
470: 771 continue
471: ivtnum = 77
472: c
473: c **** test 77 ****
474: c
475: if (iczero) 30770, 770, 30770
476: 770 continue
477: rvon01 = 524.87
478: rvon02 = 3.35
479: rvon03 = .5679
480: rvcomp = rvon01 - rvon02 / rvon03
481: go to 40770
482: 30770 ivdele = ivdele + 1
483: write (i02,80003) ivtnum
484: if (iczero) 40770, 781, 40770
485: 40770 if (rvcomp - 518.92) 20770,10770,40771
486: 40771 if (rvcomp - 519.02) 10770,10770,20770
487: 10770 ivpass = ivpass + 1
488: write (i02,80001) ivtnum
489: go to 781
490: 20770 ivfail = ivfail + 1
491: rvcorr = 518.97
492: write (i02,80005) ivtnum, rvcomp, rvcorr
493: 781 continue
494: ivtnum = 78
495: c
496: c **** test 78 ****
497: c
498: if (iczero) 30780, 780, 30780
499: 780 continue
500: rvon01 = 524.87
501: rvon02 = 3.35
502: ivon01 = 7
503: rvcomp = rvon01 - rvon02 ** ivon01
504: go to 40780
505: 30780 ivdele = ivdele + 1
506: write (i02,80003) ivtnum
507: if (iczero) 40780, 791, 40780
508: 40780 if (rvcomp + 4210.6) 20780,10780,40781
509: 40781 if (rvcomp + 4209.6) 10780,10780,20780
510: 10780 ivpass = ivpass + 1
511: write (i02,80001) ivtnum
512: go to 791
513: 20780 ivfail = ivfail + 1
514: rvcorr = -4210.1
515: write (i02,80005) ivtnum, rvcomp, rvcorr
516: 791 continue
517: c
518: c tests 79 through 82 check rv1 * rv2 <op2> rv3
519: c
520: ivtnum = 79
521: c
522: c **** test 79 ****
523: c
524: if (iczero) 30790, 790, 30790
525: 790 continue
526: rvon01 = 524.87
527: rvon02 = .5679
528: rvon03 = 3.35
529: rvcomp = rvon01 * rvon02 + rvon03
530: go to 40790
531: 30790 ivdele = ivdele + 1
532: write (i02,80003) ivtnum
533: if (iczero) 40790, 801, 40790
534: 40790 if (rvcomp - 301.37) 20790,10790,40791
535: 40791 if (rvcomp - 301.47) 10790,10790,20790
536: 10790 ivpass = ivpass + 1
537: write (i02,80001) ivtnum
538: go to 801
539: 20790 ivfail = ivfail + 1
540: rvcorr = 301.42
541: write (i02,80005) ivtnum, rvcomp, rvcorr
542: 801 continue
543: ivtnum = 80
544: c
545: c **** test 80 ****
546: c
547: if (iczero) 30800, 800, 30800
548: 800 continue
549: rvon01 = 524.87
550: rvon02 = .5679
551: rvon03 = 3.35
552: rvcomp = rvon01 * rvon02 - rvon03
553: go to 40800
554: 30800 ivdele = ivdele + 1
555: write (i02,80003) ivtnum
556: if (iczero) 40800, 811, 40800
557: 40800 if (rvcomp - 294.67) 20800,10800,40801
558: 40801 if (rvcomp - 294.77) 10800,10800,20800
559: 10800 ivpass = ivpass + 1
560: write (i02,80001) ivtnum
561: go to 811
562: 20800 ivfail = ivfail + 1
563: rvcorr = 294.72
564: write (i02,80005) ivtnum, rvcomp, rvcorr
565: 811 continue
566: ivtnum = 81
567: c
568: c **** test 81 ****
569: c
570: if (iczero) 30810, 810, 30810
571: 810 continue
572: rvon01 = 524.87
573: rvon02 = .5679
574: rvon03 = 3.35
575: rvcomp = rvon01 * rvon02 / rvon03
576: go to 40810
577: 30810 ivdele = ivdele + 1
578: write (i02,80003) ivtnum
579: if (iczero) 40810, 821, 40810
580: 40810 if (rvcomp - 88.92) 20810,10810,40811
581: 40811 if (rvcomp - 89.02) 10810,10810,20810
582: 10810 ivpass = ivpass + 1
583: write (i02,80001) ivtnum
584: go to 821
585: 20810 ivfail = ivfail + 1
586: rvcorr = 88.977
587: write (i02,80005) ivtnum, rvcomp, rvcorr
588: 821 continue
589: ivtnum = 82
590: c
591: c **** test 82 ****
592: c
593: if (iczero) 30820, 820, 30820
594: 820 continue
595: rvon01 = 524.87
596: rvon02 = .5679
597: ivon01 = 7
598: rvcomp = rvon01 * rvon02 ** ivon01
599: go to 40820
600: 30820 ivdele = ivdele + 1
601: write (i02,80003) ivtnum
602: if (iczero) 40820, 831, 40820
603: 40820 if (rvcomp - 9.94) 20820,10820,40821
604: 40821 if (rvcomp - 10.04) 10820,10820,20820
605: 10820 ivpass = ivpass + 1
606: write (i02,80001) ivtnum
607: go to 831
608: 20820 ivfail = ivfail + 1
609: rvcorr = 9.999
610: write (i02,80005) ivtnum, rvcomp, rvcorr
611: 831 continue
612: c
613: c tests 83 through 86 check rv1 / rv2 <op2> rv3
614: c
615: ivtnum = 83
616: c
617: c **** test 83 ****
618: c
619: if (iczero) 30830, 830, 30830
620: 830 continue
621: rvon01 = 524.87
622: rvon02 = 3.35
623: rvon03 = .5679
624: rvcomp = rvon01 / rvon02 + rvon03
625: go to 40830
626: 30830 ivdele = ivdele + 1
627: write (i02,80003) ivtnum
628: if (iczero) 40830, 841, 40830
629: 40830 if (rvcomp - 157.19) 20830,10830,40831
630: 40831 if (rvcomp - 157.29) 10830,10830,20830
631: 10830 ivpass = ivpass + 1
632: write (i02,80001) ivtnum
633: go to 841
634: 20830 ivfail = ivfail + 1
635: rvcorr = 157.25
636: write (i02,80005) ivtnum, rvcomp, rvcorr
637: 841 continue
638: ivtnum = 84
639: c
640: c **** test 84 ****
641: c
642: if (iczero) 30840, 840, 30840
643: 840 continue
644: rvon01 = 524.87
645: rvon02 = 3.35
646: rvon03 = .8507
647: rvcomp = rvon01 / rvon02 - rvon03
648: go to 40840
649: 30840 ivdele = ivdele + 1
650: write (i02,80003) ivtnum
651: if (iczero) 40840, 851, 40840
652: 40840 if (rvcomp - 155.77) 20840,10840,40841
653: 40841 if (rvcomp - 155.87) 10840,10840,20840
654: 10840 ivpass = ivpass + 1
655: write (i02,80001) ivtnum
656: go to 851
657: 20840 ivfail = ivfail + 1
658: rvcorr = 155.83
659: write (i02,80005) ivtnum, rvcomp, rvcorr
660: 851 continue
661: ivtnum = 85
662: c
663: c **** test 85 ****
664: c
665: if (iczero) 30850, 850, 30850
666: 850 continue
667: rvon01 = 524.87
668: rvon02 = 3.35
669: rvon03 = .8507
670: rvcomp = rvon01 / rvon02 * rvon03
671: go to 40850
672: 30850 ivdele = ivdele + 1
673: write (i02,80003) ivtnum
674: if (iczero) 40850, 861, 40850
675: 40850 if (rvcomp - 132.7) 20850,10850,40851
676: 40851 if (rvcomp - 133.7) 10850,10850,20850
677: 10850 ivpass = ivpass + 1
678: write (i02,80001) ivtnum
679: go to 861
680: 20850 ivfail = ivfail + 1
681: rvcorr = 133.29
682: write (i02,80005) ivtnum, rvcomp, rvcorr
683: 861 continue
684: ivtnum = 86
685: c
686: c **** test 86 ****
687: c
688: if (iczero) 30860, 860, 30860
689: 860 continue
690: rvon01 = 524.87
691: rvon02 = 3.35
692: ivon01 = 7
693: rvcomp = rvon01 / rvon02 ** ivon01
694: go to 40860
695: 30860 ivdele = ivdele + 1
696: write (i02,80003) ivtnum
697: if (iczero) 40860, 871, 40860
698: 40860 if (rvcomp - .106) 20860,10860,40861
699: 40861 if (rvcomp - .116) 10860,10860,20860
700: 10860 ivpass = ivpass + 1
701: write (i02,80001) ivtnum
702: go to 871
703: 20860 ivfail = ivfail + 1
704: rvcorr = .11085
705: write (i02,80005) ivtnum, rvcomp, rvcorr
706: 871 continue
707: c
708: c tests 87 through 90 check rv1 ** iv1 <op2> rv2
709: c
710: ivtnum = 87
711: c
712: c **** test 87 ****
713: c
714: if (iczero) 30870, 870, 30870
715: 870 continue
716: rvon01 = 3.35
717: ivon01 = 7
718: rvon02 = 524.87
719: rvcomp = rvon01 ** ivon01 + rvon02
720: go to 40870
721: 30870 ivdele = ivdele + 1
722: write (i02,80003) ivtnum
723: if (iczero) 40870, 881, 40870
724: 40870 if (rvcomp - 5210.) 20870,10870,40871
725: 40871 if (rvcomp - 5310.) 10870,10870,20870
726: 10870 ivpass = ivpass + 1
727: write (i02,80001) ivtnum
728: go to 881
729: 20870 ivfail = ivfail + 1
730: rvcorr = 5259.8
731: write (i02,80005) ivtnum, rvcomp, rvcorr
732: 881 continue
733: ivtnum = 88
734: c
735: c **** test 88 ****
736: c
737: if (iczero) 30880, 880, 30880
738: 880 continue
739: rvon01 = 3.35
740: ivon01 = 7
741: rvon02 = 524.87
742: rvcomp = rvon01 ** ivon01 - rvon02
743: go to 40880
744: 30880 ivdele = ivdele + 1
745: write (i02,80003) ivtnum
746: if (iczero) 40880, 891, 40880
747: 40880 if (rvcomp - 4160.) 20880,10880,40881
748: 40881 if (rvcomp - 4260.) 10880,10880,20880
749: 10880 ivpass = ivpass + 1
750: write (i02,80001) ivtnum
751: go to 891
752: 20880 ivfail = ivfail + 1
753: rvcorr = 4210.1
754: write (i02,80005) ivtnum, rvcomp, rvcorr
755: 891 continue
756: ivtnum = 89
757: c
758: c **** test 89 ****
759: c
760: if (iczero) 30890, 890, 30890
761: 890 continue
762: rvon01 = 3.35
763: ivon01 = 7
764: rvon02 = 524.87
765: rvcomp = rvon01 ** ivon01 * rvon02
766: go to 40890
767: 30890 ivdele = ivdele + 1
768: write (i02,80003) ivtnum
769: if (iczero) 40890, 901, 40890
770: 40890 if (rvcomp - 2.43e6) 20890,10890,40891
771: 40891 if (rvcomp - 2.53e6) 10890,10890,20890
772: 10890 ivpass = ivpass + 1
773: write (i02,80001) ivtnum
774: go to 901
775: 20890 ivfail = ivfail + 1
776: rvcorr = 2.4852e6
777: write (i02,80005) ivtnum, rvcomp, rvcorr
778: 901 continue
779: ivtnum = 90
780: c
781: c **** test 90 ****
782: c
783: if (iczero) 30900, 900, 30900
784: 900 continue
785: rvon01 = 3.35
786: ivon01 = 7
787: rvon02 = 524.87
788: rvcomp = rvon01 ** ivon01 / rvon02
789: go to 40900
790: 30900 ivdele = ivdele + 1
791: write (i02,80003) ivtnum
792: if (iczero) 40900, 911, 40900
793: 40900 if (rvcomp - 8.97) 20900,10900,40901
794: 40901 if (rvcomp - 9.07) 10900,10900,20900
795: 10900 ivpass = ivpass + 1
796: write (i02,80001) ivtnum
797: go to 911
798: 20900 ivfail = ivfail + 1
799: rvcorr = 9.0211
800: write (i02,80005) ivtnum, rvcomp, rvcorr
801: 911 continue
802: c
803: c tests 91 and 92 check all arithmetic operators used together
804: c
805: ivtnum = 91
806: c
807: c **** test 91 ****
808: c
809: if (iczero) 30910, 910, 30910
810: 910 continue
811: rvon01 = 780.56
812: rvon02 = .803
813: rvon03 = 3.35
814: ivon01 = 7
815: rvon04 = 20.07
816: rvon05 = 511.9
817: rvcomp = - rvon01 + rvon02 * rvon03 ** ivon01 / rvon04 - rvon05
818: go to 40910
819: 30910 ivdele = ivdele + 1
820: write (i02,80003) ivtnum
821: if (iczero) 40910, 921, 40910
822: 40910 if (rvcomp + 1113.0) 20910,10910,40911
823: 40911 if (rvcomp + 1093.0) 10910,10910,20910
824: 10910 ivpass = ivpass + 1
825: write (i02,80001) ivtnum
826: go to 921
827: 20910 ivfail = ivfail + 1
828: rvcorr = -1103.0
829: write (i02,80005) ivtnum, rvcomp, rvcorr
830: 921 continue
831: ivtnum = 92
832: c
833: c **** test 92 ****
834: c
835: if (iczero) 30920, 920, 30920
836: 920 continue
837: rvon01 = 780.56
838: rvon02 = .803
839: rvon03 = 3.35
840: ivon01 = 7
841: rvon04 = 20.07
842: rvon05 = 511.9
843: rvcomp = (-rvon01) + (rvon02 * rvon03) ** ivon01 / (rvon04-rvon05)
844: go to 40920
845: 30920 ivdele = ivdele + 1
846: write (i02,80003) ivtnum
847: if (iczero) 40920, 931, 40920
848: 40920 if (rvcomp + 788.) 20920,10920,40921
849: 40921 if (rvcomp + 777.) 10920,10920,20920
850: 10920 ivpass = ivpass + 1
851: write (i02,80001) ivtnum
852: go to 931
853: 20920 ivfail = ivfail + 1
854: rvcorr = -782.63
855: write (i02,80005) ivtnum, rvcomp, rvcorr
856: 931 continue
857: c
858: c write page footings and run summaries
859: 99999 continue
860: write (i02,90002)
861: write (i02,90006)
862: write (i02,90002)
863: write (i02,90002)
864: write (i02,90007)
865: write (i02,90002)
866: write (i02,90008) ivfail
867: write (i02,90009) ivpass
868: write (i02,90010) ivdele
869: c
870: c
871: c terminate routine execution
872: stop
873: c
874: c format statements for page headers
875: 90000 format (1h1)
876: 90002 format (1h )
877: 90001 format (1h ,10x,34hfortran compiler validation system)
878: 90003 format (1h ,21x,11hversion 1.0)
879: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
880: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
881: 90006 format (1h ,5x,46h----------------------------------------------)
882: 90011 format (1h ,18x,17hsubset level test)
883: c
884: c format statements for run summaries
885: 90008 format (1h ,15x,i5,19h errors encountered)
886: 90009 format (1h ,15x,i5,13h tests passed)
887: 90010 format (1h ,15x,i5,14h tests deleted)
888: c
889: c format statements for test results
890: 80001 format (1h ,4x,i5,7x,4hpass)
891: 80002 format (1h ,4x,i5,7x,4hfail)
892: 80003 format (1h ,4x,i5,7x,7hdeleted)
893: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
894: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
895: c
896: 90007 format (1h ,20x,20hend of program fm062)
897: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.