|
|
1.1 root 1: c comment section
2: c
3: c fm001
4: c
5: c this routine contains the boilerplate source coding which
6: c is used to print the report headings and run summaries for each
7: c of the elementary routines.
8: c
9: c three tests are included which contain the procedures for
10: c testing the language features and deleting tests.
11: c
12: c test 1 checks the pass procedure
13: c test 2 checks the fail procedure
14: c test 3 checks the delete procedure
15: c
16: c if this routine does not execute correctly, then no other
17: c routines will be run. there is no use in trying to validate a
18: c fortran compiler which cannot handle such basic statements.
19: c
20: c **********************************************************
21: c
22: c a compiler validation system for the fortran language
23: c based on specifications as defined in american national standard
24: c programming language fortran x3.9-1978, has been developed by the
25: c federal cobol compiler testing service. the fortran compiler
26: c validation system (fcvs) consists of audit routines, their related
27: c data, and an executive system. each audit routine is a fortran
28: c program, subprogram or function which includes tests of specific
29: c language elements and supporting procedures indicating the result
30: c of executing these tests.
31: c
32: c this particular program/subprogram/function contains features
33: c found only in the subset as defined in x3.9-1978.
34: c
35: c suggestions and comments should be forwarded to -
36: c
37: c department of the navy
38: c federal cobol compiler testing service
39: c washington, d.c. 20376
40: c
41: c **********************************************************
42: c
43: c
44: c
45: c initialization section
46: c
47: c initialize constants
48: c **************
49: c i01 contains the logical unit number for the card reader.
50: i01 = 5
51: c i02 contains the logical unit number for the printer.
52: i02 = 6
53: c system environment section
54: c
55: cx010 this card is replaced by contents of fexec x-010 control card.
56: c the cx010 card is for overriding the program default i01 = 5
57: c (unit number for card reader).
58: cx011 this card is replaced by contents of fexec x-011 control card.
59: c the cx011 card is for systems which require additional
60: c fortran statements for files associated with cx010 above.
61: c
62: cx020 this card is replaced by contents of fexec x-020 control card.
63: c the cx020 card is for overriding the program default i02 = 6
64: c (unit number for printer).
65: cx021 this card is replaced by contents of fexec x-021 control card.
66: c the cx021 card is for systems which require additional
67: c fortran statements for files associated with cx020 above.
68: c
69: ivpass=0
70: ivfail=0
71: ivdele=0
72: iczero=0
73: c
74: c write page headers
75: write (i02,90000)
76: write (i02,90001)
77: write (i02,90002)
78: write (i02, 90002)
79: write (i02,90003)
80: write (i02,90002)
81: write (i02,90004)
82: write (i02,90002)
83: write (i02,90011)
84: write (i02,90002)
85: write (i02,90002)
86: write (i02,90005)
87: write (i02,90006)
88: write (i02,90002)
89: c test section
90: c
91: 11 continue
92: c
93: c **** test 001 ****
94: c test 001 - basic procedure for coding tests
95: c also checks continue statement which should not have
96: c any affect on execution sequence
97: c
98: if (iczero) 30010, 10, 30010
99: 10 continue
100: ivtnum=1
101: go to 40010
102: 30010 ivdele=ivdele+1
103: write (i02,80003) ivtnum
104: if (iczero) 40010, 21, 40010
105: 40010 if (ivtnum - 1) 20010, 10010, 20010
106: 10010 ivpass=ivpass+1
107: write (i02,80001) ivtnum
108: go to 21
109: 20010 ivfail=ivfail+1
110: ivcomp=ivtnum
111: ivcorr=1
112: write (i02,80004) ivtnum, ivcomp, ivcorr
113: 21 continue
114: c
115: c **** test 002 ****
116: c test - 002 force fail code to be executed
117: c
118: if (iczero) 30020,20,30020
119: 20 continue
120: ivtnum=2
121: go to 40020
122: 30020 ivdele=ivdele+1
123: write (i02,80003) ivtnum
124: if (iczero) 40020,31,40020
125: 40020 if (ivtnum-1) 20020, 10020, 20020
126: 10020 ivpass=ivpass+1
127: write (i02,80001) ivtnum
128: go to 31
129: 20020 ivfail=ivfail+1
130: ivcomp=ivtnum
131: ivcorr=2
132: write (i02,80004) ivtnum, ivcomp, ivcorr
133: 31 continue
134: c
135: c **** test 003 ****
136: c test 003 - delete procedure tested
137: c
138: if (iczero) 30030,30,30030
139: 30 continue
140: c ivtnum=5000
141: c go to 40030
142: 30030 ivdele=ivdele+1
143: ivtnum=3
144: write (i02,80003) ivtnum
145: if (iczero) 40030,99999,40030
146: 40030 if (ivtnum - 5000) 20030,10030,20030
147: 10030 ivpass=ivpass +1
148: write (i02,80001) ivtnum
149: go to 99999
150: 20030 ivfail=ivfail+1
151: ivcomp=ivtnum
152: ivcorr=5000
153: write (i02,80004) ivtnum, ivcomp, ivcorr
154: c
155: c write page footings and run summaries
156: 99999 continue
157: write (i02,90002)
158: write (i02,90006)
159: write (i02,90002)
160: write (i02,90002)
161: write (i02,90007)
162: write (i02,90002)
163: write (i02,90008) ivfail
164: write (i02,90009) ivpass
165: write (i02,90010) ivdele
166: c
167: c
168: c special output statements for this routine
169: write (i02,90000)
170: write (i02,90002)
171: write (i02,80031)
172: write (i02,90002)
173: write (i02,80010)
174: write (i02,80020)
175: write (i02,80030)
176: write (i02,80032)
177: c
178: c terminate routine execution
179: stop
180: c
181: c format statements for page headers
182: 90000 format (1h1)
183: 90002 format (1h )
184: 90001 format (1h ,10x,34hfortran compiler validation system)
185: 90003 format (1h ,21x,11hversion 1.0)
186: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
187: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
188: 90006 format (1h ,5x,46h----------------------------------------------)
189: 90011 format (1h ,18x,17hsubset level test)
190: c
191: c format statements for run summaries
192: 90008 format (1h ,15x,i5,19h errors encountered)
193: 90009 format (1h ,15x,i5,13h tests passed)
194: 90010 format (1h ,15x,i5,14h tests deleted)
195: c
196: c format statements for test results
197: 80001 format (1h ,4x,i5,7x,4hpass)
198: 80002 format (1h ,4x,i5,7x,4hfail)
199: 80003 format (1h ,4x,i5,7x,7hdeleted)
200: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
201: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
202: c
203: c formats for current routine
204: 80031 format (1h ,10x,39hthe program fm001 executed correctly if)
205: 80010 format (1h ,15x,13htest 1 passed)
206: 80020 format (1h ,15x,42htest 2 failed with computed and correct =2)
207: 80030 format (1h ,15x,18htest 3 was deleted)
208: 80032 format (1h ,15x,34hthe run summary totals all equal 1)
209: 90007 format (1h ,20x,20hend of program fm001)
210: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.