|
|
1.1 root 1: c
2: c comment section.
3: c
4: c fm017
5: c
6: c this routine continues tests of the fortran
7: c logical if statement in all of the various forms. the
8: c following logical operands are used for this routine - logical
9: c constants, logical variables, logical array elements, and
10: c arithmetic expressions with various relational operators. both
11: c the true and false branches are tested in the series of tests.
12: c
13: c references
14: c american national standard programming language fortran,
15: c x3.9-1978
16: c
17: c section 4.7.1, logical constant
18: c section 6, expressions
19: c section 6.1, arithmetic expressions
20: c section 6.3, relational expressions
21: c section 6.4, logical expressions
22: c section 6.6, evaluation of expressions
23: c section 10, assignment statements
24: c section 10.2, logical assignment statement
25: c section 11.5, logical if statement
26: c
27: dimension iadn11(3)
28: logical latn1a(2), lctnt1, lctnt2
29: c
30: c **********************************************************
31: c
32: c a compiler validation system for the fortran language
33: c based on specifications as defined in american national standard
34: c programming language fortran x3.9-1978, has been developed by the
35: c federal cobol compiler testing service. the fortran compiler
36: c validation system (fcvs) consists of audit routines, their related
37: c data, and an executive system. each audit routine is a fortran
38: c program, subprogram or function which includes tests of specific
39: c language elements and supporting procedures indicating the result
40: c of executing these tests.
41: c
42: c this particular program/subprogram/function contains features
43: c found only in the subset as defined in x3.9-1978.
44: c
45: c suggestions and comments should be forwarded to -
46: c
47: c department of the navy
48: c federal cobol compiler testing service
49: c washington, d.c. 20376
50: c
51: c **********************************************************
52: c
53: c
54: c
55: c initialization section
56: c
57: c initialize constants
58: c **************
59: c i01 contains the logical unit number for the card reader.
60: i01 = 5
61: c i02 contains the logical unit number for the printer.
62: i02 = 6
63: c system environment section
64: c
65: cx010 this card is replaced by contents of fexec x-010 control card.
66: c the cx010 card is for overriding the program default i01 = 5
67: c (unit number for card reader).
68: cx011 this card is replaced by contents of fexec x-011 control card.
69: c the cx011 card is for systems which require additional
70: c fortran statements for files associated with cx010 above.
71: c
72: cx020 this card is replaced by contents of fexec x-020 control card.
73: c the cx020 card is for overriding the program default i02 = 6
74: c (unit number for printer).
75: cx021 this card is replaced by contents of fexec x-021 control card.
76: c the cx021 card is for systems which require additional
77: c fortran statements for files associated with cx020 above.
78: c
79: ivpass=0
80: ivfail=0
81: ivdele=0
82: iczero=0
83: c
84: c 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
100: c
101: c **** test 170 ****
102: c test 170 - relational expression. integer variable reference.
103: c false path. .lt.
104: c
105: c
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
112: 31700 ivdele = ivdele + 1
113: write (i02,80003) ivtnum
114: if (iczero) 41700, 1711, 41700
115: 41700 if ( ivon02 - 1 ) 21700, 11700, 21700
116: 11700 ivpass = ivpass + 1
117: write (i02,80001) ivtnum
118: go to 1711
119: 21700 ivfail = ivfail + 1
120: ivcomp = ivon02
121: ivcorr = 1
122: write (i02,80004) ivtnum, ivcomp ,ivcorr
123: 1711 continue
124: ivtnum = 171
125: c
126: c **** test 171 ****
127: c test 171 - relational expression. integer variable reference.
128: c false path. .le.
129: c
130: c
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
137: 31710 ivdele = ivdele + 1
138: write (i02,80003) ivtnum
139: if (iczero) 41710, 1721, 41710
140: 41710 if ( ivon02 - 1 ) 21710, 11710, 21710
141: 11710 ivpass = ivpass + 1
142: write (i02,80001) ivtnum
143: go to 1721
144: 21710 ivfail = ivfail + 1
145: ivcomp = ivon02
146: ivcorr = 1
147: write (i02,80004) ivtnum, ivcomp ,ivcorr
148: 1721 continue
149: ivtnum = 172
150: c
151: c **** test 172 ****
152: c test 172 - relational expressional. integer variable reference.
153: c false path. .eq.
154: c
155: c
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
162: 31720 ivdele = ivdele + 1
163: write (i02,80003) ivtnum
164: if (iczero) 41720, 1731, 41720
165: 41720 if ( ivon02 - 1 ) 21720, 11720, 21720
166: 11720 ivpass = ivpass + 1
167: write (i02,80001) ivtnum
168: go to 1731
169: 21720 ivfail = ivfail + 1
170: ivcomp = ivon02
171: ivcorr = 1
172: write (i02,80004) ivtnum, ivcomp ,ivcorr
173: 1731 continue
174: ivtnum = 173
175: c
176: c **** test 173 ****
177: c test 173 - relational expression. integer variable reference.
178: c false path. .ne.
179: c
180: c
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
187: 31730 ivdele = ivdele + 1
188: write (i02,80003) ivtnum
189: if (iczero) 41730, 1741, 41730
190: 41730 if ( ivon02 - 1 ) 21730, 11730, 21730
191: 11730 ivpass = ivpass + 1
192: write (i02,80001) ivtnum
193: go to 1741
194: 21730 ivfail = ivfail + 1
195: ivcomp = ivon02
196: ivcorr = 1
197: write (i02,80004) ivtnum, ivcomp ,ivcorr
198: 1741 continue
199: ivtnum = 174
200: c
201: c **** test 174 ****
202: c test 174 - relational expression. integer variable reference.
203: c false path. .gt.
204: c
205: c
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
212: 31740 ivdele = ivdele + 1
213: write (i02,80003) ivtnum
214: if (iczero) 41740, 1751, 41740
215: 41740 if ( ivon02 - 1 ) 21740, 11740, 21740
216: 11740 ivpass = ivpass + 1
217: write (i02,80001) ivtnum
218: go to 1751
219: 21740 ivfail = ivfail + 1
220: ivcomp = ivon02
221: ivcorr = 1
222: write (i02,80004) ivtnum, ivcomp ,ivcorr
223: 1751 continue
224: ivtnum = 175
225: c
226: c **** test 175 ****
227: c test 175 - relational expression. integer variable reference.
228: c false path. .ge.
229: c
230: c
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
237: 31750 ivdele = ivdele + 1
238: write (i02,80003) ivtnum
239: if (iczero) 41750, 1761, 41750
240: 41750 if ( ivon02 - 1 ) 21750, 11750, 21750
241: 11750 ivpass = ivpass + 1
242: write (i02,80001) ivtnum
243: go to 1761
244: 21750 ivfail = ivfail + 1
245: ivcomp = ivon02
246: ivcorr = 1
247: write (i02,80004) ivtnum, ivcomp ,ivcorr
248: 1761 continue
249: ivtnum = 176
250: c
251: c **** test 176 ****
252: c test 176 - relational expression. (ivr) (ro) (ic)
253: c integer variable reference with integer constant
254: c true path. .lt.
255: c
256: c
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
263: 31760 ivdele = ivdele + 1
264: write (i02,80003) ivtnum
265: if (iczero) 41760, 1771, 41760
266: 41760 if ( ivon02 - 1 ) 21760, 11760, 21760
267: 11760 ivpass = ivpass + 1
268: write (i02,80001) ivtnum
269: go to 1771
270: 21760 ivfail = ivfail + 1
271: ivcomp = ivon02
272: ivcorr = 1
273: write (i02,80004) ivtnum, ivcomp ,ivcorr
274: 1771 continue
275: ivtnum = 177
276: c
277: c **** test 177 ****
278: c test 177 - like test 176. false path. .eq.
279: c
280: c
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
287: 31770 ivdele = ivdele + 1
288: write (i02,80003) ivtnum
289: if (iczero) 41770, 1781, 41770
290: 41770 if ( ivon02 - 1 ) 21770, 11770, 21770
291: 11770 ivpass = ivpass + 1
292: write (i02,80001) ivtnum
293: go to 1781
294: 21770 ivfail = ivfail + 1
295: ivcomp = ivon02
296: ivcorr = 1
297: write (i02,80004) ivtnum, ivcomp ,ivcorr
298: 1781 continue
299: ivtnum = 178
300: c
301: c **** test 178 ****
302: c test 178 - like test 176. true path. .ge.
303: c
304: c
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
311: 31780 ivdele = ivdele + 1
312: write (i02,80003) ivtnum
313: if (iczero) 41780, 1791, 41780
314: 41780 if ( ivon02 - 1 ) 21780, 11780, 21780
315: 11780 ivpass = ivpass + 1
316: write (i02,80001) ivtnum
317: go to 1791
318: 21780 ivfail = ivfail + 1
319: ivcomp = ivon02
320: ivcorr = 1
321: write (i02,80004) ivtnum, ivcomp ,ivcorr
322: 1791 continue
323: ivtnum = 179
324: c
325: c **** test 179 ****
326: c test 179 - relational expression. integer array element
327: c reference. (ic) (ro) (iaer) false path. .lt.
328: c
329: c
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
336: 31790 ivdele = ivdele + 1
337: write (i02,80003) ivtnum
338: if (iczero) 41790, 1801, 41790
339: 41790 if ( ivon01 - 1 ) 21790, 11790, 21790
340: 11790 ivpass = ivpass + 1
341: write (i02,80001) ivtnum
342: go to 1801
343: 21790 ivfail = ivfail + 1
344: ivcomp = ivon01
345: ivcorr = 1
346: write (i02,80004) ivtnum, ivcomp ,ivcorr
347: 1801 continue
348: ivtnum = 180
349: c
350: c **** test 180 ****
351: c test 180 - like test 179. true path. .le.
352: c
353: c
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
360: 31800 ivdele = ivdele + 1
361: write (i02,80003) ivtnum
362: if (iczero) 41800, 1811, 41800
363: 41800 if ( ivon01 - 1 ) 21800, 11800, 21800
364: 11800 ivpass = ivpass + 1
365: write (i02,80001) ivtnum
366: go to 1811
367: 21800 ivfail = ivfail + 1
368: ivcomp = ivon01
369: ivcorr = 1
370: write (i02,80004) ivtnum, ivcomp ,ivcorr
371: 1811 continue
372: ivtnum = 181
373: c
374: c **** test 181 ****
375: c test 181 - like test 179. false path. .ge.
376: c
377: c
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
384: 31810 ivdele = ivdele + 1
385: write (i02,80003) ivtnum
386: if (iczero) 41810, 1821, 41810
387: 41810 if ( ivon01 - 1 ) 21810, 11810, 21810
388: 11810 ivpass = ivpass + 1
389: write (i02,80001) ivtnum
390: go to 1821
391: 21810 ivfail = ivfail + 1
392: ivcomp = ivon01
393: ivcorr = 1
394: write (i02,80004) ivtnum, ivcomp ,ivcorr
395: 1821 continue
396: ivtnum = 182
397: c
398: c **** test 182 ****
399: c test 182 - relational expression (iaer) (ro) (ic). true
400: c path. .eq.
401: c
402: c
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
409: 31820 ivdele = ivdele + 1
410: write (i02,80003) ivtnum
411: if (iczero) 41820, 1831, 41820
412: 41820 if ( ivon01 - 1 ) 21820, 11820, 21820
413: 11820 ivpass = ivpass + 1
414: write (i02,80001) ivtnum
415: go to 1831
416: 21820 ivfail = ivfail + 1
417: ivcomp = ivon01
418: ivcorr = 1
419: write (i02,80004) ivtnum, ivcomp ,ivcorr
420: 1831 continue
421: ivtnum = 183
422: c
423: c **** test 183 ****
424: c test 183 - relational expression (ivr) (ro) (iaer)
425: c false path. .ne.
426: c
427: c
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
435: 31830 ivdele = ivdele + 1
436: write (i02,80003) ivtnum
437: if (iczero) 41830, 1841, 41830
438: 41830 if ( ivon01 - 1 ) 21830, 11830, 21830
439: 11830 ivpass = ivpass + 1
440: write (i02,80001) ivtnum
441: go to 1841
442: 21830 ivfail = ivfail + 1
443: ivcomp = ivon01
444: ivcorr = 1
445: write (i02,80004) ivtnum, ivcomp ,ivcorr
446: 1841 continue
447: ivtnum = 184
448: c
449: c **** test 184 ****
450: c test 184 - relational expression (iaer) (ro) (ivr)
451: c true path .ne.
452: c
453: c
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
461: 31840 ivdele = ivdele + 1
462: write (i02,80003) ivtnum
463: if (iczero) 41840, 1851, 41840
464: 41840 if ( ivon01 - 1 ) 21840, 11840, 21840
465: 11840 ivpass = ivpass + 1
466: write (i02,80001) ivtnum
467: go to 1851
468: 21840 ivfail = ivfail + 1
469: ivcomp = ivon01
470: ivcorr = 1
471: write (i02,80004) ivtnum, ivcomp ,ivcorr
472: 1851 continue
473: ivtnum = 185
474: c
475: c **** test 185 ****
476: c test 185 - test of parentheses ( (le) )
477: c true path logical constant .true.
478: c
479: c
480: if (iczero) 31850, 1850, 31850
481: 1850 continue
482: ivon01 = 0
483: if ( ( .true. ) ) ivon01 = 1
484: go to 41850
485: 31850 ivdele = ivdele + 1
486: write (i02,80003) ivtnum
487: if (iczero) 41850, 1861, 41850
488: 41850 if ( ivon01 - 1 ) 21850, 11850, 21850
489: 11850 ivpass = ivpass + 1
490: write (i02,80001) ivtnum
491: go to 1861
492: 21850 ivfail = ivfail + 1
493: ivcomp = ivon01
494: ivcorr = 1
495: write (i02,80004) ivtnum, ivcomp ,ivcorr
496: 1861 continue
497: ivtnum = 186
498: c
499: c **** test 186 ****
500: c test 186 - like test 185
501: c false path logical constant .false.
502: c
503: c
504: if (iczero) 31860, 1860, 31860
505: 1860 continue
506: ivon01 = 1
507: if ((( .false. ))) ivon01 = 0
508: go to 41860
509: 31860 ivdele = ivdele + 1
510: write (i02,80003) ivtnum
511: if (iczero) 41860, 1871, 41860
512: 41860 if ( ivon01 - 1 ) 21860, 11860, 21860
513: 11860 ivpass = ivpass + 1
514: write (i02,80001) ivtnum
515: go to 1871
516: 21860 ivfail = ivfail + 1
517: ivcomp = ivon01
518: ivcorr = 1
519: write (i02,80004) ivtnum, ivcomp ,ivcorr
520: 1871 continue
521: ivtnum = 187
522: c
523: c **** test 187 ****
524: c test 187 - parens around logical variable reference ( (lvr) )
525: c true path
526: c
527: c
528: if (iczero) 31870, 1870, 31870
529: 1870 continue
530: ivon01 = 0
531: lctnt1 = .true.
532: if ( ( lctnt1 ) ) ivon01 = 1
533: go to 41870
534: 31870 ivdele = ivdele + 1
535: write (i02,80003) ivtnum
536: if (iczero) 41870, 1881, 41870
537: 41870 if ( ivon01 - 1 ) 21870, 11870, 21870
538: 11870 ivpass = ivpass + 1
539: write (i02,80001) ivtnum
540: go to 1881
541: 21870 ivfail = ivfail + 1
542: ivcomp = ivon01
543: ivcorr = 1
544: write (i02,80004) ivtnum, ivcomp ,ivcorr
545: 1881 continue
546: ivtnum = 188
547: c
548: c **** test 188 ****
549: c test 188 - parens around logical array reference ( ( laer ) )
550: c false path
551: c
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
558: 31880 ivdele = ivdele + 1
559: write (i02,80003) ivtnum
560: if (iczero) 41880, 1891, 41880
561: 41880 if ( ivon01 - 1 ) 21880, 11880, 21880
562: 11880 ivpass = ivpass + 1
563: write (i02,80001) ivtnum
564: go to 1891
565: 21880 ivfail = ivfail + 1
566: ivcomp = ivon01
567: ivcorr = 1
568: write (i02,80004) ivtnum, ivcomp ,ivcorr
569: 1891 continue
570: ivtnum = 189
571: c
572: c **** test 189 ****
573: c test 189 - use of .not. with a logical primary .not. (lp)
574: c false path .not. .true.
575: c
576: c
577: if (iczero) 31890, 1890, 31890
578: 1890 continue
579: ivon01 = 1
580: if ( .not. .true. ) ivon01 = 0
581: go to 41890
582: 31890 ivdele = ivdele + 1
583: write (i02,80003) ivtnum
584: if (iczero) 41890, 1901, 41890
585: 41890 if ( ivon01 - 1 ) 21890, 11890, 21890
586: 11890 ivpass = ivpass + 1
587: write (i02,80001) ivtnum
588: go to 1901
589: 21890 ivfail = ivfail + 1
590: ivcomp = ivon01
591: ivcorr = 1
592: write (i02,80004) ivtnum, ivcomp ,ivcorr
593: 1901 continue
594: ivtnum = 190
595: c
596: c **** test 190 ****
597: c test 190 - like test 189 true path .not. .false.
598: c
599: c
600: if (iczero) 31900, 1900, 31900
601: 1900 continue
602: ivon01 = 0
603: if ( .not. .false. ) ivon01 = 1
604: go to 41900
605: 31900 ivdele = ivdele + 1
606: write (i02,80003) ivtnum
607: if (iczero) 41900, 1911, 41900
608: 41900 if ( ivon01 - 1 ) 21900, 11900, 21900
609: 11900 ivpass = ivpass + 1
610: write (i02,80001) ivtnum
611: go to 1911
612: 21900 ivfail = ivfail + 1
613: ivcomp = ivon01
614: ivcorr = 1
615: write (i02,80004) ivtnum, ivcomp ,ivcorr
616: 1911 continue
617: ivtnum = 191
618: c
619: c **** test 191 ****
620: c test 191 - tests .not. with a logical variable set to .false.
621: c in a logical assignment statement true path
622: c
623: c
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
630: 31910 ivdele = ivdele + 1
631: write (i02,80003) ivtnum
632: if (iczero) 41910, 1921, 41910
633: 41910 if ( ivon01 - 1 ) 21910, 11910, 21910
634: 11910 ivpass = ivpass + 1
635: write (i02,80001) ivtnum
636: go to 1921
637: 21910 ivfail = ivfail + 1
638: ivcomp = ivon01
639: ivcorr = 1
640: write (i02,80004) ivtnum, ivcomp ,ivcorr
641: 1921 continue
642: ivtnum = 192
643: c
644: c **** test 192 ****
645: c test 192 - like test 191 only uses a logical array element
646: c set to .false. in a logical assignment statement true
647: c
648: c
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
655: 31920 ivdele = ivdele + 1
656: write (i02,80003) ivtnum
657: if (iczero) 41920, 1931, 41920
658: 41920 if ( ivon01 - 1 ) 21920, 11920, 21920
659: 11920 ivpass = ivpass + 1
660: write (i02,80001) ivtnum
661: go to 1931
662: 21920 ivfail = ivfail + 1
663: ivcomp = ivon01
664: ivcorr = 1
665: write (i02,80004) ivtnum, ivcomp ,ivcorr
666: 1931 continue
667: ivtnum = 193
668: c
669: c **** test 193 ****
670: c test 193 - use of logical .and. (lt) .and. (lf)
671: c uses two logical variables each set to .false.
672: c false .and. false false path
673: c
674: c
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
682: 31930 ivdele = ivdele + 1
683: write (i02,80003) ivtnum
684: if (iczero) 41930, 1941, 41930
685: 41930 if ( ivon01 - 1 ) 21930, 11930, 21930
686: 11930 ivpass = ivpass + 1
687: write (i02,80001) ivtnum
688: go to 1941
689: 21930 ivfail = ivfail + 1
690: ivcomp = ivon01
691: ivcorr = 1
692: write (i02,80004) ivtnum, ivcomp ,ivcorr
693: 1941 continue
694: ivtnum = 194
695: c
696: c **** test 194 ****
697: c test 194 - like test 193 false .and. true false path
698: c
699: c
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
707: 31940 ivdele = ivdele + 1
708: write (i02,80003) ivtnum
709: if (iczero) 41940, 1951, 41940
710: 41940 if ( ivon01 - 1 ) 21940, 11940, 21940
711: 11940 ivpass = ivpass + 1
712: write (i02,80001) ivtnum
713: go to 1951
714: 21940 ivfail = ivfail + 1
715: ivcomp = ivon01
716: ivcorr = 1
717: write (i02,80004) ivtnum, ivcomp ,ivcorr
718: 1951 continue
719: ivtnum = 195
720: c
721: c **** test 195 ****
722: c test 195 - like test 193 true .and. false false path
723: c
724: c
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
732: 31950 ivdele = ivdele + 1
733: write (i02,80003) ivtnum
734: if (iczero) 41950, 1961, 41950
735: 41950 if ( ivon01 - 1 ) 21950, 11950, 21950
736: 11950 ivpass = ivpass + 1
737: write (i02,80001) ivtnum
738: go to 1961
739: 21950 ivfail = ivfail + 1
740: ivcomp = ivon01
741: ivcorr = 1
742: write (i02,80004) ivtnum, ivcomp ,ivcorr
743: 1961 continue
744: ivtnum = 196
745: c
746: c **** test 196 ****
747: c test 196 - like test 193 true .and. true true path
748: c
749: c
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
757: 31960 ivdele = ivdele + 1
758: write (i02,80003) ivtnum
759: if (iczero) 41960, 1971, 41960
760: 41960 if ( ivon01 - 1 ) 21960, 11960, 21960
761: 11960 ivpass = ivpass + 1
762: write (i02,80001) ivtnum
763: go to 1971
764: 21960 ivfail = ivfail + 1
765: ivcomp = ivon01
766: ivcorr = 1
767: write (i02,80004) ivtnum, ivcomp ,ivcorr
768: 1971 continue
769: ivtnum = 197
770: c
771: c **** test 197 ****
772: c test 197 - test of the inclusive .or. . (le) .or. (lt)
773: c uses logical variables set in logical assignment statements
774: c false .or. false false path
775: c
776: c
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
784: 31970 ivdele = ivdele + 1
785: write (i02,80003) ivtnum
786: if (iczero) 41970, 1981, 41970
787: 41970 if ( ivon01 - 1 ) 21970, 11970, 21970
788: 11970 ivpass = ivpass + 1
789: write (i02,80001) ivtnum
790: go to 1981
791: 21970 ivfail = ivfail + 1
792: ivcomp = ivon01
793: ivcorr = 1
794: write (i02,80004) ivtnum, ivcomp ,ivcorr
795: 1981 continue
796: ivtnum = 198
797: c
798: c **** test 198 ****
799: c test 198 - like test 197 false .or. true true path
800: c
801: c
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
809: 31980 ivdele = ivdele + 1
810: write (i02,80003) ivtnum
811: if (iczero) 41980, 1991, 41980
812: 41980 if ( ivon01 - 1 ) 21980, 11980, 21980
813: 11980 ivpass = ivpass + 1
814: write (i02,80001) ivtnum
815: go to 1991
816: 21980 ivfail = ivfail + 1
817: ivcomp = ivon01
818: ivcorr = 1
819: write (i02,80004) ivtnum, ivcomp ,ivcorr
820: 1991 continue
821: ivtnum = 199
822: c
823: c **** test 199 ****
824: c test 199 - like test 197. true .or. false true path.
825: c
826: c
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
834: 31990 ivdele = ivdele + 1
835: write (i02,80003) ivtnum
836: if (iczero) 41990, 5001, 41990
837: 41990 if ( ivon01 - 1 ) 21990, 11990, 21990
838: 11990 ivpass = ivpass + 1
839: write (i02,80001) ivtnum
840: go to 5001
841: 21990 ivfail = ivfail + 1
842: ivcomp = ivon01
843: ivcorr = 1
844: write (i02,80004) ivtnum, ivcomp ,ivcorr
845: 5001 continue
846: c
847: c write page footings and run summaries
848: 99999 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
858: c
859: c
860: c terminate routine execution
861: stop
862: c
863: c format statements for page headers
864: 90000 format (1h1)
865: 90002 format (1h )
866: 90001 format (1h ,10x,34hfortran compiler validation system)
867: 90003 format (1h ,21x,11hversion 1.0)
868: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
869: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
870: 90006 format (1h ,5x,46h----------------------------------------------)
871: 90011 format (1h ,18x,17hsubset level test)
872: c
873: c format statements for run summaries
874: 90008 format (1h ,15x,i5,19h errors encountered)
875: 90009 format (1h ,15x,i5,13h tests passed)
876: 90010 format (1h ,15x,i5,14h tests deleted)
877: c
878: c format statements for test results
879: 80001 format (1h ,4x,i5,7x,4hpass)
880: 80002 format (1h ,4x,i5,7x,4hfail)
881: 80003 format (1h ,4x,i5,7x,7hdeleted)
882: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
883: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
884: c
885: 90007 format (1h ,20x,20hend of program fm017)
886: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.