xref: /original-bsd/usr.bin/f77/tests/tests/fm042.f (revision c4347674)
1c     comment section
2c
3c     fm042
4c
5c         this routine tests arithmetic assignments of the
6c     form      integer variable =  primary ** primary
7c     where the first of two primaries is an integer variable or an
8c     integer constant and the second primary is an integer variable.
9c
10c      references
11c        american national standard programming language fortran,
12c              x3.9-1978
13c
14c        section 4.3, integer type
15c        section 4.3.1, integer constant
16c        section 6.1, arithmetic expressions
17c        section 10.1, arithmetic assignment statement
18c
19c
20c      **********************************************************
21c
22c         a compiler validation system for the fortran language
23c     based on specifications as defined in american national standard
24c     programming language fortran x3.9-1978, has been developed by the
25c     federal cobol compiler testing service.  the fortran compiler
26c     validation system (fcvs) consists of audit routines, their related
27c     data, and an executive system.  each audit routine is a fortran
28c     program, subprogram or function which includes tests of specific
29c     language elements and supporting procedures indicating the result
30c     of executing these tests.
31c
32c         this particular program/subprogram/function contains features
33c     found only in the subset as defined in x3.9-1978.
34c
35c         suggestions and comments should be forwarded to -
36c
37c                  department of the navy
38c                  federal cobol compiler testing service
39c                  washington, d.c.  20376
40c
41c      **********************************************************
42c
43c
44c
45c     initialization section
46c
47c     initialize constants
48c      **************
49c     i01 contains the logical unit number for the card reader.
50      i01 = 5
51c     i02 contains the logical unit number for the printer.
52      i02 = 6
53c     system environment section
54c
55cx010    this card is replaced by contents of fexec x-010 control card.
56c     the cx010 card is for overriding the program default i01 = 5
57c     (unit number for card reader).
58cx011    this card is replaced by contents of fexec x-011 control card.
59c     the cx011 card is for systems which require additional
60c     fortran statements for files associated with cx010 above.
61c
62cx020    this card is replaced by contents of fexec x-020 control card.
63c     the cx020 card is for overriding the program default i02 = 6
64c     (unit number for printer).
65cx021    this card is replaced by contents of fexec x-021 control card.
66c     the cx021 card is for systems which require additional
67c     fortran statements for files associated with cx020 above.
68c
69      ivpass=0
70      ivfail=0
71      ivdele=0
72      iczero=0
73c
74c     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)
89c
90c     test section
91c
92c         arithmetic assignment statement
93c
94c     test 649 through test 665 contain arithmetic assignment statements
95c     of the form    integer variable = integer const. ** integer var.
96c
97c     test 666 through test 682 contain arithmetic assignment statements
98c     of the form    integer variable = integer var. ** integer var.
99c
100c
101      ivtnum = 649
102c
103c      ****  test 649  ****
104c     test 649  - small number base; zero exponent
105c
106      if (iczero) 36490, 6490, 36490
107 6490 continue
108      ivon01 = 0
109      ivcomp = 1 ** ivon01
110      go to 46490
11136490 ivdele = ivdele + 1
112      write (i02,80003) ivtnum
113      if (iczero) 46490, 6501, 46490
11446490 if (ivcomp - 1) 26490,16490,26490
11516490 ivpass = ivpass + 1
116      write (i02,80001) ivtnum
117      go to 6501
11826490 ivfail = ivfail + 1
119      ivcorr = 1
120      write (i02,80004) ivtnum, ivcomp ,ivcorr
121 6501 continue
122      ivtnum = 650
123c
124c      ****  test 650  ****
125c     test 650  - zero base to first power
126c
127      if (iczero) 36500, 6500, 36500
128 6500 continue
129      ivon01 = 1
130      ivcomp = 0 ** ivon01
131      go to 46500
13236500 ivdele = ivdele + 1
133      write (i02,80003) ivtnum
134      if (iczero) 46500, 6511, 46500
13546500 if (ivcomp) 26500,16500,26500
13616500 ivpass = ivpass + 1
137      write (i02,80001) ivtnum
138      go to 6511
13926500 ivfail = ivfail + 1
140      ivcorr = 0
141      write (i02,80004) ivtnum, ivcomp, ivcorr
142 6511 continue
143      ivtnum = 651
144c
145c      ****  test 651  ****
146c     test 651  - base =1; exponent = 1
147c
148      if (iczero) 36510, 6510, 36510
149 6510 continue
150      ivon01 = 1
151      ivcomp = 1 ** ivon01
152      go to 46510
15336510 ivdele = ivdele + 1
154      write (i02,80003) ivtnum
155      if (iczero) 46510, 6521, 46510
15646510 if (ivcomp - 1) 26510,16510,26510
15716510 ivpass = ivpass + 1
158      write (i02,80001) ivtnum
159      go to 6521
16026510 ivfail = ivfail + 1
161      ivcorr = 1
162      write (i02,80004) ivtnum, ivcomp, ivcorr
163 6521 continue
164      ivtnum = 652
165c
166c      ****  test 652  ****
167c     test 652  - large exponent
168c
169      if (iczero) 36520, 6520, 36520
170 6520 continue
171      ivon01 = 32767
172      ivcomp = 1 ** ivon01
173      go to 46520
17436520 ivdele = ivdele + 1
175      write (i02,80003) ivtnum
176      if (iczero) 46520, 6531, 46520
17746520 if (ivcomp - 1) 26520,16520,26520
17816520 ivpass = ivpass + 1
179      write (i02,80001) ivtnum
180      go to 6531
18126520 ivfail = ivfail + 1
182      ivcorr = 1
183      write (i02,80004) ivtnum, ivcomp, ivcorr
184 6531 continue
185      ivtnum = 653
186c
187c      ****  test 653  ****
188c     test 653  - large number base; exponent = 1
189c
190      if (iczero) 36530, 6530, 36530
191 6530 continue
192      ivon01 = 1
193      ivcomp = 32767 ** ivon01
194      go to 46530
19536530 ivdele = ivdele + 1
196      write (i02,80003) ivtnum
197      if (iczero) 46530, 6541, 46530
19846530 if (ivcomp - 32767) 26530,16530,26530
19916530 ivpass = ivpass + 1
200      write (i02,80001) ivtnum
201      go to 6541
20226530 ivfail = ivfail + 1
203      ivcorr = 32767
204      write (i02,80004) ivtnum, ivcomp, ivcorr
205 6541 continue
206      ivtnum = 654
207c
208c      ****  test 654  ****
209c     test 654  - zero base; large number exponent
210c
211      if (iczero) 36540, 6540, 36540
212 6540 continue
213      ivon01 = 32767
214      ivcomp = 0 ** ivon01
215      go to 46540
21636540 ivdele = ivdele + 1
217      write (i02,80003) ivtnum
218      if (iczero) 46540, 6551, 46540
21946540 if (ivcomp) 26540,16540,26540
22016540 ivpass = ivpass + 1
221      write (i02,80001) ivtnum
222      go to 6551
22326540 ivfail = ivfail + 1
224      ivcorr = 0
225      write (i02,80004) ivtnum, ivcomp, ivcorr
226 6551 continue
227      ivtnum = 655
228c
229c      ****  test 655  ****
230c     test 655  -large number base; zero exponent
231c
232      if (iczero) 36550, 6550, 36550
233 6550 continue
234      ivon01 = 0
235      ivcomp = 32767 ** ivon01
236      go to 46550
23736550 ivdele = ivdele + 1
238      write (i02,80003) ivtnum
239      if (iczero) 46550, 6561, 46550
24046550 if (ivcomp -1) 26550,16550,26550
24116550 ivpass = ivpass + 1
242      write (i02,80001) ivtnum
243      go to 6561
24426550 ivfail = ivfail + 1
245      ivcorr = 1
246      write (i02,80004) ivtnum, ivcomp, ivcorr
247 6561 continue
248      ivtnum = 656
249c
250c      ****  test 656  ****
251c     test 656  -exponent is power of two
252c
253      if (iczero) 36560, 6560, 36560
254 6560 continue
255      ivon01 = 2
256      ivcomp = 181 ** ivon01
257      go to 46560
25836560 ivdele = ivdele + 1
259      write (i02,80003) ivtnum
260      if (iczero) 46560, 6571, 46560
26146560 if (ivcomp - 32761) 26560,16560,26560
26216560 ivpass = ivpass + 1
263      write (i02,80001) ivtnum
264      go to 6571
26526560 ivfail = ivfail + 1
266      ivcorr = 32761
267      write (i02,80004) ivtnum, ivcomp, ivcorr
268 6571 continue
269      ivtnum = 657
270c
271c      ****  test 657  ****
272c     test 657  - base and exponent are both powers of two
273c
274      if (iczero) 36570, 6570, 36570
275 6570 continue
276      ivon01 = 8
277      ivcomp = 2 ** ivon01
278      go to 46570
27936570 ivdele = ivdele + 1
280      write (i02,80003) ivtnum
281      if (iczero) 46570, 6581, 46570
28246570 if (ivcomp - 256) 26570,16570,26560
28316570 ivpass = ivpass + 1
284      write (i02,80001) ivtnum
285      go to 6581
28626570 ivfail = ivfail + 1
287      ivcorr = 256
288      write (i02,80004) ivtnum, ivcomp, ivcorr
289 6581 continue
290c
291c     tests 658 and 659 test to ensure exponentiation operator is
292c                       not commutative
293c
294      ivtnum = 658
295c
296c      ****  test 658  ****
297c
298      if (iczero) 36580, 6580, 36580
299 6580 continue
300      ivon01 = 9
301      ivcomp = 3 ** ivon01
302      go to 46580
30336580 ivdele = ivdele + 1
304      write (i02,80003) ivtnum
305      if (iczero) 46580, 6591, 46580
30646580 if (ivcomp - 19683) 26580,16580,26580
30716580 ivpass = ivpass + 1
308      write (i02,80001) ivtnum
309      go to 6591
31026580 ivfail = ivfail + 1
311      ivcorr = 19683
312      write (i02,80004) ivtnum, ivcomp, ivcorr
313 6591 continue
314      ivtnum = 659
315c
316c      ****  test 659  ****
317c
318      if (iczero) 36590, 6590, 36590
319 6590 continue
320      ivon01 = 3
321      ivcomp = 9 ** ivon01
322      go to 46590
32336590 ivdele = ivdele + 1
324      write (i02,80003) ivtnum
325      if (iczero) 46590, 6601, 46590
32646590 if (ivcomp - 729) 26590,16590,26590
32716590 ivpass = ivpass + 1
328      write (i02,80001) ivtnum
329      go to 6601
33026590 ivfail = ivfail + 1
331      ivcorr = 729
332      write (i02,80004) ivtnum, ivcomp, ivcorr
333 6601 continue
334c
335c     tests 660 through 665 test positive and negative bases to positive
336c                           odd and even number powers checking the sign
337c                           of the results
338c
339      ivtnum = 660
340c
341c      ****  test 660  ****
342c
343      if (iczero) 36600, 6600, 36600
344 6600 continue
345      ivon01 = 2
346      ivcomp = 1 ** ivon01
347      go to 46600
34836600 ivdele = ivdele + 1
349      write (i02,80003) ivtnum
350      if (iczero) 46600, 6611, 46600
35146600 if (ivcomp - 1) 26600,16600,26600
35216600 ivpass = ivpass + 1
353      write (i02,80001) ivtnum
354      go to 6611
35526600 ivfail = ivfail + 1
356      ivcorr = 1
357      write (i02,80004) ivtnum, ivcomp, ivcorr
358 6611 continue
359      ivtnum = 661
360c
361c      ****  test 661  ****
362c
363      if (iczero) 36610, 6610, 36610
364 6610 continue
365      ivon01 = 2
366      ivcomp = ( -1) ** ivon01
367      go to 46610
36836610 ivdele = ivdele + 1
369      write (i02,80003) ivtnum
370      if (iczero) 46610, 6621, 46610
37146610 if (ivcomp - 1) 26610,16610,26610
37216610 ivpass = ivpass + 1
373      write (i02,80001) ivtnum
374      go to 6621
37526610 ivfail = ivfail + 1
376      ivcorr = 1
377      write (i02,80004) ivtnum, ivcomp, ivcorr
378 6621 continue
379      ivtnum = 662
380c
381c      ****  test 662  ****
382c
383      if (iczero) 36620, 6620, 36620
384 6620 continue
385      ivon01 = 3
386      ivcomp = 7 ** ivon01
387      go to 46620
38836620 ivdele = ivdele + 1
389      write (i02,80003) ivtnum
390      if (iczero) 46620, 6631, 46620
39146620 if (ivcomp - 343) 26620,16620,26620
39216620 ivpass = ivpass + 1
393      write (i02,80001) ivtnum
394      go to 6631
39526620 ivfail = ivfail + 1
396      ivcorr = 343
397      write (i02,80004) ivtnum, ivcomp, ivcorr
398 6631 continue
399      ivtnum = 663
400c
401c      ****  test 663  ****
402c
403      if (iczero) 36630, 6630, 36630
404 6630 continue
405      ivon01 = 3
406      ivcomp = (-7) **ivon01
407      go to 46630
40836630 ivdele = ivdele + 1
409      write (i02,80003) ivtnum
410      if (iczero) 46630, 6641, 46630
41146630 if (ivcomp + 343) 26630,16630,26630
41216630 ivpass = ivpass + 1
413      write (i02,80001) ivtnum
414      go to 6641
41526630 ivfail = ivfail + 1
416      ivcorr = -343
417      write (i02,80004) ivtnum, ivcomp, ivcorr
418 6641 continue
419      ivtnum = 664
420c
421c      ****  test 664  ****
422c
423      if (iczero) 36640, 6640, 36640
424 6640 continue
425      ivon01 = 4
426      ivcomp = 7 ** ivon01
427      go to 46640
42836640 ivdele = ivdele + 1
429      write (i02,80003) ivtnum
430      if (iczero) 46640, 6651, 46640
43146640 if (ivcomp - 2401) 26640,16640,26640
43216640 ivpass = ivpass + 1
433      write (i02,80001) ivtnum
434      go to 6651
43526640 ivfail = ivfail + 1
436      ivcorr = 2401
437      write (i02,80004) ivtnum, ivcomp, ivcorr
438 6651 continue
439      ivtnum = 665
440c
441c      ****  test 665  ****
442c
443      if (iczero) 36650, 6650, 36650
444 6650 continue
445      ivon01 = 4
446      ivcomp = (-7) ** ivon01
447      go to 46650
44836650 ivdele = ivdele + 1
449      write (i02,80003) ivtnum
450      if (iczero) 46650, 6661, 46650
45146650 if (ivcomp - 2401) 26650,16650,26650
45216650 ivpass = ivpass + 1
453      write (i02,80001) ivtnum
454      go to 6661
45526650 ivfail = ivfail + 1
456      ivcorr = 2401
457      write (i02,80004) ivtnum, ivcomp, ivcorr
458 6661 continue
459      ivtnum = 666
460c
461c      ****  test 666  ****
462c     test 666  - small number base; zero exponent
463c
464      if (iczero) 36660, 6660, 36660
465 6660 continue
466      ivon01 = 1
467      ivon02 = 0
468      ivcomp = ivon01 ** ivon02
469      go to 46660
47036660 ivdele = ivdele + 1
471      write (i02,80003) ivtnum
472      if (iczero) 46660, 6671, 46660
47346660 if (ivcomp - 1) 26660,16660,26660
47416660 ivpass = ivpass + 1
475      write (i02,80001) ivtnum
476      go to 6671
47726660 ivfail = ivfail + 1
478      ivcorr = 1
479      write (i02,80004) ivtnum, ivcomp, ivcorr
480 6671 continue
481      ivtnum = 667
482c
483c      ****  test 667  ****
484c     test 667  - zero base to first power
485c
486      if (iczero) 36670, 6670, 36670
487 6670 continue
488      ivon01 = 0
489      ivon02 = 1
490      ivcomp = ivon01 ** ivon02
491      go to 46670
49236670 ivdele = ivdele + 1
493      write (i02,80003) ivtnum
494      if (iczero) 46670, 6681, 46670
49546670 if (ivcomp) 26670,16670,26670
49616670 ivpass = ivpass + 1
497      write (i02,80001) ivtnum
498      go to 6681
49926670 ivfail = ivfail + 1
500      ivcorr = 0
501      write (i02,80004) ivtnum, ivcomp, ivcorr
502 6681 continue
503      ivtnum = 668
504c
505c      ****  test 668  ****
506c     test 668  - base =1; exponent = 1
507c
508      if (iczero) 36680, 6680, 36680
509 6680 continue
510      ivon01 = 1
511      ivon02 = 1
512      ivcomp = ivon01 ** ivon02
513      go to 46680
51436680 ivdele = ivdele + 1
515      write (i02,80003) ivtnum
516      if (iczero) 46680, 6691, 46680
51746680 if (ivcomp - 1) 26680,16680,26680
51816680 ivpass = ivpass + 1
519      write (i02,80001) ivtnum
520      go to 6691
52126680 ivfail = ivfail + 1
522      ivcorr = 1
523      write (i02,80004) ivtnum, ivcomp, ivcorr
524 6691 continue
525      ivtnum = 669
526c
527c      ****  test 669  ****
528c     test 669  - large exponent
529c
530      if (iczero) 36690, 6690, 36690
531 6690 continue
532      ivon01 = 1
533      ivon02 = 32767
534      ivcomp = ivon01 ** ivon02
535      go to 46690
53636690 ivdele = ivdele + 1
537      write (i02,80003) ivtnum
538      if (iczero) 46690, 6701, 46690
53946690 if (ivcomp - 1) 26690,16690,26690
54016690 ivpass = ivpass + 1
541      write (i02,80001) ivtnum
542      go to 6701
54326690 ivfail = ivfail + 1
544      ivcorr = 1
545      write (i02,80004) ivtnum, ivcomp, ivcorr
546 6701 continue
547      ivtnum = 670
548c
549c      ****  test 670  ****
550c     test 670  - large number base; exponent = 1
551c
552      if (iczero) 36700, 6700, 36700
553 6700 continue
554      ivon01 = 32767
555      ivon02 = 1
556      ivcomp = ivon01 ** ivon02
557      go to 46700
55836700 ivdele = ivdele + 1
559      write (i02,80003) ivtnum
560      if (iczero) 46700, 6711, 46700
56146700 if (ivcomp - 32767) 26700,16700,26700
56216700 ivpass = ivpass + 1
563      write (i02,80001) ivtnum
564      go to 6711
56526700 ivfail = ivfail + 1
566      ivcorr = 32767
567      write (i02,80004) ivtnum, ivcomp, ivcorr
568 6711 continue
569      ivtnum = 671
570c
571c      ****  test 671  ****
572c     test 671  - zero base; large number exponent
573c
574      if (iczero) 36710, 6710, 36710
575 6710 continue
576      ivon01 = 0
577      ivon02 = 32767
578      ivcomp = ivon01 ** ivon02
579      go to 46710
58036710 ivdele = ivdele + 1
581      write (i02,80003) ivtnum
582      if (iczero) 46710, 6721, 46710
58346710 if (ivcomp) 26710,16710,26710
58416710 ivpass = ivpass + 1
585      write (i02,80001) ivtnum
586      go to 6721
58726710 ivfail = ivfail + 1
588      ivcorr = 0
589      write (i02,80004) ivtnum, ivcomp, ivcorr
590 6721 continue
591      ivtnum = 672
592c
593c      ****  test 672  ****
594c     test 672  -large number base; zero exponent
595c
596      if (iczero) 36720, 6720, 36720
597 6720 continue
598      ivon01 = 32767
599      ivon02 = 0
600      ivcomp = ivon01 ** ivon02
601      go to 46720
60236720 ivdele = ivdele + 1
603      write (i02,80003) ivtnum
604      if (iczero) 46720, 6731, 46720
60546720 if (ivcomp -1) 26720,16720,26720
60616720 ivpass = ivpass + 1
607      write (i02,80001) ivtnum
608      go to 6731
60926720 ivfail = ivfail + 1
610      ivcorr = 1
611      write (i02,80004) ivtnum, ivcomp, ivcorr
612 6731 continue
613      ivtnum = 673
614c
615c      ****  test 673  ****
616c     test 673  -exponent is power of two
617c
618      if (iczero) 36730, 6730, 36730
619 6730 continue
620      ivon01 = 181
621      ivon02 = 2
622      ivcomp = ivon01 ** ivon02
623      go to 46730
62436730 ivdele = ivdele + 1
625      write (i02,80003) ivtnum
626      if (iczero) 46730, 6741, 46730
62746730 if (ivcomp - 32761) 26730,16730,26730
62816730 ivpass = ivpass + 1
629      write (i02,80001) ivtnum
630      go to 6741
63126730 ivfail = ivfail + 1
632      ivcorr = 32761
633      write (i02,80004) ivtnum, ivcomp, ivcorr
634 6741 continue
635      ivtnum = 674
636c
637c      ****  test 674  ****
638c     test 674  - base and exponent are both powers of two
639c
640      if (iczero) 36740, 6740, 36740
641 6740 continue
642      ivon01 = 2
643      ivon02 = 8
644      ivcomp = ivon01 ** ivon02
645      go to 46740
64636740 ivdele = ivdele + 1
647      write (i02,80003) ivtnum
648      if (iczero) 46740, 6751, 46740
64946740 if (ivcomp - 256) 26740,16740,26740
65016740 ivpass = ivpass + 1
651      write (i02,80001) ivtnum
652      go to 6751
65326740 ivfail = ivfail + 1
654      ivcorr = 256
655      write (i02,80004) ivtnum, ivcomp, ivcorr
656 6751 continue
657c
658c     tests 675 and 676 test to ensure exponentiation operator is
659c                       not commutative
660c
661      ivtnum = 675
662c
663c      ****  test 675  ****
664c
665      if (iczero) 36750, 6750, 36750
666 6750 continue
667      ivon01 = 3
668      ivon02 = 9
669      ivcomp = ivon01 ** ivon02
670      go to 46750
67136750 ivdele = ivdele + 1
672      write (i02,80003) ivtnum
673      if (iczero) 46750, 6761, 46750
67446750 if (ivcomp - 19683) 26750,16750,26750
67516750 ivpass = ivpass + 1
676      write (i02,80001) ivtnum
677      go to 6761
67826750 ivfail = ivfail + 1
679      ivcorr = 19683
680      write (i02,80004) ivtnum, ivcomp, ivcorr
681 6761 continue
682      ivtnum = 676
683c
684c      ****  test 676  ****
685c
686      if (iczero) 36760, 6760, 36760
687 6760 continue
688      ivon01 = 9
689      ivon02 = 3
690      ivcomp = ivon01 ** ivon02
691      go to 46760
69236760 ivdele = ivdele + 1
693      write (i02,80003) ivtnum
694      if (iczero) 46760, 6771, 46760
69546760 if (ivcomp - 729) 26760,16760,26760
69616760 ivpass = ivpass + 1
697      write (i02,80001) ivtnum
698      go to 6771
69926760 ivfail = ivfail + 1
700      ivcorr = 729
701      write (i02,80004) ivtnum, ivcomp, ivcorr
702 6771 continue
703c
704c     tests 677 through 682 test positive and negative bases to positive
705c                           odd and even number powers checking the sign
706c                           of the results
707c
708      ivtnum = 677
709c
710c      ****  test 677  ****
711c
712      if (iczero) 36770, 6770, 36770
713 6770 continue
714      ivon01 = 1
715      ivon02 = 2
716      ivcomp = ivon01 ** ivon02
717      go to 46770
71836770 ivdele = ivdele + 1
719      write (i02,80003) ivtnum
720      if (iczero) 46770, 6781, 46770
72146770 if (ivcomp - 1) 26770,16770,26770
72216770 ivpass = ivpass + 1
723      write (i02,80001) ivtnum
724      go to 6781
72526770 ivfail = ivfail + 1
726      ivcorr = 1
727      write (i02,80004) ivtnum, ivcomp, ivcorr
728 6781 continue
729      ivtnum = 678
730c
731c      ****  test 678  ****
732c
733      if (iczero) 36780, 6780, 36780
734 6780 continue
735      ivon01 = -1
736      ivon02 = 2
737      ivcomp = ivon01 ** ivon02
738      go to 46780
73936780 ivdele = ivdele + 1
740      write (i02,80003) ivtnum
741      if (iczero) 46780, 6791, 46780
74246780 if (ivcomp - 1) 26780,16780,26780
74316780 ivpass = ivpass + 1
744      write (i02,80001) ivtnum
745      go to 6791
74626780 ivfail = ivfail + 1
747      ivcorr = 1
748      write (i02,80004) ivtnum, ivcomp, ivcorr
749 6791 continue
750      ivtnum = 679
751c
752c      ****  test 679  ****
753c
754      if (iczero) 36790, 6790, 36790
755 6790 continue
756      ivon01 = 7
757      ivon02 = 3
758      ivcomp = ivon01 ** ivon02
759      go to 46790
76036790 ivdele = ivdele + 1
761      write (i02,80003) ivtnum
762      if (iczero) 46790, 6801, 46790
76346790 if (ivcomp - 343) 26790,16790,26790
76416790 ivpass = ivpass + 1
765      write (i02,80001) ivtnum
766      go to 6801
76726790 ivfail = ivfail + 1
768      ivcorr = 343
769      write (i02,80004) ivtnum, ivcomp, ivcorr
770 6801 continue
771      ivtnum = 680
772c
773c      ****  test 680  ****
774c
775      if (iczero) 36800, 6800, 36800
776 6800 continue
777      ivon01 = -7
778      ivon02 = 3
779      ivcomp = ivon01 ** ivon02
780      go to 46800
78136800 ivdele = ivdele + 1
782      write (i02,80003) ivtnum
783      if (iczero) 46800, 6811, 46800
78446800 if (ivcomp + 343) 26800,16800,26800
78516800 ivpass = ivpass + 1
786      write (i02,80001) ivtnum
787      go to 6811
78826800 ivfail = ivfail + 1
789      ivcorr = -343
790      write (i02,80004) ivtnum, ivcomp, ivcorr
791 6811 continue
792      ivtnum = 681
793c
794c      ****  test 681  ****
795c
796      if (iczero) 36810, 6810, 36810
797 6810 continue
798      ivon01 = 7
799      ivon02 = 4
800      ivcomp = ivon01 ** ivon02
801      go to 46810
80236810 ivdele = ivdele + 1
803      write (i02,80003) ivtnum
804      if (iczero) 46810, 6821, 46810
80546810 if (ivcomp - 2401) 26810,16810,26810
80616810 ivpass = ivpass + 1
807      write (i02,80001) ivtnum
808      go to 6821
80926810 ivfail = ivfail + 1
810      ivcorr = 2401
811      write (i02,80004) ivtnum, ivcomp, ivcorr
812 6821 continue
813      ivtnum = 682
814c
815c      ****  test 682  ****
816c
817      if (iczero) 36820, 6820, 36820
818 6820 continue
819      ivon01 = -7
820      ivon02 = 4
821      ivcomp = ivon01 ** ivon02
822      go to 46820
82336820 ivdele = ivdele + 1
824      write (i02,80003) ivtnum
825      if (iczero) 46820, 6831, 46820
82646820 if (ivcomp - 2401) 26820,16820,26820
82716820 ivpass = ivpass + 1
828      write (i02,80001) ivtnum
829      go to 6831
83026820 ivfail = ivfail + 1
831      ivcorr = 2401
832      write (i02,80004) ivtnum, ivcomp, ivcorr
833 6831 continue
834c
835c     write page footings and run summaries
83699999 continue
837      write (i02,90002)
838      write (i02,90006)
839      write (i02,90002)
840      write (i02,90002)
841      write (i02,90007)
842      write (i02,90002)
843      write (i02,90008)  ivfail
844      write (i02,90009) ivpass
845      write (i02,90010) ivdele
846c
847c
848c     terminate routine execution
849      stop
850c
851c     format statements for page headers
85290000 format (1h1)
85390002 format (1h )
85490001 format (1h ,10x,34hfortran compiler validation system)
85590003 format (1h ,21x,11hversion 1.0)
85690004 format (1h ,10x,38hfor official use only - copyright 1978)
85790005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
85890006 format (1h ,5x,46h----------------------------------------------)
85990011 format (1h ,18x,17hsubset level test)
860c
861c     format statements for run summaries
86290008 format (1h ,15x,i5,19h errors encountered)
86390009 format (1h ,15x,i5,13h tests passed)
86490010 format (1h ,15x,i5,14h tests deleted)
865c
866c     format statements for test results
86780001 format (1h ,4x,i5,7x,4hpass)
86880002 format (1h ,4x,i5,7x,4hfail)
86980003 format (1h ,4x,i5,7x,7hdeleted)
87080004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
87180005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
872c
87390007 format (1h ,20x,20hend of program fm042)
874      end
875