|
|
1.1 root 1: c comment section
2: c
3: c fm060
4: c
5: c this routine contains basic arithmetic if statement tests for
6: c the format
7: c
8: c if (e) k1,k2,k3
9: c
10: c where e is a simple real expression of the form
11: c
12: c real variable
13: c real variable - real constant
14: c real variable + real constant
15: c
16: c and k1, k2 and k3 are statement labels.
17: c
18: c this routine also tests arithmetic assignment statements of
19: c the form
20: c real variable = real constant
21: c real variable = real variable
22: c real variable = -real variable
23: c
24: c the real constants and real variables contain both positive and
25: c negative values.
26: c
27: c a real datum is a processor approximation to the value of a
28: c real number. it may assume positive, negative and zero values.
29: c
30: c a basic real constant is written as an integer part, a decimal
31: c point, and a decimal fraction part in that order. both the
32: c integer part and the decimal part are strings of digits; either
33: c one of these strings may be empty but not both. the constant is
34: c an approximation to the digit string interpreted as a decimal
35: c numeral.
36: c
37: c a decimal exponent is written as the letter e, followed by an
38: c optionally signed integer constant.
39: c
40: c a real constant is indicated by writing a basic real constant,
41: c a basic real constant followed by a decimal exponent, or an
42: c integer constant followed by a decimal exponent.
43: c
44: c references
45: c american national standard programming language fortran,
46: c x3.9-1978
47: c
48: c section 4.4, real type
49: c section 4.4.1, real constant
50: c section 6.1, arithmetic expressions
51: c section 10.1, arithmetic assignment statement
52: c section 11.4, arithmetic if statement
53: c
54: c **********************************************************
55: c
56: c a compiler validation system for the fortran language
57: c based on specifications as defined in american national standard
58: c programming language fortran x3.9-1978, has been developed by the
59: c federal cobol compiler testing service. the fortran compiler
60: c validation system (fcvs) consists of audit routines, their related
61: c data, and an executive system. each audit routine is a fortran
62: c program, subprogram or function which includes tests of specific
63: c language elements and supporting procedures indicating the result
64: c of executing these tests.
65: c
66: c this particular program/subprogram/function contains features
67: c found only in the subset as defined in x3.9-1978.
68: c
69: c suggestions and comments should be forwarded to -
70: c
71: c department of the navy
72: c federal cobol compiler testing service
73: c washington, d.c. 20376
74: c
75: c **********************************************************
76: c
77: c
78: c
79: c initialization section
80: c
81: c initialize constants
82: c **************
83: c i01 contains the logical unit number for the card reader.
84: i01 = 5
85: c i02 contains the logical unit number for the printer.
86: i02 = 6
87: c system environment section
88: c
89: cx010 this card is replaced by contents of fexec x-010 control card.
90: c the cx010 card is for overriding the program default i01 = 5
91: c (unit number for card reader).
92: cx011 this card is replaced by contents of fexec x-011 control card.
93: c the cx011 card is for systems which require additional
94: c fortran statements for files associated with cx010 above.
95: c
96: cx020 this card is replaced by contents of fexec x-020 control card.
97: c the cx020 card is for overriding the program default i02 = 6
98: c (unit number for printer).
99: cx021 this card is replaced by contents of fexec x-021 control card.
100: c the cx021 card is for systems which require additional
101: c fortran statements for files associated with cx020 above.
102: c
103: ivpass=0
104: ivfail=0
105: ivdele=0
106: iczero=0
107: c
108: c write page headers
109: write (i02,90000)
110: write (i02,90001)
111: write (i02,90002)
112: write (i02, 90002)
113: write (i02,90003)
114: write (i02,90002)
115: write (i02,90004)
116: write (i02,90002)
117: write (i02,90011)
118: write (i02,90002)
119: write (i02,90002)
120: write (i02,90005)
121: write (i02,90006)
122: write (i02,90002)
123: c
124: c test section
125: c
126: c arithmetic if statement
127: c
128: c test 1 through test 3 contain basic arithmetic if statement tests
129: c with a real variable as arithmetic expression.
130: c
131: 11 continue
132: ivtnum = 1
133: c
134: c **** test 1 ****
135: c test 001 - less than zero branch expected
136: c
137: if (iczero) 30010, 10, 30010
138: 10 continue
139: rvcomp = 0.0
140: rvon01 = -1.0
141: if (rvon01) 12,40010, 40010
142: 12 rvcomp = rvon01
143: go to 40010
144: 30010 ivdele = ivdele + 1
145: write (i02,80003) ivtnum
146: if (iczero) 40010, 21, 40010
147: 40010 if (rvcomp) 10010,20010,20010
148: 10010 ivpass = ivpass + 1
149: write (i02,80001) ivtnum
150: go to 21
151: 20010 ivfail = ivfail + 1
152: rvcorr = -1.0
153: write (i02,80005) ivtnum, rvcomp, rvcorr
154: 21 continue
155: ivtnum = 2
156: c
157: c **** test 2 ****
158: c test 002 - equal to zero branch expected
159: c
160: if (iczero) 30020, 20, 30020
161: 20 continue
162: rvcomp = 1.0
163: rvon01 = 0.0
164: if (rvon01) 40020,22,40020
165: 22 rvcomp = rvon01
166: go to 40020
167: 30020 ivdele = ivdele + 1
168: write (i02,80003) ivtnum
169: if (iczero) 40020, 31, 40020
170: 40020 if (rvcomp) 20020,10020,20020
171: 10020 ivpass = ivpass + 1
172: write (i02,80001) ivtnum
173: go to 31
174: 20020 ivfail = ivfail + 1
175: rvcorr = 0.0
176: write (i02,80005) ivtnum, rvcomp, rvcorr
177: 31 continue
178: ivtnum = 3
179: c
180: c **** test 3 ****
181: c test 003 - greater than zero branch expected
182: c
183: if (iczero) 30030, 30, 30030
184: 30 continue
185: rvcomp = 0.0
186: rvon01 = 1.0
187: if (rvon01) 40030,40030,32
188: 32 rvcomp = rvon01
189: go to 40030
190: 30030 ivdele = ivdele + 1
191: write (i02,80003) ivtnum
192: if (iczero) 40030, 41, 40030
193: 40030 if (rvcomp) 20030,20030,10030
194: 10030 ivpass = ivpass + 1
195: write (i02,80001) ivtnum
196: go to 41
197: 20030 ivfail = ivfail + 1
198: rvcorr = 1.0
199: write (i02,80005) ivtnum, rvcomp, rvcorr
200: 41 continue
201: ivtnum = 4
202: c
203: c **** test 4 ****
204: c test 004 - basic if statements test
205: c these if statements are used in real variable test
206: c verification. the arithmetic expressions are of the form
207: c real variable - real constant
208: c
209: if (iczero) 30040, 40, 30040
210: 40 continue
211: rvcomp = 4.0
212: rvon01 = 1.0
213: if (rvon01 - .99995) 40040,42,42
214: 42 if (rvon01 - 1.0005) 43,43,40040
215: 43 rvcomp = 0.0
216: go to 40040
217: 30040 ivdele = ivdele + 1
218: write (i02,80003) ivtnum
219: if (iczero) 40040, 51, 40040
220: 40040 if (rvcomp) 20040,10040,20040
221: 10040 ivpass = ivpass + 1
222: write (i02,80001) ivtnum
223: go to 51
224: 20040 ivfail = ivfail + 1
225: rvcorr = 0.0
226: write (i02,80005) ivtnum, rvcomp, rvcorr
227: 51 continue
228: ivtnum = 5
229: c
230: c **** test 5 ****
231: c test 005 - basic if statements test
232: c these if statements are used in real variable test
233: c verification. the arithmetic expressions are of the form
234: c real variable + real constant
235: c
236: if (iczero) 30050, 50, 30050
237: 50 continue
238: rvcomp = -1.0
239: rvon01 = -1.0
240: if (rvon01 + 1.0005) 40050,52,52
241: 52 if (rvon01 + .99995) 53,53,40050
242: 53 rvcomp = 0.0
243: go to 40050
244: 30050 ivdele = ivdele + 1
245: write (i02,80003) ivtnum
246: if (iczero) 40050, 61, 40050
247: 40050 if (rvcomp) 20050,10050,20050
248: 10050 ivpass = ivpass + 1
249: write (i02,80001) ivtnum
250: go to 61
251: 20050 ivfail = ivfail + 1
252: rvcorr = 0.0
253: write (i02,80005) ivtnum, rvcomp, rvcorr
254: c
255: c arithmetic assignment statement
256: c
257: c
258: c test 006 through test 025 contain arithmetic assignment
259: c statements of the form
260: c real variable = real constant
261: c
262: c the three types of real constants are tested with positive
263: c and negative values for the constants, and positive and negative
264: c exponents.
265: c
266: c test 006 through test 011 - constant is basic real constant
267: c
268: 61 continue
269: ivtnum = 6
270: c
271: c **** test 6 ****
272: c
273: if (iczero) 30060, 60, 30060
274: 60 continue
275: rvcomp = 2.0
276: go to 40060
277: 30060 ivdele = ivdele + 1
278: write (i02,80003) ivtnum
279: if (iczero) 40060, 71, 40060
280: 40060 if (rvcomp - 1.9995) 20060,10060,40061
281: 40061 if (rvcomp - 2.0005) 10060,10060,20060
282: 10060 ivpass = ivpass + 1
283: write (i02,80001) ivtnum
284: go to 71
285: 20060 ivfail = ivfail + 1
286: rvcorr = 2.0
287: write (i02,80005) ivtnum, rvcomp, rvcorr
288: 71 continue
289: ivtnum = 7
290: c
291: c **** test 7 ****
292: c
293: if (iczero) 30070, 70, 30070
294: 70 continue
295: rvcomp = 44.5
296: go to 40070
297: 30070 ivdele = ivdele + 1
298: write (i02,80003) ivtnum
299: if (iczero) 40070, 81, 40070
300: 40070 if (rvcomp - 44.495) 20070,10070,40071
301: 40071 if (rvcomp - 45.505) 10070,10070,20070
302: 10070 ivpass = ivpass + 1
303: write (i02,80001) ivtnum
304: go to 81
305: 20070 ivfail = ivfail + 1
306: rvcorr = 44.5
307: write (i02,80005) ivtnum, rvcomp, rvcorr
308: 81 continue
309: ivtnum = 8
310: c
311: c **** test 8 ****
312: c
313: if (iczero) 30080, 80, 30080
314: 80 continue
315: rvcomp = -2.0
316: go to 40080
317: 30080 ivdele = ivdele + 1
318: write (i02,80003) ivtnum
319: if (iczero) 40080, 91, 40080
320: 40080 if (rvcomp + 2.0005) 20080,10080,40081
321: 40081 if (rvcomp + 1.9995) 10080,10080,20080
322: 10080 ivpass = ivpass + 1
323: write (i02,80001) ivtnum
324: go to 91
325: 20080 ivfail = ivfail + 1
326: rvcorr = -2.0
327: write (i02,80005) ivtnum, rvcomp, rvcorr
328: 91 continue
329: ivtnum = 9
330: c
331: c **** test 9 ****
332: c
333: if (iczero) 30090, 90, 30090
334: 90 continue
335: rvcomp = 65001.
336: go to 40090
337: 30090 ivdele = ivdele + 1
338: write (i02,80003) ivtnum
339: if (iczero) 40090, 101, 40090
340: 40090 if (rvcomp - 64996.) 20090,10090,40091
341: 40091 if (rvcomp - 65006.) 10090,10090,20090
342: 10090 ivpass = ivpass + 1
343: write (i02,80001) ivtnum
344: go to 101
345: 20090 ivfail = ivfail + 1
346: rvcorr = 65001.
347: write (i02,80005) ivtnum, rvcomp, rvcorr
348: 101 continue
349: ivtnum = 10
350: c
351: c **** test 10 ****
352: c
353: if (iczero) 30100, 100, 30100
354: 100 continue
355: rvcomp = .65001
356: go to 40100
357: 30100 ivdele = ivdele + 1
358: write (i02,80003) ivtnum
359: if (iczero) 40100, 111, 40100
360: 40100 if (rvcomp - .64996) 20100,10100,40101
361: 40101 if (rvcomp - .65006) 10100,10100,20100
362: 10100 ivpass = ivpass + 1
363: write (i02,80001) ivtnum
364: go to 111
365: 20100 ivfail = ivfail + 1
366: rvcorr = .65001
367: write (i02,80005) ivtnum, rvcomp, rvcorr
368: 111 continue
369: ivtnum = 11
370: c
371: c **** test 11 ****
372: c
373: if (iczero) 30110, 110, 30110
374: 110 continue
375: rvcomp = -.33333
376: go to 40110
377: 30110 ivdele = ivdele + 1
378: write (i02,80003) ivtnum
379: if (iczero) 40110, 121, 40110
380: 40110 if (rvcomp + .33338) 20110,10110,40111
381: 40111 if (rvcomp + .33328) 10110,10110,20110
382: 10110 ivpass = ivpass + 1
383: write (i02,80001) ivtnum
384: go to 121
385: 20110 ivfail = ivfail + 1
386: rvcorr = -.33333
387: write (i02,80005) ivtnum, rvcomp, rvcorr
388: c
389: c test 012 through test 19 - real constant is basic real constant
390: c - followed by decimal exponent
391: c
392: 121 continue
393: ivtnum = 12
394: c
395: c **** test 12 ****
396: c
397: if (iczero) 30120, 120, 30120
398: 120 continue
399: rvcomp = .2e+1
400: go to 40120
401: 30120 ivdele = ivdele + 1
402: write (i02,80003) ivtnum
403: if (iczero) 40120, 131, 40120
404: 40120 if (rvcomp - 1.9995) 20120,10120,40121
405: 40121 if (rvcomp - 2.0005) 10120,10120,20120
406: 10120 ivpass = ivpass + 1
407: write (i02,80001) ivtnum
408: go to 131
409: 20120 ivfail = ivfail + 1
410: rvcorr = 2.0
411: write (i02,80005) ivtnum, rvcomp, rvcorr
412: 131 continue
413: ivtnum = 13
414: c
415: c **** test 13 ****
416: c
417: if (iczero) 30130, 130, 30130
418: 130 continue
419: rvcomp = 2.0e+0
420: go to 40130
421: 30130 ivdele = ivdele + 1
422: write (i02,80003) ivtnum
423: if (iczero) 40130, 141, 40130
424: 40130 if (rvcomp - 1.9995) 20130,10130,40131
425: 40131 if (rvcomp - 2.0005) 10130,10130,20130
426: 10130 ivpass = ivpass + 1
427: write (i02,80001) ivtnum
428: go to 141
429: 20130 ivfail = ivfail + 1
430: rvcorr = 2.0
431: write (i02,80005) ivtnum, rvcomp, rvcorr
432: 141 continue
433: ivtnum = 14
434: c
435: c **** test 14 ****
436: c
437: if (iczero) 30140, 140, 30140
438: 140 continue
439: rvcomp = 445.0e-01
440: go to 40140
441: 30140 ivdele = ivdele + 1
442: write (i02,80003) ivtnum
443: if (iczero) 40140, 151, 40140
444: 40140 if (rvcomp - 44.495) 20140,10140,40141
445: 40141 if (rvcomp - 44.505) 10140,10140,20140
446: 10140 ivpass = ivpass + 1
447: write (i02,80001) ivtnum
448: go to 151
449: 20140 ivfail = ivfail + 1
450: rvcorr = 44.5
451: write (i02,80005) ivtnum, rvcomp, rvcorr
452: 151 continue
453: ivtnum = 15
454: c
455: c **** test 15 ****
456: c
457: if (iczero) 30150, 150, 30150
458: 150 continue
459: rvcomp = 4.450e1
460: go to 40150
461: 30150 ivdele = ivdele + 1
462: write (i02,80003) ivtnum
463: if (iczero) 40150, 161, 40150
464: 40150 if (rvcomp - 44.495) 20150,10150,40151
465: 40151 if (rvcomp - 44.505) 10150,10150,20150
466: 10150 ivpass = ivpass + 1
467: write (i02,80001) ivtnum
468: go to 161
469: 20150 ivfail = ivfail + 1
470: rvcorr = 44.5
471: write (i02,80005) ivtnum, rvcomp, rvcorr
472: 161 continue
473: ivtnum = 16
474: c
475: c **** test 16 ****
476: c
477: if (iczero) 30160, 160, 30160
478: 160 continue
479: rvcomp = 2.e+15
480: go to 40160
481: 30160 ivdele = ivdele + 1
482: write (i02,80003) ivtnum
483: if (iczero) 40160, 171, 40160
484: 40160 if (rvcomp - 1.9995e+15) 20160,10160,40161
485: 40161 if (rvcomp - 2.0005e+15) 10160,10160,20160
486: 10160 ivpass = ivpass + 1
487: write (i02,80001) ivtnum
488: go to 171
489: 20160 ivfail = ivfail + 1
490: rvcorr = 2.0e+15
491: write (i02,80005) ivtnum, rvcomp, rvcorr
492: 171 continue
493: ivtnum = 17
494: c
495: c **** test 17 ****
496: c
497: if (iczero) 30170, 170, 30170
498: 170 continue
499: rvcomp = 44.5e-15
500: go to 40170
501: 30170 ivdele = ivdele + 1
502: write (i02,80003) ivtnum
503: if (iczero) 40170, 181, 40170
504: 40170 if (rvcomp - 44.495e-15) 20170,10170,40171
505: 40171 if (rvcomp - 44.505e-15) 10170,10170,20170
506: 10170 ivpass = ivpass + 1
507: write (i02,80001) ivtnum
508: go to 181
509: 20170 ivfail = ivfail + 1
510: rvcorr = 44.5e-15
511: write (i02,80005) ivtnum, rvcomp, rvcorr
512: 181 continue
513: ivtnum = 18
514: c
515: c **** test 18 ****
516: c
517: if (iczero) 30180, 180, 30180
518: 180 continue
519: rvcomp = -4.45e0
520: go to 40180
521: 30180 ivdele = ivdele + 1
522: write (i02,80003) ivtnum
523: if (iczero) 40180, 191, 40180
524: 40180 if (rvcomp + 4.4505) 20180,10180,40181
525: 40181 if (rvcomp + 4.4495) 10180,10180,20180
526: 10180 ivpass = ivpass + 1
527: write (i02,80001) ivtnum
528: go to 191
529: 20180 ivfail = ivfail + 1
530: rvcorr = -4.45
531: write (i02,80005) ivtnum, rvcomp, rvcorr
532: 191 continue
533: ivtnum = 19
534: c
535: c **** test 19 ****
536: c
537: if (iczero) 30190, 190, 30190
538: 190 continue
539: rvcomp = -6511.8e-0
540: go to 40190
541: 30190 ivdele = ivdele + 1
542: write (i02,80003) ivtnum
543: if (iczero) 40190, 201, 40190
544: 40190 if (rvcomp + 6512.3) 20190,10190,40191
545: 40191 if (rvcomp + 6511.3) 10190,10190,20190
546: 10190 ivpass = ivpass + 1
547: write (i02,80001) ivtnum
548: go to 201
549: 20190 ivfail = ivfail + 1
550: rvcorr = -6511.8
551: write (i02,80005) ivtnum, rvcomp, rvcorr
552: c
553: c test 020 through test 025 - integer constant followed
554: c - by a decimal exponent
555: c
556: 201 continue
557: ivtnum = 20
558: c
559: c **** test 20 ****
560: c
561: if (iczero) 30200, 200, 30200
562: 200 continue
563: rvcomp = 2e+1
564: go to 40200
565: 30200 ivdele = ivdele + 1
566: write (i02,80003) ivtnum
567: if (iczero) 40200, 211, 40200
568: 40200 if (rvcomp - 19.995) 20200,10200,40201
569: 40201 if (rvcomp - 20.005) 10200,10200,20200
570: 10200 ivpass = ivpass + 1
571: write (i02,80001) ivtnum
572: go to 211
573: 20200 ivfail = ivfail + 1
574: rvcorr = 20.0
575: write (i02,80005) ivtnum, rvcomp, rvcorr
576: 211 continue
577: ivtnum = 21
578: c
579: c **** test 21 ****
580: c
581: if (iczero) 30210, 210, 30210
582: 210 continue
583: rvcomp = 445e-02
584: go to 40210
585: 30210 ivdele = ivdele + 1
586: write (i02,80003) ivtnum
587: if (iczero) 40210, 221, 40210
588: 40210 if (rvcomp - 4.4495) 20210,10210,40211
589: 40211 if (rvcomp - 4.4505) 10210,10210,20210
590: 10210 ivpass = ivpass + 1
591: write (i02,80001) ivtnum
592: go to 221
593: 20210 ivfail = ivfail + 1
594: rvcorr = 4.45
595: write (i02,80005) ivtnum, rvcomp, rvcorr
596: 221 continue
597: ivtnum = 22
598: c
599: c **** test 22 ****
600: c
601: if (iczero) 30220, 220, 30220
602: 220 continue
603: rvcomp = 7e3
604: go to 40220
605: 30220 ivdele = ivdele + 1
606: write (i02,80003) ivtnum
607: if (iczero) 40220, 231, 40220
608: 40220 if (rvcomp - 6999.0) 20220,10220,40221
609: 40221 if (rvcomp - 7001.0) 10220,10220,20220
610: 10220 ivpass = ivpass + 1
611: write (i02,80001) ivtnum
612: go to 231
613: 20220 ivfail = ivfail + 1
614: rvcorr = 7000.0
615: write (i02,80005) ivtnum, rvcomp, rvcorr
616: 231 continue
617: ivtnum = 23
618: c
619: c **** test 23 ****
620: c
621: if (iczero) 30230, 230, 30230
622: 230 continue
623: rvcomp = 214 e 0
624: go to 40230
625: 30230 ivdele = ivdele + 1
626: write (i02,80003) ivtnum
627: if (iczero) 40230, 241, 40230
628: 40230 if (rvcomp - 213.95) 20230,10230,40231
629: 40231 if (rvcomp - 214.05) 10230,10230,20230
630: 10230 ivpass = ivpass + 1
631: write (i02,80001) ivtnum
632: go to 241
633: 20230 ivfail = ivfail + 1
634: rvcorr = 214.0
635: write (i02,80005) ivtnum, rvcomp, rvcorr
636: 241 continue
637: ivtnum = 24
638: c
639: c **** test 24 ****
640: c
641: if (iczero) 30240, 240, 30240
642: 240 continue
643: rvcomp = -3276e+6
644: go to 40240
645: 30240 ivdele = ivdele + 1
646: write (i02,80003) ivtnum
647: if (iczero) 40240, 251, 40240
648: 40240 if (rvcomp + .32765e+10) 20240,10240,40241
649: 40241 if (rvcomp + .32755e+10) 10240,10240,20240
650: 10240 ivpass = ivpass + 1
651: write (i02,80001) ivtnum
652: go to 251
653: 20240 ivfail = ivfail + 1
654: rvcorr = -3276e+6
655: write (i02,80005) ivtnum, rvcomp, rvcorr
656: 251 continue
657: ivtnum = 25
658: c
659: c **** test 25 ****
660: c
661: if (iczero) 30250, 250, 30250
662: 250 continue
663: rvcomp = -7e3
664: go to 40250
665: 30250 ivdele = ivdele + 1
666: write (i02,80003) ivtnum
667: if (iczero) 40250, 261, 40250
668: 40250 if (rvcomp + 7001.) 20250,10250,40251
669: 40251 if (rvcomp + 6999.) 10250,10250,20250
670: 10250 ivpass = ivpass + 1
671: write (i02,80001) ivtnum
672: go to 261
673: 20250 ivfail = ivfail + 1
674: rvcorr = -7000.0
675: write (i02,80005) ivtnum, rvcomp, rvcorr
676: c
677: c test 026 through test 028 contain arithmetic assignment statement
678: c of the form real variable = real variable
679: c
680: 261 continue
681: ivtnum = 26
682: c
683: c **** test 26 ****
684: c
685: if (iczero) 30260, 260, 30260
686: 260 continue
687: rvon01 = .2e+1
688: rvcomp = rvon01
689: go to 40260
690: 30260 ivdele = ivdele + 1
691: write (i02,80003) ivtnum
692: if (iczero) 40260, 271, 40260
693: 40260 if (rvcomp - 1.9995) 20260,10260,40261
694: 40261 if (rvcomp - 2.0005) 10260,10260,20260
695: 10260 ivpass = ivpass + 1
696: write (i02,80001) ivtnum
697: go to 271
698: 20260 ivfail = ivfail + 1
699: rvcorr = 20.0
700: write (i02,80005) ivtnum, rvcomp, rvcorr
701: 271 continue
702: ivtnum = 27
703: c
704: c **** test 27 ****
705: c
706: if (iczero) 30270, 270, 30270
707: 270 continue
708: rvon01 = -445.e-01
709: rvcomp = rvon01
710: go to 40270
711: 30270 ivdele = ivdele + 1
712: write (i02,80003) ivtnum
713: if (iczero) 40270, 281, 40270
714: 40270 if (rvcomp + 44.505) 20270,10270,40271
715: 40271 if (rvcomp + 44.495) 10270,10270,20270
716: 10270 ivpass = ivpass + 1
717: write (i02,80001) ivtnum
718: go to 281
719: 20270 ivfail = ivfail + 1
720: rvcorr = -44.5
721: write (i02,80005) ivtnum, rvcomp, rvcorr
722: 281 continue
723: ivtnum = 28
724: c
725: c **** test 28 ****
726: c
727: if (iczero) 30280, 280, 30280
728: 280 continue
729: rvon01 = 7e3
730: rvcomp = rvon01
731: go to 40280
732: 30280 ivdele = ivdele + 1
733: write (i02,80003) ivtnum
734: if (iczero) 40280, 291, 40280
735: 40280 if (rvcomp - 6999.0) 20280,10280,40281
736: 40281 if (rvcomp-7001.0) 10280,10280,20280
737: 10280 ivpass = ivpass + 1
738: write (i02,80001) ivtnum
739: go to 291
740: 20280 ivfail = ivfail + 1
741: rvcorr = 7000.0
742: c
743: c test 029 through test 031 contain arithmetic assignment statement
744: c of the form real variable = - real variable
745: c
746: write (i02,80005) ivtnum, rvcomp, rvcorr
747: 291 continue
748: ivtnum = 29
749: c
750: c **** test 29 ****
751: c
752: if (iczero) 30290, 290, 30290
753: 290 continue
754: rvon01 = .2e+1
755: rvcomp = -rvon01
756: go to 40290
757: 30290 ivdele = ivdele + 1
758: write (i02,80003) ivtnum
759: if (iczero) 40290, 301, 40290
760: 40290 if (rvcomp + 2.0005) 20290,10290,40291
761: 40291 if (rvcomp + 1.9995) 10290,10290,20290
762: 10290 ivpass = ivpass + 1
763: write (i02,80001) ivtnum
764: go to 301
765: 20290 ivfail = ivfail + 1
766: rvcorr = -2.0
767: write (i02,80005) ivtnum, rvcomp, rvcorr
768: 301 continue
769: ivtnum = 30
770: c
771: c **** test 30 ****
772: c
773: if (iczero) 30300, 300, 30300
774: 300 continue
775: rvon01 = -445.e-01
776: rvcomp = -rvon01
777: go to 40300
778: 30300 ivdele = ivdele + 1
779: write (i02,80003) ivtnum
780: if (iczero) 40300, 311, 40300
781: 40300 if (rvcomp - 44.495) 20300,10300,40301
782: 40301 if (rvcomp - 44.505) 10300,10300,20300
783: 10300 ivpass = ivpass + 1
784: write (i02,80001) ivtnum
785: go to 311
786: 20300 ivfail = ivfail + 1
787: rvcorr = 44.5
788: write (i02,80005) ivtnum, rvcomp, rvcorr
789: 311 continue
790: ivtnum = 31
791: c
792: c **** test 31 ****
793: c
794: if (iczero) 30310, 310, 30310
795: 310 continue
796: rvon01 = -.44559e1
797: rvcomp = -rvon01
798: go to 40310
799: 30310 ivdele = ivdele + 1
800: write (i02,80003) ivtnum
801: if (iczero) 40310, 321, 40310
802: 40310 if (rvcomp - 4.4554) 20310,10310,40311
803: 40311 if (rvcomp - 4.4564) 10310,10310,20310
804: 10310 ivpass = ivpass + 1
805: write (i02,80001) ivtnum
806: go to 321
807: 20310 ivfail = ivfail + 1
808: rvcorr = 4.4559
809: write (i02,80005) ivtnum, rvcomp, rvcorr
810: c **** end of tests ****
811: 321 continue
812: c
813: c write page footings and run summaries
814: 99999 continue
815: write (i02,90002)
816: write (i02,90006)
817: write (i02,90002)
818: write (i02,90002)
819: write (i02,90007)
820: write (i02,90002)
821: write (i02,90008) ivfail
822: write (i02,90009) ivpass
823: write (i02,90010) ivdele
824: c
825: c
826: c terminate routine execution
827: stop
828: c
829: c format statements for page headers
830: 90000 format (1h1)
831: 90002 format (1h )
832: 90001 format (1h ,10x,34hfortran compiler validation system)
833: 90003 format (1h ,21x,11hversion 1.0)
834: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
835: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
836: 90006 format (1h ,5x,46h----------------------------------------------)
837: 90011 format (1h ,18x,17hsubset level test)
838: c
839: c format statements for run summaries
840: 90008 format (1h ,15x,i5,19h errors encountered)
841: 90009 format (1h ,15x,i5,13h tests passed)
842: 90010 format (1h ,15x,i5,14h tests deleted)
843: c
844: c format statements for test results
845: 80001 format (1h ,4x,i5,7x,4hpass)
846: 80002 format (1h ,4x,i5,7x,4hfail)
847: 80003 format (1h ,4x,i5,7x,7hdeleted)
848: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
849: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
850: c
851: 90007 format (1h ,20x,20hend of program fm060)
852: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.