xref: /original-bsd/usr.bin/f77/tests/tests/fm017.f (revision e22fe102)
1c
2c     comment section.
3c
4c     fm017
5c
6c             this routine continues tests of the fortran
7c     logical    if statement in all of the various forms.    the
8c     following logical operands are used for this routine - logical
9c     constants, logical variables, logical array elements, and
10c     arithmetic expressions with various relational operators.  both
11c     the true and false branches are tested in the series of tests.
12c
13c      references
14c        american national standard programming language fortran,
15c              x3.9-1978
16c
17c        section 4.7.1, logical constant
18c        section 6, expressions
19c        section 6.1, arithmetic expressions
20c        section 6.3, relational expressions
21c        section 6.4, logical expressions
22c        section 6.6, evaluation of expressions
23c        section 10, assignment statements
24c        section 10.2, logical assignment statement
25c        section 11.5, logical if statement
26c
27      dimension iadn11(3)
28      logical latn1a(2), lctnt1, lctnt2
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)
99      ivtnum = 170
100c
101c      ****  test 170  ****
102c     test 170  -  relational expression.  integer variable reference.
103c           false path.  .lt.
104c
105c
106      if (iczero) 31700, 1700, 31700
107 1700 continue
108      ivon01 = 3
109      ivon02 = 1
110      if ( 76 .lt. ivon01 )  ivon02 = 0
111      go to 41700
11231700 ivdele = ivdele + 1
113      write (i02,80003) ivtnum
114      if (iczero) 41700, 1711, 41700
11541700 if ( ivon02 - 1 )  21700, 11700, 21700
11611700 ivpass = ivpass + 1
117      write (i02,80001) ivtnum
118      go to 1711
11921700 ivfail = ivfail + 1
120      ivcomp = ivon02
121      ivcorr = 1
122      write (i02,80004) ivtnum, ivcomp ,ivcorr
123 1711 continue
124      ivtnum = 171
125c
126c      ****  test 171  ****
127c     test 171  -  relational expression.  integer variable reference.
128c           false path.  .le.
129c
130c
131      if (iczero) 31710, 1710, 31710
132 1710 continue
133      ivon01 = 3
134      ivon02 = 1
135      if ( 76 .le. ivon01 )  ivon02 = 0
136      go to 41710
13731710 ivdele = ivdele + 1
138      write (i02,80003) ivtnum
139      if (iczero) 41710, 1721, 41710
14041710 if ( ivon02 - 1 )  21710, 11710, 21710
14111710 ivpass = ivpass + 1
142      write (i02,80001) ivtnum
143      go to 1721
14421710 ivfail = ivfail + 1
145      ivcomp = ivon02
146      ivcorr = 1
147      write (i02,80004) ivtnum, ivcomp ,ivcorr
148 1721 continue
149      ivtnum = 172
150c
151c      ****  test 172  ****
152c     test 172  -  relational expressional.  integer variable reference.
153c           false path.  .eq.
154c
155c
156      if (iczero) 31720, 1720, 31720
157 1720 continue
158      ivon01 = 587
159      ivon02 = 1
160      if ( 9999 .eq. ivon01 )  ivon02 = 0
161      go to 41720
16231720 ivdele = ivdele + 1
163      write (i02,80003) ivtnum
164      if (iczero) 41720, 1731, 41720
16541720 if ( ivon02 - 1 )  21720, 11720, 21720
16611720 ivpass = ivpass + 1
167      write (i02,80001) ivtnum
168      go to 1731
16921720 ivfail = ivfail + 1
170      ivcomp = ivon02
171      ivcorr = 1
172      write (i02,80004) ivtnum, ivcomp ,ivcorr
173 1731 continue
174      ivtnum = 173
175c
176c      ****  test 173  ****
177c     test 173  -  relational expression.  integer variable reference.
178c           false path.  .ne.
179c
180c
181      if (iczero) 31730, 1730, 31730
182 1730 continue
183      ivon01 = 3
184      ivon02 = 1
185      if ( 3 .ne. ivon01 )  ivon02 = 0
186      go to 41730
18731730 ivdele = ivdele + 1
188      write (i02,80003) ivtnum
189      if (iczero) 41730, 1741, 41730
19041730 if ( ivon02 - 1 )  21730, 11730, 21730
19111730 ivpass = ivpass + 1
192      write (i02,80001) ivtnum
193      go to 1741
19421730 ivfail = ivfail + 1
195      ivcomp = ivon02
196      ivcorr = 1
197      write (i02,80004) ivtnum, ivcomp ,ivcorr
198 1741 continue
199      ivtnum = 174
200c
201c      ****  test 174  ****
202c     test 174  -  relational expression.  integer variable reference.
203c           false path.  .gt.
204c
205c
206      if (iczero) 31740, 1740, 31740
207 1740 continue
208      ivon01 = 32767
209      ivon02 = 1
210      if ( 76 .gt. ivon01 )  ivon02 = 0
211      go to 41740
21231740 ivdele = ivdele + 1
213      write (i02,80003) ivtnum
214      if (iczero) 41740, 1751, 41740
21541740 if ( ivon02 - 1 )  21740, 11740, 21740
21611740 ivpass = ivpass + 1
217      write (i02,80001) ivtnum
218      go to 1751
21921740 ivfail = ivfail + 1
220      ivcomp = ivon02
221      ivcorr = 1
222      write (i02,80004) ivtnum, ivcomp ,ivcorr
223 1751 continue
224      ivtnum = 175
225c
226c      ****  test 175  ****
227c     test 175  -  relational expression.  integer variable reference.
228c           false path.  .ge.
229c
230c
231      if (iczero) 31750, 1750, 31750
232 1750 continue
233      ivon01 = 32767
234      ivon02 = 1
235      if ( 76 .ge. ivon01 )  ivon02 = 0
236      go to 41750
23731750 ivdele = ivdele + 1
238      write (i02,80003) ivtnum
239      if (iczero) 41750, 1761, 41750
24041750 if ( ivon02 - 1 )  21750, 11750, 21750
24111750 ivpass = ivpass + 1
242      write (i02,80001) ivtnum
243      go to 1761
24421750 ivfail = ivfail + 1
245      ivcomp = ivon02
246      ivcorr = 1
247      write (i02,80004) ivtnum, ivcomp ,ivcorr
248 1761 continue
249      ivtnum = 176
250c
251c      ****  test 176  ****
252c     test 176  -  relational expression.  (ivr)  (ro)  (ic)
253c           integer variable reference with integer constant
254c           true path.  .lt.
255c
256c
257      if (iczero) 31760, 1760, 31760
258 1760 continue
259      ivon01 = 3
260      ivon02 = 0
261      if ( ivon01 .lt. 76 )  ivon02 = 1
262      go to 41760
26331760 ivdele = ivdele + 1
264      write (i02,80003) ivtnum
265      if (iczero) 41760, 1771, 41760
26641760 if ( ivon02 - 1 )  21760, 11760, 21760
26711760 ivpass = ivpass + 1
268      write (i02,80001) ivtnum
269      go to 1771
27021760 ivfail = ivfail + 1
271      ivcomp = ivon02
272      ivcorr = 1
273      write (i02,80004) ivtnum, ivcomp ,ivcorr
274 1771 continue
275      ivtnum = 177
276c
277c      ****  test 177  ****
278c     test 177  - like test 176.  false path.  .eq.
279c
280c
281      if (iczero) 31770, 1770, 31770
282 1770 continue
283      ivon01 = 587
284      ivon02 = 1
285      if ( ivon01 .eq. 9999 )  ivon02=0
286      go to 41770
28731770 ivdele = ivdele + 1
288      write (i02,80003) ivtnum
289      if (iczero) 41770, 1781, 41770
29041770 if ( ivon02 - 1 )  21770, 11770, 21770
29111770 ivpass = ivpass + 1
292      write (i02,80001) ivtnum
293      go to 1781
29421770 ivfail = ivfail + 1
295      ivcomp = ivon02
296      ivcorr = 1
297      write (i02,80004) ivtnum, ivcomp ,ivcorr
298 1781 continue
299      ivtnum = 178
300c
301c      ****  test 178  ****
302c     test 178  -  like test 176.  true path.  .ge.
303c
304c
305      if (iczero) 31780, 1780, 31780
306 1780 continue
307      ivon01 = 32767
308      ivon02 = 0
309      if ( ivon01 .ge. 32767 )  ivon02 = 1
310      go to 41780
31131780 ivdele = ivdele + 1
312      write (i02,80003) ivtnum
313      if (iczero) 41780, 1791, 41780
31441780 if ( ivon02 - 1 )  21780, 11780, 21780
31511780 ivpass = ivpass + 1
316      write (i02,80001) ivtnum
317      go to 1791
31821780 ivfail = ivfail + 1
319      ivcomp = ivon02
320      ivcorr = 1
321      write (i02,80004) ivtnum, ivcomp ,ivcorr
322 1791 continue
323      ivtnum = 179
324c
325c      ****  test 179  ****
326c     test 179  -  relational expression.  integer array element
327c           reference.  (ic)  (ro)  (iaer)   false path.  .lt.
328c
329c
330      if (iczero) 31790, 1790, 31790
331 1790 continue
332      ivon01 = 1
333      iadn11(1) = 3
334      if ( 76 .lt. iadn11(1) )  ivon01 = 0
335      go to 41790
33631790 ivdele = ivdele + 1
337      write (i02,80003) ivtnum
338      if (iczero) 41790, 1801, 41790
33941790 if ( ivon01 - 1 )  21790, 11790, 21790
34011790 ivpass = ivpass + 1
341      write (i02,80001) ivtnum
342      go to 1801
34321790 ivfail = ivfail + 1
344      ivcomp = ivon01
345      ivcorr = 1
346      write (i02,80004) ivtnum, ivcomp ,ivcorr
347 1801 continue
348      ivtnum = 180
349c
350c      ****  test 180  ****
351c     test 180  -  like test 179.  true path.  .le.
352c
353c
354      if (iczero) 31800, 1800, 31800
355 1800 continue
356      ivon01 = 0
357      iadn11(2) = 587
358      if ( 587 .le. iadn11(2) )  ivon01 = 1
359      go to 41800
36031800 ivdele = ivdele + 1
361      write (i02,80003) ivtnum
362      if (iczero) 41800, 1811, 41800
36341800 if ( ivon01 - 1 )  21800, 11800, 21800
36411800 ivpass = ivpass + 1
365      write (i02,80001) ivtnum
366      go to 1811
36721800 ivfail = ivfail + 1
368      ivcomp = ivon01
369      ivcorr = 1
370      write (i02,80004) ivtnum, ivcomp ,ivcorr
371 1811 continue
372      ivtnum = 181
373c
374c      ****  test 181  ****
375c     test 181  -  like test 179.    false path.  .ge.
376c
377c
378      if (iczero) 31810, 1810, 31810
379 1810 continue
380      ivon01 = 1
381      iadn11(3) = 32767
382      if ( 76 .ge. iadn11(3) )  ivon01 = 0
383      go to 41810
38431810 ivdele = ivdele + 1
385      write (i02,80003) ivtnum
386      if (iczero) 41810, 1821, 41810
38741810 if ( ivon01 - 1 )  21810, 11810, 21810
38811810 ivpass = ivpass + 1
389      write (i02,80001) ivtnum
390      go to 1821
39121810 ivfail = ivfail + 1
392      ivcomp = ivon01
393      ivcorr = 1
394      write (i02,80004) ivtnum, ivcomp ,ivcorr
395 1821 continue
396      ivtnum = 182
397c
398c      ****  test 182  ****
399c     test 182  -  relational expression  (iaer)  (ro)  (ic).  true
400c           path.  .eq.
401c
402c
403      if (iczero) 31820, 1820, 31820
404 1820 continue
405      ivon01 = 0
406      iadn11(2) = 32767
407      if ( iadn11(2) .eq. 32767 )  ivon01 = 1
408      go to 41820
40931820 ivdele = ivdele + 1
410      write (i02,80003) ivtnum
411      if (iczero) 41820, 1831, 41820
41241820 if ( ivon01 - 1 )  21820, 11820, 21820
41311820 ivpass = ivpass + 1
414      write (i02,80001) ivtnum
415      go to 1831
41621820 ivfail = ivfail + 1
417      ivcomp = ivon01
418      ivcorr = 1
419      write (i02,80004) ivtnum, ivcomp ,ivcorr
420 1831 continue
421      ivtnum = 183
422c
423c      ****  test 183  ****
424c     test 183  -  relational expression  (ivr)  (ro)  (iaer)
425c           false path.  .ne.
426c
427c
428      if (iczero) 31830, 1830, 31830
429 1830 continue
430      ivon01 = 1
431      ivon02 = 587
432      iadn11(1) = 587
433      if ( ivon02 .ne. iadn11(1) )  ivon01 = 0
434      go to 41830
43531830 ivdele = ivdele + 1
436      write (i02,80003) ivtnum
437      if (iczero) 41830, 1841, 41830
43841830 if ( ivon01 - 1 )  21830, 11830, 21830
43911830 ivpass = ivpass + 1
440      write (i02,80001) ivtnum
441      go to 1841
44221830 ivfail = ivfail + 1
443      ivcomp = ivon01
444      ivcorr = 1
445      write (i02,80004) ivtnum, ivcomp ,ivcorr
446 1841 continue
447      ivtnum = 184
448c
449c      ****  test 184  ****
450c     test 184  -  relational expression  (iaer)  (ro)  (ivr)
451c           true path  .ne.
452c
453c
454      if (iczero) 31840, 1840, 31840
455 1840 continue
456      ivon01 = 0
457      iadn11(3) = 3
458      ivon02 = 32767
459      if ( iadn11(3) .ne. ivon02 )  ivon01 = 1
460      go to 41840
46131840 ivdele = ivdele + 1
462      write (i02,80003) ivtnum
463      if (iczero) 41840, 1851, 41840
46441840 if ( ivon01 - 1 )  21840, 11840, 21840
46511840 ivpass = ivpass + 1
466      write (i02,80001) ivtnum
467      go to 1851
46821840 ivfail = ivfail + 1
469      ivcomp = ivon01
470      ivcorr = 1
471      write (i02,80004) ivtnum, ivcomp ,ivcorr
472 1851 continue
473      ivtnum = 185
474c
475c      ****  test 185  ****
476c     test 185  -  test of parentheses  ( (le) )
477c           true path  logical constant  .true.
478c
479c
480      if (iczero) 31850, 1850, 31850
481 1850 continue
482      ivon01 = 0
483      if ( ( .true. ) )  ivon01 = 1
484      go to 41850
48531850 ivdele = ivdele + 1
486      write (i02,80003) ivtnum
487      if (iczero) 41850, 1861, 41850
48841850 if ( ivon01 - 1 )  21850, 11850, 21850
48911850 ivpass = ivpass + 1
490      write (i02,80001) ivtnum
491      go to 1861
49221850 ivfail = ivfail + 1
493      ivcomp = ivon01
494      ivcorr = 1
495      write (i02,80004) ivtnum, ivcomp ,ivcorr
496 1861 continue
497      ivtnum = 186
498c
499c      ****  test 186  ****
500c     test 186  -  like test 185
501c           false path  logical constant  .false.
502c
503c
504      if (iczero) 31860, 1860, 31860
505 1860 continue
506      ivon01 = 1
507      if ((( .false. )))  ivon01 = 0
508      go to 41860
50931860 ivdele = ivdele + 1
510      write (i02,80003) ivtnum
511      if (iczero) 41860, 1871, 41860
51241860 if ( ivon01 - 1 )  21860, 11860, 21860
51311860 ivpass = ivpass + 1
514      write (i02,80001) ivtnum
515      go to 1871
51621860 ivfail = ivfail + 1
517      ivcomp = ivon01
518      ivcorr = 1
519      write (i02,80004) ivtnum, ivcomp ,ivcorr
520 1871 continue
521      ivtnum = 187
522c
523c      ****  test 187  ****
524c     test 187  -  parens around logical variable reference  ( (lvr) )
525c           true path
526c
527c
528      if (iczero) 31870, 1870, 31870
529 1870 continue
530      ivon01 = 0
531      lctnt1 = .true.
532      if ( ( lctnt1 ) )  ivon01 = 1
533      go to 41870
53431870 ivdele = ivdele + 1
535      write (i02,80003) ivtnum
536      if (iczero) 41870, 1881, 41870
53741870 if ( ivon01 - 1 )  21870, 11870, 21870
53811870 ivpass = ivpass + 1
539      write (i02,80001) ivtnum
540      go to 1881
54121870 ivfail = ivfail + 1
542      ivcomp = ivon01
543      ivcorr = 1
544      write (i02,80004) ivtnum, ivcomp ,ivcorr
545 1881 continue
546      ivtnum = 188
547c
548c      ****  test  188  ****
549c     test 188  -  parens around logical array reference  ( ( laer ) )
550c           false path
551c
552      if (iczero) 31880, 1880, 31880
553 1880 continue
554      ivon01 = 1
555      latn1a(1) = .false.
556      if ( ( latn1a(1) ) )  ivon01 = 0
557      go to 41880
55831880 ivdele = ivdele + 1
559      write (i02,80003) ivtnum
560      if (iczero) 41880, 1891, 41880
56141880 if ( ivon01 - 1 )  21880, 11880, 21880
56211880 ivpass = ivpass + 1
563      write (i02,80001) ivtnum
564      go to 1891
56521880 ivfail = ivfail + 1
566      ivcomp = ivon01
567      ivcorr = 1
568      write (i02,80004) ivtnum, ivcomp ,ivcorr
569 1891 continue
570      ivtnum = 189
571c
572c      ****  test 189  ****
573c     test 189  -  use of .not. with a logical primary  .not. (lp)
574c           false path  .not. .true.
575c
576c
577      if (iczero) 31890, 1890, 31890
578 1890 continue
579      ivon01 = 1
580      if ( .not. .true. )  ivon01 = 0
581      go to 41890
58231890 ivdele = ivdele + 1
583      write (i02,80003) ivtnum
584      if (iczero) 41890, 1901, 41890
58541890 if ( ivon01 - 1 )  21890, 11890, 21890
58611890 ivpass = ivpass + 1
587      write (i02,80001) ivtnum
588      go to 1901
58921890 ivfail = ivfail + 1
590      ivcomp = ivon01
591      ivcorr = 1
592      write (i02,80004) ivtnum, ivcomp ,ivcorr
593 1901 continue
594      ivtnum = 190
595c
596c      ****  test 190  ****
597c     test 190  -  like test 189  true path  .not. .false.
598c
599c
600      if (iczero) 31900, 1900, 31900
601 1900 continue
602      ivon01 = 0
603      if ( .not. .false. )  ivon01 = 1
604      go to 41900
60531900 ivdele = ivdele + 1
606      write (i02,80003) ivtnum
607      if (iczero) 41900, 1911, 41900
60841900 if ( ivon01 - 1 )  21900, 11900, 21900
60911900 ivpass = ivpass + 1
610      write (i02,80001) ivtnum
611      go to 1911
61221900 ivfail = ivfail + 1
613      ivcomp = ivon01
614      ivcorr = 1
615      write (i02,80004) ivtnum, ivcomp ,ivcorr
616 1911 continue
617      ivtnum = 191
618c
619c      ****  test 191  ****
620c     test 191  -  tests .not. with a logical variable set to .false.
621c           in a logical assignment statement     true path
622c
623c
624      if (iczero) 31910, 1910, 31910
625 1910 continue
626      ivon01 = 0
627      lctnt1 = .false.
628      if ( .not. lctnt1 )  ivon01 = 1
629      go to 41910
63031910 ivdele = ivdele + 1
631      write (i02,80003) ivtnum
632      if (iczero) 41910, 1921, 41910
63341910 if ( ivon01 - 1 )  21910, 11910, 21910
63411910 ivpass = ivpass + 1
635      write (i02,80001) ivtnum
636      go to 1921
63721910 ivfail = ivfail + 1
638      ivcomp = ivon01
639      ivcorr = 1
640      write (i02,80004) ivtnum, ivcomp ,ivcorr
641 1921 continue
642      ivtnum = 192
643c
644c      ****  test 192  ****
645c     test 192  -  like test 191 only uses a logical array element
646c           set to .false. in a logical assignment statement    true
647c
648c
649      if (iczero) 31920, 1920, 31920
650 1920 continue
651      ivon01 = 0
652      latn1a(2) = .false.
653      if ( .not. latn1a(2) )  ivon01 = 1
654      go to 41920
65531920 ivdele = ivdele + 1
656      write (i02,80003) ivtnum
657      if (iczero) 41920, 1931, 41920
65841920 if ( ivon01 - 1 )  21920, 11920, 21920
65911920 ivpass = ivpass + 1
660      write (i02,80001) ivtnum
661      go to 1931
66221920 ivfail = ivfail + 1
663      ivcomp = ivon01
664      ivcorr = 1
665      write (i02,80004) ivtnum, ivcomp ,ivcorr
666 1931 continue
667      ivtnum = 193
668c
669c      ****  test 193  ****
670c     test 193  -  use of logical .and.    (lt) .and. (lf)
671c           uses two logical variables each set to .false.
672c           false  .and.  false    false path
673c
674c
675      if (iczero) 31930, 1930, 31930
676 1930 continue
677      ivon01 = 1
678      lctnt1 = .false.
679      lctnt2 = .false.
680      if ( lctnt1 .and. lctnt2 )  ivon01 = 0
681      go to 41930
68231930 ivdele = ivdele + 1
683      write (i02,80003) ivtnum
684      if (iczero) 41930, 1941, 41930
68541930 if ( ivon01 - 1 )  21930, 11930, 21930
68611930 ivpass = ivpass + 1
687      write (i02,80001) ivtnum
688      go to 1941
68921930 ivfail = ivfail + 1
690      ivcomp = ivon01
691      ivcorr = 1
692      write (i02,80004) ivtnum, ivcomp ,ivcorr
693 1941 continue
694      ivtnum = 194
695c
696c      ****  test 194  ****
697c     test 194  -  like test 193    false  .and.  true   false path
698c
699c
700      if (iczero) 31940, 1940, 31940
701 1940 continue
702      ivon01 = 1
703      lctnt1 = .false.
704      lctnt2 = .true.
705      if ( lctnt1 .and. lctnt2 )  ivon01 = 0
706      go to 41940
70731940 ivdele = ivdele + 1
708      write (i02,80003) ivtnum
709      if (iczero) 41940, 1951, 41940
71041940 if ( ivon01 - 1 )  21940, 11940, 21940
71111940 ivpass = ivpass + 1
712      write (i02,80001) ivtnum
713      go to 1951
71421940 ivfail = ivfail + 1
715      ivcomp = ivon01
716      ivcorr = 1
717      write (i02,80004) ivtnum, ivcomp ,ivcorr
718 1951 continue
719      ivtnum = 195
720c
721c      ****  test 195  ****
722c     test 195  -  like test 193   true  .and.  false     false path
723c
724c
725      if (iczero) 31950, 1950, 31950
726 1950 continue
727      ivon01 = 1
728      lctnt1 = .true.
729      lctnt2 = .false.
730      if ( lctnt1 .and. lctnt2 )  ivon01 = 0
731      go to 41950
73231950 ivdele = ivdele + 1
733      write (i02,80003) ivtnum
734      if (iczero) 41950, 1961, 41950
73541950 if ( ivon01 - 1 )  21950, 11950, 21950
73611950 ivpass = ivpass + 1
737      write (i02,80001) ivtnum
738      go to 1961
73921950 ivfail = ivfail + 1
740      ivcomp = ivon01
741      ivcorr = 1
742      write (i02,80004) ivtnum, ivcomp ,ivcorr
743 1961 continue
744      ivtnum = 196
745c
746c      ****  test 196  ****
747c     test 196  -  like test 193   true  .and.  true    true path
748c
749c
750      if (iczero) 31960, 1960, 31960
751 1960 continue
752      ivon01 = 0
753      lctnt1 = .true.
754      lctnt2 = .true.
755      if ( lctnt1 .and. lctnt2 )  ivon01 = 1
756      go to 41960
75731960 ivdele = ivdele + 1
758      write (i02,80003) ivtnum
759      if (iczero) 41960, 1971, 41960
76041960 if ( ivon01 - 1 )  21960, 11960, 21960
76111960 ivpass = ivpass + 1
762      write (i02,80001) ivtnum
763      go to 1971
76421960 ivfail = ivfail + 1
765      ivcomp = ivon01
766      ivcorr = 1
767      write (i02,80004) ivtnum, ivcomp ,ivcorr
768 1971 continue
769      ivtnum = 197
770c
771c      ****  test 197  ****
772c     test 197  -  test of the inclusive  .or.  .    (le)  .or.  (lt)
773c           uses logical variables set in logical assignment statements
774c           false  .or.  false    false path
775c
776c
777      if (iczero) 31970, 1970, 31970
778 1970 continue
779      ivon01 = 1
780      lctnt1 = .false.
781      lctnt2 = .false.
782      if ( lctnt1 .or. lctnt2 )  ivon01 = 0
783      go to 41970
78431970 ivdele = ivdele + 1
785      write (i02,80003) ivtnum
786      if (iczero) 41970, 1981, 41970
78741970 if ( ivon01 - 1 )  21970, 11970, 21970
78811970 ivpass = ivpass + 1
789      write (i02,80001) ivtnum
790      go to 1981
79121970 ivfail = ivfail + 1
792      ivcomp = ivon01
793      ivcorr = 1
794      write (i02,80004) ivtnum, ivcomp ,ivcorr
795 1981 continue
796      ivtnum = 198
797c
798c      ****  test 198  ****
799c     test 198  -  like test 197  false  .or.  true    true path
800c
801c
802      if (iczero) 31980, 1980, 31980
803 1980 continue
804      ivon01 = 0
805      lctnt1 = .false.
806      lctnt2 = .true.
807      if ( lctnt1 .or. lctnt2 )  ivon01 = 1
808      go to 41980
80931980 ivdele = ivdele + 1
810      write (i02,80003) ivtnum
811      if (iczero) 41980, 1991, 41980
81241980 if ( ivon01 - 1 )  21980, 11980, 21980
81311980 ivpass = ivpass + 1
814      write (i02,80001) ivtnum
815      go to 1991
81621980 ivfail = ivfail + 1
817      ivcomp = ivon01
818      ivcorr = 1
819      write (i02,80004) ivtnum, ivcomp ,ivcorr
820 1991 continue
821      ivtnum = 199
822c
823c      ****  test 199  ****
824c     test 199  -  like test 197.  true  .or.  false    true path.
825c
826c
827      if (iczero) 31990, 1990, 31990
828 1990 continue
829      ivon01 = 0
830      lctnt1 = .true.
831      lctnt2 = .false.
832      if ( lctnt1 .or. lctnt2 )  ivon01 = 1
833      go to 41990
83431990 ivdele = ivdele + 1
835      write (i02,80003) ivtnum
836      if (iczero) 41990, 5001, 41990
83741990 if ( ivon01 - 1 )  21990, 11990, 21990
83811990 ivpass = ivpass + 1
839      write (i02,80001) ivtnum
840      go to 5001
84121990 ivfail = ivfail + 1
842      ivcomp = ivon01
843      ivcorr = 1
844      write (i02,80004) ivtnum, ivcomp ,ivcorr
845 5001 continue
846c
847c     write page footings and run summaries
84899999 continue
849      write (i02,90002)
850      write (i02,90006)
851      write (i02,90002)
852      write (i02,90002)
853      write (i02,90007)
854      write (i02,90002)
855      write (i02,90008)  ivfail
856      write (i02,90009) ivpass
857      write (i02,90010) ivdele
858c
859c
860c     terminate routine execution
861      stop
862c
863c     format statements for page headers
86490000 format (1h1)
86590002 format (1h )
86690001 format (1h ,10x,34hfortran compiler validation system)
86790003 format (1h ,21x,11hversion 1.0)
86890004 format (1h ,10x,38hfor official use only - copyright 1978)
86990005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
87090006 format (1h ,5x,46h----------------------------------------------)
87190011 format (1h ,18x,17hsubset level test)
872c
873c     format statements for run summaries
87490008 format (1h ,15x,i5,19h errors encountered)
87590009 format (1h ,15x,i5,13h tests passed)
87690010 format (1h ,15x,i5,14h tests deleted)
877c
878c     format statements for test results
87980001 format (1h ,4x,i5,7x,4hpass)
88080002 format (1h ,4x,i5,7x,4hfail)
88180003 format (1h ,4x,i5,7x,7hdeleted)
88280004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
88380005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
884c
88590007 format (1h ,20x,20hend of program fm017)
886      end
887