|
|
1.1 root 1: c comment section
2: c
3: c fm007
4: c
5: c this routine tests the use of data initialization statements.
6: c data initialization statements are used to define initial values
7: c of integer variables. the data statements contain unsigned,
8: c positive signed and negative signed integer constants. the last
9: c data statement contains the form
10: c j*integer constant
11: c which indicates the constant is to be specified j times.
12: c
13: c the tests in this routine check the integer variables in the
14: c data statement for the assigned initial values.
15: c
16: c references
17: c american national standard programming language fortran,
18: c x3.9-1978
19: c
20: c section 4.3, integer type
21: c section 4.3.1, integer constant
22: c section 9, data statement
23: c
24: c
25: c data initialization statements
26: c
27: data ivon01,ivon02,ivon03,ivon04,ivon05/3,76,587,9999,21111/
28: data ivon06,ivon07,ivon08,ivon09,ivon10/+3,+76,+587,+9999,+21111/
29: data ivon11,ivon12,ivon13,ivon14,ivon15/-3,-76,-587,-9999,-21111/
30: data ivon16,ivon17,ivon18,ivon19,ivon20/ 2*119, 2*7, -427/
31: c
32: c
33: c **********************************************************
34: c
35: c a compiler validation system for the fortran language
36: c based on specifications as defined in american national standard
37: c programming language fortran x3.9-1978, has been developed by the
38: c federal cobol compiler testing service. the fortran compiler
39: c validation system (fcvs) consists of audit routines, their related
40: c data, and an executive system. each audit routine is a fortran
41: c program, subprogram or function which includes tests of specific
42: c language elements and supporting procedures indicating the result
43: c of executing these tests.
44: c
45: c this particular program/subprogram/function contains features
46: c found only in the subset as defined in x3.9-1978.
47: c
48: c suggestions and comments should be forwarded to -
49: c
50: c department of the navy
51: c federal cobol compiler testing service
52: c washington, d.c. 20376
53: c
54: c **********************************************************
55: c
56: c
57: c
58: c initialization section
59: c
60: c initialize constants
61: c **************
62: c i01 contains the logical unit number for the card reader.
63: i01 = 5
64: c i02 contains the logical unit number for the printer.
65: i02 = 6
66: c system environment section
67: c
68: cx010 this card is replaced by contents of fexec x-010 control card.
69: c the cx010 card is for overriding the program default i01 = 5
70: c (unit number for card reader).
71: cx011 this card is replaced by contents of fexec x-011 control card.
72: c the cx011 card is for systems which require additional
73: c fortran statements for files associated with cx010 above.
74: c
75: cx020 this card is replaced by contents of fexec x-020 control card.
76: c the cx020 card is for overriding the program default i02 = 6
77: c (unit number for printer).
78: cx021 this card is replaced by contents of fexec x-021 control card.
79: c the cx021 card is for systems which require additional
80: c fortran statements for files associated with cx020 above.
81: c
82: ivpass=0
83: ivfail=0
84: ivdele=0
85: iczero=0
86: c
87: c write page headers
88: write (i02,90000)
89: write (i02,90001)
90: write (i02,90002)
91: write (i02, 90002)
92: write (i02,90003)
93: write (i02,90002)
94: write (i02,90004)
95: write (i02,90002)
96: write (i02,90011)
97: write (i02,90002)
98: write (i02,90002)
99: write (i02,90005)
100: write (i02,90006)
101: write (i02,90002)
102: c test section
103: c
104: c tests 80 through 84 check the values initialized by the data
105: c statement containing ivon01,..., ivon05.
106: c
107: 801 continue
108: ivtnum = 80
109: c
110: c **** test 80 ****
111: c
112: if (iczero) 30800, 800, 30800
113: 800 continue
114: ivcomp = ivon01
115: go to 40800
116: 30800 ivdele = ivdele + 1
117: write (i02,80003) ivtnum
118: if (iczero) 40800, 811, 40800
119: 40800 if (ivcomp - 3) 20800, 10800,20800
120: 10800 ivpass = ivpass + 1
121: write (i02,80001) ivtnum
122: go to 811
123: 20800 ivfail = ivfail + 1
124: ivcorr = 3
125: write (i02,80004) ivtnum, ivcomp ,ivcorr
126: 811 continue
127: ivtnum = 81
128: c
129: c **** test 81 ****
130: c
131: if (iczero) 30810, 810, 30810
132: 810 continue
133: ivcomp = ivon02
134: go to 40810
135: 30810 ivdele = ivdele + 1
136: write (i02,80003) ivtnum
137: if (iczero) 40810, 821, 40810
138: 40810 if (ivcomp - 76) 20810, 10810, 20810
139: 10810 ivpass = ivpass + 1
140: write (i02,80001) ivtnum
141: go to 821
142: 20810 ivfail = ivfail + 1
143: ivcorr = 76
144: write (i02,80004) ivtnum, ivcomp ,ivcorr
145: 821 continue
146: ivtnum = 82
147: c
148: c **** test 82 ****
149: c
150: if (iczero) 30820, 820, 30820
151: 820 continue
152: ivcomp = ivon03
153: go to 40820
154: 30820 ivdele = ivdele + 1
155: write (i02,80003) ivtnum
156: if (iczero) 40820, 831, 40820
157: 40820 if (ivcomp - 587) 20820, 10820, 20820
158: 10820 ivpass = ivpass + 1
159: write (i02,80001) ivtnum
160: go to 831
161: 20820 ivfail = ivfail + 1
162: ivcorr = 587
163: write (i02,80004) ivtnum, ivcomp ,ivcorr
164: 831 continue
165: ivtnum = 83
166: c
167: c **** test 83 ****
168: c
169: if (iczero) 30830, 830, 30830
170: 830 continue
171: ivcomp =ivon04
172: go to 40830
173: 30830 ivdele = ivdele + 1
174: write (i02,80003) ivtnum
175: if (iczero) 40830, 841, 40830
176: 40830 if (ivcomp - 9999) 20830, 10830, 20830
177: 10830 ivpass = ivpass + 1
178: write (i02,80001) ivtnum
179: go to 841
180: 20830 ivfail = ivfail + 1
181: ivcorr = 9999
182: write (i02,80004) ivtnum, ivcomp ,ivcorr
183: 841 continue
184: ivtnum = 84
185: c
186: c **** test 84 ****
187: c
188: if (iczero) 30840, 840, 30840
189: 840 continue
190: ivcomp = ivon05
191: go to 40840
192: 30840 ivdele = ivdele + 1
193: write (i02,80003) ivtnum
194: if (iczero) 40840, 851, 40840
195: 40840 if (ivcomp - 21111) 20840, 10840, 20840
196: 10840 ivpass = ivpass + 1
197: write (i02,80001) ivtnum
198: go to 851
199: 20840 ivfail = ivfail + 1
200: ivcorr = 21111
201: write (i02,80004) ivtnum, ivcomp ,ivcorr
202: c
203: c tests 85 through 89 check the values initialized by the data
204: c statement containing ivon06,...,ivon10.
205: c
206: 851 continue
207: ivtnum = 85
208: c
209: c **** test 85 ****
210: c
211: if (iczero) 30850, 850, 30850
212: 850 continue
213: ivcomp=ivon06
214: go to 40850
215: 30850 ivdele = ivdele + 1
216: write (i02,80003) ivtnum
217: if (iczero) 40850, 861, 40850
218: 40850 if (ivcomp - 3) 20850, 10850, 20850
219: 10850 ivpass = ivpass + 1
220: write (i02,80001) ivtnum
221: go to 861
222: 20850 ivfail = ivfail + 1
223: ivcorr = 3
224: write (i02,80004) ivtnum, ivcomp ,ivcorr
225: 861 continue
226: ivtnum = 86
227: c
228: c **** test 86 ****
229: c
230: if (iczero) 30860, 860, 30860
231: 860 continue
232: ivcomp = ivon07
233: go to 40860
234: 30860 ivdele = ivdele + 1
235: write (i02,80003) ivtnum
236: if (iczero) 40860, 871, 40860
237: 40860 if (ivcomp - 76) 20860, 10860, 20860
238: 10860 ivpass = ivpass + 1
239: write (i02,80001) ivtnum
240: go to 871
241: 20860 ivfail = ivfail + 1
242: ivcorr = 76
243: write (i02,80004) ivtnum, ivcomp ,ivcorr
244: 871 continue
245: ivtnum = 87
246: c
247: c **** test 87 ****
248: c
249: if (iczero) 30870, 870, 30870
250: 870 continue
251: ivcomp = ivon08
252: go to 40870
253: 30870 ivdele = ivdele + 1
254: write (i02,80003) ivtnum
255: if (iczero) 40870, 881, 40870
256: 40870 if (ivcomp - 587) 20870, 10870, 20870
257: 10870 ivpass = ivpass + 1
258: write (i02,80001) ivtnum
259: go to 881
260: 20870 ivfail = ivfail + 1
261: ivcorr = 587
262: write (i02,80004) ivtnum, ivcomp ,ivcorr
263: 881 continue
264: ivtnum = 88
265: c
266: c **** test 88 ****
267: c
268: if (iczero) 30880, 880, 30880
269: 880 continue
270: ivcomp = ivon09
271: go to 40880
272: 30880 ivdele = ivdele + 1
273: write (i02,80003) ivtnum
274: if (iczero) 40880, 891, 40880
275: 40880 if (ivcomp - 9999) 20880, 10880, 20880
276: 10880 ivpass = ivpass + 1
277: write (i02,80001) ivtnum
278: go to 891
279: 20880 ivfail = ivfail + 1
280: ivcorr = 9999
281: write (i02,80004) ivtnum, ivcomp ,ivcorr
282: 891 continue
283: ivtnum = 89
284: c
285: c **** test 89 ****
286: c
287: if (iczero) 30890, 890, 30890
288: 890 continue
289: ivcomp = ivon10
290: go to 40890
291: 30890 ivdele = ivdele + 1
292: write (i02,80003) ivtnum
293: if (iczero) 40890, 901, 40890
294: 40890 if (ivcomp - 21111) 20890, 10890, 20890
295: 10890 ivpass = ivpass + 1
296: write (i02,80001) ivtnum
297: go to 901
298: 20890 ivfail = ivfail + 1
299: ivcorr= 21111
300: write (i02,80004) ivtnum, ivcomp ,ivcorr
301: c
302: c tests 90 through 94 check the values initialized by the data
303: c statement containing ivon11,...,ivon15.
304: c
305: 901 continue
306: ivtnum = 90
307: c
308: c **** test 90 ****
309: c
310: if (iczero) 30900, 900, 30900
311: 900 continue
312: ivcomp = ivon11
313: go to 40900
314: 30900 ivdele = ivdele + 1
315: write (i02,80003) ivtnum
316: if (iczero) 40900, 911, 40900
317: 40900 if (ivcomp + 3) 20900, 10900, 20900
318: 10900 ivpass = ivpass + 1
319: write (i02,80001) ivtnum
320: go to 911
321: 20900 ivfail = ivfail + 1
322: ivcorr = -3
323: write (i02,80004) ivtnum, ivcomp ,ivcorr
324: 911 continue
325: ivtnum = 91
326: c
327: c **** test 91 ****
328: c
329: if (iczero) 30910, 910, 30910
330: 910 continue
331: ivcomp = ivon12
332: go to 40910
333: 30910 ivdele = ivdele + 1
334: write (i02,80003) ivtnum
335: if (iczero) 40910, 921, 40910
336: 40910 if (ivcomp + 76) 20910, 10910, 20910
337: 10910 ivpass = ivpass + 1
338: write (i02,80001) ivtnum
339: go to 921
340: 20910 ivfail = ivfail + 1
341: ivcorr = -76
342: write (i02,80004) ivtnum, ivcomp ,ivcorr
343: 921 continue
344: ivtnum = 92
345: c
346: c **** test 92 ****
347: c
348: if (iczero) 30920, 920, 30920
349: 920 continue
350: ivcomp= ivon13
351: go to 40920
352: 30920 ivdele = ivdele + 1
353: write (i02,80003) ivtnum
354: if (iczero) 40920, 931, 40920
355: 40920 if (ivcomp + 587) 20920, 10920, 20920
356: 10920 ivpass = ivpass + 1
357: write (i02,80001) ivtnum
358: go to 931
359: 20920 ivfail = ivfail + 1
360: ivcorr = -587
361: write (i02,80004) ivtnum, ivcomp ,ivcorr
362: 931 continue
363: ivtnum = 93
364: c
365: c **** test 93 ****
366: c
367: if (iczero) 30930, 930, 30930
368: 930 continue
369: ivcomp = ivon14
370: go to 40930
371: 30930 ivdele = ivdele + 1
372: write (i02,80003) ivtnum
373: if (iczero) 40930, 941, 40930
374: 40930 if (ivcomp + 9999) 20930, 10930, 20930
375: 10930 ivpass = ivpass + 1
376: write (i02,80001) ivtnum
377: go to 941
378: 20930 ivfail = ivfail + 1
379: ivcorr = -9999
380: write (i02,80004) ivtnum, ivcomp ,ivcorr
381: 941 continue
382: ivtnum = 94
383: c
384: c **** test 94 ****
385: c
386: if (iczero) 30940, 940, 30940
387: 940 continue
388: ivcomp = ivon15
389: go to 40940
390: 30940 ivdele = ivdele + 1
391: write (i02,80003) ivtnum
392: if (iczero) 40940, 951, 40940
393: 40940 if (ivcomp + 21111) 20940, 10940, 20940
394: 10940 ivpass = ivpass + 1
395: write (i02,80001) ivtnum
396: go to 951
397: 20940 ivfail = ivfail + 1
398: ivcorr = -21111
399: write (i02,80004) ivtnum, ivcomp ,ivcorr
400: c
401: c tests 95 through 99 check the values initialized by the data
402: c statement containing ivon16,...,ivon20.
403: c
404: 951 continue
405: ivtnum = 95
406: c
407: c **** test 95 ****
408: c
409: if (iczero) 30950, 950, 30950
410: 950 continue
411: ivcomp =ivon16
412: go to 40950
413: 30950 ivdele = ivdele + 1
414: write (i02,80003) ivtnum
415: if (iczero) 40950, 961, 40950
416: 40950 if (ivcomp - 119) 20950, 10950, 20950
417: 10950 ivpass = ivpass + 1
418: write (i02,80001) ivtnum
419: go to 961
420: 20950 ivfail = ivfail + 1
421: ivcorr = 119
422: write (i02,80004) ivtnum, ivcomp ,ivcorr
423: 961 continue
424: ivtnum = 96
425: c
426: c **** test 96 ****
427: c
428: if (iczero) 30960, 960, 30960
429: 960 continue
430: ivcomp=ivon17
431: go to 40960
432: 30960 ivdele = ivdele + 1
433: write (i02,80003) ivtnum
434: if (iczero) 40960, 971, 40960
435: 40960 if (ivcomp - 119) 20960, 10960, 20960
436: 10960 ivpass = ivpass + 1
437: write (i02,80001) ivtnum
438: go to 971
439: 20960 ivfail = ivfail + 1
440: ivcorr = 119
441: write (i02,80004) ivtnum, ivcomp ,ivcorr
442: 971 continue
443: ivtnum = 97
444: c
445: c **** test 97 ****
446: c
447: if (iczero) 30970, 970, 30970
448: 970 continue
449: ivcomp = ivon18
450: go to 40970
451: 30970 ivdele = ivdele + 1
452: write (i02,80003) ivtnum
453: if (iczero) 40970, 981, 40970
454: 40970 if (ivcomp - 7) 20970, 10970, 20970
455: 10970 ivpass = ivpass + 1
456: write (i02,80001) ivtnum
457: go to 981
458: 20970 ivfail = ivfail + 1
459: ivcorr = 7
460: write (i02,80004) ivtnum, ivcomp ,ivcorr
461: 981 continue
462: ivtnum = 98
463: c
464: c **** test 98 ****
465: c
466: if (iczero) 30980, 980, 30980
467: 980 continue
468: ivcomp = ivon19
469: go to 40980
470: 30980 ivdele = ivdele + 1
471: write (i02,80003) ivtnum
472: if (iczero) 40980, 991, 40980
473: 40980 if (ivcomp - 7) 20980, 10980, 20980
474: 10980 ivpass = ivpass + 1
475: write (i02,80001) ivtnum
476: go to 991
477: 20980 ivfail = ivfail + 1
478: ivcorr = 7
479: write (i02,80004) ivtnum, ivcomp ,ivcorr
480: 991 continue
481: ivtnum = 99
482: c
483: c **** test 99 ****
484: c
485: if (iczero) 30990, 990, 30990
486: 990 continue
487: ivcomp = ivon20
488: go to 40990
489: 30990 ivdele = ivdele + 1
490: write (i02,80003) ivtnum
491: if (iczero) 40990, 1001, 40990
492: 40990 if (ivcomp + 427) 20990,10990,20990
493: 10990 ivpass = ivpass + 1
494: write (i02,80001) ivtnum
495: go to 1001
496: 20990 ivfail = ivfail + 1
497: ivcorr = -427
498: write (i02,80004) ivtnum, ivcomp ,ivcorr
499: 1001 continue
500: c
501: c write page footings and run summaries
502: 99999 continue
503: write (i02,90002)
504: write (i02,90006)
505: write (i02,90002)
506: write (i02,90002)
507: write (i02,90007)
508: write (i02,90002)
509: write (i02,90008) ivfail
510: write (i02,90009) ivpass
511: write (i02,90010) ivdele
512: c
513: c
514: c terminate routine execution
515: stop
516: c
517: c format statements for page headers
518: 90000 format (1h1)
519: 90002 format (1h )
520: 90001 format (1h ,10x,34hfortran compiler validation system)
521: 90003 format (1h ,21x,11hversion 1.0)
522: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
523: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
524: 90006 format (1h ,5x,46h----------------------------------------------)
525: 90011 format (1h ,18x,17hsubset level test)
526: c
527: c format statements for run summaries
528: 90008 format (1h ,15x,i5,19h errors encountered)
529: 90009 format (1h ,15x,i5,13h tests passed)
530: 90010 format (1h ,15x,i5,14h tests deleted)
531: c
532: c format statements for test results
533: 80001 format (1h ,4x,i5,7x,4hpass)
534: 80002 format (1h ,4x,i5,7x,4hfail)
535: 80003 format (1h ,4x,i5,7x,7hdeleted)
536: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
537: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
538: c
539: 90007 format (1h ,20x,20hend of program fm007)
540: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.