xref: /original-bsd/usr.bin/f77/tests/tests/fm030.f (revision e59fb703)
1c     comment section.
2c
3c     fm030
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 -, integer constants and integer variables.
10c     some of the tests use parentheses to group elements in the
11c     arithmetic expression.
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 parentheses to group elements
17c            (4)  integer variable - integer constant
18c                 integer constant - integer variable
19c
20c      references
21c        american national standard programming language fortran,
22c              x3.9-1978
23c
24c        section 4.3, integer type
25c        section 4.3.1, integer constant
26c        section 6.1, arithmetic expressions
27c        section 10.1, arithmetic assignment statement
28c
29c
30c      **********************************************************
31c
32c         a compiler validation system for the fortran language
33c     based on specifications as defined in american national standard
34c     programming language fortran x3.9-1978, has been developed by the
35c     federal cobol compiler testing service.  the fortran compiler
36c     validation system (fcvs) consists of audit routines, their related
37c     data, and an executive system.  each audit routine is a fortran
38c     program, subprogram or function which includes tests of specific
39c     language elements and supporting procedures indicating the result
40c     of executing these tests.
41c
42c         this particular program/subprogram/function contains features
43c     found only in the subset as defined in x3.9-1978.
44c
45c         suggestions and comments should be forwarded to -
46c
47c                  department of the navy
48c                  federal cobol compiler testing service
49c                  washington, d.c.  20376
50c
51c      **********************************************************
52c
53c
54c
55c     initialization section
56c
57c     initialize constants
58c      **************
59c     i01 contains the logical unit number for the card reader.
60      i01 = 5
61c     i02 contains the logical unit number for the printer.
62      i02 = 6
63c     system environment section
64c
65cx010    this card is replaced by contents of fexec x-010 control card.
66c     the cx010 card is for overriding the program default i01 = 5
67c     (unit number for card reader).
68cx011    this card is replaced by contents of fexec x-011 control card.
69c     the cx011 card is for systems which require additional
70c     fortran statements for files associated with cx010 above.
71c
72cx020    this card is replaced by contents of fexec x-020 control card.
73c     the cx020 card is for overriding the program default i02 = 6
74c     (unit number for printer).
75cx021    this card is replaced by contents of fexec x-021 control card.
76c     the cx021 card is for systems which require additional
77c     fortran statements for files associated with cx020 above.
78c
79      ivpass=0
80      ivfail=0
81      ivdele=0
82      iczero=0
83c
84c     write page headers
85      write (i02,90000)
86      write (i02,90001)
87      write (i02,90002)
88      write (i02, 90002)
89      write (i02,90003)
90      write (i02,90002)
91      write (i02,90004)
92      write (i02,90002)
93      write (i02,90011)
94      write (i02,90002)
95      write (i02,90002)
96      write (i02,90005)
97      write (i02,90006)
98      write (i02,90002)
99c     test section
100c
101c         arithmetic assignment statement
102c
103c         test 265 through test 270 contain two integer constants and
104c     operator - in an arithmetic expression.  the form tested is
105c          integer variable = integer constant - integer constant
106c
107 2651 continue
108      ivtnum = 265
109c
110c      ****  test 265  ****
111c
112      if (iczero) 32650, 2650, 32650
113 2650 continue
114      ivcomp = 3-2
115      go to 42650
11632650 ivdele = ivdele + 1
117      write (i02,80003) ivtnum
118      if (iczero) 42650, 2661, 42650
11942650 if (ivcomp - 1) 22650,12650,22650
12012650 ivpass = ivpass + 1
121      write (i02,80001) ivtnum
122      go to 2661
12322650 ivfail = ivfail + 1
124      ivcorr = 1
125      write (i02,80004) ivtnum, ivcomp ,ivcorr
126 2661 continue
127      ivtnum = 266
128c
129c      ****  test 266  ****
130c
131      if (iczero) 32660, 2660, 32660
132 2660 continue
133      ivcomp = 51 - 52
134      go to 42660
13532660 ivdele = ivdele + 1
136      write (i02,80003) ivtnum
137      if (iczero) 42660, 2671, 42660
13842660 if (ivcomp +1) 22660,12660,22660
13912660 ivpass = ivpass + 1
140      write (i02,80001) ivtnum
141      go to 2671
14222660 ivfail = ivfail + 1
143      ivcorr = -1
144      write (i02,80004) ivtnum, ivcomp ,ivcorr
145 2671 continue
146      ivtnum = 267
147c
148c      ****  test 267  ***
149c
150      if (iczero) 32670, 2670, 32670
151 2670 continue
152      ivcomp = 865 - 189
153      go to 42670
15432670 ivdele = ivdele + 1
155      write (i02,80003) ivtnum
156      if (iczero) 42670, 2681, 42670
15742670 if (ivcomp -676) 22670,12670,22670
15812670 ivpass = ivpass + 1
159      write (i02,80001) ivtnum
160      go to 2681
16122670 ivfail = ivfail + 1
162      ivcorr = 676
163      write (i02,80004) ivtnum, ivcomp ,ivcorr
164 2681 continue
165      ivtnum = 268
166c
167c      ****  test 268  ****
168c
169      if (iczero) 32680, 2680, 32680
170 2680 continue
171      ivcomp =1358-9359
172      go to 42680
17332680 ivdele = ivdele + 1
174      write (i02,80003) ivtnum
175      if (iczero) 42680, 2691, 42680
17642680 if (ivcomp+8001) 22680,12680,22680
17712680 ivpass = ivpass + 1
178      write (i02,80001) ivtnum
179      go to 2691
18022680 ivfail = ivfail + 1
181      ivcorr = -8001
182      write (i02,80004) ivtnum, ivcomp ,ivcorr
183 2691 continue
184      ivtnum = 269
185c
186c      ****  test 269  ****
187c
188      if (iczero) 32690, 2690, 32690
189 2690 continue
190      ivcomp =21113-10001
191      go to 42690
19232690 ivdele = ivdele + 1
193      write (i02,80003) ivtnum
194      if (iczero) 42690, 2701, 42690
19542690 if (ivcomp-11112) 22690,12690,22690
19612690 ivpass = ivpass + 1
197      write (i02,80001) ivtnum
198      go to 2701
19922690 ivfail = ivfail + 1
200      ivcorr=11112
201      write (i02,80004) ivtnum, ivcomp ,ivcorr
202 2701 continue
203      ivtnum = 270
204c
205c      ****  test 270  ****
206c
207      if (iczero) 32700, 2700, 32700
208 2700 continue
209      ivcomp = 32767-1
210      go to 42700
21132700 ivdele = ivdele + 1
212      write (i02,80003) ivtnum
213      if (iczero) 42700, 2711, 42700
21442700 if (ivcomp -32766) 22700,12700,22700
21512700 ivpass = ivpass + 1
216      write (i02,80001) ivtnum
217      go to 2711
21822700 ivfail = ivfail + 1
219      ivcorr = 32766
220      write (i02,80004) ivtnum, ivcomp ,ivcorr
221c
222c         test 271 through test 274 contain three integer constants
223c     and operator - in an arithmetic expression.  the form tested is
224c                       iv = ic - ic - ic
225c
226 2711 continue
227      ivtnum = 271
228c
229c      ****  test 271  ****
230c
231      if (iczero) 32710, 2710, 32710
232 2710 continue
233      ivcomp=9-4-3
234      go to 42710
23532710 ivdele = ivdele + 1
236      write (i02,80003) ivtnum
237      if (iczero) 42710, 2721, 42710
23842710 if (ivcomp -2) 22710,12710,22710
23912710 ivpass = ivpass + 1
240      write (i02,80001) ivtnum
241      go to 2721
24222710 ivfail = ivfail + 1
243      ivcorr =2
244      write (i02,80004) ivtnum, ivcomp ,ivcorr
245 2721 continue
246      ivtnum = 272
247c
248c      ****  test 272 ****
249c
250      if (iczero) 32720, 2720, 32720
251 2720 continue
252      ivcomp = 51-52-53
253      go to 42720
25432720 ivdele = ivdele + 1
255      write (i02,80003) ivtnum
256      if (iczero) 42720, 2731, 42720
25742720 if (ivcomp +54) 22720,12720,22720
25812720 ivpass = ivpass + 1
259      write (i02,80001) ivtnum
260      go to 2731
26122720 ivfail = ivfail + 1
262      ivcorr = -54
263      write (i02,80004) ivtnum, ivcomp ,ivcorr
264 2731 continue
265      ivtnum = 273
266c
267c      ****  test 273  ****
268c
269      if (iczero) 32730, 2730, 32730
270 2730 continue
271      ivcomp = 966 -676 -189
272      go to 42730
27332730 ivdele = ivdele + 1
274      write (i02,80003) ivtnum
275      if (iczero) 42730, 2741, 42730
27642730 if (ivcomp -101) 22730,12730,22730
27712730 ivpass = ivpass + 1
278      write (i02,80001) ivtnum
279      go to 2741
28022730 ivfail = ivfail + 1
281      ivcorr = 101
282      write (i02,80004) ivtnum, ivcomp ,ivcorr
283 2741 continue
284      ivtnum = 274
285c
286c      ****  test 274  ****
287c
288      if (iczero) 32740, 2740, 32740
289 2740 continue
290      ivcomp = 1358-8001-2188
291      go to 42740
29232740 ivdele = ivdele + 1
293      write (i02,80003) ivtnum
294      if (iczero) 42740, 2751, 42740
29542740 if (ivcomp + 8831) 22740,12740,22740
29612740 ivpass = ivpass + 1
297      write (i02,80001) ivtnum
298      go to 2751
29922740 ivfail = ivfail + 1
300      ivcorr = -8831
301      write (i02,80004) ivtnum, ivcomp ,ivcorr
302c
303c     test 275 through test 282 are the same as tests 271-274 except
304c     parentheses are used to group the constants.
305c
306 2751 continue
307      ivtnum = 275
308c
309c      ****  test 275  ****
310c
311      if (iczero) 32750, 2750, 32750
312 2750 continue
313      ivcomp =(9-4)-3
314      go to 42750
31532750 ivdele = ivdele + 1
316      write (i02,80003) ivtnum
317      if (iczero) 42750, 2761, 42750
31842750 if (ivcomp -2) 22750,12750,22750
31912750 ivpass = ivpass + 1
320      write (i02,80001) ivtnum
321      go to 2761
32222750 ivfail = ivfail + 1
323      ivcorr = 2
324      write (i02,80004) ivtnum, ivcomp ,ivcorr
325 2761 continue
326      ivtnum = 276
327c
328c      ****  test 276  ****
329c
330      if (iczero) 32760, 2760, 32760
331 2760 continue
332      ivcomp =9-(4-3)
333      go to 42760
33432760 ivdele = ivdele + 1
335      write (i02,80003) ivtnum
336      if (iczero) 42760, 2771, 42760
33742760 if (ivcomp -8) 22760,12760,22760
33812760 ivpass = ivpass + 1
339      write (i02,80001) ivtnum
340      go to 2771
34122760 ivfail = ivfail + 1
342      ivcorr =8
343      write (i02,80004) ivtnum, ivcomp ,ivcorr
344 2771 continue
345      ivtnum = 277
346c
347c      ****  test 277  ****
348c
349      if (iczero) 32770, 2770, 32770
350 2770 continue
351      ivcomp =(51-52)-53
352      go to 42770
35332770 ivdele = ivdele + 1
354      write (i02,80003) ivtnum
355      if (iczero) 42770, 2781, 42770
35642770 if (ivcomp +54) 22770,12770,22770
35712770 ivpass = ivpass + 1
358      write (i02,80001) ivtnum
359      go to 2781
36022770 ivfail = ivfail + 1
361      ivcorr = -54
362      write (i02,80004) ivtnum, ivcomp ,ivcorr
363 2781 continue
364      ivtnum = 278
365c
366c      ****  test 278  ****
367c
368      if (iczero) 32780, 2780, 32780
369 2780 continue
370      ivcomp=51-(52-53)
371      go to 42780
37232780 ivdele = ivdele + 1
373      write (i02,80003) ivtnum
374      if (iczero) 42780, 2791, 42780
37542780 if (ivcomp-52) 22780,12780,22780
37612780 ivpass = ivpass + 1
377      write (i02,80001) ivtnum
378      go to 2791
37922780 ivfail = ivfail + 1
380      ivcorr = 52
381      write (i02,80004) ivtnum, ivcomp ,ivcorr
382 2791 continue
383      ivtnum = 279
384c
385c      ****  test 279  ****
386c
387      if (iczero) 32790, 2790, 32790
388 2790 continue
389      ivcomp =(966-676)-189
390      go to 42790
39132790 ivdele = ivdele + 1
392      write (i02,80003) ivtnum
393      if (iczero) 42790, 2801, 42790
39442790 if (ivcomp - 101) 22790,12790,22790
39512790 ivpass = ivpass + 1
396      write (i02,80001) ivtnum
397      go to 2801
39822790 ivfail = ivfail + 1
399      ivcorr = 101
400      write (i02,80004) ivtnum, ivcomp ,ivcorr
401 2801 continue
402      ivtnum = 280
403c
404c      ****  test 280  ****
405c
406      if (iczero) 32800, 2800, 32800
407 2800 continue
408      ivcomp =966-(676-189)
409      go to 42800
41032800 ivdele = ivdele + 1
411      write (i02,80003) ivtnum
412      if (iczero) 42800, 2811, 42800
41342800 if (ivcomp - 479) 22800,12800,22800
41412800 ivpass = ivpass + 1
415      write (i02,80001) ivtnum
416      go to 2811
41722800 ivfail = ivfail + 1
418      ivcorr = 479
419      write (i02,80004) ivtnum, ivcomp ,ivcorr
420 2811 continue
421      ivtnum = 281
422c
423c      ****  test 281  ****
424c
425      if (iczero) 32810, 2810, 32810
426 2810 continue
427      ivcomp = (1358-8001)-2188
428      go to 42810
42932810 ivdele = ivdele + 1
430      write (i02,80003) ivtnum
431      if (iczero) 42810, 2821, 42810
43242810 if (ivcomp + 8831) 22810,12810,22810
43312810 ivpass = ivpass + 1
434      write (i02,80001) ivtnum
435      go to 2821
43622810 ivfail = ivfail + 1
437      ivcorr = -8831
438      write (i02,80004) ivtnum, ivcomp ,ivcorr
439 2821 continue
440      ivtnum = 282
441c
442c      ****  test 282  ****
443c
444      if (iczero) 32820, 2820, 32820
445 2820 continue
446      ivcomp = 1358-(8001-2188)
447      go to 42820
44832820 ivdele = ivdele + 1
449      write (i02,80003) ivtnum
450      if (iczero) 42820, 2831, 42820
45142820 if (ivcomp + 4455) 22820,12820,22820
45212820 ivpass = ivpass + 1
453      write (i02,80001) ivtnum
454      go to 2831
45522820 ivfail = ivfail + 1
456      ivcorr = -4455
457      write (i02,80004) ivtnum, ivcomp ,ivcorr
458c
459c     test 283 through test 299 contain integer variable, integer
460c     constant and operator - in arithmetic expression. the integer
461c     variable contains both positive and negative values.
462c     the forms tested are
463c             integer variable = integer variable - integer constant
464c             integer variable = integer constant - integer variable
465c
466 2831 continue
467      ivtnum = 283
468c
469c      ****  test 283  ****
470c
471      if (iczero) 32830, 2830, 32830
472 2830 continue
473      ivon01 = 3
474      ivcomp = ivon01 - 2
475      go to 42830
47632830 ivdele = ivdele + 1
477      write (i02,80003) ivtnum
478      if (iczero) 42830, 2841, 42830
47942830 if (ivcomp - 1) 22830,12830,22830
48012830 ivpass = ivpass + 1
481      write (i02,80001) ivtnum
482      go to 2841
48322830 ivfail = ivfail + 1
484      ivcorr = 1
485      write (i02,80004) ivtnum, ivcomp ,ivcorr
486 2841 continue
487      ivtnum = 284
488c
489c      ****  test 284  ****
490c
491      if (iczero) 32840, 2840, 32840
492 2840 continue
493      ivon01 = 2
494      ivcomp = ivon01 -3
495      go to 42840
49632840 ivdele = ivdele + 1
497      write (i02,80003) ivtnum
498      if (iczero) 42840, 2851, 42840
49942840 if (ivcomp +1) 22840,12840,22840
50012840 ivpass = ivpass + 1
501      write (i02,80001) ivtnum
502      go to 2851
50322840 ivfail = ivfail + 1
504      ivcorr = -1
505      write (i02,80004) ivtnum, ivcomp ,ivcorr
506 2851 continue
507      ivtnum = 285
508c
509c      ****  test 285  ****
510c
511      if (iczero) 32850, 2850, 32850
512 2850 continue
513      ivon01 =-3
514      ivcomp = ivon01 -2
515      go to 42850
51632850 ivdele = ivdele + 1
517      write (i02,80003) ivtnum
518      if (iczero) 42850, 2861, 42850
51942850 if (ivcomp +5) 22850,12850,22850
52012850 ivpass = ivpass + 1
521      write (i02,80001) ivtnum
522      go to 2861
52322850 ivfail = ivfail + 1
524      ivcorr =-5
525      write (i02,80004) ivtnum, ivcomp ,ivcorr
526 2861 continue
527      ivtnum = 286
528c
529c      ****  test 286  ****
530c
531      if (iczero) 32860, 2860, 32860
532 2860 continue
533      ivon02 =2
534      ivcomp = 3 - ivon02
535      go to 42860
53632860 ivdele = ivdele + 1
537      write (i02,80003) ivtnum
538      if (iczero) 42860, 2871, 42860
53942860 if (ivcomp -1) 22860,12860,22860
54012860 ivpass = ivpass + 1
541      write (i02,80001) ivtnum
542      go to 2871
54322860 ivfail = ivfail + 1
544      ivcorr = 1
545      write (i02,80004) ivtnum, ivcomp ,ivcorr
546 2871 continue
547      ivtnum = 287
548c
549c      ****  test 287  ****
550c
551      if (iczero) 32870, 2870, 32870
552 2870 continue
553      ivon02 =3
554      ivcomp = 2 -ivon02
555      go to 42870
55632870 ivdele = ivdele + 1
557      write (i02,80003) ivtnum
558      if (iczero) 42870, 2881, 42870
55942870 if (ivcomp +1) 22870,12870,22870
56012870 ivpass = ivpass + 1
561      write (i02,80001) ivtnum
562      go to 2881
56322870 ivfail = ivfail + 1
564      ivcorr =-1
565      write (i02,80004) ivtnum, ivcomp ,ivcorr
566 2881 continue
567      ivtnum = 288
568c
569c      ****  test 288  ****
570c
571      if (iczero) 32880, 2880, 32880
572 2880 continue
573      ivon02 = -2
574      ivcomp = 3 - ivon02
575      go to 42880
57632880 ivdele = ivdele + 1
577      write (i02,80003) ivtnum
578      if (iczero) 42880, 2891, 42880
57942880 if (ivcomp -5) 22880,12880,22880
58012880 ivpass = ivpass + 1
581      write (i02,80001) ivtnum
582      go to 2891
58322880 ivfail = ivfail + 1
584      ivcorr =5
585      write (i02,80004) ivtnum, ivcomp ,ivcorr
586 2891 continue
587      ivtnum = 289
588c
589c      ****  test 289  ****
590c
591      if (iczero) 32890, 2890, 32890
592 2890 continue
593      ivon01 =51
594      ivcomp = ivon01 - 52
595      go to 42890
59632890 ivdele = ivdele + 1
597      write (i02,80003) ivtnum
598      if (iczero) 42890, 2901, 42890
59942890 if (ivcomp + 1) 22890,12890,22890
60012890 ivpass = ivpass + 1
601      write (i02,80001) ivtnum
602      go to 2901
60322890 ivfail = ivfail + 1
604      ivcorr = -1
605      write (i02,80004) ivtnum, ivcomp ,ivcorr
606 2901 continue
607      ivtnum = 290
608c
609c      ****  test 290  ****
610c
611      if (iczero) 32900, 2900, 32900
612 2900 continue
613      ivon01 =51
614      ivcomp = ivon01 -51
615      go to 42900
61632900 ivdele = ivdele + 1
617      write (i02,80003) ivtnum
618      if (iczero) 42900, 2911, 42900
61942900 if (ivcomp) 22900,12900,22900
62012900 ivpass = ivpass + 1
621      write (i02,80001) ivtnum
622      go to 2911
62322900 ivfail = ivfail + 1
624      ivcorr =0
625      write (i02,80004) ivtnum, ivcomp ,ivcorr
626 2911 continue
627      ivtnum = 291
628c
629c      ****  test 291  ****
630c
631      if (iczero) 32910, 2910, 32910
632 2910 continue
633      ivon01 =53
634      ivcomp =ivon01 -52
635      go to 42910
63632910 ivdele = ivdele + 1
637      write (i02,80003) ivtnum
638      if (iczero) 42910, 2921, 42910
63942910 if (ivcomp -1) 22910,12910,22910
64012910 ivpass = ivpass + 1
641      write (i02,80001) ivtnum
642      go to 2921
64322910 ivfail = ivfail + 1
644      ivcorr = 1
645      write (i02,80004) ivtnum, ivcomp ,ivcorr
646 2921 continue
647      ivtnum = 292
648c
649c      ****  test 292  ****
650c
651      if (iczero) 32920, 2920, 32920
652 2920 continue
653      ivon02 = 676
654      ivcomp = 189 - ivon02
655      go to 42920
65632920 ivdele = ivdele + 1
657      write (i02,80003) ivtnum
658      if (iczero) 42920, 2931, 42920
65942920 if (ivcomp + 487) 22920,12920,22920
66012920 ivpass = ivpass + 1
661      write (i02,80001) ivtnum
662      go to 2931
66322920 ivfail = ivfail + 1
664      ivcorr = -487
665      write (i02,80004) ivtnum, ivcomp ,ivcorr
666 2931 continue
667      ivtnum = 293
668c
669c      ****  test 293  ****
670c
671      if (iczero) 32930, 2930, 32930
672 2930 continue
673      ivon02 = -676
674      ivcomp = 189 - ivon02
675      go to 42930
67632930 ivdele = ivdele + 1
677      write (i02,80003) ivtnum
678      if (iczero) 42930, 2941, 42930
67942930 if (ivcomp - 865) 22930,12930,22930
68012930 ivpass = ivpass + 1
681      write (i02,80001) ivtnum
682      go to 2941
68322930 ivfail = ivfail + 1
684      ivcorr = 865
685      write (i02,80004) ivtnum, ivcomp ,ivcorr
686 2941 continue
687      ivtnum = 294
688c
689c      ****  test 294  ****
690c
691      if (iczero) 32940, 2940, 32940
692 2940 continue
693      ivon01 = 1358
694      ivcomp = ivon01 - 8001
695      go to 42940
69632940 ivdele = ivdele + 1
697      write (i02,80003) ivtnum
698      if (iczero) 42940, 2951, 42940
69942940 if (ivcomp + 6643) 22940,12940,22940
70012940 ivpass = ivpass + 1
701      write (i02,80001) ivtnum
702      go to 2951
70322940 ivfail = ivfail + 1
704      ivcorr = -6643
705      write (i02,80004) ivtnum, ivcomp ,ivcorr
706 2951 continue
707      ivtnum = 295
708c
709c      ****  test 295  ****
710c
711      if (iczero) 32950, 2950, 32950
712 2950 continue
713      ivon01 = -1358
714      ivcomp = ivon01 - 8001
715      go to 42950
71632950 ivdele = ivdele + 1
717      write (i02,80003) ivtnum
718      if (iczero) 42950, 2961, 42950
71942950 if (ivcomp + 9359) 22950,12950,22950
72012950 ivpass = ivpass + 1
721      write (i02,80001) ivtnum
722      go to 2961
72322950 ivfail = ivfail + 1
724      ivcorr = -9359
725      write (i02,80004) ivtnum, ivcomp ,ivcorr
726 2961 continue
727      ivtnum = 296
728c
729c      ****  test 296  ****
730c
731      if (iczero) 32960, 2960, 32960
732 2960 continue
733      ivon01 = 15
734      ivcomp = ivon01 - 32752
735      go to 42960
73632960 ivdele = ivdele + 1
737      write (i02,80003) ivtnum
738      if (iczero) 42960, 2971, 42960
73942960 if (ivcomp + 32737) 22960,12960,22960
74012960 ivpass = ivpass + 1
741      write (i02,80001) ivtnum
742      go to 2971
74322960 ivfail = ivfail + 1
744      ivcorr = -32737
745      write (i02,80004) ivtnum, ivcomp ,ivcorr
746 2971 continue
747      ivtnum = 297
748c
749c      ****  test 297  ****
750c
751      if (iczero) 32970, 2970, 32970
752 2970 continue
753      ivon01 =-32751
754      ivcomp = ivon01 - 15
755      go to 42970
75632970 ivdele = ivdele + 1
757      write (i02,80003) ivtnum
758      if (iczero) 42970, 2981, 42970
75942970 if (ivcomp + 32766) 22970,12970,22970
76012970 ivpass = ivpass + 1
761      write (i02,80001) ivtnum
762      go to 2981
76322970 ivfail = ivfail + 1
764      ivcorr = -32766
765      write (i02,80004) ivtnum, ivcomp ,ivcorr
766 2981 continue
767      ivtnum = 298
768c
769c      ****  test 298  ****
770c
771      if (iczero) 32980, 2980, 32980
772 2980 continue
773      ivon02 = -32752
774      ivcomp = 15 - ivon02
775      go to 42980
77632980 ivdele = ivdele + 1
777      write (i02,80003) ivtnum
778      if (iczero) 42980, 2991, 42980
77942980 if (ivcomp - 32767) 22980,12980,22980
78012980 ivpass = ivpass + 1
781      write (i02,80001) ivtnum
782      go to 2991
78322980 ivfail = ivfail + 1
784      ivcorr = 32767
785      write (i02,80004) ivtnum, ivcomp ,ivcorr
786 2991 continue
787      ivtnum = 299
788c
789c      ****  test 299  ****
790c
791      if (iczero) 32990, 2990, 32990
792 2990 continue
793      ivon02 = 15
794      ivcomp = 32752 - ivon02
795      go to 42990
79632990 ivdele = ivdele + 1
797      write (i02,80003) ivtnum
798      if (iczero) 42990, 3001, 42990
79942990 if (ivcomp - 32737) 22990,12990,22990
80012990 ivpass = ivpass + 1
801      write (i02,80001) ivtnum
802      go to 3001
80322990 ivfail = ivfail + 1
804      ivcorr = 32737
805      write (i02,80004) ivtnum, ivcomp ,ivcorr
806 3001  continue
807c
808c     write page footings and run summaries
80999999 continue
810      write (i02,90002)
811      write (i02,90006)
812      write (i02,90002)
813      write (i02,90002)
814      write (i02,90007)
815      write (i02,90002)
816      write (i02,90008)  ivfail
817      write (i02,90009) ivpass
818      write (i02,90010) ivdele
819c
820c
821c     terminate routine execution
822      stop
823c
824c     format statements for page headers
82590000 format (1h1)
82690002 format (1h )
82790001 format (1h ,10x,34hfortran compiler validation system)
82890003 format (1h ,21x,11hversion 1.0)
82990004 format (1h ,10x,38hfor official use only - copyright 1978)
83090005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
83190006 format (1h ,5x,46h----------------------------------------------)
83290011 format (1h ,18x,17hsubset level test)
833c
834c     format statements for run summaries
83590008 format (1h ,15x,i5,19h errors encountered)
83690009 format (1h ,15x,i5,13h tests passed)
83790010 format (1h ,15x,i5,14h tests deleted)
838c
839c     format statements for test results
84080001 format (1h ,4x,i5,7x,4hpass)
84180002 format (1h ,4x,i5,7x,4hfail)
84280003 format (1h ,4x,i5,7x,7hdeleted)
84380004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
84480005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
845c
84690007 format (1h ,20x,20hend of program fm030)
847      end
848