|
|
Initial revision
c comment section
c
c fm062
c
c this routine tests arithmetic assignment statements where
c an arithmetic expression formed from real variables and
c constants connected by arithmetic operators is assigned to
c a real variable. in cases involving the exponentiation
c operator, real values are raised to integer powers only.
c
c a real datum is a processor approximation to the value of a
c real number. it may assume positive, negative and zero values.
c
c a basic real constant is written as an integer part, a
c decimal point, and a decimal fraction part in that order. both
c the integer part and the decimal part are strings of digits;
c either one of these strings may be empty but not both. the
c constant is an approximation to the digit string interpreted as a
c decimal numeral.
c
c a decimal exponent is written as the letter e, followed by an
c optionally signed integer constant.
c
c a real constant is indicated by writing a basic real constant,
c a basic real constant followed by a decimal exponent, or an
c integer constant followed by a decimal exponent.
c
c references
c american national standard programming language fortran,
c x3.9-1978
c
c section 4.4, real type
c section 4.4.1, real constant
c section 6.1, arithmetic expressions
c section 6.6, evaluation of expressions
c section 10.1, arithmetic assignment statement
c
c **********************************************************
c
c a compiler validation system for the fortran language
c based on specifications as defined in american national standard
c programming language fortran x3.9-1978, has been developed by the
c federal cobol compiler testing service. the fortran compiler
c validation system (fcvs) consists of audit routines, their related
c data, and an executive system. each audit routine is a fortran
c program, subprogram or function which includes tests of specific
c language elements and supporting procedures indicating the result
c of executing these tests.
c
c this particular program/subprogram/function contains features
c found only in the subset as defined in x3.9-1978.
c
c suggestions and comments should be forwarded to -
c
c department of the navy
c federal cobol compiler testing service
c washington, d.c. 20376
c
c **********************************************************
c
c
c
c initialization section
c
c initialize constants
c **************
c i01 contains the logical unit number for the card reader.
i01 = 5
c i02 contains the logical unit number for the printer.
i02 = 6
c system environment section
c
cx010 this card is replaced by contents of fexec x-010 control card.
c the cx010 card is for overriding the program default i01 = 5
c (unit number for card reader).
cx011 this card is replaced by contents of fexec x-011 control card.
c the cx011 card is for systems which require additional
c fortran statements for files associated with cx010 above.
c
cx020 this card is replaced by contents of fexec x-020 control card.
c the cx020 card is for overriding the program default i02 = 6
c (unit number for printer).
cx021 this card is replaced by contents of fexec x-021 control card.
c the cx021 card is for systems which require additional
c fortran statements for files associated with cx020 above.
c
ivpass=0
ivfail=0
ivdele=0
iczero=0
c
c write page headers
write (i02,90000)
write (i02,90001)
write (i02,90002)
write (i02, 90002)
write (i02,90003)
write (i02,90002)
write (i02,90004)
write (i02,90002)
write (i02,90011)
write (i02,90002)
write (i02,90002)
write (i02,90005)
write (i02,90006)
write (i02,90002)
c
c test section
c
c arithmetic assignment statement
c
c
c tests 62 through 70 use a mixture of real variables and real
c constants connected by two identical arithmetic operators.
c tests occur in pairs, one without parentheses and one with
c parentheses to alter the normal order of evaluation.
c
c tests 71 through 90 use three real variables connected by a
c pair of dissimilar operators. all combinations and orderings
c of operators are exercized. where exponentiation is tested,
c integer variables are used for the power primaries.
c
c tests 91 and 92 use a series of real variables connected by one
c each of the arithmetic opertors. parenthetical notations are
c also tested.
c
c
c
c
c
ivtnum = 62
c
c **** test 62 ****
c
if (iczero) 30620, 620, 30620
620 continue
rvon01 = 7.5
rvon02 = 5e2
rvcomp = rvon01 + rvon02 + 33e-1
go to 40620
30620 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40620, 631, 40620
40620 if (rvcomp - 510.75) 20620,10620,40621
40621 if (rvcomp - 510.85) 10620,10620,20620
10620 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 631
20620 ivfail = ivfail + 1
rvcorr = 510.8
write (i02,80005) ivtnum, rvcomp, rvcorr
631 continue
ivtnum = 63
c
c **** test 63 ****
c
if (iczero) 30630, 630, 30630
630 continue
rvon01 = 75e-1
rvon02 = 500.0
rvcomp = rvon01 + (rvon02 + 3.3)
go to 40630
30630 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40630, 641, 40630
40630 if (rvcomp - 510.75) 20630,10630,40631
40631 if (rvcomp - 510.85) 10630,10630,20630
10630 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 641
20630 ivfail = ivfail + 1
rvcorr = 510.8
write (i02,80005) ivtnum, rvcomp, rvcorr
641 continue
ivtnum = 64
c
c **** test 64 ****
c
if (iczero) 30640, 640, 30640
640 continue
rvcomp = 7.5 - 500. - 3.3
go to 40640
30640 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40640, 651, 40640
40640 if (rvcomp + 495.85) 20640,10640,40641
40641 if (rvcomp + 495.75) 10640,10640,20640
10640 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 651
20640 ivfail = ivfail + 1
rvcorr = -495.8
write (i02,80005) ivtnum, rvcomp, rvcorr
651 continue
ivtnum = 65
c
c **** test 65 ****
c
if (iczero) 30650, 650, 30650
650 continue
rvon01 = 7.5
rvon02 = 5e2
rvcomp = rvon01 - (33e-1 - rvon02)
go to 40650
30650 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40650, 661, 40650
40650 if (rvcomp - 504.15) 20650,10650,40651
40651 if (rvcomp - 504.25) 10650,10650,20650
10650 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 661
20650 ivfail = ivfail + 1
rvcorr = 504.2
write (i02,80005) ivtnum, rvcomp, rvcorr
661 continue
ivtnum = 66
c
c **** test 66 ****
c
if (iczero) 30660, 660, 30660
660 continue
rvon01 = 7.5
rvcomp = 5e2 * 33e-1 * rvon01
go to 40660
30660 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40660, 671, 40660
40660 if (rvcomp - 12370) 20660,10660,40661
40661 if (rvcomp - 12380) 10660,10660,20660
10660 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 671
20660 ivfail = ivfail + 1
rvcorr = 12375.
write (i02,80005) ivtnum, rvcomp, rvcorr
671 continue
ivtnum = 67
c
c **** test 67 ****
c
if (iczero) 30670, 670, 30670
670 continue
rvon01 = 7.5
rvcomp = 5e2 * (rvon01 * 33e-1)
go to 40670
30670 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40670, 681, 40670
40670 if (rvcomp - 12370) 20670,10670,40671
40671 if (rvcomp - 12380) 10670,10670,20670
10670 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 681
20670 ivfail = ivfail + 1
rvcorr = 12375.
write (i02,80005) ivtnum, rvcomp, rvcorr
681 continue
ivtnum = 68
c
c **** test 68 ****
c
if (iczero) 30680, 680, 30680
680 continue
rvon01 = 7.5
rvon02 = 33e-1
rvon03 = -5e+2
rvcomp = rvon01 / rvon02 / rvon03
go to 40680
30680 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40680, 691, 40680
40680 if (rvcomp + .00459) 20680,10680,40681
40681 if (rvcomp + .00449) 10680,10680,20680
10680 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 691
20680 ivfail = ivfail + 1
rvcorr = -.0045454
write (i02,80005) ivtnum, rvcomp, rvcorr
691 continue
ivtnum = 69
c
c **** test 69 ****
c
if (iczero) 30690, 690, 30690
690 continue
rvon01 = 7.5
rvon02 = 33e-1
rvon03 = -5e+2
rvcomp = rvon01 / (rvon02 / rvon03)
go to 40690
30690 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40690, 701, 40690
40690 if (rvcomp + 1180.) 20690,10690,40691
40691 if (rvcomp + 1080.) 10690,10690,20690
10690 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 701
20690 ivfail = ivfail + 1
rvcorr = -1136.4
write (i02,80005) ivtnum, rvcomp, rvcorr
701 continue
ivtnum = 70
c
c **** test 70 ****
c
if (iczero) 30700, 700, 30700
700 continue
rvon01 = 3.835e3
ivon01 = 5
rvcomp = rvon01 ** ivon01
go to 40700
30700 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40700, 711, 40700
40700 if (rvcomp - 8.29e17) 20700,10700,40701
40701 if (rvcomp - 8.30e17) 10700,10700,20700
10700 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 711
20700 ivfail = ivfail + 1
rvcorr = 8.295e17
write (i02,80005) ivtnum, rvcomp, rvcorr
711 continue
c
c tests 71 through 74 test rv1 + rv2 <op2> rv3
c
ivtnum = 71
c
c **** test 71 ****
c
if (iczero) 30710, 710, 30710
710 continue
rvon01 = 524.87
rvon02 = 3.35
rvon03 = .005679
rvcomp = rvon01 + rvon02 - rvon03
go to 40710
30710 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40710, 721, 40710
40710 if (rvcomp - 528.16) 20710,10710,40711
40711 if (rvcomp - 528.26) 10710,10710,20710
10710 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 721
20710 ivfail = ivfail + 1
rvcorr = 528.21
write (i02,80005) ivtnum, rvcomp, rvcorr
721 continue
ivtnum = 72
c
c **** test 72 ****
c
if (iczero) 30720, 720, 30720
720 continue
rvon01 = 524.87
rvon02 = 3.35
rvon03 = .005679
rvcomp = rvon01 + rvon02 * rvon03
go to 40720
30720 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40720, 731, 40720
40720 if (rvcomp - 524.84) 20720,10720,40721
40721 if (rvcomp - 524.94) 10720,10720,20720
10720 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 731
20720 ivfail = ivfail + 1
rvcorr = 524.89
write (i02,80005) ivtnum, rvcomp, rvcorr
731 continue
ivtnum = 73
c
c **** test 73 ****
c
if (iczero) 30730, 730, 30730
730 continue
rvon01 = 524.87
rvon02 = 3.35
rvon03 = .005679
rvcomp = rvon01 + rvon02 / rvon03
go to 40730
30730 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40730, 741, 40730
40730 if (rvcomp - 1114.2) 20730,10730,40731
40731 if (rvcomp - 1115.2) 10730,10730,20730
10730 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 741
20730 ivfail = ivfail + 1
rvcorr = 1114.8
write (i02,80005) ivtnum, rvcomp, rvcorr
741 continue
ivtnum = 74
c
c **** test 74 ****
c
if (iczero) 30740, 740, 30740
740 continue
rvon01 = 524.87
rvon02 = 3.35
ivon01 = 7
rvcomp = rvon01 + rvon02 ** ivon01
go to 40740
30740 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40740, 751, 40740
40740 if (rvcomp - 5259.3) 20740,10740,40741
40741 if (rvcomp - 5260.3) 10740,10740,20740
10740 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 751
20740 ivfail = ivfail + 1
rvcorr = 5259.8
write (i02,80005) ivtnum, rvcomp, rvcorr
751 continue
c
c tests 75 through 78 check rv1 - rv2 <op2> rv3
c
ivtnum = 75
c
c **** test 75 ****
c
if (iczero) 30750, 750, 30750
750 continue
rvon01 = 524.87
rvon02 = 3.35
rvon03 = .5679
rvcomp = rvon01 - rvon02 + rvon03
go to 40750
30750 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40750, 761, 40750
40750 if (rvcomp - 522.03) 20750,10750,40751
40751 if (rvcomp - 522.13) 10750,10750,20750
10750 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 761
20750 ivfail = ivfail + 1
rvcorr = 522.09
write (i02,80005) ivtnum, rvcomp, rvcorr
761 continue
ivtnum = 76
c
c **** test 76 ****
c
if (iczero) 30760, 760, 30760
760 continue
rvon01 = 524.87
rvon02 = 3.35
rvon03 = .5679
rvcomp = rvon01 - rvon02 * rvon03
go to 40760
30760 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40760, 771, 40760
40760 if (rvcomp - 522.92) 20760,10760,40761
40761 if (rvcomp - 523.02) 10760,10760,20760
10760 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 771
20760 ivfail = ivfail + 1
rvcorr = 522.97
write (i02,80005) ivtnum, rvcomp, rvcorr
771 continue
ivtnum = 77
c
c **** test 77 ****
c
if (iczero) 30770, 770, 30770
770 continue
rvon01 = 524.87
rvon02 = 3.35
rvon03 = .5679
rvcomp = rvon01 - rvon02 / rvon03
go to 40770
30770 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40770, 781, 40770
40770 if (rvcomp - 518.92) 20770,10770,40771
40771 if (rvcomp - 519.02) 10770,10770,20770
10770 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 781
20770 ivfail = ivfail + 1
rvcorr = 518.97
write (i02,80005) ivtnum, rvcomp, rvcorr
781 continue
ivtnum = 78
c
c **** test 78 ****
c
if (iczero) 30780, 780, 30780
780 continue
rvon01 = 524.87
rvon02 = 3.35
ivon01 = 7
rvcomp = rvon01 - rvon02 ** ivon01
go to 40780
30780 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40780, 791, 40780
40780 if (rvcomp + 4210.6) 20780,10780,40781
40781 if (rvcomp + 4209.6) 10780,10780,20780
10780 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 791
20780 ivfail = ivfail + 1
rvcorr = -4210.1
write (i02,80005) ivtnum, rvcomp, rvcorr
791 continue
c
c tests 79 through 82 check rv1 * rv2 <op2> rv3
c
ivtnum = 79
c
c **** test 79 ****
c
if (iczero) 30790, 790, 30790
790 continue
rvon01 = 524.87
rvon02 = .5679
rvon03 = 3.35
rvcomp = rvon01 * rvon02 + rvon03
go to 40790
30790 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40790, 801, 40790
40790 if (rvcomp - 301.37) 20790,10790,40791
40791 if (rvcomp - 301.47) 10790,10790,20790
10790 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 801
20790 ivfail = ivfail + 1
rvcorr = 301.42
write (i02,80005) ivtnum, rvcomp, rvcorr
801 continue
ivtnum = 80
c
c **** test 80 ****
c
if (iczero) 30800, 800, 30800
800 continue
rvon01 = 524.87
rvon02 = .5679
rvon03 = 3.35
rvcomp = rvon01 * rvon02 - rvon03
go to 40800
30800 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40800, 811, 40800
40800 if (rvcomp - 294.67) 20800,10800,40801
40801 if (rvcomp - 294.77) 10800,10800,20800
10800 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 811
20800 ivfail = ivfail + 1
rvcorr = 294.72
write (i02,80005) ivtnum, rvcomp, rvcorr
811 continue
ivtnum = 81
c
c **** test 81 ****
c
if (iczero) 30810, 810, 30810
810 continue
rvon01 = 524.87
rvon02 = .5679
rvon03 = 3.35
rvcomp = rvon01 * rvon02 / rvon03
go to 40810
30810 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40810, 821, 40810
40810 if (rvcomp - 88.92) 20810,10810,40811
40811 if (rvcomp - 89.02) 10810,10810,20810
10810 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 821
20810 ivfail = ivfail + 1
rvcorr = 88.977
write (i02,80005) ivtnum, rvcomp, rvcorr
821 continue
ivtnum = 82
c
c **** test 82 ****
c
if (iczero) 30820, 820, 30820
820 continue
rvon01 = 524.87
rvon02 = .5679
ivon01 = 7
rvcomp = rvon01 * rvon02 ** ivon01
go to 40820
30820 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40820, 831, 40820
40820 if (rvcomp - 9.94) 20820,10820,40821
40821 if (rvcomp - 10.04) 10820,10820,20820
10820 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 831
20820 ivfail = ivfail + 1
rvcorr = 9.999
write (i02,80005) ivtnum, rvcomp, rvcorr
831 continue
c
c tests 83 through 86 check rv1 / rv2 <op2> rv3
c
ivtnum = 83
c
c **** test 83 ****
c
if (iczero) 30830, 830, 30830
830 continue
rvon01 = 524.87
rvon02 = 3.35
rvon03 = .5679
rvcomp = rvon01 / rvon02 + rvon03
go to 40830
30830 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40830, 841, 40830
40830 if (rvcomp - 157.19) 20830,10830,40831
40831 if (rvcomp - 157.29) 10830,10830,20830
10830 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 841
20830 ivfail = ivfail + 1
rvcorr = 157.25
write (i02,80005) ivtnum, rvcomp, rvcorr
841 continue
ivtnum = 84
c
c **** test 84 ****
c
if (iczero) 30840, 840, 30840
840 continue
rvon01 = 524.87
rvon02 = 3.35
rvon03 = .8507
rvcomp = rvon01 / rvon02 - rvon03
go to 40840
30840 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40840, 851, 40840
40840 if (rvcomp - 155.77) 20840,10840,40841
40841 if (rvcomp - 155.87) 10840,10840,20840
10840 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 851
20840 ivfail = ivfail + 1
rvcorr = 155.83
write (i02,80005) ivtnum, rvcomp, rvcorr
851 continue
ivtnum = 85
c
c **** test 85 ****
c
if (iczero) 30850, 850, 30850
850 continue
rvon01 = 524.87
rvon02 = 3.35
rvon03 = .8507
rvcomp = rvon01 / rvon02 * rvon03
go to 40850
30850 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40850, 861, 40850
40850 if (rvcomp - 132.7) 20850,10850,40851
40851 if (rvcomp - 133.7) 10850,10850,20850
10850 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 861
20850 ivfail = ivfail + 1
rvcorr = 133.29
write (i02,80005) ivtnum, rvcomp, rvcorr
861 continue
ivtnum = 86
c
c **** test 86 ****
c
if (iczero) 30860, 860, 30860
860 continue
rvon01 = 524.87
rvon02 = 3.35
ivon01 = 7
rvcomp = rvon01 / rvon02 ** ivon01
go to 40860
30860 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40860, 871, 40860
40860 if (rvcomp - .106) 20860,10860,40861
40861 if (rvcomp - .116) 10860,10860,20860
10860 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 871
20860 ivfail = ivfail + 1
rvcorr = .11085
write (i02,80005) ivtnum, rvcomp, rvcorr
871 continue
c
c tests 87 through 90 check rv1 ** iv1 <op2> rv2
c
ivtnum = 87
c
c **** test 87 ****
c
if (iczero) 30870, 870, 30870
870 continue
rvon01 = 3.35
ivon01 = 7
rvon02 = 524.87
rvcomp = rvon01 ** ivon01 + rvon02
go to 40870
30870 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40870, 881, 40870
40870 if (rvcomp - 5210.) 20870,10870,40871
40871 if (rvcomp - 5310.) 10870,10870,20870
10870 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 881
20870 ivfail = ivfail + 1
rvcorr = 5259.8
write (i02,80005) ivtnum, rvcomp, rvcorr
881 continue
ivtnum = 88
c
c **** test 88 ****
c
if (iczero) 30880, 880, 30880
880 continue
rvon01 = 3.35
ivon01 = 7
rvon02 = 524.87
rvcomp = rvon01 ** ivon01 - rvon02
go to 40880
30880 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40880, 891, 40880
40880 if (rvcomp - 4160.) 20880,10880,40881
40881 if (rvcomp - 4260.) 10880,10880,20880
10880 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 891
20880 ivfail = ivfail + 1
rvcorr = 4210.1
write (i02,80005) ivtnum, rvcomp, rvcorr
891 continue
ivtnum = 89
c
c **** test 89 ****
c
if (iczero) 30890, 890, 30890
890 continue
rvon01 = 3.35
ivon01 = 7
rvon02 = 524.87
rvcomp = rvon01 ** ivon01 * rvon02
go to 40890
30890 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40890, 901, 40890
40890 if (rvcomp - 2.43e6) 20890,10890,40891
40891 if (rvcomp - 2.53e6) 10890,10890,20890
10890 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 901
20890 ivfail = ivfail + 1
rvcorr = 2.4852e6
write (i02,80005) ivtnum, rvcomp, rvcorr
901 continue
ivtnum = 90
c
c **** test 90 ****
c
if (iczero) 30900, 900, 30900
900 continue
rvon01 = 3.35
ivon01 = 7
rvon02 = 524.87
rvcomp = rvon01 ** ivon01 / rvon02
go to 40900
30900 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40900, 911, 40900
40900 if (rvcomp - 8.97) 20900,10900,40901
40901 if (rvcomp - 9.07) 10900,10900,20900
10900 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 911
20900 ivfail = ivfail + 1
rvcorr = 9.0211
write (i02,80005) ivtnum, rvcomp, rvcorr
911 continue
c
c tests 91 and 92 check all arithmetic operators used together
c
ivtnum = 91
c
c **** test 91 ****
c
if (iczero) 30910, 910, 30910
910 continue
rvon01 = 780.56
rvon02 = .803
rvon03 = 3.35
ivon01 = 7
rvon04 = 20.07
rvon05 = 511.9
rvcomp = - rvon01 + rvon02 * rvon03 ** ivon01 / rvon04 - rvon05
go to 40910
30910 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40910, 921, 40910
40910 if (rvcomp + 1113.0) 20910,10910,40911
40911 if (rvcomp + 1093.0) 10910,10910,20910
10910 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 921
20910 ivfail = ivfail + 1
rvcorr = -1103.0
write (i02,80005) ivtnum, rvcomp, rvcorr
921 continue
ivtnum = 92
c
c **** test 92 ****
c
if (iczero) 30920, 920, 30920
920 continue
rvon01 = 780.56
rvon02 = .803
rvon03 = 3.35
ivon01 = 7
rvon04 = 20.07
rvon05 = 511.9
rvcomp = (-rvon01) + (rvon02 * rvon03) ** ivon01 / (rvon04-rvon05)
go to 40920
30920 ivdele = ivdele + 1
write (i02,80003) ivtnum
if (iczero) 40920, 931, 40920
40920 if (rvcomp + 788.) 20920,10920,40921
40921 if (rvcomp + 777.) 10920,10920,20920
10920 ivpass = ivpass + 1
write (i02,80001) ivtnum
go to 931
20920 ivfail = ivfail + 1
rvcorr = -782.63
write (i02,80005) ivtnum, rvcomp, rvcorr
931 continue
c
c write page footings and run summaries
99999 continue
write (i02,90002)
write (i02,90006)
write (i02,90002)
write (i02,90002)
write (i02,90007)
write (i02,90002)
write (i02,90008) ivfail
write (i02,90009) ivpass
write (i02,90010) ivdele
c
c
c terminate routine execution
stop
c
c format statements for page headers
90000 format (1h1)
90002 format (1h )
90001 format (1h ,10x,34hfortran compiler validation system)
90003 format (1h ,21x,11hversion 1.0)
90004 format (1h ,10x,38hfor official use only - copyright 1978)
90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
90006 format (1h ,5x,46h----------------------------------------------)
90011 format (1h ,18x,17hsubset level test)
c
c format statements for run summaries
90008 format (1h ,15x,i5,19h errors encountered)
90009 format (1h ,15x,i5,13h tests passed)
90010 format (1h ,15x,i5,14h tests deleted)
c
c format statements for test results
80001 format (1h ,4x,i5,7x,4hpass)
80002 format (1h ,4x,i5,7x,4hfail)
80003 format (1h ,4x,i5,7x,7hdeleted)
80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
c
90007 format (1h ,20x,20hend of program fm062)
end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.