xref: /original-bsd/usr.bin/f77/tests/tests/fm006.f (revision e59fb703)
1c        comment section
2c
3c     fm006
4c
5c         this routine tests arithmetic assignment statements of
6c     the form
7c                   integer variable = integer constant
8c                   integer variable = integer variable
9c         the integer constant may be unsigned, positive or negative.
10c
11c         an integer datum is always an exact representation of an
12c     integer value.  it may assume positive, negative and zero values.
13c     it may only assume integral values.
14c
15c         an integer constant is written as a nonempty string of digits.
16c     the constant is the digit string interpreted as a decimal number.
17c
18c         this routine also contains tests which check on the use of
19c     at least 16 bits for representing integer data values.  the
20c     constant values 32767 and -32766 are used in these tests.
21c
22c      references
23c        american national standard programming language fortran,
24c              x3.9-1978
25c
26c        section 4.3, integer type
27c        section 4.3.1, integer constant
28c        section 10.1, arithmetic assignment statements
29c
30c
31c      **********************************************************
32c
33c         a compiler validation system for the fortran language
34c     based on specifications as defined in american national standard
35c     programming language fortran x3.9-1978, has been developed by the
36c     federal cobol compiler testing service.  the fortran compiler
37c     validation system (fcvs) consists of audit routines, their related
38c     data, and an executive system.  each audit routine is a fortran
39c     program, subprogram or function which includes tests of specific
40c     language elements and supporting procedures indicating the result
41c     of executing these tests.
42c
43c         this particular program/subprogram/function contains features
44c     found only in the subset as defined in x3.9-1978.
45c
46c         suggestions and comments should be forwarded to -
47c
48c                  department of the navy
49c                  federal cobol compiler testing service
50c                  washington, d.c.  20376
51c
52c      **********************************************************
53c
54c
55c
56c     initialization section
57c
58c     initialize constants
59c      **************
60c     i01 contains the logical unit number for the card reader.
61      i01 = 5
62c     i02 contains the logical unit number for the printer.
63      i02 = 6
64c     system environment section
65c
66cx010    this card is replaced by contents of fexec x-010 control card.
67c     the cx010 card is for overriding the program default i01 = 5
68c     (unit number for card reader).
69cx011    this card is replaced by contents of fexec x-011 control card.
70c     the cx011 card is for systems which require additional
71c     fortran statements for files associated with cx010 above.
72c
73cx020    this card is replaced by contents of fexec x-020 control card.
74c     the cx020 card is for overriding the program default i02 = 6
75c     (unit number for printer).
76cx021    this card is replaced by contents of fexec x-021 control card.
77c     the cx021 card is for systems which require additional
78c     fortran statements for files associated with cx020 above.
79c
80      ivpass=0
81      ivfail=0
82      ivdele=0
83      iczero=0
84c
85c     write page headers
86      write (i02,90000)
87      write (i02,90001)
88      write (i02,90002)
89      write (i02, 90002)
90      write (i02,90003)
91      write (i02,90002)
92      write (i02,90004)
93      write (i02,90002)
94      write (i02,90011)
95      write (i02,90002)
96      write (i02,90002)
97      write (i02,90005)
98      write (i02,90006)
99      write (i02,90002)
100c     test section
101c
102c            arithmetic assignment statement
103c
104c     test 50 through test 61 contain statement of form
105c              integer variable = integer constant
106c
107c     tests 50 through 53 contain unsigned integer constant.
108c
109  501 continue
110      ivtnum =  50
111c
112c      ****  test 50  ****
113c
114      if (iczero) 30500,  500, 30500
115  500 continue
116      ivcomp=3
117      go to 40500
11830500 ivdele = ivdele + 1
119      write (i02,80003) ivtnum
120      if (iczero) 40500,  511, 40500
12140500 if (ivcomp - 3) 20500, 10500, 20500
12210500 ivpass = ivpass + 1
123      write (i02,80001) ivtnum
124      go to  511
12520500 ivfail = ivfail + 1
126      ivcorr = 3
127      write (i02,80004) ivtnum, ivcomp ,ivcorr
128  511 continue
129      ivtnum =  51
130c
131c      ****  test 51  ****
132c
133      if (iczero) 30510,  510, 30510
134  510 continue
135      ivcomp = 76
136      go to 40510
13730510 ivdele = ivdele + 1
138      write (i02,80003) ivtnum
139      if (iczero) 40510,  521, 40510
14040510 if (ivcomp - 76) 20510, 10510, 20510
14110510 ivpass = ivpass + 1
142      write (i02,80001) ivtnum
143      go to  521
14420510 ivfail = ivfail + 1
145      ivcorr = 76
146      write (i02,80004) ivtnum, ivcomp ,ivcorr
147  521 continue
148      ivtnum =  52
149c
150c      ****  test 52  ****
151c
152      if (iczero) 30520,  520, 30520
153  520 continue
154      ivcomp = 587
155      go to 40520
15630520 ivdele = ivdele + 1
157      write (i02,80003) ivtnum
158      if (iczero) 40520,  531, 40520
15940520 if (ivcomp - 587) 20520, 10520, 20520
16010520 ivpass = ivpass + 1
161      write (i02,80001) ivtnum
162      go to  531
16320520 ivfail = ivfail + 1
164      ivcorr = 587
165      write (i02,80004) ivtnum, ivcomp ,ivcorr
166  531 continue
167      ivtnum =  53
168c
169c      ****  test 53  ****
170c
171      if (iczero) 30530,  530, 30530
172  530 continue
173      ivcomp = 9999
174      go to 40530
17530530 ivdele = ivdele + 1
176      write (i02,80003) ivtnum
177      if (iczero) 40530,  541, 40530
17840530 if (ivcomp - 9999) 20530, 10530, 20530
17910530 ivpass = ivpass + 1
180      write (i02,80001) ivtnum
181      go to  541
18220530 ivfail = ivfail + 1
183      ivcorr = 9999
184      write (i02,80004) ivtnum, ivcomp ,ivcorr
185c
186c         tests 54 through 57 contain positive signed integers
187c
188  541 continue
189      ivtnum =  54
190c
191c      ****  test 54  ****
192c
193      if (iczero) 30540,  540, 30540
194  540 continue
195      ivcomp = +3
196      go to 40540
19730540 ivdele = ivdele + 1
198      write (i02,80003) ivtnum
199      if (iczero) 40540,  551, 40540
20040540 if (ivcomp - 3) 20540, 10540, 20540
20110540 ivpass = ivpass + 1
202      write (i02,80001) ivtnum
203      go to  551
20420540 ivfail = ivfail + 1
205      ivcorr = 3
206      write (i02,80004) ivtnum, ivcomp ,ivcorr
207  551 continue
208      ivtnum =  55
209c
210c      ****  test 55  ****
211c
212      if (iczero) 30550,  550, 30550
213  550 continue
214      ivcomp = +76
215      go to 40550
21630550 ivdele = ivdele + 1
217      write (i02,80003) ivtnum
218      if (iczero) 40550,  561, 40550
21940550 if (ivcomp - 76) 20550, 10550, 20550
22010550 ivpass = ivpass + 1
221      write (i02,80001) ivtnum
222      go to  561
22320550 ivfail = ivfail + 1
224      ivcorr = 76
225      write (i02,80004) ivtnum, ivcomp ,ivcorr
226  561 continue
227      ivtnum =  56
228c
229c      ****  test 56  ****
230c
231      if (iczero) 30560,  560, 30560
232  560 continue
233      ivcomp = +587
234      go to 40560
23530560 ivdele = ivdele + 1
236      write (i02,80003) ivtnum
237      if (iczero) 40560,  571, 40560
23840560 if (ivcomp - 587) 20560, 10560, 20560
23910560 ivpass = ivpass + 1
240      write (i02,80001) ivtnum
241      go to  571
24220560 ivfail = ivfail + 1
243      ivcorr = 587
244      write (i02,80004) ivtnum, ivcomp ,ivcorr
245  571 continue
246      ivtnum =  57
247c
248c      ****  test 57  ****
249c
250      if (iczero) 30570,  570, 30570
251  570 continue
252      ivcomp = +9999
253      go to 40570
25430570 ivdele = ivdele + 1
255      write (i02,80003) ivtnum
256      if (iczero) 40570,  581, 40570
25740570 if (ivcomp - 9999) 20570, 10570, 20570
25810570 ivpass = ivpass + 1
259      write (i02,80001) ivtnum
260      go to  581
26120570 ivfail = ivfail + 1
262      ivcorr = 9999
263      write (i02,80004) ivtnum, ivcomp ,ivcorr
264c
265c         tests 58 through 61 contain signed negative integers
266c
267  581 continue
268      ivtnum =  58
269c
270c      ****  test 58  ****
271c
272      if (iczero) 30580,  580, 30580
273  580 continue
274      ivcomp = -3
275      go to 40580
27630580 ivdele = ivdele + 1
277      write (i02,80003) ivtnum
278      if (iczero) 40580,  591, 40580
27940580 if (ivcomp + 3) 20580, 10580, 20580
28010580 ivpass = ivpass + 1
281      write (i02,80001) ivtnum
282      go to  591
28320580 ivfail = ivfail + 1
284      ivcorr = -3
285      write (i02,80004) ivtnum, ivcomp ,ivcorr
286  591 continue
287      ivtnum =  59
288c
289c      ****  test 59  ****
290c
291      if (iczero) 30590,  590, 30590
292  590 continue
293      ivcomp = -76
294      go to 40590
29530590 ivdele = ivdele + 1
296      write (i02,80003) ivtnum
297      if (iczero) 40590,  601, 40590
29840590 if (ivcomp + 76) 20590, 10590, 20590
29910590 ivpass = ivpass + 1
300      write (i02,80001) ivtnum
301      go to  601
30220590 ivfail = ivfail + 1
303      ivcorr = -76
304      write (i02,80004) ivtnum, ivcomp ,ivcorr
305  601 continue
306      ivtnum =  60
307c
308c      ****  test 60  ****
309c
310      if (iczero) 30600,  600, 30600
311  600 continue
312      ivcomp = -587
313      go to 40600
31430600 ivdele = ivdele + 1
315      write (i02,80003) ivtnum
316      if (iczero) 40600,  611, 40600
31740600 if (ivcomp + 587) 20600,10600,20600
31810600 ivpass = ivpass + 1
319      write (i02,80001) ivtnum
320      go to  611
32120600 ivfail = ivfail + 1
322      ivcorr = -587
323      write (i02,80004) ivtnum, ivcomp ,ivcorr
324  611 continue
325      ivtnum =  61
326c
327c      ****  test 61  ****
328c
329      if (iczero) 30610,  610, 30610
330  610 continue
331      ivcomp = -9999
332      go to 40610
33330610 ivdele = ivdele + 1
334      write (i02,80003) ivtnum
335      if (iczero) 40610,  621, 40610
33640610 if (ivcomp + 9999) 20610, 10610, 20610
33710610 ivpass = ivpass + 1
338      write (i02,80001) ivtnum
339      go to  621
34020610 ivfail = ivfail + 1
341      ivcorr = -9999
342      write (i02,80004) ivtnum, ivcomp ,ivcorr
343c
344c     test 62 through test 73 contain statement of form
345c         integer variable = integer variable
346c
347c     tests 62 through 65 contain unsigned values.
348c
349  621 continue
350      ivtnum =  62
351c
352c      ****  test 62  ****
353c
354      if (iczero) 30620,  620, 30620
355  620 continue
356      ivon01 = 3
357      ivcomp = ivon01
358      go to 40620
35930620 ivdele = ivdele + 1
360      write (i02,80003) ivtnum
361      if (iczero) 40620,  631, 40620
36240620 if (ivcomp - 3) 20620, 10620, 20620
36310620 ivpass = ivpass + 1
364      write (i02,80001) ivtnum
365      go to  631
36620620 ivfail = ivfail + 1
367      ivcorr = 3
368      write (i02,80004) ivtnum, ivcomp ,ivcorr
369  631 continue
370      ivtnum =  63
371c
372c      ****  test 63  ****
373c
374      if (iczero) 30630,  630, 30630
375  630 continue
376      ivon01 = 76
377      ivcomp = ivon01
378      go to 40630
37930630 ivdele = ivdele + 1
380      write (i02,80003) ivtnum
381      if (iczero) 40630,  641, 40630
38240630 if (ivcomp - 76) 20630, 10630, 20630
38310630 ivpass = ivpass + 1
384      write (i02,80001) ivtnum
385      go to  641
38620630 ivfail = ivfail + 1
387      ivcorr = 76
388      write (i02,80004) ivtnum, ivcomp ,ivcorr
389  641 continue
390      ivtnum =  64
391c
392c      ****  test 64  ****
393c
394      if (iczero) 30640,  640, 30640
395  640 continue
396      ivon01 = 587
397      ivcomp = ivon01
398      go to 40640
39930640 ivdele = ivdele + 1
400      write (i02,80003) ivtnum
401      if (iczero) 40640,  651, 40640
40240640 if (ivcomp - 587) 20640, 10640, 20640
40310640 ivpass = ivpass + 1
404      write (i02,80001) ivtnum
405      go to  651
40620640 ivfail = ivfail + 1
407      ivcorr = 587
408      write (i02,80004) ivtnum, ivcomp ,ivcorr
409  651 continue
410      ivtnum =  65
411c
412c      ****  test 65  ****
413c
414      if (iczero) 30650,  650, 30650
415  650 continue
416      ivon01 = 9999
417      ivcomp = ivon01
418      go to 40650
41930650 ivdele = ivdele + 1
420      write (i02,80003) ivtnum
421      if (iczero) 40650,  661, 40650
42240650 if (ivcomp - 9999)  20650, 10650, 20650
42310650 ivpass = ivpass + 1
424      write (i02,80001) ivtnum
425      go to  661
42620650 ivfail = ivfail + 1
427      ivcorr = 9999
428      write (i02,80004) ivtnum, ivcomp ,ivcorr
429c
430c     tests 66 through 69 contain positive values.
431c
432  661 continue
433      ivtnum =  66
434c
435c      ****  test 66  ****
436c
437      if (iczero) 30660,  660, 30660
438  660 continue
439      ivon01 = +3
440      ivcomp = ivon01
441      go to 40660
44230660 ivdele = ivdele + 1
443      write (i02,80003) ivtnum
444      if (iczero) 40660,  671, 40660
44540660 if (ivcomp - 3) 20660,10660,20660
44610660 ivpass = ivpass + 1
447      write (i02,80001) ivtnum
448      go to  671
44920660 ivfail = ivfail + 1
450      ivcorr = 3
451      write (i02,80004) ivtnum, ivcomp ,ivcorr
452  671 continue
453      ivtnum =  67
454c
455c      ****  test 67  ****
456c
457      if (iczero) 30670,  670, 30670
458  670 continue
459      ivon01 = +76
460      ivcomp = ivon01
461      go to 40670
46230670 ivdele = ivdele + 1
463      write (i02,80003) ivtnum
464      if (iczero) 40670,  681, 40670
46540670 if (ivcomp - 76) 20670, 10670, 20670
46610670 ivpass = ivpass + 1
467      write (i02,80001) ivtnum
468      go to  681
46920670 ivfail = ivfail + 1
470      ivcorr = 76
471      write (i02,80004) ivtnum, ivcomp ,ivcorr
472  681 continue
473      ivtnum =  68
474c
475c      ****  test 68  ****
476c
477      if (iczero) 30680,  680, 30680
478  680 continue
479      ivon01 = +587
480      ivcomp = ivon01
481      go to 40680
48230680 ivdele = ivdele + 1
483      write (i02,80003) ivtnum
484      if (iczero) 40680,  691, 40680
48540680 if (ivcomp - 587) 20680, 10680, 20680
48610680 ivpass = ivpass + 1
487      write (i02,80001) ivtnum
488      go to  691
48920680 ivfail = ivfail + 1
490      ivcorr = 587
491      write (i02,80004) ivtnum, ivcomp ,ivcorr
492  691 continue
493      ivtnum =  69
494c
495c      ****  test 69  ****
496c
497      if (iczero) 30690,  690, 30690
498  690 continue
499      ivon01 = +9999
500      ivcomp = ivon01
501      go to 40690
50230690 ivdele = ivdele + 1
503      write (i02,80003) ivtnum
504      if (iczero) 40690,  701, 40690
50540690 if (ivcomp - 9999) 20690, 10690, 20690
50610690 ivpass = ivpass + 1
507      write (i02,80001) ivtnum
508      go to  701
50920690 ivfail = ivfail + 1
510      ivcorr = 9999
511      write (i02,80004) ivtnum, ivcomp ,ivcorr
512c
513c     tests 70 through 73 contain negative values.
514c
515  701 continue
516      ivtnum =  70
517c
518c      ****  test 70  ****
519c
520      if (iczero) 30700,  700, 30700
521  700 continue
522      ivon01 = -3
523      ivcomp = ivon01
524      go to 40700
52530700 ivdele = ivdele + 1
526      write (i02,80003) ivtnum
527      if (iczero) 40700,  711, 40700
52840700 if (ivcomp + 3) 20700, 10700, 20700
52910700 ivpass = ivpass + 1
530      write (i02,80001) ivtnum
531      go to  711
53220700 ivfail = ivfail + 1
533      ivcorr = -3
534      write (i02,80004) ivtnum, ivcomp ,ivcorr
535  711 continue
536      ivtnum =  71
537c
538c      ****  test 71  ****
539c
540      if (iczero) 30710,  710, 30710
541  710 continue
542      ivon01 = -76
543      ivcomp = ivon01
544      go to 40710
54530710 ivdele = ivdele + 1
546      write (i02,80003) ivtnum
547      if (iczero) 40710,  721, 40710
54840710 if (ivcomp + 76) 20710, 10710, 20710
54910710 ivpass = ivpass + 1
550      write (i02,80001) ivtnum
551      go to  721
55220710 ivfail = ivfail + 1
553      ivcorr = -76
554      write (i02,80004) ivtnum, ivcomp ,ivcorr
555  721 continue
556      ivtnum =  72
557c
558c      ****  test 72  ****
559c
560      if (iczero) 30720,  720, 30720
561  720 continue
562      ivon01 = -587
563      ivcomp = ivon01
564      go to 40720
56530720 ivdele = ivdele + 1
566      write (i02,80003) ivtnum
567      if (iczero) 40720,  731, 40720
56840720 if (ivcomp + 587) 20720, 10720, 20720
56910720 ivpass = ivpass + 1
570      write (i02,80001) ivtnum
571      go to  731
57220720 ivfail = ivfail + 1
573      ivcorr = -587
574      write (i02,80004) ivtnum, ivcomp ,ivcorr
575  731 continue
576      ivtnum =  73
577c
578c      ****  test 73  ****
579c
580      if (iczero) 30730,  730, 30730
581  730 continue
582      ivon01 = -9999
583      ivcomp = ivon01
584      go to 40730
58530730 ivdele = ivdele + 1
586      write (i02,80003) ivtnum
587      if (iczero) 40730,  741, 40730
58840730 if (ivcomp + 9999) 20730, 10730, 20730
58910730 ivpass = ivpass + 1
590      write (i02,80001) ivtnum
591      go to  741
59220730 ivfail = ivfail + 1
593      ivcorr = -9999
594      write (i02,80004) ivtnum, ivcomp ,ivcorr
595c
596c     tests 74 through 79 check that at least 16 bits are used in the
597c     internal representation of an integer datum.  this includes one
598c     bit for the sign.  the largest integer used is 32767 =2**15 - 1,
599c     and the smallest integer used is -32766.
600c
601  741 continue
602      ivtnum =  74
603c
604c      ****  test 74  ****
605c             unsigned constant 32767
606c
607      if (iczero) 30740,  740, 30740
608  740 continue
609      ivcomp = 32767
610      go to 40740
61130740 ivdele = ivdele + 1
612      write (i02,80003) ivtnum
613      if (iczero) 40740,  751, 40740
61440740 if (ivcomp - 32767) 20740, 10740, 20740
61510740 ivpass = ivpass + 1
616      write (i02,80001) ivtnum
617      go to  751
61820740 ivfail = ivfail + 1
619      ivcorr = 32767
620      write (i02,80004) ivtnum, ivcomp ,ivcorr
621  751 continue
622      ivtnum =  75
623c
624c      ****  test 75  ****
625c             signed positive constant +32767
626c
627      if (iczero) 30750,  750, 30750
628  750 continue
629      ivcomp = +32767
630      go to 40750
63130750 ivdele = ivdele + 1
632      write (i02,80003) ivtnum
633      if (iczero) 40750,  761, 40750
63440750 if (ivcomp - 32767) 20750, 10750, 20750
63510750 ivpass = ivpass + 1
636      write (i02,80001) ivtnum
637      go to  761
63820750 ivfail = ivfail + 1
639      ivcorr = 32767
640      write (i02,80004) ivtnum, ivcomp ,ivcorr
641  761 continue
642      ivtnum =  76
643c
644c      ****  test 76  ****
645c             signed negative constant -32766
646c
647      if (iczero) 30760,  760, 30760
648  760 continue
649      ivcomp = - 32766
650      go to 40760
65130760 ivdele = ivdele + 1
652      write (i02,80003) ivtnum
653      if (iczero) 40760,  771, 40760
65440760 if (ivcomp + 32766) 20760, 10760, 20760
65510760 ivpass = ivpass + 1
656      write (i02,80001) ivtnum
657      go to  771
65820760 ivfail = ivfail + 1
659      ivcorr = -32766
660      write (i02,80004) ivtnum, ivcomp ,ivcorr
661  771 continue
662      ivtnum =  77
663c
664c      ****  test 77  ****
665c
666      if (iczero) 30770,  770, 30770
667  770 continue
668      ivon01 = 32767
669      ivcomp = ivon01
670      go to 40770
67130770 ivdele = ivdele + 1
672      write (i02,80003) ivtnum
673      if (iczero) 40770,  781, 40770
67440770 if (ivcomp - 32767) 20770, 10770, 20770
67510770 ivpass = ivpass + 1
676      write (i02,80001) ivtnum
677      go to  781
67820770 ivfail = ivfail + 1
679      ivcorr = 32767
680      write (i02,80004) ivtnum, ivcomp ,ivcorr
681  781 continue
682      ivtnum =  78
683c
684c      ****  test 78  ****
685c
686      if (iczero) 30780,  780, 30780
687  780 continue
688      ivon01 = +32767
689      ivcomp = ivon01
690      go to 40780
69130780 ivdele = ivdele + 1
692      write (i02,80003) ivtnum
693      if (iczero) 40780,  791, 40780
69440780 if (ivcomp - 32767) 20780, 10780, 20780
69510780 ivpass = ivpass + 1
696      write (i02,80001) ivtnum
697      go to  791
69820780 ivfail = ivfail + 1
699      ivcorr = 32767
700      write (i02,80004) ivtnum, ivcomp ,ivcorr
701  791 continue
702      ivtnum =  79
703c
704c      ****  test 79  ****
705c
706      if (iczero) 30790,  790, 30790
707  790 continue
708      ivon01 = -32766
709      ivcomp=ivon01
710      go to 40790
71130790 ivdele = ivdele + 1
712      write (i02,80003) ivtnum
713      if (iczero) 40790,  801, 40790
71440790 if (ivcomp + 32766) 20790, 10790, 20790
71510790 ivpass = ivpass + 1
716      write (i02,80001) ivtnum
717      go to  801
71820790 ivfail = ivfail + 1
719      ivcorr = -32766
720      write (i02,80004) ivtnum, ivcomp ,ivcorr
721  801 continue
722c
723c     write page footings and run summaries
72499999 continue
725      write (i02,90002)
726      write (i02,90006)
727      write (i02,90002)
728      write (i02,90002)
729      write (i02,90007)
730      write (i02,90002)
731      write (i02,90008)  ivfail
732      write (i02,90009) ivpass
733      write (i02,90010) ivdele
734c
735c
736c     terminate routine execution
737      stop
738c
739c     format statements for page headers
74090000 format (1h1)
74190002 format (1h )
74290001 format (1h ,10x,34hfortran compiler validation system)
74390003 format (1h ,21x,11hversion 1.0)
74490004 format (1h ,10x,38hfor official use only - copyright 1978)
74590005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
74690006 format (1h ,5x,46h----------------------------------------------)
74790011 format (1h ,18x,17hsubset level test)
748c
749c     format statements for run summaries
75090008 format (1h ,15x,i5,19h errors encountered)
75190009 format (1h ,15x,i5,13h tests passed)
75290010 format (1h ,15x,i5,14h tests deleted)
753c
754c     format statements for test results
75580001 format (1h ,4x,i5,7x,4hpass)
75680002 format (1h ,4x,i5,7x,4hfail)
75780003 format (1h ,4x,i5,7x,7hdeleted)
75880004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
75980005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
760c
76190007 format (1h ,20x,20hend of program fm006)
762      end
763