xref: /original-bsd/usr.bin/f77/tests/tests/fm041.f (revision e59fb703)
1c     comment section
2c
3c     fm041
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 constant.
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 615 through test 631 contain arithmetic assignment statements
95c     of the form    integer variable = integer constant ** integer con.
96c
97c     test 632 through test 648 contain arithmetic assignment statements
98c     of the form    integer variable = integer variable ** integer con.
99c
100c
101      ivtnum = 615
102c
103c      ****  test 615  ****
104c     test 615  - small number base; zero exponent
105c
106      if (iczero) 36150, 6150, 36150
107 6150 continue
108      ivcomp = 1 ** 0
109      go to 46150
11036150 ivdele = ivdele + 1
111      write (i02,80003) ivtnum
112      if (iczero) 46150, 6161, 46150
11346150 if (ivcomp - 1) 26150,16150,26150
11416150 ivpass = ivpass + 1
115      write (i02,80001) ivtnum
116      go to 6161
11726150 ivfail = ivfail + 1
118      ivcorr = 1
119      write (i02,80004) ivtnum, ivcomp ,ivcorr
120 6161 continue
121      ivtnum = 616
122c
123c      ****  test 616  ****
124c     test 616  - zero base to first power
125c
126      if (iczero) 36160, 6160, 36160
127 6160 continue
128      ivcomp = 0 ** 1
129      go to 46160
13036160 ivdele = ivdele + 1
131      write (i02,80003) ivtnum
132      if (iczero) 46160, 6171, 46160
13346160 if (ivcomp) 26160,16160,26160
13416160 ivpass = ivpass + 1
135      write (i02,80001) ivtnum
136      go to 6171
13726160 ivfail = ivfail + 1
138      ivcorr = 0
139      write (i02,80004) ivtnum, ivcomp ,ivcorr
140 6171 continue
141      ivtnum = 617
142c
143c      ****  test 617  ****
144c     test 617  - base =1; exponent = 1
145c
146      if (iczero) 36170, 6170, 36170
147 6170 continue
148      ivcomp = 1 ** 1
149      go to 46170
15036170 ivdele = ivdele + 1
151      write (i02,80003) ivtnum
152      if (iczero) 46170, 6181, 46170
15346170 if (ivcomp - 1) 26170,16170,26170
15416170 ivpass = ivpass + 1
155      write (i02,80001) ivtnum
156      go to 6181
15726170 ivfail = ivfail + 1
158      ivcorr = 1
159      write (i02,80004) ivtnum, ivcomp ,ivcorr
160 6181 continue
161      ivtnum = 618
162c
163c      ****  test 618  ****
164c     test 618  - large number base; exponent = 1
165c
166      if (iczero) 36180, 6180, 36180
167 6180 continue
168      ivcomp = 32767 ** 1
169      go to 46180
17036180 ivdele = ivdele + 1
171      write (i02,80003) ivtnum
172      if (iczero) 46180, 6191, 46180
17346180 if (ivcomp - 32767) 26180,16180,26180
17416180 ivpass = ivpass + 1
175      write (i02,80001) ivtnum
176      go to 6191
17726180 ivfail = ivfail + 1
178      ivcorr = 32767
179      write (i02,80004) ivtnum, ivcomp ,ivcorr
180 6191 continue
181      ivtnum = 619
182c
183c      ****  test 619  ****
184c     test 619  - large exponent
185c
186      if (iczero) 36190, 6190, 36190
187 6190 continue
188      ivcomp = 1 ** 32767
189      go to 46190
19036190 ivdele = ivdele + 1
191      write (i02,80003) ivtnum
192      if (iczero) 46190, 6201, 46190
19346190 if (ivcomp - 1) 26190,16190,26190
19416190 ivpass = ivpass + 1
195      write (i02,80001) ivtnum
196      go to 6201
19726190 ivfail = ivfail + 1
198      ivcorr = 1
199      write (i02,80004) ivtnum, ivcomp ,ivcorr
200 6201 continue
201      ivtnum = 620
202c
203c      ****  test 620  ****
204c     test 620  - zero base; large number exponent
205c
206      if (iczero) 36200, 6200, 36200
207 6200 continue
208      ivcomp = 0 ** 32767
209      go to 46200
21036200 ivdele = ivdele + 1
211      write (i02,80003) ivtnum
212      if (iczero) 46200, 6211, 46200
21346200 if (ivcomp) 26200,16200,26200
21416200 ivpass = ivpass + 1
215      write (i02,80001) ivtnum
216      go to 6211
21726200 ivfail = ivfail + 1
218      ivcorr = 0
219      write (i02,80004) ivtnum, ivcomp ,ivcorr
220 6211 continue
221      ivtnum = 621
222c
223c      ****  test 621  ****
224c     test 621  -large number base; zero exponent
225c
226      if (iczero) 36210, 6210, 36210
227 6210 continue
228      ivcomp = 32767 ** 0
229      go to 46210
23036210 ivdele = ivdele + 1
231      write (i02,80003) ivtnum
232      if (iczero) 46210, 6221, 46210
23346210 if (ivcomp - 1) 26210,16210,26210
23416210 ivpass = ivpass + 1
235      write (i02,80001) ivtnum
236      go to 6221
23726210 ivfail = ivfail + 1
238      ivcorr = 1
239      write (i02,80004) ivtnum, ivcomp ,ivcorr
240 6221 continue
241      ivtnum = 622
242c
243c      ****  test 622  ****
244c     test 622  -exponent is power of two
245c
246      if (iczero) 36220, 6220, 36220
247 6220 continue
248      ivcomp = 181 ** 2
249      go to 46220
25036220 ivdele = ivdele + 1
251      write (i02,80003) ivtnum
252      if (iczero) 46220, 6231, 46220
25346220 if (ivcomp - 32761) 26220,16220,26220
25416220 ivpass = ivpass + 1
255      write (i02,80001) ivtnum
256      go to 6231
25726220 ivfail = ivfail + 1
258      ivcorr = 32761
259      write (i02,80004) ivtnum, ivcomp ,ivcorr
260 6231 continue
261      ivtnum = 623
262c
263c      ****  test 623  ****
264c     test 623  - base and exponent are both powers of two
265c
266      if (iczero) 36230, 6230, 36230
267 6230 continue
268      ivcomp = 2 ** 8
269      go to 46230
27036230 ivdele = ivdele + 1
271      write (i02,80003) ivtnum
272      if (iczero) 46230, 6241, 46230
27346230 if (ivcomp - 256) 26230,16230,26230
27416230 ivpass = ivpass + 1
275      write (i02,80001) ivtnum
276      go to 6241
27726230 ivfail = ivfail + 1
278      ivcorr = 256
279      write (i02,80004) ivtnum, ivcomp ,ivcorr
280 6241 continue
281c
282c     tests 624 and 625 test to ensure exponentiation operator is
283c                       not commutative
284c
285      ivtnum = 624
286c
287c      ****  test 624  ****
288c
289      if (iczero) 36240, 6240, 36240
290 6240 continue
291      ivcomp = 3 ** 9
292      go to 46240
29336240 ivdele = ivdele + 1
294      write (i02,80003) ivtnum
295      if (iczero) 46240, 6251, 46240
29646240 if (ivcomp - 19683) 26240,16240,26240
29716240 ivpass = ivpass + 1
298      write (i02,80001) ivtnum
299      go to 6251
30026240 ivfail = ivfail + 1
301      ivcorr = 19683
302      write (i02,80004) ivtnum, ivcomp ,ivcorr
303 6251 continue
304      ivtnum = 625
305c
306c      ****  test 625  ****
307c
308      if (iczero) 36250, 6250, 36250
309 6250 continue
310      ivcomp = 9 ** 3
311      go to 46250
31236250 ivdele = ivdele + 1
313      write (i02,80003) ivtnum
314      if (iczero) 46250, 6261, 46250
31546250 if (ivcomp - 729) 26250,16250,26250
31616250 ivpass = ivpass + 1
317      write (i02,80001) ivtnum
318      go to 6261
31926250 ivfail = ivfail + 1
320      ivcorr = 729
321      write (i02,80004) ivtnum, ivcomp ,ivcorr
322 6261 continue
323c
324c     tests 626 through 631 test positive and negative bases to positive
325c                           odd and even number powers checking the sign
326c                           of the results
327c
328      ivtnum = 626
329c
330c      ****  test 626  ****
331c
332      if (iczero) 36260, 6260, 36260
333 6260 continue
334      ivcomp = 1 ** 2
335      go to 46260
33636260 ivdele = ivdele + 1
337      write (i02,80003) ivtnum
338      if (iczero) 46260, 6271, 46260
33946260 if (ivcomp - 1) 26260,16260,26260
34016260 ivpass = ivpass + 1
341      write (i02,80001) ivtnum
342      go to 6271
34326260 ivfail = ivfail + 1
344      ivcorr = 1
345      write (i02,80004) ivtnum, ivcomp ,ivcorr
346 6271 continue
347      ivtnum = 627
348c
349c      ****  test 627  ****
350c
351      if (iczero) 36270, 6270, 36270
352 6270 continue
353      ivcomp= (-1) ** 2
354      go to 46270
35536270 ivdele = ivdele + 1
356      write (i02,80003) ivtnum
357      if (iczero) 46270, 6281, 46270
35846270 if (ivcomp - 1) 26270,16270,26270
35916270 ivpass = ivpass + 1
360      write (i02,80001) ivtnum
361      go to 6281
36226270 ivfail = ivfail + 1
363      ivcorr = 1
364      write (i02,80004) ivtnum, ivcomp ,ivcorr
365 6281 continue
366      ivtnum = 628
367c
368c      ****  test 628  ****
369c
370      if (iczero) 36280, 6280, 36280
371 6280 continue
372      ivcomp = 7 ** 3
373      go to 46280
37436280 ivdele = ivdele + 1
375      write (i02,80003) ivtnum
376      if (iczero) 46280, 6291, 46280
37746280 if (ivcomp - 343) 26280,16280,26280
37816280 ivpass = ivpass + 1
379      write (i02,80001) ivtnum
380      go to 6291
38126280 ivfail = ivfail + 1
382      ivcorr = 343
383      write (i02,80004) ivtnum, ivcomp ,ivcorr
384 6291 continue
385      ivtnum = 629
386c
387c      ****  test 629  ****
388c
389      if (iczero) 36290, 6290, 36290
390 6290 continue
391      ivcomp = (-7) ** 3
392      go to 46290
39336290 ivdele = ivdele + 1
394      write (i02,80003) ivtnum
395      if (iczero) 46290, 6301, 46290
39646290 if (ivcomp + 343) 26290,16290,26290
39716290 ivpass = ivpass + 1
398      write (i02,80001) ivtnum
399      go to 6301
40026290 ivfail = ivfail + 1
401      ivcorr = -343
402      write (i02,80004) ivtnum, ivcomp ,ivcorr
403 6301 continue
404      ivtnum = 630
405c
406c      ****  test 630  ****
407c
408      if (iczero) 36300, 6300, 36300
409 6300 continue
410      ivcomp = 7 ** 4
411      go to 46300
41236300 ivdele = ivdele + 1
413      write (i02,80003) ivtnum
414      if (iczero) 46300, 6311, 46300
41546300 if (ivcomp - 2401) 26300,16300,26300
41616300 ivpass = ivpass + 1
417      write (i02,80001) ivtnum
418      go to 6311
41926300 ivfail = ivfail + 1
420      ivcorr = 2401
421      write (i02,80004) ivtnum, ivcomp ,ivcorr
422 6311 continue
423      ivtnum = 631
424c
425c      ****  test 631  ****
426c
427      if (iczero) 36310, 6310, 36310
428 6310 continue
429      ivcomp = (-7) ** 4
430      go to 46310
43136310 ivdele = ivdele + 1
432      write (i02,80003) ivtnum
433      if (iczero) 46310, 6321, 46310
43446310 if (ivcomp - 2401) 26310,16310,26310
43516310 ivpass = ivpass + 1
436      write (i02,80001) ivtnum
437      go to 6321
43826310 ivfail = ivfail + 1
439      ivcorr = 2401
440      write (i02,80004) ivtnum, ivcomp ,ivcorr
441 6321 continue
442      ivtnum = 632
443c
444c      ****  test 632  ****
445c     test 632  - small number base; zero exponent
446c
447      if (iczero) 36320, 6320, 36320
448 6320 continue
449      ivon01 = 1
450      ivcomp = ivon01 ** 1
451      go to 46320
45236320 ivdele = ivdele + 1
453      write (i02,80003) ivtnum
454      if (iczero) 46320, 6331, 46320
45546320 if (ivcomp - 1) 26320,16320,26320
45616320 ivpass = ivpass + 1
457      write (i02,80001) ivtnum
458      go to 6331
45926320 ivfail = ivfail + 1
460      ivcorr = 1
461      write (i02,80004) ivtnum, ivcomp ,ivcorr
462 6331 continue
463      ivtnum = 633
464c
465c      ****  test 633  ****
466c     test 633  - zero base to first power
467c
468      if (iczero) 36330, 6330, 36330
469 6330 continue
470      ivon01 = 0
471      ivcomp = ivon01 ** 1
472      go to 46330
47336330 ivdele = ivdele + 1
474      write (i02,80003) ivtnum
475      if (iczero) 46330, 6341, 46330
47646330 if (ivcomp) 26330,16330,26330
47716330 ivpass = ivpass + 1
478      write (i02,80001) ivtnum
479      go to 6341
48026330 ivfail = ivfail + 1
481      ivcorr = 0
482      write (i02,80004) ivtnum, ivcomp ,ivcorr
483 6341 continue
484      ivtnum = 634
485c
486c      ****  test 634  ****
487c     test 634  - base =1; exponent = 1
488c
489      if (iczero) 36340, 6340, 36340
490 6340 continue
491      ivon01 = 1
492      ivcomp = ivon01 ** 1
493      go to 46340
49436340 ivdele = ivdele + 1
495      write (i02,80003) ivtnum
496      if (iczero) 46340, 6351, 46340
49746340 if (ivcomp - 1) 26340,16340,26340
49816340 ivpass = ivpass + 1
499      write (i02,80001) ivtnum
500      go to 6351
50126340 ivfail = ivfail + 1
502      ivcorr = 1
503      write (i02,80004) ivtnum, ivcomp ,ivcorr
504 6351 continue
505      ivtnum = 635
506c
507c      ****  test 635  ****
508c     test 635  - large exponent
509c
510      if (iczero) 36350, 6350, 36350
511 6350 continue
512      ivon01 = 1
513      ivcomp = ivon01 ** 32767
514      go to 46350
51536350 ivdele = ivdele + 1
516      write (i02,80003) ivtnum
517      if (iczero) 46350, 6361, 46350
51846350 if (ivcomp - 1) 26350,16350,26350
51916350 ivpass = ivpass + 1
520      write (i02,80001) ivtnum
521      go to 6361
52226350 ivfail = ivfail + 1
523      ivcorr = 1
524      write (i02,80004) ivtnum, ivcomp ,ivcorr
525 6361 continue
526      ivtnum = 636
527c
528c      ****  test 636  ****
529c     test 636  - large number base; exponent = 1
530c
531      if (iczero) 36360, 6360, 36360
532 6360 continue
533      ivon01 = 32767
534      ivcomp = ivon01 ** 1
535      go to 46360
53636360 ivdele = ivdele + 1
537      write (i02,80003) ivtnum
538      if (iczero) 46360, 6371, 46360
53946360 if (ivcomp - 32767) 26360,16360,26360
54016360 ivpass = ivpass + 1
541      write (i02,80001) ivtnum
542      go to 6371
54326360 ivfail = ivfail + 1
544      ivcorr = 32767
545      write (i02,80004) ivtnum, ivcomp ,ivcorr
546 6371 continue
547      ivtnum = 637
548c
549c      ****  test 637  ****
550c     test 637  - zero base; large number exponent
551c
552      if (iczero) 36370, 6370, 36370
553 6370 continue
554      ivon01 = 0
555      ivcomp = ivon01 ** 32767
556      go to 46370
55736370 ivdele = ivdele + 1
558      write (i02,80003) ivtnum
559      if (iczero) 46370, 6381, 46370
56046370 if (ivcomp) 26370,16370,26370
56116370 ivpass = ivpass + 1
562      write (i02,80001) ivtnum
563      go to 6381
56426370 ivfail = ivfail +1
565      ivcorr = 0
566      write (i02,80004) ivtnum, ivcomp ,ivcorr
567 6381 continue
568      ivtnum = 638
569c
570c      ****  test 638  ****
571c     test 638  -large number base; zero exponent
572c
573      if (iczero) 36380, 6380, 36380
574 6380 continue
575      ivon01 = 32767
576      ivcomp = ivon01 ** 0
577      go to 46380
57836380 ivdele = ivdele + 1
579      write (i02,80003) ivtnum
580      if (iczero) 46380, 6391, 46380
58146380 if (ivcomp - 1) 26380,16380,26380
58216380 ivpass = ivpass + 1
583      write (i02,80001) ivtnum
584      go to 6391
58526380 ivfail = ivfail + 1
586      ivcorr = 1
587      write (i02,80004) ivtnum, ivcomp ,ivcorr
588 6391 continue
589      ivtnum = 639
590c
591c      ****  test 639  ****
592c     test 639  -exponent is power of two
593c
594      if (iczero) 36390, 6390, 36390
595 6390 continue
596      ivon01 = 181
597      ivcomp = ivon01 ** 2
598      go to 46390
59936390 ivdele = ivdele + 1
600      write (i02,80003) ivtnum
601      if (iczero) 46390, 6401, 46390
60246390 if (ivcomp - 32761) 26390,16390,26390
60316390 ivpass = ivpass + 1
604      write (i02,80001) ivtnum
605      go to 6401
60626390 ivfail = ivfail + 1
607      ivcorr = 32761
608      write (i02,80004) ivtnum, ivcomp ,ivcorr
609 6401 continue
610      ivtnum = 640
611c
612c      ****  test 640  ****
613c     test 640  - base and exponent are both powers of two
614c
615      if (iczero) 36400, 6400, 36400
616 6400 continue
617      ivon01 = 2
618      ivcomp = ivon01 ** 8
619      go to 46400
62036400 ivdele = ivdele + 1
621      write (i02,80003) ivtnum
622      if (iczero) 46400, 6411, 46400
62346400 if (ivcomp - 256) 26400,16400,26400
62416400 ivpass = ivpass + 1
625      write (i02,80001) ivtnum
626      go to 6411
62726400 ivfail = ivfail + 1
628      ivcorr = 256
629      write (i02,80004) ivtnum, ivcomp ,ivcorr
630 6411 continue
631c
632c     tests 641 and 642 test to ensure exponentiation operator is
633c                       not commutative
634c
635      ivtnum = 641
636c
637c      ****  test 641  ****
638c
639      if (iczero) 36410, 6410, 36410
640 6410 continue
641      ivon01 = 3
642      ivcomp = ivon01 ** 9
643      go to 46410
64436410 ivdele = ivdele + 1
645      write (i02,80003) ivtnum
646      if (iczero) 46410, 6421, 46410
64746410 if (ivcomp - 19683) 26410,16410,26410
64816410 ivpass = ivpass + 1
649      write (i02,80001) ivtnum
650      go to 6421
65126410 ivfail = ivfail + 1
652      ivcorr = 19683
653      write (i02,80004) ivtnum, ivcomp ,ivcorr
654 6421 continue
655      ivtnum = 642
656c
657c      ****  test 642  ****
658c
659      if (iczero) 36420, 6420, 36420
660 6420 continue
661      ivon01 = 9
662      ivcomp = ivon01 ** 3
663      go to 46420
66436420 ivdele = ivdele + 1
665      write (i02,80003) ivtnum
666      if (iczero) 46420, 6431, 46420
66746420 if (ivcomp - 729) 26420,16420,26420
66816420 ivpass = ivpass + 1
669      write (i02,80001) ivtnum
670      go to 6431
67126420 ivfail = ivfail + 1
672      ivcorr = 729
673      write (i02,80004) ivtnum, ivcomp ,ivcorr
674 6431 continue
675c
676c     tests 643 through 648 test positive and negative bases to positive
677c                           odd and even number powers checking the sign
678c                           of the results
679c
680      ivtnum = 643
681c
682c      ****  test 643  ****
683c
684      if (iczero) 36430, 6430, 36430
685 6430 continue
686      ivon01 = 1
687      ivcomp = ivon01 ** 2
688      go to 46430
68936430 ivdele = ivdele + 1
690      write (i02,80003) ivtnum
691      if (iczero) 46430, 6441, 46430
69246430 if (ivcomp - 1) 26430,16430,26430
69316430 ivpass = ivpass + 1
694      write (i02,80001) ivtnum
695      go to 6441
69626430 ivfail = ivfail + 1
697      ivcorr = 1
698      write (i02,80004) ivtnum, ivcomp ,ivcorr
699 6441 continue
700      ivtnum = 644
701c
702c      ****  test 644  ****
703c
704      if (iczero) 36440, 6440, 36440
705 6440 continue
706      ivon01 = -1
707      ivcomp = ivon01 ** 2
708      go to 46440
70936440 ivdele = ivdele + 1
710      write (i02,80003) ivtnum
711      if (iczero) 46440, 6451, 46440
71246440 if (ivcomp - 1) 26440,16440,26440
71316440 ivpass = ivpass + 1
714      write (i02,80001) ivtnum
715      go to 6451
71626440 ivfail = ivfail + 1
717      ivcorr = 1
718      write (i02,80004) ivtnum, ivcomp ,ivcorr
719 6451 continue
720      ivtnum = 645
721c
722c      ****  test 645  ****
723c
724      if (iczero) 36450, 6450, 36450
725 6450 continue
726      ivon01 = 7
727      ivcomp = ivon01 ** 3
728      go to 46450
72936450 ivdele = ivdele + 1
730      write (i02,80003) ivtnum
731      if (iczero) 46450, 6461, 46450
73246450 if (ivcomp - 343) 26450,16450,26450
73316450 ivpass = ivpass + 1
734      write (i02,80001) ivtnum
735      go to 6461
73626450 ivfail = ivfail + 1
737      ivcorr = 343
738      write (i02,80004) ivtnum, ivcomp ,ivcorr
739 6461 continue
740      ivtnum = 646
741c
742c      ****  test 646  ****
743c
744      if (iczero) 36460, 6460, 36460
745 6460 continue
746      ivon01 = -7
747      ivcomp = ivon01 ** 3
748      go to 46460
74936460 ivdele = ivdele + 1
750      write (i02,80003) ivtnum
751      if (iczero) 46460, 6471, 46460
75246460 if (ivcomp + 343) 26460,16460,26460
75316460 ivpass = ivpass + 1
754      write (i02,80001) ivtnum
755      go to 6471
75626460 ivfail = ivfail + 1
757      ivcorr = -343
758      write (i02,80004) ivtnum, ivcomp ,ivcorr
759 6471 continue
760      ivtnum = 647
761c
762c      ****  test 647  ****
763c
764      if (iczero) 36470, 6470, 36470
765 6470 continue
766      ivon01 = 7
767      ivcomp = ivon01 ** 4
768      go to 46470
76936470 ivdele = ivdele + 1
770      write (i02,80003) ivtnum
771      if (iczero) 46470, 6481, 46470
77246470 if (ivcomp - 2401) 26470,16470,26470
77316470 ivpass = ivpass + 1
774      write (i02,80001) ivtnum
775      go to 6481
77626470 ivfail = ivfail + 1
777      ivcorr = 2401
778      write (i02,80004) ivtnum, ivcomp ,ivcorr
779 6481 continue
780      ivtnum = 648
781c
782c      ****  test 648  ****
783c
784      if (iczero) 36480, 6480, 36480
785 6480 continue
786      ivon01 = -7
787      ivcomp = ivon01 ** 4
788      go to 46480
78936480 ivdele = ivdele + 1
790      write (i02,80003) ivtnum
791      if (iczero) 46480, 6491, 46480
79246480 if (ivcomp - 2401) 26480,16480,26480
79316480 ivpass = ivpass + 1
794      write (i02,80001) ivtnum
795      go to 6491
79626480 ivfail = ivfail + 1
797      ivcorr = 2401
798      write (i02,80004) ivtnum, ivcomp ,ivcorr
799 6491 continue
800c      ***    end of tests    ***
801c
802c     write page footings and run summaries
80399999 continue
804      write (i02,90002)
805      write (i02,90006)
806      write (i02,90002)
807      write (i02,90002)
808      write (i02,90007)
809      write (i02,90002)
810      write (i02,90008)  ivfail
811      write (i02,90009) ivpass
812      write (i02,90010) ivdele
813c
814c
815c     terminate routine execution
816      stop
817c
818c     format statements for page headers
81990000 format (1h1)
82090002 format (1h )
82190001 format (1h ,10x,34hfortran compiler validation system)
82290003 format (1h ,21x,11hversion 1.0)
82390004 format (1h ,10x,38hfor official use only - copyright 1978)
82490005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
82590006 format (1h ,5x,46h----------------------------------------------)
82690011 format (1h ,18x,17hsubset level test)
827c
828c     format statements for run summaries
82990008 format (1h ,15x,i5,19h errors encountered)
83090009 format (1h ,15x,i5,13h tests passed)
83190010 format (1h ,15x,i5,14h tests deleted)
832c
833c     format statements for test results
83480001 format (1h ,4x,i5,7x,4hpass)
83580002 format (1h ,4x,i5,7x,4hfail)
83680003 format (1h ,4x,i5,7x,7hdeleted)
83780004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
83880005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
839c
84090007 format (1h ,20x,20hend of program fm041)
841      end
842