|
|
1.1 root 1: c comment section
2: c
3: c fm040
4: c
5: c this routine tests arithmetic assignment statements of the
6: c form integer variable = arithmetic expression
7: c where the arithmetic expression is formed with the arithmetic
8: c operator /, integer variables and an integer constant. both
9: c positive and negative values are used for the integer variables
10: c and the integer constant.
11: c
12: c there are tests which require no truncation of the result and
13: c tests where the result must be truncated before being stored in
14: c the resultant integer variable. some of the tests use parens
15: c to group elements in the arithmetic expression.
16: c
17: c there are tests where the arithmetic expression contains
18: c (1) integer variable/integer variable
19: c (2) integer variable/integer variable/integer constant
20: c integer variable/integer constant/integer variable
21: c integer constant/integer variable/integer variable
22: c (3) same as (2) but with parentheses to group elements
23: c in the arithmetic expression.
24: c
25: c references
26: c american national standard programming language fortran,
27: c x3.9-1978
28: c
29: c section 4.3, integer type
30: c section 4.3.1, integer constant
31: c section 6.1, arithmetic expressions
32: c section 6.6, evaluation of expressions
33: c section 10.1, arithmetic assignment statement
34: c
35: c **********************************************************
36: c
37: c a compiler validation system for the fortran language
38: c based on specifications as defined in american national standard
39: c programming language fortran x3.9-1978, has been developed by the
40: c federal cobol compiler testing service. the fortran compiler
41: c validation system (fcvs) consists of audit routines, their related
42: c data, and an executive system. each audit routine is a fortran
43: c program, subprogram or function which includes tests of specific
44: c language elements and supporting procedures indicating the result
45: c of executing these tests.
46: c
47: c this particular program/subprogram/function contains features
48: c found only in the subset as defined in x3.9-1978.
49: c
50: c suggestions and comments should be forwarded to -
51: c
52: c department of the navy
53: c federal cobol compiler testing service
54: c washington, d.c. 20376
55: c
56: c **********************************************************
57: c
58: c
59: c
60: c initialization section
61: c
62: c initialize constants
63: c **************
64: c i01 contains the logical unit number for the card reader.
65: i01 = 5
66: c i02 contains the logical unit number for the printer.
67: i02 = 6
68: c system environment section
69: c
70: cx010 this card is replaced by contents of fexec x-010 control card.
71: c the cx010 card is for overriding the program default i01 = 5
72: c (unit number for card reader).
73: cx011 this card is replaced by contents of fexec x-011 control card.
74: c the cx011 card is for systems which require additional
75: c fortran statements for files associated with cx010 above.
76: c
77: cx020 this card is replaced by contents of fexec x-020 control card.
78: c the cx020 card is for overriding the program default i02 = 6
79: c (unit number for printer).
80: cx021 this card is replaced by contents of fexec x-021 control card.
81: c the cx021 card is for systems which require additional
82: c fortran statements for files associated with cx020 above.
83: c
84: ivpass=0
85: ivfail=0
86: ivdele=0
87: iczero=0
88: c
89: c write page headers
90: write (i02,90000)
91: write (i02,90001)
92: write (i02,90002)
93: write (i02, 90002)
94: write (i02,90003)
95: write (i02,90002)
96: write (i02,90004)
97: write (i02,90002)
98: write (i02,90011)
99: write (i02,90002)
100: write (i02,90002)
101: write (i02,90005)
102: write (i02,90006)
103: write (i02,90002)
104: c
105: c test section
106: c
107: c arithmetic assignment statement
108: c
109: c test 582 through test 597 contain arithmetic assignment statements
110: c of the form integer variable=integer variable/integer var.
111: c
112: c test 582 through test 585 - positive values
113: c no truncation required
114: c
115: 5821 continue
116: ivtnum = 582
117: c
118: c **** test 582 ****
119: c
120: if (iczero) 35820, 5820, 35820
121: 5820 continue
122: ivon01 = 4
123: ivon02 = 2
124: ivcomp = ivon01 / ivon02
125: go to 45820
126: 35820 ivdele = ivdele + 1
127: write (i02,80003) ivtnum
128: if (iczero) 45820, 5831, 45820
129: 45820 if (ivcomp -2) 25820,15820,25820
130: 15820 ivpass = ivpass + 1
131: write (i02,80001) ivtnum
132: go to 5831
133: 25820 ivfail = ivfail + 1
134: ivcorr = 2
135: write (i02,80004) ivtnum, ivcomp ,ivcorr
136: 5831 continue
137: ivtnum = 583
138: c
139: c **** test 583 ****
140: c
141: if (iczero) 35830, 5830, 35830
142: 5830 continue
143: ivon01 = 3575
144: ivon02 = 25
145: ivcomp = ivon01/ivon02
146: go to 45830
147: 35830 ivdele = ivdele + 1
148: write (i02,80003) ivtnum
149: if (iczero) 45830, 5841, 45830
150: 45830 if (ivcomp - 143) 25830,15830,25830
151: 15830 ivpass = ivpass + 1
152: write (i02,80001) ivtnum
153: go to 5841
154: 25830 ivfail = ivfail + 1
155: ivcorr = 143
156: write (i02,80004) ivtnum, ivcomp ,ivcorr
157: 5841 continue
158: ivtnum = 584
159: c
160: c **** test 584 ****
161: c
162: if (iczero) 35840, 5840, 35840
163: 5840 continue
164: ivon01 = 6170
165: ivon02 = 1234
166: ivcomp = ivon01/ivon02
167: go to 45840
168: 35840 ivdele = ivdele + 1
169: write (i02,80003) ivtnum
170: if (iczero) 45840, 5851, 45840
171: 45840 if (ivcomp - 5) 25840,15840,25840
172: 15840 ivpass = ivpass + 1
173: write (i02,80001) ivtnum
174: go to 5851
175: 25840 ivfail = ivfail + 1
176: ivcorr = 5
177: write (i02,80004) ivtnum, ivcomp ,ivcorr
178: 5851 continue
179: ivtnum = 585
180: c
181: c **** test 585 ****
182: c
183: if (iczero) 35850, 5850, 35850
184: 5850 continue
185: ivon01 = 32767
186: ivon02 = 1
187: ivcomp = ivon01/ivon02
188: go to 45850
189: 35850 ivdele = ivdele + 1
190: write (i02,80003) ivtnum
191: if (iczero) 45850, 5861, 45850
192: 45850 if (ivcomp - 32767) 25850,15850,25850
193: 15850 ivpass = ivpass + 1
194: write (i02,80001) ivtnum
195: go to 5861
196: 25850 ivfail = ivfail + 1
197: ivcorr = 32767
198: write (i02,80004) ivtnum, ivcomp ,ivcorr
199: c
200: c test 586 through test 589 - positive values
201: c truncation of result required
202: c
203: 5861 continue
204: ivtnum = 586
205: c
206: c **** test 586 ****
207: c
208: if (iczero) 35860, 5860, 35860
209: 5860 continue
210: ivon01 = 2
211: ivon02 = 3
212: ivcomp = ivon01/ivon02
213: go to 45860
214: 35860 ivdele = ivdele + 1
215: write (i02,80003) ivtnum
216: if (iczero) 45860, 5871, 45860
217: 45860 if (ivcomp) 25860,15860,25860
218: 15860 ivpass = ivpass + 1
219: write (i02,80001) ivtnum
220: go to 5871
221: 25860 ivfail = ivfail + 1
222: ivcorr = 0
223: write (i02,80004) ivtnum, ivcomp ,ivcorr
224: 5871 continue
225: ivtnum = 587
226: c
227: c **** test 587 ****
228: c
229: if (iczero) 35870, 5870, 35870
230: 5870 continue
231: ivon01 = 959
232: ivon02 = 120
233: ivcomp = ivon01/ivon02
234: go to 45870
235: 35870 ivdele = ivdele + 1
236: write (i02,80003) ivtnum
237: if (iczero) 45870, 5881, 45870
238: 45870 if (ivcomp - 7) 25870,15870,25870
239: 15870 ivpass = ivpass + 1
240: write (i02,80001) ivtnum
241: go to 5881
242: 25870 ivfail = ivfail + 1
243: ivcorr = 7
244: write (i02,80004) ivtnum, ivcomp ,ivcorr
245: 5881 continue
246: ivtnum = 588
247: c
248: c **** test 588 ****
249: c
250: if (iczero) 35880, 5880, 35880
251: 5880 continue
252: ivon01 = 26606
253: ivon02 = 8
254: ivcomp = ivon01/ivon02
255: go to 45880
256: 35880 ivdele = ivdele + 1
257: write (i02,80003) ivtnum
258: if (iczero) 45880, 5891, 45880
259: 45880 if (ivcomp - 3325) 25880,15880,25880
260: 15880 ivpass = ivpass + 1
261: write (i02,80001) ivtnum
262: go to 5891
263: 25880 ivfail = ivfail + 1
264: ivcorr = 3325
265: write (i02,80004) ivtnum, ivcomp ,ivcorr
266: 5891 continue
267: ivtnum = 589
268: c
269: c **** test 589 ****
270: c
271: if (iczero) 35890, 5890, 35890
272: 5890 continue
273: ivon01 = 25603
274: ivon02 = 10354
275: ivcomp = ivon01/ivon02
276: go to 45890
277: 35890 ivdele = ivdele + 1
278: write (i02,80003) ivtnum
279: if (iczero) 45890, 5901, 45890
280: 45890 if (ivcomp - 2) 25890,15890,25890
281: 15890 ivpass = ivpass + 1
282: write (i02,80001) ivtnum
283: go to 5901
284: 25890 ivfail = ivfail + 1
285: ivcorr = 2
286: write (i02,80004) ivtnum, ivcomp ,ivcorr
287: c
288: c test 590 through test 593 - negative values included
289: c no truncation required
290: c
291: 5901 continue
292: ivtnum = 590
293: c
294: c **** test 590 ****
295: c
296: if (iczero) 35900, 5900, 35900
297: 5900 continue
298: ivon01 = 75
299: ivon02 = -25
300: ivcomp = ivon01/ivon02
301: go to 45900
302: 35900 ivdele = ivdele + 1
303: write (i02,80003) ivtnum
304: if (iczero) 45900, 5911, 45900
305: 45900 if (ivcomp + 3) 25900,15900,25900
306: 15900 ivpass = ivpass + 1
307: write (i02,80001) ivtnum
308: go to 5911
309: 25900 ivfail = ivfail + 1
310: ivcorr = -3
311: write (i02,80004) ivtnum, ivcomp ,ivcorr
312: 5911 continue
313: ivtnum = 591
314: c
315: c **** test 591 ****
316: c
317: if (iczero) 35910, 5910, 35910
318: 5910 continue
319: ivon01 = -6170
320: ivon02 = -1234
321: ivcomp = ivon01/ivon02
322: go to 45910
323: 35910 ivdele = ivdele + 1
324: write (i02,80003) ivtnum
325: if (iczero) 45910, 5921, 45910
326: 45910 if (ivcomp -5) 25910,15910,25910
327: 15910 ivpass = ivpass + 1
328: write (i02,80001) ivtnum
329: go to 5921
330: 25910 ivfail = ivfail + 1
331: ivcorr = 5
332: write (i02,80004) ivtnum, ivcomp ,ivcorr
333: 5921 continue
334: ivtnum = 592
335: c
336: c **** test 592 ****
337: c
338: if (iczero) 35920, 5920, 35920
339: 5920 continue
340: ivon01 = 32766
341: ivon02 = -2
342: ivcomp =-ivon01/ivon02
343: go to 45920
344: 35920 ivdele = ivdele + 1
345: write (i02,80003) ivtnum
346: if (iczero) 45920, 5931, 45920
347: 45920 if (ivcomp - 16383) 25920,15920,25920
348: 15920 ivpass = ivpass + 1
349: write (i02,80001) ivtnum
350: go to 5931
351: 25920 ivfail = ivfail + 1
352: ivcorr = 16383
353: write (i02,80004) ivtnum, ivcomp ,ivcorr
354: 5931 continue
355: ivtnum = 593
356: c
357: c **** test 593 ****
358: c
359: if (iczero) 35930, 5930, 35930
360: 5930 continue
361: ivon01 = 4
362: ivon02 = 2
363: ivcomp = ivon01/(-ivon02)
364: go to 45930
365: 35930 ivdele = ivdele + 1
366: write (i02,80003) ivtnum
367: if (iczero) 45930, 5941, 45930
368: 45930 if (ivcomp + 2) 25930,15930,25930
369: 15930 ivpass = ivpass + 1
370: write (i02,80001) ivtnum
371: go to 5941
372: 25930 ivfail = ivfail + 1
373: ivcorr = -2
374: write (i02,80004) ivtnum, ivcomp ,ivcorr
375: c
376: c test 594 through test 597 - negative values included
377: c truncation of result required
378: c
379: 5941 continue
380: ivtnum = 594
381: c
382: c **** test 594 ****
383: c
384: if (iczero) 35940, 5940, 35940
385: 5940 continue
386: ivon01 = -5
387: ivon02 = 2
388: ivcomp = ivon01/ivon02
389: go to 45940
390: 35940 ivdele = ivdele + 1
391: write (i02,80003) ivtnum
392: if (iczero) 45940, 5951, 45940
393: 45940 if (ivcomp + 2) 25940,15940,25940
394: 15940 ivpass = ivpass + 1
395: write (i02,80001) ivtnum
396: go to 5951
397: 25940 ivfail = ivfail + 1
398: ivcorr = -2
399: write (i02,80004) ivtnum, ivcomp ,ivcorr
400: 5951 continue
401: ivtnum = 595
402: c
403: c **** test 595 ****
404: c
405: if (iczero) 35950, 5950, 35950
406: 5950 continue
407: ivon01 = -25603
408: ivon02 = -10354
409: ivcomp = ivon01/ivon02
410: go to 45950
411: 35950 ivdele = ivdele + 1
412: write (i02,80003) ivtnum
413: if (iczero) 45950, 5961, 45950
414: 45950 if (ivcomp -2) 25950,15950,25950
415: 15950 ivpass = ivpass + 1
416: write (i02,80001) ivtnum
417: go to 5961
418: 25950 ivfail = ivfail + 1
419: ivcorr =2
420: write (i02,80004) ivtnum, ivcomp ,ivcorr
421: 5961 continue
422: ivtnum = 596
423: c
424: c **** test 596 ****
425: c
426: if (iczero) 35960, 5960, 35960
427: 5960 continue
428: ivon01 = 25603
429: ivon02 = 10354
430: ivcomp = -ivon01/ivon02
431: go to 45960
432: 35960 ivdele = ivdele + 1
433: write (i02,80003) ivtnum
434: if (iczero) 45960, 5971, 45960
435: 45960 if (ivcomp +2) 25960,15960,25960
436: 15960 ivpass = ivpass + 1
437: write (i02,80001) ivtnum
438: go to 5971
439: 25960 ivfail = ivfail + 1
440: ivcorr = -2
441: write (i02,80004) ivtnum, ivcomp ,ivcorr
442: 5971 continue
443: ivtnum = 597
444: c
445: c **** test 597 ****
446: c
447: if (iczero) 35970, 5970, 35970
448: 5970 continue
449: ivon01 = 25603
450: ivon02 = -2
451: ivcomp = -(ivon01/ivon02)
452: go to 45970
453: 35970 ivdele = ivdele + 1
454: write (i02,80003) ivtnum
455: if (iczero) 45970, 5981, 45970
456: 45970 if (ivcomp - 12801) 25970,15970,25970
457: 15970 ivpass = ivpass + 1
458: write (i02,80001) ivtnum
459: go to 5981
460: 25970 ivfail = ivfail + 1
461: ivcorr = 12801
462: write (i02,80004) ivtnum, ivcomp ,ivcorr
463: c
464: c test 598 through test 614 contain two integer variables, an
465: c integer constant and operator / in an arithmetic expression.
466: c
467: c test 598 through test 603 - no parens to group elements but
468: c there are parens surrounding negative constants
469: c
470: c test 598 and test 599 - iv = iv/iv/ic.
471: c
472: 5981 continue
473: ivtnum = 598
474: c
475: c **** test 598 ****
476: c
477: if (iczero) 35980, 5980, 35980
478: 5980 continue
479: ivon01 = 32766
480: ivon02 = 2
481: ivcomp = ivon01/ivon02/3
482: go to 45980
483: 35980 ivdele = ivdele + 1
484: write (i02,80003) ivtnum
485: if (iczero) 45980, 5991, 45980
486: 45980 if (ivcomp - 5461) 25980,15980,25980
487: 15980 ivpass = ivpass + 1
488: write (i02,80001) ivtnum
489: go to 5991
490: 25980 ivfail = ivfail + 1
491: ivcorr = 5461
492: write (i02,80004) ivtnum, ivcomp ,ivcorr
493: 5991 continue
494: ivtnum = 599
495: c
496: c **** test 599 ****
497: c
498: if (iczero) 35990, 5990, 35990
499: 5990 continue
500: ivon01 = 7151
501: ivon02 = 3
502: ivcomp = ivon01/ivon02/10
503: go to 45990
504: 35990 ivdele = ivdele + 1
505: write (i02,80003) ivtnum
506: if (iczero) 45990, 6001, 45990
507: 45990 if (ivcomp -238) 25990,15990,25990
508: 15990 ivpass = ivpass + 1
509: write (i02,80001) ivtnum
510: go to 6001
511: 25990 ivfail = ivfail + 1
512: ivcorr = 238
513: write (i02,80004) ivtnum, ivcomp ,ivcorr
514: c
515: c test 600 and test 601 - iv= iv/ic/iv.
516: c
517: 6001 continue
518: ivtnum = 600
519: c
520: c **** test 600 ****
521: c
522: if (iczero) 36000, 6000, 36000
523: 6000 continue
524: ivon01 = -7150
525: ivon03 = -25
526: ivcomp = ivon01/(-2)/ivon03
527: go to 46000
528: 36000 ivdele = ivdele + 1
529: write (i02,80003) ivtnum
530: if (iczero) 46000, 6011, 46000
531: 46000 if (ivcomp + 143) 26000,16000,26000
532: 16000 ivpass = ivpass + 1
533: write (i02,80001) ivtnum
534: go to 6011
535: 26000 ivfail = ivfail + 1
536: ivcorr = -143
537: write (i02,80004) ivtnum, ivcomp ,ivcorr
538: 6011 continue
539: ivtnum = 601
540: c
541: c **** test 601 ****
542: c
543: if (iczero) 36010, 6010, 36010
544: 6010 continue
545: ivon01 = 32767
546: ivon03 = -1
547: ivcomp = ivon01/2/ivon03
548: go to 46010
549: 36010 ivdele = ivdele + 1
550: write (i02,80003) ivtnum
551: if (iczero) 46010, 6021, 46010
552: 46010 if (ivcomp + 16383) 26010,16010,26010
553: 16010 ivpass = ivpass + 1
554: write (i02,80001) ivtnum
555: go to 6021
556: 26010 ivfail = ivfail + 1
557: ivcorr = -16383
558: write (i02,80004) ivtnum, ivcomp ,ivcorr
559: 6021 continue
560: ivtnum = 602
561: c
562: c **** test 602 ****
563: c
564: c test 602 and test 603 - iv=ic/iv/iv
565: c
566: c
567: if (iczero) 36020, 6020, 36020
568: 6020 continue
569: ivon02 = 13
570: ivon03 = 51
571: ivcomp = 15249/ivon02/ivon03
572: go to 46020
573: 36020 ivdele = ivdele + 1
574: write (i02,80003) ivtnum
575: if (iczero) 46020, 6031, 46020
576: 46020 if (ivcomp - 23) 26020,16020,26020
577: 16020 ivpass = ivpass + 1
578: write (i02,80001) ivtnum
579: go to 6031
580: 26020 ivfail = ivfail + 1
581: ivcorr = 23
582: write (i02,80004) ivtnum, ivcomp ,ivcorr
583: 6031 continue
584: ivtnum = 603
585: c
586: c **** test 603 ****
587: c
588: if (iczero) 36030, 6030, 36030
589: 6030 continue
590: ivon02 = -13
591: ivon03 = -51
592: ivcomp = -15249/ivon02/ivon03
593: go to 46030
594: 36030 ivdele = ivdele + 1
595: write (i02,80003) ivtnum
596: if (iczero) 46030, 6041, 46030
597: 46030 if (ivcomp +23) 26030,16030,26030
598: 16030 ivpass = ivpass + 1
599: write (i02,80001) ivtnum
600: go to 6041
601: 26030 ivfail = ivfail + 1
602: ivcorr = -23
603: write (i02,80004) ivtnum, ivcomp ,ivcorr
604: c
605: c test 604 through test 614 - parentheses are used to group
606: c elements in the arithmetic expressions.
607: c
608: c test 604 and test 605 - iv=(iv/iv)/ic.
609: c
610: 6041 continue
611: ivtnum = 604
612: c
613: c **** test 604 ****
614: c
615: if (iczero) 36040, 6040, 36040
616: 6040 continue
617: ivon01 = 32766
618: ivon02 = 2
619: ivcomp =(ivon01/ivon02)/3
620: go to 46040
621: 36040 ivdele = ivdele + 1
622: write (i02,80003) ivtnum
623: if (iczero) 46040, 6051, 46040
624: 46040 if (ivcomp -5461) 26040,16040,26040
625: 16040 ivpass = ivpass + 1
626: write (i02,80001) ivtnum
627: go to 6051
628: 26040 ivfail = ivfail + 1
629: ivcorr = 5461
630: write (i02,80004) ivtnum, ivcomp ,ivcorr
631: 6051 continue
632: ivtnum = 605
633: c
634: c **** test 605 ****
635: c
636: if (iczero) 36050, 6050, 36050
637: 6050 continue
638: ivon01 = 7151
639: ivon02 = 3
640: ivcomp = (ivon01/ivon02)/10
641: go to 46050
642: 36050 ivdele = ivdele + 1
643: write (i02,80003) ivtnum
644: if (iczero) 46050, 6061, 46050
645: 46050 if (ivcomp - 238) 26050,16050,26050
646: 16050 ivpass = ivpass + 1
647: write (i02,80001) ivtnum
648: go to 6061
649: 26050 ivfail = ivfail + 1
650: ivcorr = 238
651: write (i02,80004) ivtnum, ivcomp ,ivcorr
652: c
653: c test 606 and test 607 - iv=iv/(iv/ic).
654: c
655: 6061 continue
656: ivtnum = 606
657: c
658: c **** test 606 ****
659: c
660: if (iczero) 36060, 6060, 36060
661: 6060 continue
662: ivon01 = -7154
663: ivon02 = 26
664: ivcomp = ivon01/(ivon02/5)
665: go to 46060
666: 36060 ivdele = ivdele + 1
667: write (i02,80003) ivtnum
668: if (iczero) 46060, 6071, 46060
669: 46060 if (ivcomp + 1430) 26060,16060,26060
670: 16060 ivpass = ivpass + 1
671: write (i02,80001) ivtnum
672: go to 6071
673: 26060 ivfail = ivfail + 1
674: ivcorr = -1430
675: write (i02,80004) ivtnum, ivcomp ,ivcorr
676: 6071 continue
677: ivtnum = 607
678: c
679: c **** test 607 ****
680: c
681: if (iczero) 36070, 6070, 36070
682: 6070 continue
683: ivon01 = 29
684: ivon02 = -5
685: ivcomp = ivon01/(ivon02/2)
686: go to 46070
687: 36070 ivdele = ivdele + 1
688: write (i02,80003) ivtnum
689: if (iczero) 46070, 6081, 46070
690: 46070 if (ivcomp + 14) 26070,16070,26070
691: 16070 ivpass = ivpass + 1
692: write (i02,80001) ivtnum
693: go to 6081
694: 26070 ivfail = ivfail + 1
695: ivcorr = -14
696: write (i02,80004) ivtnum, ivcomp ,ivcorr
697: c
698: c test 608 and test 609 - iv = (iv/ic)/iv.
699: c
700: 6081 continue
701: ivtnum = 608
702: c
703: c **** test 608 ****
704: c
705: if (iczero) 36080, 6080, 36080
706: 6080 continue
707: ivon01 = 24
708: ivon03 = 3
709: ivcomp = (ivon01/3)/ivon03
710: go to 46080
711: 36080 ivdele = ivdele + 1
712: write (i02,80003) ivtnum
713: if (iczero) 46080, 6091, 46080
714: 46080 if (ivcomp -2) 26080,16080,26080
715: 16080 ivpass = ivpass + 1
716: write (i02,80001) ivtnum
717: go to 6091
718: 26080 ivfail = ivfail + 1
719: ivcorr = 2
720: write (i02,80004) ivtnum, ivcomp ,ivcorr
721: 6091 continue
722: ivtnum = 609
723: c
724: c **** test 609 ****
725: c
726: if (iczero) 36090, 6090, 36090
727: 6090 continue
728: ivon01 = 7151
729: ivon03 = 10
730: ivcomp = (ivon01/(-3))/ivon03
731: go to 46090
732: 36090 ivdele = ivdele + 1
733: write (i02,80003) ivtnum
734: if (iczero) 46090, 6101, 46090
735: 46090 if (ivcomp + 238) 26090,16090,26090
736: 16090 ivpass = ivpass + 1
737: write (i02,80001) ivtnum
738: go to 6101
739: 26090 ivfail = ivfail + 1
740: ivcorr = -238
741: write (i02,80004) ivtnum, ivcomp ,ivcorr
742: c
743: c test 610 and test 611 - iv=iv(ic/iv)
744: c
745: 6101 continue
746: ivtnum = 610
747: c
748: c **** test 610 ****
749: c
750: if (iczero) 36100, 6100, 36100
751: 6100 continue
752: ivon01 = -7154
753: ivon03 = -5
754: ivcomp = ivon01/((-26)/ivon03)
755: go to 46100
756: 36100 ivdele = ivdele + 1
757: write (i02,80003) ivtnum
758: if (iczero) 46100, 6111, 46100
759: 46100 if (ivcomp + 1430) 26100,16100,26100
760: 16100 ivpass = ivpass + 1
761: write (i02,80001) ivtnum
762: go to 6111
763: 26100 ivfail = ivfail + 1
764: ivcorr = -1430
765: write (i02,80004) ivtnum, ivcomp ,ivcorr
766: 6111 continue
767: ivtnum = 611
768: c
769: c **** test 611 ****
770: c
771: if (iczero) 36110, 6110, 36110
772: 6110 continue
773: ivon01 = 7150
774: ivon03 = 5
775: ivcomp = ivon01/((+25)/ivon03)
776: go to 46110
777: 36110 ivdele = ivdele + 1
778: write (i02,80003) ivtnum
779: if (iczero) 46110, 6121, 46110
780: 46110 if (ivcomp -1430) 26110,16110,26110
781: 16110 ivpass = ivpass + 1
782: write (i02,80001) ivtnum
783: go to 6121
784: 26110 ivfail = ivfail + 1
785: ivcorr = 1430
786: write (i02,80004) ivtnum, ivcomp ,ivcorr
787: 6121 continue
788: ivtnum = 612
789: c
790: c **** test 612 ****
791: c test 612 - iv= (ic/iv)/iv
792: c
793: if (iczero) 36120, 6120, 36120
794: 6120 continue
795: ivon02 = -3
796: ivon03 = -10
797: ivcomp = (-7154/ivon02)/ivon03
798: go to 46120
799: 36120 ivdele = ivdele + 1
800: write (i02,80003) ivtnum
801: if (iczero) 46120, 6131, 46120
802: 46120 if (ivcomp + 238) 26120,16120,26120
803: 16120 ivpass = ivpass + 1
804: write (i02,80001) ivtnum
805: go to 6131
806: 26120 ivfail = ivfail + 1
807: ivcorr = -238
808: write (i02,80004) ivtnum, ivcomp ,ivcorr
809: c
810: c test 613 and test 614 - iv=ic/(iv/iv)
811: c
812: 6131 continue
813: ivtnum = 613
814: c
815: c **** test 613 ****
816: c
817: if (iczero) 36130, 6130, 36130
818: 6130 continue
819: ivon02 = 8
820: ivon03 = 4
821: ivcomp = 24/(ivon02/ivon03)
822: go to 46130
823: 36130 ivdele = ivdele + 1
824: write (i02,80003) ivtnum
825: if (iczero) 46130, 6141, 46130
826: 46130 if (ivcomp - 12) 26130,16130,26130
827: 16130 ivpass = ivpass + 1
828: write (i02,80001) ivtnum
829: go to 6141
830: 26130 ivfail = ivfail + 1
831: ivcorr = 12
832: write (i02,80004) ivtnum, ivcomp ,ivcorr
833: 6141 continue
834: ivtnum = 614
835: c
836: c **** test 614 ****
837: c
838: if (iczero) 36140, 6140, 36140
839: 6140 continue
840: ivon02 = 25
841: ivon03 = 5
842: ivcomp = 7150/(-(ivon02/ivon03))
843: go to 46140
844: 36140 ivdele = ivdele + 1
845: write (i02,80003) ivtnum
846: if (iczero) 46140, 6151, 46140
847: 46140 if (ivcomp + 1430) 26140,16140,26140
848: 16140 ivpass = ivpass + 1
849: write (i02,80001) ivtnum
850: go to 6151
851: 26140 ivfail = ivfail + 1
852: ivcorr = -1430
853: write (i02,80004) ivtnum, ivcomp ,ivcorr
854: c **** end of tests ****
855: 6151 continue
856: c
857: c write page footings and run summaries
858: 99999 continue
859: write (i02,90002)
860: write (i02,90006)
861: write (i02,90002)
862: write (i02,90002)
863: write (i02,90007)
864: write (i02,90002)
865: write (i02,90008) ivfail
866: write (i02,90009) ivpass
867: write (i02,90010) ivdele
868: c
869: c
870: c terminate routine execution
871: stop
872: c
873: c format statements for page headers
874: 90000 format (1h1)
875: 90002 format (1h )
876: 90001 format (1h ,10x,34hfortran compiler validation system)
877: 90003 format (1h ,21x,11hversion 1.0)
878: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
879: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
880: 90006 format (1h ,5x,46h----------------------------------------------)
881: 90011 format (1h ,18x,17hsubset level test)
882: c
883: c format statements for run summaries
884: 90008 format (1h ,15x,i5,19h errors encountered)
885: 90009 format (1h ,15x,i5,13h tests passed)
886: 90010 format (1h ,15x,i5,14h tests deleted)
887: c
888: c format statements for test results
889: 80001 format (1h ,4x,i5,7x,4hpass)
890: 80002 format (1h ,4x,i5,7x,4hfail)
891: 80003 format (1h ,4x,i5,7x,7hdeleted)
892: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
893: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
894: c
895: 90007 format (1h ,20x,20hend of program fm040)
896: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.