xref: /original-bsd/usr.bin/f77/tests/tests/fm038.f (revision e59fb703)
1c     comment section
2c
3c     fm038
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 constants and an integer variable.  both
9c     positive and negative values are used for the integer constants
10c     and the integer variable.
11c
12c         there are tests which require no truncation of the result
13c     and tests where the result must be truncated before being stored
14c     in 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 constant/integer constant)/integer constant
19c             (2) integer constant/(integer constant/integer constant)
20c             (3) integer variable/integer constant
21c             (4) integer constant/integer variable
22c
23c      references
24c        american national standard programming language fortran,
25c              x3.9-1978
26c
27c        section 4.3, integer type
28c        section 4.3.1, integer constant
29c        section 6.1, arithmetic expressions
30c        section 6.6, evaluation of expressions
31c        section 10.1, arithmetic assignment statement
32c
33c      **********************************************************
34c
35c         a compiler validation system for the fortran language
36c     based on specifications as defined in american national standard
37c     programming language fortran x3.9-1978, has been developed by the
38c     federal cobol compiler testing service.  the fortran compiler
39c     validation system (fcvs) consists of audit routines, their related
40c     data, and an executive system.  each audit routine is a fortran
41c     program, subprogram or function which includes tests of specific
42c     language elements and supporting procedures indicating the result
43c     of executing these tests.
44c
45c         this particular program/subprogram/function contains features
46c     found only in the subset as defined in x3.9-1978.
47c
48c         suggestions and comments should be forwarded to -
49c
50c                  department of the navy
51c                  federal cobol compiler testing service
52c                  washington, d.c.  20376
53c
54c      **********************************************************
55c
56c
57c
58c     initialization section
59c
60c     initialize constants
61c      **************
62c     i01 contains the logical unit number for the card reader.
63      i01 = 5
64c     i02 contains the logical unit number for the printer.
65      i02 = 6
66c     system environment section
67c
68cx010    this card is replaced by contents of fexec x-010 control card.
69c     the cx010 card is for overriding the program default i01 = 5
70c     (unit number for card reader).
71cx011    this card is replaced by contents of fexec x-011 control card.
72c     the cx011 card is for systems which require additional
73c     fortran statements for files associated with cx010 above.
74c
75cx020    this card is replaced by contents of fexec x-020 control card.
76c     the cx020 card is for overriding the program default i02 = 6
77c     (unit number for printer).
78cx021    this card is replaced by contents of fexec x-021 control card.
79c     the cx021 card is for systems which require additional
80c     fortran statements for files associated with cx020 above.
81c
82      ivpass=0
83      ivfail=0
84      ivdele=0
85      iczero=0
86c
87c     write page headers
88      write (i02,90000)
89      write (i02,90001)
90      write (i02,90002)
91      write (i02, 90002)
92      write (i02,90003)
93      write (i02,90002)
94      write (i02,90004)
95      write (i02,90002)
96      write (i02,90011)
97      write (i02,90002)
98      write (i02,90002)
99      write (i02,90005)
100      write (i02,90006)
101      write (i02,90002)
102c
103c     test section
104c
105c         arithmetic assignment statement
106c
107c     test 520 through test 525 contain arithmetic assignment statements
108c     of the form       integer variable = (int.con./int.con.)/int.con.
109c     no truncation of the result is required.  both positive and
110c     negative constants are included.
111c
112 5201 continue
113      ivtnum = 520
114c
115c      ****  test 520  ****
116c
117      if (iczero) 35200, 5200, 35200
118 5200 continue
119      ivcomp = (24/3)/4
120      go to 45200
12135200 ivdele = ivdele + 1
122      write (i02,80003) ivtnum
123      if (iczero) 45200, 5211, 45200
12445200 if (ivcomp - 2) 25200,15200,25200
12515200 ivpass = ivpass + 1
126      write (i02,80001) ivtnum
127      go to 5211
12825200 ivfail = ivfail + 1
129      ivcorr = 2
130      write (i02,80004) ivtnum, ivcomp ,ivcorr
131 5211 continue
132      ivtnum = 521
133c
134c      ****  test 521  ****
135c
136      if (iczero) 35210, 5210, 35210
137 5210 continue
138      ivcomp = (7150/2)/25
139      go to 45210
14035210 ivdele = ivdele + 1
141      write (i02,80003) ivtnum
142      if (iczero) 45210, 5221, 45210
14345210 if (ivcomp - 143) 25210,15210,25210
14415210 ivpass = ivpass + 1
145      write (i02,80001) ivtnum
146      go to 5221
14725210 ivfail = ivfail + 1
148      ivcorr = 143
149      write (i02,80004) ivtnum, ivcomp ,ivcorr
150 5221 continue
151      ivtnum = 522
152c
153c      ****  test 522  ****
154c
155      if (iczero) 35220, 5220, 35220
156
157 5220 continue
158      ivcomp = (-24/3)/4
159      go to 45220
16035220 ivdele = ivdele + 1
161      write (i02,80003) ivtnum
162      if (iczero) 45220, 5231, 45220
16345220 if (ivcomp + 2) 25220,15220,25220
16415220 ivpass = ivpass + 1
165      write (i02,80001) ivtnum
166      go to 5231
16725220 ivfail = ivfail + 1
168      ivcorr = -2
169      write (i02,80004) ivtnum, ivcomp ,ivcorr
170 5231 continue
171      ivtnum = 523
172c
173c      ****  test 523  ****
174c
175      if (iczero) 35230, 5230, 35230
176 5230 continue
177      ivcomp = (330/(-3))/2
178      go to 45230
17935230 ivdele = ivdele + 1
180      write (i02,80003) ivtnum
181      if (iczero) 45230, 5241, 45230
18245230 if (ivcomp + 55) 25230,15230,25230
18315230 ivpass = ivpass + 1
184      write (i02,80001) ivtnum
185      go to 5241
18625230 ivfail = ivfail + 1
187      ivcorr = -55
188      write (i02,80004) ivtnum, ivcomp ,ivcorr
189 5241 continue
190      ivtnum = 524
191c
192c      ****  test 524  ****
193c
194      if (iczero) 35240, 5240, 35240
195 5240 continue
196      ivcomp = ((-7150)/(-2))/(-25)
197      go to 45240
19835240 ivdele = ivdele + 1
199      write (i02,80003) ivtnum
200      if (iczero) 45240, 5251, 45240
20145240 if (ivcomp + 143) 25240,15240,25240
20215240 ivpass = ivpass + 1
203      write (i02,80001) ivtnum
204      go to 5251
20525240 ivfail = ivfail + 1
206      ivcorr = -143
207      write (i02,80004) ivtnum, ivcomp ,ivcorr
208 5251 continue
209      ivtnum = 525
210c
211c      ****  test 525  ****
212c
213      if (iczero) 35250, 5250, 35250
214 5250 continue
215      ivcomp = (15249/(-13))/(-51)
216      go to 45250
21735250 ivdele = ivdele + 1
218      write (i02,80003) ivtnum
219      if (iczero) 45250, 5261, 45250
22045250 if (ivcomp - 23) 25250,15250,25250
22115250 ivpass = ivpass + 1
222      write (i02,80001) ivtnum
223      go to 5261
22425250 ivfail = ivfail + 1
225      ivcorr = 23
226      write (i02,80004) ivtnum, ivcomp ,ivcorr
227c
228c     test 526 through test 531 contain arithmetic assignment statements
229c     of the form   iv = (ic/ic)/ic.
230c     truncation of the result is required.  both positive and
231c     negative constants are included.
232c
233 5261 continue
234      ivtnum = 526
235c
236c      ****  test 526  ****
237c
238      if (iczero) 35260, 5260, 35260
239 5260 continue
240      ivcomp = (24/3)/3
241      go to 45260
24235260 ivdele = ivdele + 1
243      write (i02,80003) ivtnum
244      if (iczero) 45260, 5271, 45260
24545260 if (ivcomp - 2) 25260,15260,25260
24615260 ivpass = ivpass + 1
247      write (i02,80001) ivtnum
248      go to 5271
24925260 ivfail = ivfail + 1
250      ivcorr = 2
251      write (i02,80004) ivtnum, ivcomp ,ivcorr
252 5271 continue
253      ivtnum = 527
254c
255c      ****  test 527  ****
256c
257      if (iczero) 35270, 5270, 35270
258 5270 continue
259      ivcomp = (7151/3)/10
260      go to 45270
26135270 ivdele = ivdele + 1
262      write (i02,80003) ivtnum
263      if (iczero) 45270, 5281, 45270
26445270 if (ivcomp - 238) 25270,15270,25270
26515270 ivpass = ivpass + 1
266      write (i02,80001) ivtnum
267      go to 5281
26825270 ivfail = ivfail + 1
269      ivcorr = 238
270      write (i02,80004) ivtnum, ivcomp ,ivcorr
271 5281 continue
272      ivtnum = 528
273c
274c      ****  test 528  ****
275c
276      if (iczero) 35280, 5280, 35280
277 5280 continue
278      ivcomp = (-24/3)/3
279      go to 45280
28035280 ivdele = ivdele + 1
281      write (i02,80003) ivtnum
282      if (iczero) 45280, 5291, 45280
28345280 if (ivcomp + 2) 25280,15280,25280
28415280 ivpass = ivpass + 1
285      write (i02,80001) ivtnum
286      go to 5291
28725280 ivfail = ivfail + 1
288      ivcorr = -2
289      write (i02,80004) ivtnum, ivcomp ,ivcorr
290 5291 continue
291      ivtnum = 529
292c
293c      ****  test 529  ****
294c
295      if (iczero) 35290, 5290, 35290
296 5290 continue
297      ivcomp = (7151/(-3))/10
298      go to 45290
29935290 ivdele = ivdele + 1
300      write (i02,80003) ivtnum
301      if (iczero) 45290, 5301, 45290
30245290 if (ivcomp + 238) 25290,15290,25290
30315290 ivpass = ivpass + 1
304      write (i02,80001) ivtnum
305      go to 5301
30625290 ivfail = ivfail + 1
307      ivcorr = -238
308      write (i02,80004) ivtnum, ivcomp ,ivcorr
309 5301 continue
310      ivtnum = 530
311c
312c      ****  test 530  ****
313c
314      if (iczero) 35300, 5300, 35300
315 5300 continue
316      ivcomp = (15248/(-51))/(-23)
317      go to 45300
31835300 ivdele = ivdele + 1
319      write (i02,80003) ivtnum
320      if (iczero) 45300, 5311, 45300
32145300 if (ivcomp - 12) 25300,15300,25300
32215300 ivpass = ivpass + 1
323      write (i02,80001) ivtnum
324      go to 5311
32525300 ivfail = ivfail + 1
326      ivcorr = 12
327      write (i02,80004) ivtnum, ivcomp ,ivcorr
328 5311 continue
329      ivtnum = 531
330c
331c      ****  test 531  ****
332c
333      if (iczero) 35310, 5310, 35310
334 5310 continue
335      ivcomp = ((-27342)/(-4))/(-3)
336      go to 45310
33735310 ivdele = ivdele + 1
338      write (i02,80003) ivtnum
339      if (iczero) 45310, 5321, 45310
34045310 if (ivcomp + 2278) 25310,15310,25310
34115310 ivpass = ivpass + 1
342      write (i02,80001) ivtnum
343      go to 5321
34425310 ivfail = ivfail + 1
345      ivcorr = -2278
346      write (i02,80004) ivtnum, ivcomp ,ivcorr
347c
348c     test 532 through test 537 contain arithmetic assignment statements
349c     of the form   iv = ic/(ic/ic).
350c     no truncation of the result is required.  both positive and
351c     negative constants are included.
352c
353 5321 continue
354      ivtnum = 532
355c
356c      ****  test 532  ****
357c
358      if (iczero) 35320, 5320, 35320
359 5320 continue
360      ivcomp = 24/(8/4)
361      go to 45320
36235320 ivdele = ivdele + 1
363      write (i02,80003) ivtnum
364      if (iczero) 45320, 5331, 45320
36545320 if (ivcomp - 12) 25320,15320,25320
36615320 ivpass = ivpass + 1
367      write (i02,80001) ivtnum
368      go to 5331
36925320 ivfail = ivfail + 1
370      ivcorr = 12
371      write (i02,80004) ivtnum, ivcomp ,ivcorr
372 5331 continue
373      ivtnum = 533
374c
375c      ****  test 533  ****
376c
377      if (iczero) 35330, 5330, 35330
378 5330 continue
379      ivcomp = 7150/(25/5)
380      go to 45330
38135330 ivdele = ivdele + 1
382      write (i02,80003) ivtnum
383      if (iczero) 45330, 5341, 45330
38445330 if (ivcomp - 1430) 25330,15330,25330
38515330 ivpass = ivpass + 1
386      write (i02,80001) ivtnum
387      go to 5341
38825330 ivfail = ivfail + 1
389      ivcorr = 1430
390      write (i02,80004) ivtnum, ivcomp ,ivcorr
391 5341 continue
392      ivtnum = 534
393c
394c      ****  test 534  ****
395c
396      if (iczero) 35340, 5340, 35340
397 5340 continue
398      ivcomp = -24/(8/4)
399      go to 45340
40035340 ivdele = ivdele + 1
401      write (i02,80003) ivtnum
402      if (iczero) 45340, 5351, 45340
40345340 if (ivcomp + 12) 25340,15340,25340
40415340 ivpass = ivpass + 1
405      write (i02,80001) ivtnum
406      go to 5351
40725340 ivfail = ivfail + 1
408      ivcorr = -12
409      write (i02,80004) ivtnum, ivcomp ,ivcorr
410 5351 continue
411      ivtnum = 535
412c
413c      ****  test 535  ****
414c
415      if (iczero) 35350, 5350, 35350
416 5350 continue
417      ivcomp = 24/((-8)/4)
418      go to 45350
41935350 ivdele = ivdele + 1
420      write (i02,80003) ivtnum
421      if (iczero) 45350, 5361, 45350
42245350 if (ivcomp + 12) 25350,15350,25350
42315350 ivpass = ivpass + 1
424      write (i02,80001) ivtnum
425      go to 5361
42625350 ivfail = ivfail + 1
427      ivcorr = -12
428      write (i02,80004) ivtnum, ivcomp ,ivcorr
429 5361 continue
430      ivtnum = 536
431c
432c      ****  test 536  ****
433c
434      if (iczero) 35360, 5360, 35360
435 5360 continue
436      ivcomp = (-7150)/((-25)/(-5))
437      go to 45360
43835360 ivdele = ivdele + 1
439      write (i02,80003) ivtnum
440      if (iczero) 45360, 5371, 45360
44145360 if (ivcomp + 1430) 25360,15360,25360
44215360 ivpass = ivpass + 1
443      write (i02,80001) ivtnum
444      go to 5371
44525360 ivfail = ivfail + 1
446      ivcorr = -1430
447      write (i02,80004) ivtnum, ivcomp ,ivcorr
448 5371 continue
449      ivtnum = 537
450c
451c      ****  test 537  ****
452c
453      if (iczero) 35370, 5370, 35370
454 5370 continue
455      ivcomp = -7150/(25/(-5))
456      go to 45370
45735370 ivdele = ivdele + 1
458      write (i02,80003) ivtnum
459      if (iczero) 45370, 5381, 45370
46045370 if (ivcomp - 1430) 25370,15370,25370
46115370 ivpass = ivpass + 1
462      write (i02,80001) ivtnum
463      go to 5381
46425370 ivfail = ivfail + 1
465      ivcorr = 1430
466      write (i02,80004) ivtnum, ivcomp ,ivcorr
467c
468c     test 538 through test 543 contain arithmetic assigmment statements
469c     of the form   iv = ic/(ic/ic).
470c     truncation of the result is required.  both positive and
471c     negative constants are included.
472c
473 5381 continue
474      ivtnum = 538
475c
476c      ****  test 538  ****
477c
478      if (iczero) 35380, 5380, 35380
479 5380 continue
480      ivcomp = 29/(5/2)
481      go to 45380
48235380 ivdele = ivdele + 1
483      write (i02,80003) ivtnum
484      if (iczero) 45380, 5391, 45380
48545380 if (ivcomp - 14) 25380,15380,25380
48615380 ivpass = ivpass + 1
487      write (i02,80001) ivtnum
488      go to 5391
48925380 ivfail = ivfail + 1
490      ivcorr = 14
491      write (i02,80004) ivtnum, ivcomp ,ivcorr
492 5391 continue
493      ivtnum = 539
494c
495c      ****  test 539  ****
496c
497      if (iczero) 35390, 5390, 35390
498 5390 continue
499      ivcomp = 7154/(26/5)
500      go to 45390
50135390 ivdele = ivdele + 1
502      write (i02,80003) ivtnum
503      if (iczero) 45390, 5401, 45390
50445390 if (ivcomp - 1430) 25390,15390,25390
50515390 ivpass = ivpass + 1
506      write (i02,80001) ivtnum
507      go to 5401
50825390 ivfail = ivfail + 1
509      ivcorr = 1430
510      write (i02,80004) ivtnum, ivcomp ,ivcorr
511 5401 continue
512      ivtnum = 540
513c
514c      ****  test 540  ****
515c
516      if (iczero) 35400, 5400, 35400
517 5400 continue
518      ivcomp = -7154/(26/5)
519      go to 45400
52035400 ivdele = ivdele + 1
521      write (i02,80003) ivtnum
522      if (iczero) 45400, 5411, 45400
52345400 if (ivcomp + 1430) 25400,15400,25400
52415400 ivpass = ivpass + 1
525      write (i02,80001) ivtnum
526      go to 5411
52725400 ivfail = ivfail + 1
528      ivcorr = -1430
529      write (i02,80004) ivtnum, ivcomp ,ivcorr
530 5411 continue
531      ivtnum = 541
532c
533c      ****  test 541  ****
534c
535      if (iczero) 35410, 5410, 35410
536 5410 continue
537      ivcomp = (-7154)/((-26)/5)
538      go to 45410
53935410 ivdele = ivdele + 1
540      write (i02,80003) ivtnum
541      if (iczero) 45410, 5421, 45410
54245410 if (ivcomp - 1430) 25410,15410,25410
54315410 ivpass = ivpass + 1
544      write (i02,80001) ivtnum
545      go to 5421
54625410 ivfail = ivfail + 1
547      ivcorr = 1430
548      write (i02,80004) ivtnum, ivcomp ,ivcorr
549 5421 continue
550      ivtnum = 542
551c
552c      ****  test 542  ****
553c
554      if (iczero) 35420, 5420, 35420
555 5420 continue
556      ivcomp = 7154/((-26)/(-5))
557      go to 45420
55835420 ivdele = ivdele + 1
559      write (i02,80003) ivtnum
560      if (iczero) 45420, 5431, 45420
56145420 if (ivcomp - 1430) 25420,15420,25420
56215420 ivpass = ivpass + 1
563      write (i02,80001) ivtnum
564      go to 5431
56525420 ivfail = ivfail + 1
566      ivcorr = 1430
567      write (i02,80004) ivtnum, ivcomp ,ivcorr
568 5431 continue
569      ivtnum = 543
570c
571c      ****  test 543  ****
572c
573      if (iczero) 35430, 5430, 35430
574 5430 continue
575      ivcomp = (-7154)/((-26)/(-5))
576      go to 45430
57735430 ivdele = ivdele + 1
578      write (i02,80003) ivtnum
579      if (iczero) 45430, 5441, 45430
58045430 if (ivcomp + 1430) 25430,15430,25430
58115430 ivpass = ivpass + 1
582      write (i02,80001) ivtnum
583      go to 5441
58425430 ivfail = ivfail + 1
585      ivcorr = -1430
586      write (i02,80004) ivtnum, ivcomp ,ivcorr
587c
588c     test 544 through test 547 contain arithmetic assignment statements
589c     of the form   integer variable = integer variable/integer constant
590c
591 5441 continue
592      ivtnum = 544
593c
594c      ****  test 544  ****
595c
596      if (iczero) 35440, 5440, 35440
597 5440 continue
598      ivon01 = 75
599      ivcomp = ivon01/25
600      go to 45440
60135440 ivdele = ivdele + 1
602      write (i02,80003) ivtnum
603      if (iczero) 45440, 5451, 45440
60445440 if (ivcomp - 3) 25440,15440,25440
60515440 ivpass = ivpass + 1
606      write (i02,80001) ivtnum
607      go to 5451
60825440 ivfail = ivfail + 1
609      ivcorr = 3
610      write (i02,80004) ivtnum, ivcomp ,ivcorr
611 5451 continue
612      ivtnum = 545
613c
614c      ****  test 545  ****
615c
616      if (iczero) 35450, 5450, 35450
617 5450 continue
618      ivon01 = -3575
619      ivcomp = ivon01/25
620      go to 45450
62135450 ivdele = ivdele + 1
622      write (i02,80003) ivtnum
623      if (iczero) 45450, 5461, 45450
62445450 if (ivcomp + 143) 25450,15450,25450
62515450 ivpass = ivpass + 1
626      write (i02,80001) ivtnum
627      go to 5461
62825450 ivfail = ivfail + 1
629      ivcorr = -143
630      write (i02,80004) ivtnum, ivcomp ,ivcorr
631 5461 continue
632      ivtnum = 546
633c
634c      ****  test 546  ****
635c
636      if (iczero) 35460, 5460, 35460
637 5460 continue
638      ivon01 = 3575
639      ivcomp = ivon01/(-143)
640      go to 45460
64135460 ivdele = ivdele + 1
642      write (i02,80003) ivtnum
643      if (iczero) 45460, 5471, 45460
64445460 if (ivcomp + 25) 25460,15460,25460
64515460 ivpass = ivpass + 1
646      write (i02,80001) ivtnum
647      go to 5471
64825460 ivfail = ivfail + 1
649      ivcorr = -25
650      write (i02,80004) ivtnum, ivcomp ,ivcorr
651 5471 continue
652      ivtnum = 547
653c
654c      ****  test 547  ****
655c
656      if (iczero) 35470, 5470, 35470
657 5470 continue
658      ivon01 = 959
659      ivcomp = ivon01/120
660      go to 45470
66135470 ivdele = ivdele + 1
662      write (i02,80003) ivtnum
663      if (iczero) 45470, 5481, 45470
66445470 if (ivcomp -7)  25470,15470,25470
66515470 ivpass = ivpass + 1
666      write (i02,80001) ivtnum
667      go to 5481
66825470 ivfail = ivfail + 1
669      ivcorr = 7
670      write (i02,80004) ivtnum, ivcomp ,ivcorr
671c
672c     test 548 through test 551 contain arithmetic assignment statements
673c     of the form   integer variable =integer constant/integer variable.
674c
675 5481 continue
676      ivtnum = 548
677c
678c      ****  test 548  ****
679c
680      if (iczero) 35480, 5480, 35480
681 5480 continue
682      ivon02 = 25
683      ivcomp = 75/ivon02
684      go to 45480
68535480 ivdele = ivdele + 1
686      write (i02,80003) ivtnum
687      if (iczero) 45480, 5491, 45480
68845480 if (ivcomp - 3) 25480,15480,25480
68915480 ivpass = ivpass + 1
690      write (i02,80001) ivtnum
691      go to 5491
69225480 ivfail = ivfail + 1
693      ivcorr = 3
694      write (i02,80004) ivtnum, ivcomp ,ivcorr
695 5491 continue
696      ivtnum = 549
697c
698c      ****  test 549  ****
699c
700      if (iczero) 35490, 5490, 35490
701 5490 continue
702      ivon02 = -25
703      ivcomp = 3579/ivon02
704      go to 45490
70535490 ivdele = ivdele + 1
706      write (i02,80003) ivtnum
707      if (iczero) 45490, 5501, 45490
70845490 if (ivcomp + 143) 25490,15490,25490
70915490 ivpass = ivpass + 1
710      write (i02,80001) ivtnum
711      go to 5501
71225490 ivfail = ivfail + 1
713      ivcorr = -143
714      write (i02,80004) ivtnum, ivcomp ,ivcorr
715 5501 continue
716      ivtnum = 550
717c
718c      ****  test 550  ****
719c
720      if (iczero) 35500, 5500, 35500
721 5500 continue
722      ivon02 = -143
723      ivcomp = (-3575)/ivon02
724      go to 45500
72535500 ivdele = ivdele + 1
726      write (i02,80003) ivtnum
727      if (iczero) 45500, 5511, 45500
72845500 if (ivcomp - 25) 25500,15500,25500
72915500 ivpass = ivpass + 1
730      write (i02,80001) ivtnum
731      go to 5511
73225500 ivfail = ivfail + 1
733      ivcorr = 25
734      write (i02,80004) ivtnum, ivcomp ,ivcorr
735 5511 continue
736      ivtnum = 551
737c
738c      ****  test 551  ****
739c
740      if (iczero) 35510, 5510, 35510
741 5510 continue
742      ivon02 = 120
743      ivcomp = -959/ivon02
744      go to 45510
74535510 ivdele = ivdele + 1
746      write (i02,80003) ivtnum
747      if (iczero) 45510, 5521, 45510
74845510 if (ivcomp + 7) 25510,15510,25510
74915510 ivpass = ivpass + 1
750      write (i02,80001) ivtnum
751      go to 5521
75225510 ivfail = ivfail + 1
753      ivcorr = -7
754      write (i02,80004) ivtnum, ivcomp ,ivcorr
755c      ****    end of tests    ****
756 5521 continue
757c
758c     write page footings and run summaries
75999999 continue
760      write (i02,90002)
761      write (i02,90006)
762      write (i02,90002)
763      write (i02,90002)
764      write (i02,90007)
765      write (i02,90002)
766      write (i02,90008)  ivfail
767      write (i02,90009) ivpass
768      write (i02,90010) ivdele
769c
770c
771c     terminate routine execution
772      stop
773c
774c     format statements for page headers
77590000 format (1h1)
77690002 format (1h )
77790001 format (1h ,10x,34hfortran compiler validation system)
77890003 format (1h ,21x,11hversion 1.0)
77990004 format (1h ,10x,38hfor official use only - copyright 1978)
78090005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
78190006 format (1h ,5x,46h----------------------------------------------)
78290011 format (1h ,18x,17hsubset level test)
783c
784c     format statements for run summaries
78590008 format (1h ,15x,i5,19h errors encountered)
78690009 format (1h ,15x,i5,13h tests passed)
78790010 format (1h ,15x,i5,14h tests deleted)
788c
789c     format statements for test results
79080001 format (1h ,4x,i5,7x,4hpass)
79180002 format (1h ,4x,i5,7x,4hfail)
79280003 format (1h ,4x,i5,7x,7hdeleted)
79380004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
79480005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
795c
79690007 format (1h ,20x,20hend of program fm038)
797      end
798