xref: /original-bsd/usr.bin/f77/tests/tests/fm033.f (revision 89a39cb6)
1c     comment section
2c
3c     fm033
4c
5c         this routine tests arithmetic assignment statements of the
6c     form
7c             integer variable = arithmetic expression
8c     where the arithmetic expression is formed with the arithmetic
9c     operator * and integer constants.  some of the tests use parens
10c     to group elements in the expression and to allow the use of
11c     negative constants following the * operator.
12c
13c     there are tests where the arithmetic expression contains
14c         (1)  integer constant * integer constant
15c         (2)  integer constant * integer constant * integer constant
16c         (3)  same as (2) but with parens to group elements
17c
18c      references
19c        american national standard programming language fortran,
20c              x3.9-1978
21c
22c        section 4.3, integer type
23c        section 4.3.1, integer constant
24c        section 6.1, arithmetic expressions
25c        section 10.1, arithmetic assignment statement
26c
27c      **********************************************************
28c
29c         a compiler validation system for the fortran language
30c     based on specifications as defined in american national standard
31c     programming language fortran x3.9-1978, has been developed by the
32c     federal cobol compiler testing service.  the fortran compiler
33c     validation system (fcvs) consists of audit routines, their related
34c     data, and an executive system.  each audit routine is a fortran
35c     program, subprogram or function which includes tests of specific
36c     language elements and supporting procedures indicating the result
37c     of executing these tests.
38c
39c         this particular program/subprogram/function contains features
40c     found only in the subset as defined in x3.9-1978.
41c
42c         suggestions and comments should be forwarded to -
43c
44c                  department of the navy
45c                  federal cobol compiler testing service
46c                  washington, d.c.  20376
47c
48c      **********************************************************
49c
50c
51c
52c     initialization section
53c
54c     initialize constants
55c      **************
56c     i01 contains the logical unit number for the card reader.
57      i01 = 5
58c     i02 contains the logical unit number for the printer.
59      i02 = 6
60c     system environment section
61c
62cx010    this card is replaced by contents of fexec x-010 control card.
63c     the cx010 card is for overriding the program default i01 = 5
64c     (unit number for card reader).
65cx011    this card is replaced by contents of fexec x-011 control card.
66c     the cx011 card is for systems which require additional
67c     fortran statements for files associated with cx010 above.
68c
69cx020    this card is replaced by contents of fexec x-020 control card.
70c     the cx020 card is for overriding the program default i02 = 6
71c     (unit number for printer).
72cx021    this card is replaced by contents of fexec x-021 control card.
73c     the cx021 card is for systems which require additional
74c     fortran statements for files associated with cx020 above.
75c
76      ivpass=0
77      ivfail=0
78      ivdele=0
79      iczero=0
80c
81c     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)
96c
97c     test section
98c
99c         arithmetic assignment statement
100c
101c     test 360 through test 376 contain two integer constants and
102c     operator * in an arithmetic expression.
103c              iv = ic * ic
104c
105c     test 360 through test 365  - integer constants are positive
106c
107 3601 continue
108      ivtnum = 360
109c
110c       ****  test 360  ****
111c
112      if (iczero) 33600, 3600, 33600
113 3600 continue
114      ivcomp = 2 * 3
115      go to 43600
11633600 ivdele = ivdele + 1
117      write (i02,80003) ivtnum
118      if (iczero) 43600, 3611, 43600
11943600 if (ivcomp - 6) 23600,13600,23600
12013600 ivpass = ivpass + 1
121      write (i02,80001) ivtnum
122      go to 3611
12323600 ivfail = ivfail + 1
124      ivcorr=6
125      write (i02,80004) ivtnum, ivcomp ,ivcorr
126 3611 continue
127      ivtnum = 361
128c
129c      ****  test 361  ****
130c
131      if (iczero) 33610, 3610, 33610
132 3610 continue
133      ivcomp = 3*2
134      go to 43610
13533610 ivdele = ivdele + 1
136      write (i02,80003) ivtnum
137      if (iczero) 43610, 3621, 43610
13843610 if (ivcomp-6) 23610,13610,23610
13913610 ivpass = ivpass + 1
140      write (i02,80001) ivtnum
141      go to 3621
14223610 ivfail = ivfail + 1
143      ivcorr=6
144      write (i02,80004) ivtnum, ivcomp ,ivcorr
145 3621 continue
146      ivtnum = 362
147c
148c      ****  test 362  ****
149c
150      if (iczero) 33620, 3620, 33620
151 3620 continue
152      ivcomp=13*11
153      go to 43620
15433620 ivdele = ivdele + 1
155      write (i02,80003) ivtnum
156      if (iczero) 43620, 3631, 43620
15743620 if (ivcomp-143) 23620,13620,23620
15813620 ivpass = ivpass + 1
159      write (i02,80001) ivtnum
160      go to 3631
16123620 ivfail = ivfail + 1
162      ivcorr=143
163      write (i02,80004) ivtnum, ivcomp ,ivcorr
164 3631 continue
165      ivtnum = 363
166c
167c      ****  test 363  ****
168c
169      if (iczero) 33630, 3630, 33630
170 3630 continue
171      ivcomp = 223*99
172      go to 43630
17333630 ivdele = ivdele + 1
174      write (i02,80003) ivtnum
175      if (iczero) 43630, 3641, 43630
17643630 if (ivcomp-22077) 23630,13630,23630
17713630 ivpass = ivpass + 1
178      write (i02,80001) ivtnum
179      go to 3641
18023630 ivfail = ivfail + 1
181      ivcorr=22077
182      write (i02,80004) ivtnum, ivcomp ,ivcorr
183 3641 continue
184      ivtnum = 364
185c
186c      ****  test 364  ****
187c
188      if (iczero) 33640, 3640, 33640
189 3640 continue
190      ivcomp=11235*2
191      go to 43640
19233640 ivdele = ivdele + 1
193      write (i02,80003) ivtnum
194      if (iczero) 43640, 3651, 43640
19543640 if (ivcomp-22470) 23640,13640,23640
19613640 ivpass = ivpass + 1
197      write (i02,80001) ivtnum
198      go to 3651
19923640 ivfail = ivfail + 1
200      ivcorr=22470
201      write (i02,80004) ivtnum, ivcomp ,ivcorr
202 3651 continue
203      ivtnum = 365
204c
205c      ****  test 365  ****
206c
207      if (iczero) 33650, 3650, 33650
208 3650 continue
209      ivcomp = 2*16383
210      go to 43650
21133650 ivdele = ivdele + 1
212      write (i02,80003) ivtnum
213      if (iczero) 43650, 3661, 43650
21443650 if (ivcomp-32766) 23650,13650,23650
21513650 ivpass = ivpass + 1
216      write (i02,80001) ivtnum
217      go to 3661
21823650 ivfail = ivfail + 1
219      ivcorr = 32766
220      write (i02,80004) ivtnum, ivcomp ,ivcorr
221c
222c     test 366 through test 371
223c         one positive and one negative constant
224c
225 3661 continue
226      ivtnum = 366
227c
228c      ****  test 366  ****
229c
230      if (iczero) 33660, 3660, 33660
231 3660 continue
232      ivcomp =2*(-3)
233      go to 43660
23433660 ivdele = ivdele + 1
235      write (i02,80003) ivtnum
236      if (iczero) 43660, 3671, 43660
23743660 if (ivcomp+6) 23660,13660,23660
23813660 ivpass = ivpass + 1
239      write (i02,80001) ivtnum
240      go to 3671
24123660 ivfail = ivfail + 1
242      ivcorr = -6
243      write (i02,80004) ivtnum, ivcomp ,ivcorr
244 3671 continue
245      ivtnum = 367
246c
247c      ****  test 367  ****
248c
249      if (iczero) 33670, 3670, 33670
250 3670 continue
251      ivcomp=(-2)*3
252      go to 43670
25333670 ivdele = ivdele + 1
254      write (i02,80003) ivtnum
255      if (iczero) 43670, 3681, 43670
25643670 if (ivcomp+6)23670,13670,23670
25713670 ivpass = ivpass + 1
258      write (i02,80001) ivtnum
259      go to 3681
26023670 ivfail = ivfail + 1
261      ivcorr =-6
262      write (i02,80004) ivtnum, ivcomp ,ivcorr
263 3681 continue
264      ivtnum = 368
265c
266c      ****  test 368  ****
267c
268      if (iczero) 33680, 3680, 33680
269 3680 continue
270      ivcomp= -2*3
271      go to 43680
27233680 ivdele = ivdele + 1
273      write (i02,80003) ivtnum
274      if (iczero) 43680, 3691, 43680
27543680 if (ivcomp +6) 23680,13680,23680
27613680 ivpass = ivpass + 1
277      write (i02,80001) ivtnum
278      go to 3691
27923680 ivfail = ivfail + 1
280      ivcorr=-6
281      write (i02,80004) ivtnum, ivcomp ,ivcorr
282 3691 continue
283      ivtnum = 369
284c
285c      ****  test 369  ****
286c
287      if (iczero) 33690, 3690, 33690
288 3690 continue
289      ivcomp = (-13)*11
290      go to 43690
29133690 ivdele = ivdele + 1
292      write (i02,80003) ivtnum
293      if (iczero) 43690, 3701, 43690
29443690 if (ivcomp+143) 23690,13690,23690
29513690 ivpass = ivpass + 1
296      write (i02,80001) ivtnum
297      go to 3701
29823690 ivfail = ivfail + 1
299      ivcorr=-143
300      write (i02,80004) ivtnum, ivcomp ,ivcorr
301 3701 continue
302      ivtnum = 370
303c
304c      ****  test 370  ****
305c
306      if (iczero) 33700, 3700, 33700
307 3700 continue
308      ivcomp = 223 * (-99)
309      go to 43700
31033700 ivdele = ivdele + 1
311      write (i02,80003) ivtnum
312      if (iczero) 43700, 3711, 43700
31343700 if (ivcomp + 22077) 23700,13700,23700
31413700 ivpass = ivpass + 1
315      write (i02,80001) ivtnum
316      go to 3711
31723700 ivfail = ivfail + 1
318      ivcorr =-22077
319      write (i02,80004) ivtnum, ivcomp ,ivcorr
320 3711 continue
321      ivtnum = 371
322c
323c      ****  test 371  ****
324c
325      if (iczero) 33710, 3710, 33710
326 3710 continue
327      ivcomp= -2 * 16383
328      go to 43710
32933710 ivdele = ivdele + 1
330      write (i02,80003) ivtnum
331      if (iczero) 43710, 3721, 43710
33243710 if (ivcomp+32766) 23710,13710,23710
33313710 ivpass = ivpass + 1
334      write (i02,80001) ivtnum
335      go to 3721
33623710 ivfail = ivfail + 1
337      ivcorr= -32766
338      write (i02,80004) ivtnum, ivcomp ,ivcorr
339c
340c     test 372 through test 376 - two negative constants
341c
342 3721 continue
343      ivtnum = 372
344c
345c      ****  test 372  ****
346c
347      if (iczero) 33720, 3720, 33720
348 3720 continue
349      ivcomp=(-2)*(-3)
350      go to 43720
35133720 ivdele = ivdele + 1
352      write (i02,80003) ivtnum
353      if (iczero) 43720, 3731, 43720
35443720 if (ivcomp-6) 23720,13720,23720
35513720 ivpass = ivpass + 1
356      write (i02,80001) ivtnum
357      go to 3731
35823720 ivfail = ivfail + 1
359      ivcorr=6
360      write (i02,80004) ivtnum, ivcomp ,ivcorr
361 3731 continue
362      ivtnum = 373
363c
364c      ****  test 373  ****
365c
366      if (iczero) 33730, 3730, 33730
367 3730 continue
368      ivcomp = -2*(-3)
369      go to 43730
37033730 ivdele = ivdele + 1
371      write (i02,80003) ivtnum
372      if (iczero) 43730, 3741, 43730
37343730 if (ivcomp-6) 23730,13730,23730
37413730 ivpass = ivpass + 1
375      write (i02,80001) ivtnum
376      go to 3741
37723730 ivfail = ivfail + 1
378      ivcorr=6
379      write (i02,80004) ivtnum, ivcomp ,ivcorr
380 3741 continue
381      ivtnum = 374
382c
383c      ****  test 374  ****
384c
385      if (iczero) 33740, 3740, 33740
386 3740 continue
387      ivcomp=(-13)*(-11)
388      go to 43740
38933740 ivdele = ivdele + 1
390      write (i02,80003) ivtnum
391      if (iczero) 43740, 3751, 43740
39243740 if (ivcomp-143) 23740,13740,23740
39313740 ivpass = ivpass + 1
394      write (i02,80001) ivtnum
395      go to 3751
39623740 ivfail = ivfail + 1
397      ivcorr = 143
398      write (i02,80004) ivtnum, ivcomp ,ivcorr
399 3751 continue
400      ivtnum = 375
401c
402c      ****  test 375  ****
403c
404      if (iczero) 33750, 3750, 33750
405 3750 continue
406      ivcomp= -223 *(-99)
407      go to 43750
40833750 ivdele = ivdele + 1
409      write (i02,80003) ivtnum
410      if (iczero) 43750, 3761, 43750
41143750 if (ivcomp - 22077) 23750,13750,23750
41213750 ivpass = ivpass + 1
413      write (i02,80001) ivtnum
414      go to 3761
41523750 ivfail = ivfail + 1
416      ivcorr = 22077
417      write (i02,80004) ivtnum, ivcomp ,ivcorr
418 3761 continue
419      ivtnum = 376
420c
421c      ****  test 376  ****
422c
423      if (iczero) 33760, 3760, 33760
424 3760 continue
425      ivcomp = (-16383)*(-2)
426      go to 43760
42733760 ivdele = ivdele + 1
428      write (i02,80003) ivtnum
429      if (iczero) 43760, 3771, 43760
43043760 if (ivcomp - 32766) 23760,13760,23760
43113760 ivpass = ivpass + 1
432      write (i02,80001) ivtnum
433      go to 3771
43423760 ivfail = ivfail + 1
435      ivcorr =32766
436      write (i02,80004) ivtnum, ivcomp ,ivcorr
437c
438c     test 377 through test 394 contain three integer constants and
439c     operator * in an arithmetic expression.
440c               iv = ic * ic * ic
441c
442c     test 377 through test 382   - constants are positive
443c
444 3771 continue
445      ivtnum = 377
446c
447c      ****  test 377  ****
448c
449      if (iczero) 33770, 3770, 33770
450 3770 continue
451      ivcomp =2*3*4
452      go to 43770
45333770 ivdele = ivdele + 1
454      write (i02,80003) ivtnum
455      if (iczero) 43770, 3781, 43770
45643770 if (ivcomp-24) 23770,13770,23770
45713770 ivpass = ivpass + 1
458      write (i02,80001) ivtnum
459      go to 3781
46023770 ivfail = ivfail + 1
461      ivcorr = 24
462      write (i02,80004) ivtnum, ivcomp ,ivcorr
463 3781 continue
464      ivtnum = 378
465c
466c      ****  test 378  ****
467c
468      if (iczero) 33780, 3780, 33780
469 3780 continue
470      ivcomp = 2*3*55
471      go to 43780
47233780 ivdele = ivdele + 1
473      write (i02,80003) ivtnum
474      if (iczero) 43780, 3791, 43780
47543780 if (ivcomp-330) 23780,13780,23780
47613780 ivpass = ivpass + 1
477      write (i02,80001) ivtnum
478      go to 3791
47923780 ivfail = ivfail + 1
480      ivcorr = 330
481      write (i02,80004) ivtnum, ivcomp ,ivcorr
482 3791 continue
483      ivtnum = 379
484c
485c      ****  test 379  ****
486c
487      if (iczero) 33790, 3790, 33790
488 3790 continue
489      ivcomp = 23*51*13
490      go to 43790
49133790 ivdele = ivdele + 1
492      write (i02,80003) ivtnum
493      if (iczero) 43790, 3801, 43790
49443790 if (ivcomp-15249) 23790,13790,23790
49513790 ivpass = ivpass + 1
496      write (i02,80001) ivtnum
497      go to 3801
49823790 ivfail = ivfail + 1
499      ivcorr = 15249
500      write (i02,80004) ivtnum, ivcomp ,ivcorr
501 3801 continue
502      ivtnum = 380
503c
504c      ****  test 380  ****
505c
506      if (iczero) 33800, 3800, 33800
507 3800 continue
508      ivcomp = 3* 5461* 2
509      go to 43800
51033800 ivdele = ivdele + 1
511      write (i02,80003) ivtnum
512      if (iczero) 43800, 3811, 43800
51343800 if (ivcomp - 32766) 23800,13800,23800
51413800 ivpass = ivpass + 1
515      write (i02,80001) ivtnum
516      go to 3811
51723800 ivfail = ivfail + 1
518      ivcorr = 32766
519      write (i02,80004) ivtnum, ivcomp ,ivcorr
520 3811 continue
521      ivtnum = 381
522c
523c      ****  test 381  ****
524c
525      if (iczero) 33810, 3810, 33810
526 3810 continue
527      ivcomp = 16383*2*1
528      go to 43810
52933810 ivdele = ivdele + 1
530      write (i02,80003) ivtnum
531      if (iczero) 43810, 3821, 43810
53243810 if (ivcomp-32766) 23810,13810,23810
53313810 ivpass = ivpass + 1
534      write (i02,80001) ivtnum
535      go to 3821
53623810 ivfail = ivfail + 1
537      ivcorr = 32766
538      write (i02,80004) ivtnum, ivcomp ,ivcorr
539 3821 continue
540      ivtnum = 382
541c
542c      ****  test 382  ****
543c
544      if (iczero) 33820, 3820, 33820
545 3820 continue
546      ivcomp = 3*53*157
547      go to 43820
54833820 ivdele = ivdele + 1
549      write (i02,80003) ivtnum
550      if (iczero) 43820, 3831, 43820
55143820 if (ivcomp-24963) 23820,13820,23820
55213820 ivpass = ivpass + 1
553      write (i02,80001) ivtnum
554      go to 3831
55523820 ivfail = ivfail + 1
556      ivcorr = 24963
557      write (i02,80004) ivtnum, ivcomp ,ivcorr
558c
559c     test 383 through test 386
560c         three positive integer constants grouped with parens.
561c
562 3831 continue
563      ivtnum = 383
564c
565c      ****  test 383  ****
566c
567      if (iczero) 33830, 3830, 33830
568 3830 continue
569      ivcomp = (2*3)*4
570      go to 43830
57133830 ivdele = ivdele + 1
572      write (i02,80003) ivtnum
573      if (iczero) 43830, 3841, 43830
57443830 if (ivcomp-24) 23830,13830,23830
57513830 ivpass = ivpass + 1
576      write (i02,80001) ivtnum
577      go to 3841
57823830 ivfail = ivfail + 1
579      ivcorr = 24
580      write (i02,80004) ivtnum, ivcomp ,ivcorr
581 3841 continue
582      ivtnum = 384
583c
584c      ****  test 384  ****
585c
586      if (iczero) 33840, 3840, 33840
587 3840 continue
588      ivcomp = 2*(3*4)
589      go to 43840
59033840 ivdele = ivdele + 1
591      write (i02,80003) ivtnum
592      if (iczero) 43840, 3851, 43840
59343840 if (ivcomp-24) 23840,13840,23840
59413840 ivpass = ivpass + 1
595      write (i02,80001) ivtnum
596      go to 3851
59723840 ivfail = ivfail + 1
598      ivcorr = 24
599      write (i02,80004) ivtnum, ivcomp ,ivcorr
600 3851 continue
601      ivtnum = 385
602c
603c      ****  test 385 ****
604c
605      if (iczero) 33850, 3850, 33850
606 3850 continue
607      ivcomp = (3*(+53)) * (+157)
608      go to 43850
60933850 ivdele = ivdele + 1
610      write (i02,80003) ivtnum
611      if (iczero) 43850, 3861, 43850
61243850 if (ivcomp-24963) 23850,13850,23850
61313850 ivpass = ivpass + 1
614      write (i02,80001) ivtnum
615      go to 3861
61623850 ivfail = ivfail + 1
617      ivcorr = 24963
618      write (i02,80004) ivtnum, ivcomp ,ivcorr
619 3861 continue
620      ivtnum = 386
621c
622c      ****  test 386  ****
623c
624      if (iczero) 33860, 3860, 33860
625 3860 continue
626      ivcomp = 3 *((+53)*157)
627      go to 43860
62833860 ivdele = ivdele + 1
629      write (i02,80003) ivtnum
630      if (iczero) 43860, 3871, 43860
63143860 if (ivcomp-24963) 23860,13860,23860
63213860 ivpass = ivpass + 1
633      write (i02,80001) ivtnum
634      go to 3871
63523860 ivfail = ivfail + 1
636      ivcorr=24963
637      write (i02,80004) ivtnum, ivcomp ,ivcorr
638c
639c     test 387 through test 391
640c         both positive and negative constants in arithmetic expression.
641c
642 3871 continue
643      ivtnum = 387
644c
645c      ****  test 387  ****
646c
647      if (iczero) 33870, 3870, 33870
648 3870 continue
649      ivcomp = 2*3*(-4)
650      go to 43870
65133870 ivdele = ivdele + 1
652      write (i02,80003) ivtnum
653      if (iczero) 43870, 3881, 43870
65443870 if (ivcomp + 24) 23870,13870,23870
65513870 ivpass = ivpass + 1
656      write (i02,80001) ivtnum
657      go to 3881
65823870 ivfail = ivfail + 1
659      ivcorr = -24
660      write (i02,80004) ivtnum, ivcomp ,ivcorr
661 3881 continue
662      ivtnum = 388
663c
664c      ****  test 388  ****
665c
666      if (iczero) 33880, 3880, 33880
667 3880 continue
668      ivcomp = 2*(-3)*(+4)
669      go to 43880
67033880 ivdele = ivdele + 1
671      write (i02,80003) ivtnum
672      if (iczero) 43880, 3891, 43880
67343880 if (ivcomp + 24) 23880,13880,23880
67413880 ivpass = ivpass + 1
675      write (i02,80001) ivtnum
676      go to 3891
67723880 ivfail = ivfail + 1
678      ivcorr = -24
679      write (i02,80004) ivtnum, ivcomp ,ivcorr
680 3891 continue
681      ivtnum = 389
682c
683c      ****  test 389  ****
684c
685      if (iczero) 33890, 3890, 33890
686 3890 continue
687      ivcomp = (-2)*3*4
688      go to 43890
68933890 ivdele = ivdele + 1
690      write (i02,80003) ivtnum
691      if (iczero) 43890, 3901, 43890
69243890 if (ivcomp+24) 23890,13890,23890
69313890 ivpass = ivpass + 1
694      write (i02,80001) ivtnum
695      go to 3901
69623890 ivfail = ivfail + 1
697      ivcorr = -24
698      write (i02,80004) ivtnum, ivcomp ,ivcorr
699 3901 continue
700      ivtnum = 390
701c
702c      ****  test 390  ****
703c
704      if (iczero) 33900, 3900, 33900
705 3900 continue
706      ivcomp = -2*3*4
707      go to 43900
70833900 ivdele = ivdele + 1
709      write (i02,80003) ivtnum
710      if (iczero) 43900, 3911, 43900
71143900 if (ivcomp+24) 23900,13900,23900
71213900 ivpass = ivpass + 1
713      write (i02,80001) ivtnum
714      go to 3911
71523900 ivfail = ivfail + 1
716      ivcorr = -24
717      write (i02,80004) ivtnum, ivcomp ,ivcorr
718 3911 continue
719      ivtnum = 391
720c
721c      ****  test 391  ****
722c
723      if (iczero) 33910, 3910, 33910
724 3910 continue
725      ivcomp = +2 * (-3) * (-4)
726      go to 43910
72733910 ivdele = ivdele + 1
728      write (i02,80003) ivtnum
729      if (iczero) 43910, 3921, 43910
73043910 if (ivcomp - 24) 23910,13910,23910
73113910 ivpass = ivpass + 1
732      write (i02,80001) ivtnum
733      go to 3921
73423910 ivfail = ivfail + 1
735      ivcorr = 24
736      write (i02,80004) ivtnum, ivcomp ,ivcorr
737c
738c     test 392 through test 394
739c         all constants are negative.
740c
741 3921 continue
742      ivtnum = 392
743c
744c      ****  test 392  ****
745c
746      if (iczero) 33920, 3920, 33920
747 3920 continue
748      ivcomp = (-2)*(-3)*(-4)
749      go to 43920
75033920 ivdele = ivdele + 1
751      write (i02,80003) ivtnum
752      if (iczero) 43920, 3931, 43920
75343920 if (ivcomp+24) 23920,13920,23920
75413920 ivpass = ivpass + 1
755      write (i02,80001) ivtnum
756      go to 3931
75723920 ivfail = ivfail + 1
758      ivcorr = -24
759      write (i02,80004) ivtnum, ivcomp ,ivcorr
760 3931 continue
761      ivtnum = 393
762c
763c      ****  test 393  ****
764c
765      if (iczero) 33930, 3930, 33930
766 3930 continue
767      ivcomp = (-23)*(-51)*(-13)
768      go to 43930
76933930 ivdele = ivdele + 1
770      write (i02,80003) ivtnum
771      if (iczero) 43930, 3941, 43930
77243930 if (ivcomp + 15249) 23930,13930,23930
77313930 ivpass = ivpass + 1
774      write (i02,80001) ivtnum
775      go to 3941
77623930 ivfail = ivfail + 1
777      ivcorr = -15249
778      write (i02,80004) ivtnum, ivcomp ,ivcorr
779 3941 continue
780      ivtnum = 394
781c
782c      ****  test 394  ****
783c
784      if (iczero) 33940, 3940, 33940
785 3940 continue
786      ivcomp = -3 * (-53)*( -157)
787      go to 43940
78833940 ivdele = ivdele + 1
789      write (i02,80003) ivtnum
790      if (iczero) 43940, 3951, 43940
79143940 if (ivcomp +24963) 23940,13940,23940
79213940 ivpass = ivpass + 1
793      write (i02,80001) ivtnum
794      go to 3951
79523940 ivfail = ivfail + 1
796      ivcorr = -24963
797      write (i02,80004) ivtnum, ivcomp ,ivcorr
798c      ****   end of tests   ****
799 3951 continue
800c
801c     write page footings and run summaries
80299999 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
812c
813c
814c     terminate routine execution
815      stop
816c
817c     format statements for page headers
81890000 format (1h1)
81990002 format (1h )
82090001 format (1h ,10x,34hfortran compiler validation system)
82190003 format (1h ,21x,11hversion 1.0)
82290004 format (1h ,10x,38hfor official use only - copyright 1978)
82390005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
82490006 format (1h ,5x,46h----------------------------------------------)
82590011 format (1h ,18x,17hsubset level test)
826c
827c     format statements for run summaries
82890008 format (1h ,15x,i5,19h errors encountered)
82990009 format (1h ,15x,i5,13h tests passed)
83090010 format (1h ,15x,i5,14h tests deleted)
831c
832c     format statements for test results
83380001 format (1h ,4x,i5,7x,4hpass)
83480002 format (1h ,4x,i5,7x,4hfail)
83580003 format (1h ,4x,i5,7x,7hdeleted)
83680004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
83780005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
838c
83990007 format (1h ,20x,20hend of program fm033)
840      end
841