xref: /original-bsd/usr.bin/f77/tests/tests/fm040.f (revision e22fe102)
1c     comment section
2c
3c     fm040
4c
5c         this routine tests arithmetic assignment statements of the
6c         form      integer variable = arithmetic expression
7c     where the arithmetic expression is formed with the arithmetic
8c     operator /, integer variables and an integer constant.  both
9c     positive and negative values are used for the integer variables
10c     and the integer constant.
11c
12c         there are tests which require no truncation of the result and
13c     tests where the result must be truncated before being stored in
14c     the resultant integer variable.  some of the tests use parens
15c     to group elements in the arithmetic expression.
16c
17c         there are tests where the arithmetic expression contains
18c             (1) integer variable/integer variable
19c             (2) integer variable/integer variable/integer constant
20c                 integer variable/integer constant/integer variable
21c                 integer constant/integer variable/integer variable
22c             (3) same as (2) but with parentheses to group elements
23c                   in the arithmetic expression.
24c
25c      references
26c        american national standard programming language fortran,
27c              x3.9-1978
28c
29c        section 4.3, integer type
30c        section 4.3.1, integer constant
31c        section 6.1, arithmetic expressions
32c        section 6.6, evaluation of expressions
33c        section 10.1, arithmetic assignment statement
34c
35c      **********************************************************
36c
37c         a compiler validation system for the fortran language
38c     based on specifications as defined in american national standard
39c     programming language fortran x3.9-1978, has been developed by the
40c     federal cobol compiler testing service.  the fortran compiler
41c     validation system (fcvs) consists of audit routines, their related
42c     data, and an executive system.  each audit routine is a fortran
43c     program, subprogram or function which includes tests of specific
44c     language elements and supporting procedures indicating the result
45c     of executing these tests.
46c
47c         this particular program/subprogram/function contains features
48c     found only in the subset as defined in x3.9-1978.
49c
50c         suggestions and comments should be forwarded to -
51c
52c                  department of the navy
53c                  federal cobol compiler testing service
54c                  washington, d.c.  20376
55c
56c      **********************************************************
57c
58c
59c
60c     initialization section
61c
62c     initialize constants
63c      **************
64c     i01 contains the logical unit number for the card reader.
65      i01 = 5
66c     i02 contains the logical unit number for the printer.
67      i02 = 6
68c     system environment section
69c
70cx010    this card is replaced by contents of fexec x-010 control card.
71c     the cx010 card is for overriding the program default i01 = 5
72c     (unit number for card reader).
73cx011    this card is replaced by contents of fexec x-011 control card.
74c     the cx011 card is for systems which require additional
75c     fortran statements for files associated with cx010 above.
76c
77cx020    this card is replaced by contents of fexec x-020 control card.
78c     the cx020 card is for overriding the program default i02 = 6
79c     (unit number for printer).
80cx021    this card is replaced by contents of fexec x-021 control card.
81c     the cx021 card is for systems which require additional
82c     fortran statements for files associated with cx020 above.
83c
84      ivpass=0
85      ivfail=0
86      ivdele=0
87      iczero=0
88c
89c     write page headers
90      write (i02,90000)
91      write (i02,90001)
92      write (i02,90002)
93      write (i02, 90002)
94      write (i02,90003)
95      write (i02,90002)
96      write (i02,90004)
97      write (i02,90002)
98      write (i02,90011)
99      write (i02,90002)
100      write (i02,90002)
101      write (i02,90005)
102      write (i02,90006)
103      write (i02,90002)
104c
105c     test section
106c
107c         arithmetic assignment statement
108c
109c     test 582 through test 597 contain arithmetic assignment statements
110c     of the form       integer variable=integer variable/integer var.
111c
112c     test 582 through test 585 - positive values
113c                   no truncation required
114c
115 5821 continue
116      ivtnum = 582
117c
118c      ****  test 582  ****
119c
120      if (iczero) 35820, 5820, 35820
121 5820 continue
122      ivon01 = 4
123      ivon02 = 2
124      ivcomp = ivon01 / ivon02
125      go to 45820
12635820 ivdele = ivdele + 1
127      write (i02,80003) ivtnum
128      if (iczero) 45820, 5831, 45820
12945820 if (ivcomp -2) 25820,15820,25820
13015820 ivpass = ivpass + 1
131      write (i02,80001) ivtnum
132      go to 5831
13325820 ivfail = ivfail + 1
134      ivcorr = 2
135      write (i02,80004) ivtnum, ivcomp ,ivcorr
136 5831 continue
137      ivtnum = 583
138c
139c      ****  test 583  ****
140c
141      if (iczero) 35830, 5830, 35830
142 5830 continue
143      ivon01 = 3575
144      ivon02 = 25
145      ivcomp = ivon01/ivon02
146      go to 45830
14735830 ivdele = ivdele + 1
148      write (i02,80003) ivtnum
149      if (iczero) 45830, 5841, 45830
15045830 if (ivcomp - 143) 25830,15830,25830
15115830 ivpass = ivpass + 1
152      write (i02,80001) ivtnum
153      go to 5841
15425830 ivfail = ivfail + 1
155      ivcorr = 143
156      write (i02,80004) ivtnum, ivcomp ,ivcorr
157 5841 continue
158      ivtnum = 584
159c
160c      ****  test 584  ****
161c
162      if (iczero) 35840, 5840, 35840
163 5840 continue
164      ivon01 = 6170
165      ivon02 = 1234
166      ivcomp = ivon01/ivon02
167      go to 45840
16835840 ivdele = ivdele + 1
169      write (i02,80003) ivtnum
170      if (iczero) 45840, 5851, 45840
17145840 if (ivcomp - 5) 25840,15840,25840
17215840 ivpass = ivpass + 1
173      write (i02,80001) ivtnum
174      go to 5851
17525840 ivfail = ivfail + 1
176      ivcorr = 5
177      write (i02,80004) ivtnum, ivcomp ,ivcorr
178 5851 continue
179      ivtnum = 585
180c
181c      ****  test 585  ****
182c
183      if (iczero) 35850, 5850, 35850
184 5850 continue
185      ivon01 = 32767
186      ivon02 = 1
187      ivcomp = ivon01/ivon02
188      go to 45850
18935850 ivdele = ivdele + 1
190      write (i02,80003) ivtnum
191      if (iczero) 45850, 5861, 45850
19245850 if (ivcomp - 32767) 25850,15850,25850
19315850 ivpass = ivpass + 1
194      write (i02,80001) ivtnum
195      go to 5861
19625850 ivfail = ivfail + 1
197      ivcorr = 32767
198      write (i02,80004) ivtnum, ivcomp ,ivcorr
199c
200c     test 586 through test 589  -  positive values
201c                   truncation of result required
202c
203 5861 continue
204      ivtnum = 586
205c
206c      ****  test 586  ****
207c
208      if (iczero) 35860, 5860, 35860
209 5860 continue
210      ivon01 = 2
211      ivon02 = 3
212      ivcomp = ivon01/ivon02
213      go to 45860
21435860 ivdele = ivdele + 1
215      write (i02,80003) ivtnum
216      if (iczero) 45860, 5871, 45860
21745860 if (ivcomp) 25860,15860,25860
21815860 ivpass = ivpass + 1
219      write (i02,80001) ivtnum
220      go to 5871
22125860 ivfail = ivfail + 1
222      ivcorr = 0
223      write (i02,80004) ivtnum, ivcomp ,ivcorr
224 5871 continue
225      ivtnum = 587
226c
227c      ****  test 587  ****
228c
229      if (iczero) 35870, 5870, 35870
230 5870 continue
231      ivon01 = 959
232      ivon02 = 120
233      ivcomp = ivon01/ivon02
234      go to 45870
23535870 ivdele = ivdele + 1
236      write (i02,80003) ivtnum
237      if (iczero) 45870, 5881, 45870
23845870 if (ivcomp - 7) 25870,15870,25870
23915870 ivpass = ivpass + 1
240      write (i02,80001) ivtnum
241      go to 5881
24225870 ivfail = ivfail + 1
243      ivcorr = 7
244      write (i02,80004) ivtnum, ivcomp ,ivcorr
245 5881 continue
246      ivtnum = 588
247c
248c      ****  test 588  ****
249c
250      if (iczero) 35880, 5880, 35880
251 5880 continue
252      ivon01 = 26606
253      ivon02 = 8
254      ivcomp = ivon01/ivon02
255      go to 45880
25635880 ivdele = ivdele + 1
257      write (i02,80003) ivtnum
258      if (iczero) 45880, 5891, 45880
25945880 if (ivcomp - 3325) 25880,15880,25880
26015880 ivpass = ivpass + 1
261      write (i02,80001) ivtnum
262      go to 5891
26325880 ivfail = ivfail + 1
264      ivcorr = 3325
265      write (i02,80004) ivtnum, ivcomp ,ivcorr
266 5891 continue
267      ivtnum = 589
268c
269c      ****  test 589  ****
270c
271      if (iczero) 35890, 5890, 35890
272 5890 continue
273      ivon01 = 25603
274      ivon02 = 10354
275      ivcomp = ivon01/ivon02
276      go to 45890
27735890 ivdele = ivdele + 1
278      write (i02,80003) ivtnum
279      if (iczero) 45890, 5901, 45890
28045890 if (ivcomp - 2) 25890,15890,25890
28115890 ivpass = ivpass + 1
282      write (i02,80001) ivtnum
283      go to 5901
28425890 ivfail = ivfail + 1
285      ivcorr = 2
286      write (i02,80004) ivtnum, ivcomp ,ivcorr
287c
288c     test 590 through test 593  - negative values included
289c               no truncation required
290c
291 5901 continue
292      ivtnum = 590
293c
294c      ****  test 590  ****
295c
296      if (iczero) 35900, 5900, 35900
297 5900 continue
298      ivon01 = 75
299      ivon02 = -25
300      ivcomp = ivon01/ivon02
301      go to 45900
30235900 ivdele = ivdele + 1
303      write (i02,80003) ivtnum
304      if (iczero) 45900, 5911, 45900
30545900 if (ivcomp + 3) 25900,15900,25900
30615900 ivpass = ivpass + 1
307      write (i02,80001) ivtnum
308      go to 5911
30925900 ivfail = ivfail + 1
310      ivcorr = -3
311      write (i02,80004) ivtnum, ivcomp ,ivcorr
312 5911 continue
313      ivtnum = 591
314c
315c      ****  test 591  ****
316c
317      if (iczero) 35910, 5910, 35910
318 5910 continue
319      ivon01 = -6170
320      ivon02 = -1234
321      ivcomp = ivon01/ivon02
322      go to 45910
32335910 ivdele = ivdele + 1
324      write (i02,80003) ivtnum
325      if (iczero) 45910, 5921, 45910
32645910 if (ivcomp -5) 25910,15910,25910
32715910 ivpass = ivpass + 1
328      write (i02,80001) ivtnum
329      go to 5921
33025910 ivfail = ivfail + 1
331      ivcorr = 5
332      write (i02,80004) ivtnum, ivcomp ,ivcorr
333 5921 continue
334      ivtnum = 592
335c
336c      ****  test 592  ****
337c
338      if (iczero) 35920, 5920, 35920
339 5920 continue
340      ivon01 = 32766
341      ivon02 = -2
342      ivcomp =-ivon01/ivon02
343      go to 45920
34435920 ivdele = ivdele + 1
345      write (i02,80003) ivtnum
346      if (iczero) 45920, 5931, 45920
34745920 if (ivcomp - 16383) 25920,15920,25920
34815920 ivpass = ivpass + 1
349      write (i02,80001) ivtnum
350      go to 5931
35125920 ivfail = ivfail + 1
352      ivcorr = 16383
353      write (i02,80004) ivtnum, ivcomp ,ivcorr
354 5931 continue
355      ivtnum = 593
356c
357c      ****  test 593  ****
358c
359      if (iczero) 35930, 5930, 35930
360 5930 continue
361      ivon01 = 4
362      ivon02 = 2
363      ivcomp = ivon01/(-ivon02)
364      go to 45930
36535930 ivdele = ivdele + 1
366      write (i02,80003) ivtnum
367      if (iczero) 45930, 5941, 45930
36845930 if (ivcomp + 2) 25930,15930,25930
36915930 ivpass = ivpass + 1
370      write (i02,80001) ivtnum
371      go to 5941
37225930 ivfail = ivfail + 1
373      ivcorr = -2
374      write (i02,80004) ivtnum, ivcomp ,ivcorr
375c
376c     test 594 through test 597  -  negative values included
377c                      truncation of result required
378c
379 5941 continue
380      ivtnum = 594
381c
382c      ****  test 594  ****
383c
384      if (iczero) 35940, 5940, 35940
385 5940 continue
386      ivon01 = -5
387      ivon02 = 2
388      ivcomp = ivon01/ivon02
389      go to 45940
39035940 ivdele = ivdele + 1
391      write (i02,80003) ivtnum
392      if (iczero) 45940, 5951, 45940
39345940 if (ivcomp + 2) 25940,15940,25940
39415940 ivpass = ivpass + 1
395      write (i02,80001) ivtnum
396      go to 5951
39725940 ivfail = ivfail + 1
398      ivcorr = -2
399      write (i02,80004) ivtnum, ivcomp ,ivcorr
400 5951 continue
401      ivtnum = 595
402c
403c      ****  test 595  ****
404c
405      if (iczero) 35950, 5950, 35950
406 5950 continue
407      ivon01 = -25603
408      ivon02 = -10354
409      ivcomp = ivon01/ivon02
410      go to 45950
41135950 ivdele = ivdele + 1
412      write (i02,80003) ivtnum
413      if (iczero) 45950, 5961, 45950
41445950 if (ivcomp -2) 25950,15950,25950
41515950 ivpass = ivpass + 1
416      write (i02,80001) ivtnum
417      go to 5961
41825950 ivfail = ivfail + 1
419      ivcorr =2
420      write (i02,80004) ivtnum, ivcomp ,ivcorr
421 5961 continue
422      ivtnum = 596
423c
424c      ****  test 596  ****
425c
426      if (iczero) 35960, 5960, 35960
427 5960 continue
428      ivon01 = 25603
429      ivon02 = 10354
430      ivcomp = -ivon01/ivon02
431      go to 45960
43235960 ivdele = ivdele + 1
433      write (i02,80003) ivtnum
434      if (iczero) 45960, 5971, 45960
43545960 if (ivcomp +2) 25960,15960,25960
43615960 ivpass = ivpass + 1
437      write (i02,80001) ivtnum
438      go to 5971
43925960 ivfail = ivfail + 1
440      ivcorr = -2
441      write (i02,80004) ivtnum, ivcomp ,ivcorr
442 5971 continue
443      ivtnum = 597
444c
445c      ****  test 597  ****
446c
447      if (iczero) 35970, 5970, 35970
448 5970 continue
449      ivon01 = 25603
450      ivon02 = -2
451      ivcomp = -(ivon01/ivon02)
452      go to 45970
45335970 ivdele = ivdele + 1
454      write (i02,80003) ivtnum
455      if (iczero) 45970, 5981, 45970
45645970 if (ivcomp - 12801) 25970,15970,25970
45715970 ivpass = ivpass + 1
458      write (i02,80001) ivtnum
459      go to 5981
46025970 ivfail = ivfail + 1
461      ivcorr = 12801
462      write (i02,80004) ivtnum, ivcomp ,ivcorr
463c
464c     test 598 through test 614 contain two integer variables, an
465c     integer constant and operator / in an arithmetic expression.
466c
467c         test 598 through test 603  -  no parens to group elements but
468c                   there are parens surrounding negative constants
469c
470c     test 598 and test 599  -  iv = iv/iv/ic.
471c
472 5981 continue
473      ivtnum = 598
474c
475c      ****  test 598  ****
476c
477      if (iczero) 35980, 5980, 35980
478 5980 continue
479      ivon01 = 32766
480      ivon02 = 2
481      ivcomp = ivon01/ivon02/3
482      go to 45980
48335980 ivdele = ivdele + 1
484      write (i02,80003) ivtnum
485      if (iczero) 45980, 5991, 45980
48645980 if (ivcomp - 5461) 25980,15980,25980
48715980 ivpass = ivpass + 1
488      write (i02,80001) ivtnum
489      go to 5991
49025980 ivfail = ivfail + 1
491      ivcorr = 5461
492      write (i02,80004) ivtnum, ivcomp ,ivcorr
493 5991 continue
494      ivtnum = 599
495c
496c      ****  test 599  ****
497c
498      if (iczero) 35990, 5990, 35990
499 5990 continue
500      ivon01 = 7151
501      ivon02 = 3
502      ivcomp = ivon01/ivon02/10
503      go to 45990
50435990 ivdele = ivdele + 1
505      write (i02,80003) ivtnum
506      if (iczero) 45990, 6001, 45990
50745990 if (ivcomp -238) 25990,15990,25990
50815990 ivpass = ivpass + 1
509      write (i02,80001) ivtnum
510      go to 6001
51125990 ivfail = ivfail + 1
512      ivcorr = 238
513      write (i02,80004) ivtnum, ivcomp ,ivcorr
514c
515c     test 600 and test 601   -  iv= iv/ic/iv.
516c
517 6001 continue
518      ivtnum = 600
519c
520c      ****  test 600  ****
521c
522      if (iczero) 36000, 6000, 36000
523 6000 continue
524      ivon01 = -7150
525      ivon03 = -25
526      ivcomp = ivon01/(-2)/ivon03
527      go to 46000
52836000 ivdele = ivdele + 1
529      write (i02,80003) ivtnum
530      if (iczero) 46000, 6011, 46000
53146000 if (ivcomp + 143)  26000,16000,26000
53216000 ivpass = ivpass + 1
533      write (i02,80001) ivtnum
534      go to 6011
53526000 ivfail = ivfail + 1
536      ivcorr = -143
537      write (i02,80004) ivtnum, ivcomp ,ivcorr
538 6011 continue
539      ivtnum = 601
540c
541c      ****  test 601  ****
542c
543      if (iczero) 36010, 6010, 36010
544 6010 continue
545      ivon01 = 32767
546      ivon03 = -1
547      ivcomp = ivon01/2/ivon03
548      go to 46010
54936010 ivdele = ivdele + 1
550      write (i02,80003) ivtnum
551      if (iczero) 46010, 6021, 46010
55246010 if (ivcomp + 16383) 26010,16010,26010
55316010 ivpass = ivpass + 1
554      write (i02,80001) ivtnum
555      go to 6021
55626010 ivfail = ivfail + 1
557      ivcorr = -16383
558      write (i02,80004) ivtnum, ivcomp ,ivcorr
559 6021 continue
560      ivtnum = 602
561c
562c      ****  test 602  ****
563c
564c     test 602 and test 603   -  iv=ic/iv/iv
565c
566c
567      if (iczero) 36020, 6020, 36020
568 6020 continue
569      ivon02 = 13
570      ivon03 = 51
571      ivcomp = 15249/ivon02/ivon03
572      go to 46020
57336020 ivdele = ivdele + 1
574      write (i02,80003) ivtnum
575      if (iczero) 46020, 6031, 46020
57646020 if (ivcomp - 23) 26020,16020,26020
57716020 ivpass = ivpass + 1
578      write (i02,80001) ivtnum
579      go to 6031
58026020 ivfail = ivfail + 1
581      ivcorr = 23
582      write (i02,80004) ivtnum, ivcomp ,ivcorr
583 6031 continue
584      ivtnum = 603
585c
586c      ****  test 603  ****
587c
588      if (iczero) 36030, 6030, 36030
589 6030 continue
590      ivon02 = -13
591      ivon03 = -51
592      ivcomp = -15249/ivon02/ivon03
593      go to 46030
59436030 ivdele = ivdele + 1
595      write (i02,80003) ivtnum
596      if (iczero) 46030, 6041, 46030
59746030 if (ivcomp +23) 26030,16030,26030
59816030 ivpass = ivpass + 1
599      write (i02,80001) ivtnum
600      go to 6041
60126030 ivfail = ivfail + 1
602      ivcorr = -23
603      write (i02,80004) ivtnum, ivcomp ,ivcorr
604c
605c     test 604 through test 614  - parentheses are used to group
606c     elements in the arithmetic expressions.
607c
608c     test 604 and test 605  -  iv=(iv/iv)/ic.
609c
610 6041 continue
611      ivtnum = 604
612c
613c      ****  test 604  ****
614c
615      if (iczero) 36040, 6040, 36040
616 6040 continue
617      ivon01 = 32766
618      ivon02 = 2
619      ivcomp =(ivon01/ivon02)/3
620      go to 46040
62136040 ivdele = ivdele + 1
622      write (i02,80003) ivtnum
623      if (iczero) 46040, 6051, 46040
62446040 if (ivcomp -5461) 26040,16040,26040
62516040 ivpass = ivpass + 1
626      write (i02,80001) ivtnum
627      go to 6051
62826040 ivfail = ivfail + 1
629      ivcorr = 5461
630      write (i02,80004) ivtnum, ivcomp ,ivcorr
631 6051 continue
632      ivtnum = 605
633c
634c      ****  test 605  ****
635c
636      if (iczero) 36050, 6050, 36050
637 6050 continue
638      ivon01 = 7151
639      ivon02 =  3
640      ivcomp = (ivon01/ivon02)/10
641      go to 46050
64236050 ivdele = ivdele + 1
643      write (i02,80003) ivtnum
644      if (iczero) 46050, 6061, 46050
64546050 if (ivcomp - 238) 26050,16050,26050
64616050 ivpass = ivpass + 1
647      write (i02,80001) ivtnum
648      go to 6061
64926050 ivfail = ivfail + 1
650      ivcorr = 238
651      write (i02,80004) ivtnum, ivcomp ,ivcorr
652c
653c     test 606 and test 607  -  iv=iv/(iv/ic).
654c
655 6061 continue
656      ivtnum = 606
657c
658c      ****  test 606  ****
659c
660      if (iczero) 36060, 6060, 36060
661 6060 continue
662      ivon01 = -7154
663      ivon02 =  26
664      ivcomp = ivon01/(ivon02/5)
665      go to 46060
66636060 ivdele = ivdele + 1
667      write (i02,80003) ivtnum
668      if (iczero) 46060, 6071, 46060
66946060 if (ivcomp + 1430) 26060,16060,26060
67016060 ivpass = ivpass + 1
671      write (i02,80001) ivtnum
672      go to 6071
67326060 ivfail = ivfail + 1
674      ivcorr = -1430
675      write (i02,80004) ivtnum, ivcomp ,ivcorr
676 6071 continue
677      ivtnum = 607
678c
679c      ****  test 607  ****
680c
681      if (iczero) 36070, 6070, 36070
682 6070 continue
683      ivon01 = 29
684      ivon02 = -5
685      ivcomp = ivon01/(ivon02/2)
686      go to 46070
68736070 ivdele = ivdele + 1
688      write (i02,80003) ivtnum
689      if (iczero) 46070, 6081, 46070
69046070 if (ivcomp + 14) 26070,16070,26070
69116070 ivpass = ivpass + 1
692      write (i02,80001) ivtnum
693      go to 6081
69426070 ivfail = ivfail + 1
695      ivcorr = -14
696      write (i02,80004) ivtnum, ivcomp ,ivcorr
697c
698c     test 608 and test 609  -  iv = (iv/ic)/iv.
699c
700 6081 continue
701      ivtnum = 608
702c
703c      ****  test 608  ****
704c
705      if (iczero) 36080, 6080, 36080
706 6080 continue
707      ivon01 = 24
708      ivon03 =  3
709      ivcomp = (ivon01/3)/ivon03
710      go to 46080
71136080 ivdele = ivdele + 1
712      write (i02,80003) ivtnum
713      if (iczero) 46080, 6091, 46080
71446080 if (ivcomp -2) 26080,16080,26080
71516080 ivpass = ivpass + 1
716      write (i02,80001) ivtnum
717      go to 6091
71826080 ivfail = ivfail + 1
719      ivcorr = 2
720      write (i02,80004) ivtnum, ivcomp ,ivcorr
721 6091 continue
722      ivtnum = 609
723c
724c      ****  test 609  ****
725c
726      if (iczero) 36090, 6090, 36090
727 6090 continue
728      ivon01 = 7151
729      ivon03 = 10
730      ivcomp = (ivon01/(-3))/ivon03
731      go to 46090
73236090 ivdele = ivdele + 1
733      write (i02,80003) ivtnum
734      if (iczero) 46090, 6101, 46090
73546090 if (ivcomp + 238) 26090,16090,26090
73616090 ivpass = ivpass + 1
737      write (i02,80001) ivtnum
738      go to 6101
73926090 ivfail = ivfail + 1
740      ivcorr = -238
741      write (i02,80004) ivtnum, ivcomp ,ivcorr
742c
743c     test 610 and test 611  -  iv=iv(ic/iv)
744c
745 6101 continue
746      ivtnum = 610
747c
748c      ****  test 610  ****
749c
750      if (iczero) 36100, 6100, 36100
751 6100 continue
752      ivon01 = -7154
753      ivon03 = -5
754      ivcomp = ivon01/((-26)/ivon03)
755      go to 46100
75636100 ivdele = ivdele + 1
757      write (i02,80003) ivtnum
758      if (iczero) 46100, 6111, 46100
75946100 if (ivcomp + 1430) 26100,16100,26100
76016100 ivpass = ivpass + 1
761      write (i02,80001) ivtnum
762      go to 6111
76326100 ivfail = ivfail + 1
764      ivcorr = -1430
765      write (i02,80004) ivtnum, ivcomp ,ivcorr
766 6111 continue
767      ivtnum = 611
768c
769c      ****  test 611  ****
770c
771      if (iczero) 36110, 6110, 36110
772 6110 continue
773      ivon01 = 7150
774      ivon03 = 5
775      ivcomp = ivon01/((+25)/ivon03)
776      go to 46110
77736110 ivdele = ivdele + 1
778      write (i02,80003) ivtnum
779      if (iczero) 46110, 6121, 46110
78046110 if (ivcomp -1430) 26110,16110,26110
78116110 ivpass = ivpass + 1
782      write (i02,80001) ivtnum
783      go to 6121
78426110 ivfail = ivfail + 1
785      ivcorr = 1430
786      write (i02,80004) ivtnum, ivcomp ,ivcorr
787 6121 continue
788      ivtnum = 612
789c
790c      ****  test 612  ****
791c     test 612  -  iv= (ic/iv)/iv
792c
793      if (iczero) 36120, 6120, 36120
794 6120 continue
795      ivon02 = -3
796      ivon03 = -10
797      ivcomp = (-7154/ivon02)/ivon03
798      go to 46120
79936120 ivdele = ivdele + 1
800      write (i02,80003) ivtnum
801      if (iczero) 46120, 6131, 46120
80246120 if (ivcomp + 238) 26120,16120,26120
80316120 ivpass = ivpass + 1
804      write (i02,80001) ivtnum
805      go to 6131
80626120 ivfail = ivfail + 1
807      ivcorr = -238
808      write (i02,80004) ivtnum, ivcomp ,ivcorr
809c
810c     test 613 and test 614  -  iv=ic/(iv/iv)
811c
812 6131 continue
813      ivtnum = 613
814c
815c      ****  test 613  ****
816c
817      if (iczero) 36130, 6130, 36130
818 6130 continue
819      ivon02 = 8
820      ivon03 = 4
821      ivcomp = 24/(ivon02/ivon03)
822      go to 46130
82336130 ivdele = ivdele + 1
824      write (i02,80003) ivtnum
825      if (iczero) 46130, 6141, 46130
82646130 if (ivcomp - 12) 26130,16130,26130
82716130 ivpass = ivpass + 1
828      write (i02,80001) ivtnum
829      go to 6141
83026130 ivfail = ivfail + 1
831      ivcorr = 12
832      write (i02,80004) ivtnum, ivcomp ,ivcorr
833 6141 continue
834      ivtnum = 614
835c
836c      ****  test 614  ****
837c
838      if (iczero) 36140, 6140, 36140
839 6140 continue
840      ivon02 = 25
841      ivon03 = 5
842      ivcomp = 7150/(-(ivon02/ivon03))
843      go to 46140
84436140 ivdele = ivdele + 1
845      write (i02,80003) ivtnum
846      if (iczero) 46140, 6151, 46140
84746140 if (ivcomp + 1430) 26140,16140,26140
84816140 ivpass = ivpass + 1
849      write (i02,80001) ivtnum
850      go to 6151
85126140 ivfail = ivfail + 1
852      ivcorr = -1430
853      write (i02,80004) ivtnum, ivcomp ,ivcorr
854c      ****    end of tests    ****
855 6151 continue
856c
857c     write page footings and run summaries
85899999 continue
859      write (i02,90002)
860      write (i02,90006)
861      write (i02,90002)
862      write (i02,90002)
863      write (i02,90007)
864      write (i02,90002)
865      write (i02,90008)  ivfail
866      write (i02,90009) ivpass
867      write (i02,90010) ivdele
868c
869c
870c     terminate routine execution
871      stop
872c
873c     format statements for page headers
87490000 format (1h1)
87590002 format (1h )
87690001 format (1h ,10x,34hfortran compiler validation system)
87790003 format (1h ,21x,11hversion 1.0)
87890004 format (1h ,10x,38hfor official use only - copyright 1978)
87990005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
88090006 format (1h ,5x,46h----------------------------------------------)
88190011 format (1h ,18x,17hsubset level test)
882c
883c     format statements for run summaries
88490008 format (1h ,15x,i5,19h errors encountered)
88590009 format (1h ,15x,i5,13h tests passed)
88690010 format (1h ,15x,i5,14h tests deleted)
887c
888c     format statements for test results
88980001 format (1h ,4x,i5,7x,4hpass)
89080002 format (1h ,4x,i5,7x,4hfail)
89180003 format (1h ,4x,i5,7x,7hdeleted)
89280004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
89380005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
894c
89590007 format (1h ,20x,20hend of program fm040)
896      end
897