|
|
1.1 root 1: c comment section
2: c
3: c fm033
4: c
5: c this routine tests arithmetic assignment statements of the
6: c form
7: c integer variable = arithmetic expression
8: c where the arithmetic expression is formed with the arithmetic
9: c operator * and integer constants. some of the tests use parens
10: c to group elements in the expression and to allow the use of
11: c negative constants following the * operator.
12: c
13: c there are tests where the arithmetic expression contains
14: c (1) integer constant * integer constant
15: c (2) integer constant * integer constant * integer constant
16: c (3) same as (2) but with parens to group elements
17: c
18: c references
19: c american national standard programming language fortran,
20: c x3.9-1978
21: c
22: c section 4.3, integer type
23: c section 4.3.1, integer constant
24: c section 6.1, arithmetic expressions
25: c section 10.1, arithmetic assignment statement
26: c
27: c **********************************************************
28: c
29: c a compiler validation system for the fortran language
30: c based on specifications as defined in american national standard
31: c programming language fortran x3.9-1978, has been developed by the
32: c federal cobol compiler testing service. the fortran compiler
33: c validation system (fcvs) consists of audit routines, their related
34: c data, and an executive system. each audit routine is a fortran
35: c program, subprogram or function which includes tests of specific
36: c language elements and supporting procedures indicating the result
37: c of executing these tests.
38: c
39: c this particular program/subprogram/function contains features
40: c found only in the subset as defined in x3.9-1978.
41: c
42: c suggestions and comments should be forwarded to -
43: c
44: c department of the navy
45: c federal cobol compiler testing service
46: c washington, d.c. 20376
47: c
48: c **********************************************************
49: c
50: c
51: c
52: c initialization section
53: c
54: c initialize constants
55: c **************
56: c i01 contains the logical unit number for the card reader.
57: i01 = 5
58: c i02 contains the logical unit number for the printer.
59: i02 = 6
60: c system environment section
61: c
62: cx010 this card is replaced by contents of fexec x-010 control card.
63: c the cx010 card is for overriding the program default i01 = 5
64: c (unit number for card reader).
65: cx011 this card is replaced by contents of fexec x-011 control card.
66: c the cx011 card is for systems which require additional
67: c fortran statements for files associated with cx010 above.
68: c
69: cx020 this card is replaced by contents of fexec x-020 control card.
70: c the cx020 card is for overriding the program default i02 = 6
71: c (unit number for printer).
72: cx021 this card is replaced by contents of fexec x-021 control card.
73: c the cx021 card is for systems which require additional
74: c fortran statements for files associated with cx020 above.
75: c
76: ivpass=0
77: ivfail=0
78: ivdele=0
79: iczero=0
80: c
81: c write page headers
82: write (i02,90000)
83: write (i02,90001)
84: write (i02,90002)
85: write (i02, 90002)
86: write (i02,90003)
87: write (i02,90002)
88: write (i02,90004)
89: write (i02,90002)
90: write (i02,90011)
91: write (i02,90002)
92: write (i02,90002)
93: write (i02,90005)
94: write (i02,90006)
95: write (i02,90002)
96: c
97: c test section
98: c
99: c arithmetic assignment statement
100: c
101: c test 360 through test 376 contain two integer constants and
102: c operator * in an arithmetic expression.
103: c iv = ic * ic
104: c
105: c test 360 through test 365 - integer constants are positive
106: c
107: 3601 continue
108: ivtnum = 360
109: c
110: c **** test 360 ****
111: c
112: if (iczero) 33600, 3600, 33600
113: 3600 continue
114: ivcomp = 2 * 3
115: go to 43600
116: 33600 ivdele = ivdele + 1
117: write (i02,80003) ivtnum
118: if (iczero) 43600, 3611, 43600
119: 43600 if (ivcomp - 6) 23600,13600,23600
120: 13600 ivpass = ivpass + 1
121: write (i02,80001) ivtnum
122: go to 3611
123: 23600 ivfail = ivfail + 1
124: ivcorr=6
125: write (i02,80004) ivtnum, ivcomp ,ivcorr
126: 3611 continue
127: ivtnum = 361
128: c
129: c **** test 361 ****
130: c
131: if (iczero) 33610, 3610, 33610
132: 3610 continue
133: ivcomp = 3*2
134: go to 43610
135: 33610 ivdele = ivdele + 1
136: write (i02,80003) ivtnum
137: if (iczero) 43610, 3621, 43610
138: 43610 if (ivcomp-6) 23610,13610,23610
139: 13610 ivpass = ivpass + 1
140: write (i02,80001) ivtnum
141: go to 3621
142: 23610 ivfail = ivfail + 1
143: ivcorr=6
144: write (i02,80004) ivtnum, ivcomp ,ivcorr
145: 3621 continue
146: ivtnum = 362
147: c
148: c **** test 362 ****
149: c
150: if (iczero) 33620, 3620, 33620
151: 3620 continue
152: ivcomp=13*11
153: go to 43620
154: 33620 ivdele = ivdele + 1
155: write (i02,80003) ivtnum
156: if (iczero) 43620, 3631, 43620
157: 43620 if (ivcomp-143) 23620,13620,23620
158: 13620 ivpass = ivpass + 1
159: write (i02,80001) ivtnum
160: go to 3631
161: 23620 ivfail = ivfail + 1
162: ivcorr=143
163: write (i02,80004) ivtnum, ivcomp ,ivcorr
164: 3631 continue
165: ivtnum = 363
166: c
167: c **** test 363 ****
168: c
169: if (iczero) 33630, 3630, 33630
170: 3630 continue
171: ivcomp = 223*99
172: go to 43630
173: 33630 ivdele = ivdele + 1
174: write (i02,80003) ivtnum
175: if (iczero) 43630, 3641, 43630
176: 43630 if (ivcomp-22077) 23630,13630,23630
177: 13630 ivpass = ivpass + 1
178: write (i02,80001) ivtnum
179: go to 3641
180: 23630 ivfail = ivfail + 1
181: ivcorr=22077
182: write (i02,80004) ivtnum, ivcomp ,ivcorr
183: 3641 continue
184: ivtnum = 364
185: c
186: c **** test 364 ****
187: c
188: if (iczero) 33640, 3640, 33640
189: 3640 continue
190: ivcomp=11235*2
191: go to 43640
192: 33640 ivdele = ivdele + 1
193: write (i02,80003) ivtnum
194: if (iczero) 43640, 3651, 43640
195: 43640 if (ivcomp-22470) 23640,13640,23640
196: 13640 ivpass = ivpass + 1
197: write (i02,80001) ivtnum
198: go to 3651
199: 23640 ivfail = ivfail + 1
200: ivcorr=22470
201: write (i02,80004) ivtnum, ivcomp ,ivcorr
202: 3651 continue
203: ivtnum = 365
204: c
205: c **** test 365 ****
206: c
207: if (iczero) 33650, 3650, 33650
208: 3650 continue
209: ivcomp = 2*16383
210: go to 43650
211: 33650 ivdele = ivdele + 1
212: write (i02,80003) ivtnum
213: if (iczero) 43650, 3661, 43650
214: 43650 if (ivcomp-32766) 23650,13650,23650
215: 13650 ivpass = ivpass + 1
216: write (i02,80001) ivtnum
217: go to 3661
218: 23650 ivfail = ivfail + 1
219: ivcorr = 32766
220: write (i02,80004) ivtnum, ivcomp ,ivcorr
221: c
222: c test 366 through test 371
223: c one positive and one negative constant
224: c
225: 3661 continue
226: ivtnum = 366
227: c
228: c **** test 366 ****
229: c
230: if (iczero) 33660, 3660, 33660
231: 3660 continue
232: ivcomp =2*(-3)
233: go to 43660
234: 33660 ivdele = ivdele + 1
235: write (i02,80003) ivtnum
236: if (iczero) 43660, 3671, 43660
237: 43660 if (ivcomp+6) 23660,13660,23660
238: 13660 ivpass = ivpass + 1
239: write (i02,80001) ivtnum
240: go to 3671
241: 23660 ivfail = ivfail + 1
242: ivcorr = -6
243: write (i02,80004) ivtnum, ivcomp ,ivcorr
244: 3671 continue
245: ivtnum = 367
246: c
247: c **** test 367 ****
248: c
249: if (iczero) 33670, 3670, 33670
250: 3670 continue
251: ivcomp=(-2)*3
252: go to 43670
253: 33670 ivdele = ivdele + 1
254: write (i02,80003) ivtnum
255: if (iczero) 43670, 3681, 43670
256: 43670 if (ivcomp+6)23670,13670,23670
257: 13670 ivpass = ivpass + 1
258: write (i02,80001) ivtnum
259: go to 3681
260: 23670 ivfail = ivfail + 1
261: ivcorr =-6
262: write (i02,80004) ivtnum, ivcomp ,ivcorr
263: 3681 continue
264: ivtnum = 368
265: c
266: c **** test 368 ****
267: c
268: if (iczero) 33680, 3680, 33680
269: 3680 continue
270: ivcomp= -2*3
271: go to 43680
272: 33680 ivdele = ivdele + 1
273: write (i02,80003) ivtnum
274: if (iczero) 43680, 3691, 43680
275: 43680 if (ivcomp +6) 23680,13680,23680
276: 13680 ivpass = ivpass + 1
277: write (i02,80001) ivtnum
278: go to 3691
279: 23680 ivfail = ivfail + 1
280: ivcorr=-6
281: write (i02,80004) ivtnum, ivcomp ,ivcorr
282: 3691 continue
283: ivtnum = 369
284: c
285: c **** test 369 ****
286: c
287: if (iczero) 33690, 3690, 33690
288: 3690 continue
289: ivcomp = (-13)*11
290: go to 43690
291: 33690 ivdele = ivdele + 1
292: write (i02,80003) ivtnum
293: if (iczero) 43690, 3701, 43690
294: 43690 if (ivcomp+143) 23690,13690,23690
295: 13690 ivpass = ivpass + 1
296: write (i02,80001) ivtnum
297: go to 3701
298: 23690 ivfail = ivfail + 1
299: ivcorr=-143
300: write (i02,80004) ivtnum, ivcomp ,ivcorr
301: 3701 continue
302: ivtnum = 370
303: c
304: c **** test 370 ****
305: c
306: if (iczero) 33700, 3700, 33700
307: 3700 continue
308: ivcomp = 223 * (-99)
309: go to 43700
310: 33700 ivdele = ivdele + 1
311: write (i02,80003) ivtnum
312: if (iczero) 43700, 3711, 43700
313: 43700 if (ivcomp + 22077) 23700,13700,23700
314: 13700 ivpass = ivpass + 1
315: write (i02,80001) ivtnum
316: go to 3711
317: 23700 ivfail = ivfail + 1
318: ivcorr =-22077
319: write (i02,80004) ivtnum, ivcomp ,ivcorr
320: 3711 continue
321: ivtnum = 371
322: c
323: c **** test 371 ****
324: c
325: if (iczero) 33710, 3710, 33710
326: 3710 continue
327: ivcomp= -2 * 16383
328: go to 43710
329: 33710 ivdele = ivdele + 1
330: write (i02,80003) ivtnum
331: if (iczero) 43710, 3721, 43710
332: 43710 if (ivcomp+32766) 23710,13710,23710
333: 13710 ivpass = ivpass + 1
334: write (i02,80001) ivtnum
335: go to 3721
336: 23710 ivfail = ivfail + 1
337: ivcorr= -32766
338: write (i02,80004) ivtnum, ivcomp ,ivcorr
339: c
340: c test 372 through test 376 - two negative constants
341: c
342: 3721 continue
343: ivtnum = 372
344: c
345: c **** test 372 ****
346: c
347: if (iczero) 33720, 3720, 33720
348: 3720 continue
349: ivcomp=(-2)*(-3)
350: go to 43720
351: 33720 ivdele = ivdele + 1
352: write (i02,80003) ivtnum
353: if (iczero) 43720, 3731, 43720
354: 43720 if (ivcomp-6) 23720,13720,23720
355: 13720 ivpass = ivpass + 1
356: write (i02,80001) ivtnum
357: go to 3731
358: 23720 ivfail = ivfail + 1
359: ivcorr=6
360: write (i02,80004) ivtnum, ivcomp ,ivcorr
361: 3731 continue
362: ivtnum = 373
363: c
364: c **** test 373 ****
365: c
366: if (iczero) 33730, 3730, 33730
367: 3730 continue
368: ivcomp = -2*(-3)
369: go to 43730
370: 33730 ivdele = ivdele + 1
371: write (i02,80003) ivtnum
372: if (iczero) 43730, 3741, 43730
373: 43730 if (ivcomp-6) 23730,13730,23730
374: 13730 ivpass = ivpass + 1
375: write (i02,80001) ivtnum
376: go to 3741
377: 23730 ivfail = ivfail + 1
378: ivcorr=6
379: write (i02,80004) ivtnum, ivcomp ,ivcorr
380: 3741 continue
381: ivtnum = 374
382: c
383: c **** test 374 ****
384: c
385: if (iczero) 33740, 3740, 33740
386: 3740 continue
387: ivcomp=(-13)*(-11)
388: go to 43740
389: 33740 ivdele = ivdele + 1
390: write (i02,80003) ivtnum
391: if (iczero) 43740, 3751, 43740
392: 43740 if (ivcomp-143) 23740,13740,23740
393: 13740 ivpass = ivpass + 1
394: write (i02,80001) ivtnum
395: go to 3751
396: 23740 ivfail = ivfail + 1
397: ivcorr = 143
398: write (i02,80004) ivtnum, ivcomp ,ivcorr
399: 3751 continue
400: ivtnum = 375
401: c
402: c **** test 375 ****
403: c
404: if (iczero) 33750, 3750, 33750
405: 3750 continue
406: ivcomp= -223 *(-99)
407: go to 43750
408: 33750 ivdele = ivdele + 1
409: write (i02,80003) ivtnum
410: if (iczero) 43750, 3761, 43750
411: 43750 if (ivcomp - 22077) 23750,13750,23750
412: 13750 ivpass = ivpass + 1
413: write (i02,80001) ivtnum
414: go to 3761
415: 23750 ivfail = ivfail + 1
416: ivcorr = 22077
417: write (i02,80004) ivtnum, ivcomp ,ivcorr
418: 3761 continue
419: ivtnum = 376
420: c
421: c **** test 376 ****
422: c
423: if (iczero) 33760, 3760, 33760
424: 3760 continue
425: ivcomp = (-16383)*(-2)
426: go to 43760
427: 33760 ivdele = ivdele + 1
428: write (i02,80003) ivtnum
429: if (iczero) 43760, 3771, 43760
430: 43760 if (ivcomp - 32766) 23760,13760,23760
431: 13760 ivpass = ivpass + 1
432: write (i02,80001) ivtnum
433: go to 3771
434: 23760 ivfail = ivfail + 1
435: ivcorr =32766
436: write (i02,80004) ivtnum, ivcomp ,ivcorr
437: c
438: c test 377 through test 394 contain three integer constants and
439: c operator * in an arithmetic expression.
440: c iv = ic * ic * ic
441: c
442: c test 377 through test 382 - constants are positive
443: c
444: 3771 continue
445: ivtnum = 377
446: c
447: c **** test 377 ****
448: c
449: if (iczero) 33770, 3770, 33770
450: 3770 continue
451: ivcomp =2*3*4
452: go to 43770
453: 33770 ivdele = ivdele + 1
454: write (i02,80003) ivtnum
455: if (iczero) 43770, 3781, 43770
456: 43770 if (ivcomp-24) 23770,13770,23770
457: 13770 ivpass = ivpass + 1
458: write (i02,80001) ivtnum
459: go to 3781
460: 23770 ivfail = ivfail + 1
461: ivcorr = 24
462: write (i02,80004) ivtnum, ivcomp ,ivcorr
463: 3781 continue
464: ivtnum = 378
465: c
466: c **** test 378 ****
467: c
468: if (iczero) 33780, 3780, 33780
469: 3780 continue
470: ivcomp = 2*3*55
471: go to 43780
472: 33780 ivdele = ivdele + 1
473: write (i02,80003) ivtnum
474: if (iczero) 43780, 3791, 43780
475: 43780 if (ivcomp-330) 23780,13780,23780
476: 13780 ivpass = ivpass + 1
477: write (i02,80001) ivtnum
478: go to 3791
479: 23780 ivfail = ivfail + 1
480: ivcorr = 330
481: write (i02,80004) ivtnum, ivcomp ,ivcorr
482: 3791 continue
483: ivtnum = 379
484: c
485: c **** test 379 ****
486: c
487: if (iczero) 33790, 3790, 33790
488: 3790 continue
489: ivcomp = 23*51*13
490: go to 43790
491: 33790 ivdele = ivdele + 1
492: write (i02,80003) ivtnum
493: if (iczero) 43790, 3801, 43790
494: 43790 if (ivcomp-15249) 23790,13790,23790
495: 13790 ivpass = ivpass + 1
496: write (i02,80001) ivtnum
497: go to 3801
498: 23790 ivfail = ivfail + 1
499: ivcorr = 15249
500: write (i02,80004) ivtnum, ivcomp ,ivcorr
501: 3801 continue
502: ivtnum = 380
503: c
504: c **** test 380 ****
505: c
506: if (iczero) 33800, 3800, 33800
507: 3800 continue
508: ivcomp = 3* 5461* 2
509: go to 43800
510: 33800 ivdele = ivdele + 1
511: write (i02,80003) ivtnum
512: if (iczero) 43800, 3811, 43800
513: 43800 if (ivcomp - 32766) 23800,13800,23800
514: 13800 ivpass = ivpass + 1
515: write (i02,80001) ivtnum
516: go to 3811
517: 23800 ivfail = ivfail + 1
518: ivcorr = 32766
519: write (i02,80004) ivtnum, ivcomp ,ivcorr
520: 3811 continue
521: ivtnum = 381
522: c
523: c **** test 381 ****
524: c
525: if (iczero) 33810, 3810, 33810
526: 3810 continue
527: ivcomp = 16383*2*1
528: go to 43810
529: 33810 ivdele = ivdele + 1
530: write (i02,80003) ivtnum
531: if (iczero) 43810, 3821, 43810
532: 43810 if (ivcomp-32766) 23810,13810,23810
533: 13810 ivpass = ivpass + 1
534: write (i02,80001) ivtnum
535: go to 3821
536: 23810 ivfail = ivfail + 1
537: ivcorr = 32766
538: write (i02,80004) ivtnum, ivcomp ,ivcorr
539: 3821 continue
540: ivtnum = 382
541: c
542: c **** test 382 ****
543: c
544: if (iczero) 33820, 3820, 33820
545: 3820 continue
546: ivcomp = 3*53*157
547: go to 43820
548: 33820 ivdele = ivdele + 1
549: write (i02,80003) ivtnum
550: if (iczero) 43820, 3831, 43820
551: 43820 if (ivcomp-24963) 23820,13820,23820
552: 13820 ivpass = ivpass + 1
553: write (i02,80001) ivtnum
554: go to 3831
555: 23820 ivfail = ivfail + 1
556: ivcorr = 24963
557: write (i02,80004) ivtnum, ivcomp ,ivcorr
558: c
559: c test 383 through test 386
560: c three positive integer constants grouped with parens.
561: c
562: 3831 continue
563: ivtnum = 383
564: c
565: c **** test 383 ****
566: c
567: if (iczero) 33830, 3830, 33830
568: 3830 continue
569: ivcomp = (2*3)*4
570: go to 43830
571: 33830 ivdele = ivdele + 1
572: write (i02,80003) ivtnum
573: if (iczero) 43830, 3841, 43830
574: 43830 if (ivcomp-24) 23830,13830,23830
575: 13830 ivpass = ivpass + 1
576: write (i02,80001) ivtnum
577: go to 3841
578: 23830 ivfail = ivfail + 1
579: ivcorr = 24
580: write (i02,80004) ivtnum, ivcomp ,ivcorr
581: 3841 continue
582: ivtnum = 384
583: c
584: c **** test 384 ****
585: c
586: if (iczero) 33840, 3840, 33840
587: 3840 continue
588: ivcomp = 2*(3*4)
589: go to 43840
590: 33840 ivdele = ivdele + 1
591: write (i02,80003) ivtnum
592: if (iczero) 43840, 3851, 43840
593: 43840 if (ivcomp-24) 23840,13840,23840
594: 13840 ivpass = ivpass + 1
595: write (i02,80001) ivtnum
596: go to 3851
597: 23840 ivfail = ivfail + 1
598: ivcorr = 24
599: write (i02,80004) ivtnum, ivcomp ,ivcorr
600: 3851 continue
601: ivtnum = 385
602: c
603: c **** test 385 ****
604: c
605: if (iczero) 33850, 3850, 33850
606: 3850 continue
607: ivcomp = (3*(+53)) * (+157)
608: go to 43850
609: 33850 ivdele = ivdele + 1
610: write (i02,80003) ivtnum
611: if (iczero) 43850, 3861, 43850
612: 43850 if (ivcomp-24963) 23850,13850,23850
613: 13850 ivpass = ivpass + 1
614: write (i02,80001) ivtnum
615: go to 3861
616: 23850 ivfail = ivfail + 1
617: ivcorr = 24963
618: write (i02,80004) ivtnum, ivcomp ,ivcorr
619: 3861 continue
620: ivtnum = 386
621: c
622: c **** test 386 ****
623: c
624: if (iczero) 33860, 3860, 33860
625: 3860 continue
626: ivcomp = 3 *((+53)*157)
627: go to 43860
628: 33860 ivdele = ivdele + 1
629: write (i02,80003) ivtnum
630: if (iczero) 43860, 3871, 43860
631: 43860 if (ivcomp-24963) 23860,13860,23860
632: 13860 ivpass = ivpass + 1
633: write (i02,80001) ivtnum
634: go to 3871
635: 23860 ivfail = ivfail + 1
636: ivcorr=24963
637: write (i02,80004) ivtnum, ivcomp ,ivcorr
638: c
639: c test 387 through test 391
640: c both positive and negative constants in arithmetic expression.
641: c
642: 3871 continue
643: ivtnum = 387
644: c
645: c **** test 387 ****
646: c
647: if (iczero) 33870, 3870, 33870
648: 3870 continue
649: ivcomp = 2*3*(-4)
650: go to 43870
651: 33870 ivdele = ivdele + 1
652: write (i02,80003) ivtnum
653: if (iczero) 43870, 3881, 43870
654: 43870 if (ivcomp + 24) 23870,13870,23870
655: 13870 ivpass = ivpass + 1
656: write (i02,80001) ivtnum
657: go to 3881
658: 23870 ivfail = ivfail + 1
659: ivcorr = -24
660: write (i02,80004) ivtnum, ivcomp ,ivcorr
661: 3881 continue
662: ivtnum = 388
663: c
664: c **** test 388 ****
665: c
666: if (iczero) 33880, 3880, 33880
667: 3880 continue
668: ivcomp = 2*(-3)*(+4)
669: go to 43880
670: 33880 ivdele = ivdele + 1
671: write (i02,80003) ivtnum
672: if (iczero) 43880, 3891, 43880
673: 43880 if (ivcomp + 24) 23880,13880,23880
674: 13880 ivpass = ivpass + 1
675: write (i02,80001) ivtnum
676: go to 3891
677: 23880 ivfail = ivfail + 1
678: ivcorr = -24
679: write (i02,80004) ivtnum, ivcomp ,ivcorr
680: 3891 continue
681: ivtnum = 389
682: c
683: c **** test 389 ****
684: c
685: if (iczero) 33890, 3890, 33890
686: 3890 continue
687: ivcomp = (-2)*3*4
688: go to 43890
689: 33890 ivdele = ivdele + 1
690: write (i02,80003) ivtnum
691: if (iczero) 43890, 3901, 43890
692: 43890 if (ivcomp+24) 23890,13890,23890
693: 13890 ivpass = ivpass + 1
694: write (i02,80001) ivtnum
695: go to 3901
696: 23890 ivfail = ivfail + 1
697: ivcorr = -24
698: write (i02,80004) ivtnum, ivcomp ,ivcorr
699: 3901 continue
700: ivtnum = 390
701: c
702: c **** test 390 ****
703: c
704: if (iczero) 33900, 3900, 33900
705: 3900 continue
706: ivcomp = -2*3*4
707: go to 43900
708: 33900 ivdele = ivdele + 1
709: write (i02,80003) ivtnum
710: if (iczero) 43900, 3911, 43900
711: 43900 if (ivcomp+24) 23900,13900,23900
712: 13900 ivpass = ivpass + 1
713: write (i02,80001) ivtnum
714: go to 3911
715: 23900 ivfail = ivfail + 1
716: ivcorr = -24
717: write (i02,80004) ivtnum, ivcomp ,ivcorr
718: 3911 continue
719: ivtnum = 391
720: c
721: c **** test 391 ****
722: c
723: if (iczero) 33910, 3910, 33910
724: 3910 continue
725: ivcomp = +2 * (-3) * (-4)
726: go to 43910
727: 33910 ivdele = ivdele + 1
728: write (i02,80003) ivtnum
729: if (iczero) 43910, 3921, 43910
730: 43910 if (ivcomp - 24) 23910,13910,23910
731: 13910 ivpass = ivpass + 1
732: write (i02,80001) ivtnum
733: go to 3921
734: 23910 ivfail = ivfail + 1
735: ivcorr = 24
736: write (i02,80004) ivtnum, ivcomp ,ivcorr
737: c
738: c test 392 through test 394
739: c all constants are negative.
740: c
741: 3921 continue
742: ivtnum = 392
743: c
744: c **** test 392 ****
745: c
746: if (iczero) 33920, 3920, 33920
747: 3920 continue
748: ivcomp = (-2)*(-3)*(-4)
749: go to 43920
750: 33920 ivdele = ivdele + 1
751: write (i02,80003) ivtnum
752: if (iczero) 43920, 3931, 43920
753: 43920 if (ivcomp+24) 23920,13920,23920
754: 13920 ivpass = ivpass + 1
755: write (i02,80001) ivtnum
756: go to 3931
757: 23920 ivfail = ivfail + 1
758: ivcorr = -24
759: write (i02,80004) ivtnum, ivcomp ,ivcorr
760: 3931 continue
761: ivtnum = 393
762: c
763: c **** test 393 ****
764: c
765: if (iczero) 33930, 3930, 33930
766: 3930 continue
767: ivcomp = (-23)*(-51)*(-13)
768: go to 43930
769: 33930 ivdele = ivdele + 1
770: write (i02,80003) ivtnum
771: if (iczero) 43930, 3941, 43930
772: 43930 if (ivcomp + 15249) 23930,13930,23930
773: 13930 ivpass = ivpass + 1
774: write (i02,80001) ivtnum
775: go to 3941
776: 23930 ivfail = ivfail + 1
777: ivcorr = -15249
778: write (i02,80004) ivtnum, ivcomp ,ivcorr
779: 3941 continue
780: ivtnum = 394
781: c
782: c **** test 394 ****
783: c
784: if (iczero) 33940, 3940, 33940
785: 3940 continue
786: ivcomp = -3 * (-53)*( -157)
787: go to 43940
788: 33940 ivdele = ivdele + 1
789: write (i02,80003) ivtnum
790: if (iczero) 43940, 3951, 43940
791: 43940 if (ivcomp +24963) 23940,13940,23940
792: 13940 ivpass = ivpass + 1
793: write (i02,80001) ivtnum
794: go to 3951
795: 23940 ivfail = ivfail + 1
796: ivcorr = -24963
797: write (i02,80004) ivtnum, ivcomp ,ivcorr
798: c **** end of tests ****
799: 3951 continue
800: c
801: c write page footings and run summaries
802: 99999 continue
803: write (i02,90002)
804: write (i02,90006)
805: write (i02,90002)
806: write (i02,90002)
807: write (i02,90007)
808: write (i02,90002)
809: write (i02,90008) ivfail
810: write (i02,90009) ivpass
811: write (i02,90010) ivdele
812: c
813: c
814: c terminate routine execution
815: stop
816: c
817: c format statements for page headers
818: 90000 format (1h1)
819: 90002 format (1h )
820: 90001 format (1h ,10x,34hfortran compiler validation system)
821: 90003 format (1h ,21x,11hversion 1.0)
822: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
823: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
824: 90006 format (1h ,5x,46h----------------------------------------------)
825: 90011 format (1h ,18x,17hsubset level test)
826: c
827: c format statements for run summaries
828: 90008 format (1h ,15x,i5,19h errors encountered)
829: 90009 format (1h ,15x,i5,13h tests passed)
830: 90010 format (1h ,15x,i5,14h tests deleted)
831: c
832: c format statements for test results
833: 80001 format (1h ,4x,i5,7x,4hpass)
834: 80002 format (1h ,4x,i5,7x,4hfail)
835: 80003 format (1h ,4x,i5,7x,7hdeleted)
836: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
837: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
838: c
839: 90007 format (1h ,20x,20hend of program fm033)
840: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.