|
|
1.1 root 1: c
2: c comment section.
3: c
4: c fm016
5: c
6: c this routine begins a series of 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: logical lctnt1, lctnf1, lvtntf, lvtnft, latn1a(2)
28: logical ladn1d, ladn1b
29: dimension ladn1d(2), ladn1b(2)
30: data ladn1d/.true., .false./
31: c
32: c **********************************************************
33: c
34: c a compiler validation system for the fortran language
35: c based on specifications as defined in american national standard
36: c programming language fortran x3.9-1978, has been developed by the
37: c federal cobol compiler testing service. the fortran compiler
38: c validation system (fcvs) consists of audit routines, their related
39: c data, and an executive system. each audit routine is a fortran
40: c program, subprogram or function which includes tests of specific
41: c language elements and supporting procedures indicating the result
42: c of executing these tests.
43: c
44: c this particular program/subprogram/function contains features
45: c found only in the subset as defined in x3.9-1978.
46: c
47: c suggestions and comments should be forwarded to -
48: c
49: c department of the navy
50: c federal cobol compiler testing service
51: c washington, d.c. 20376
52: c
53: c **********************************************************
54: c
55: c
56: c
57: c initialization section
58: c
59: c initialize constants
60: c **************
61: c i01 contains the logical unit number for the card reader.
62: i01 = 5
63: c i02 contains the logical unit number for the printer.
64: i02 = 6
65: c system environment section
66: c
67: cx010 this card is replaced by contents of fexec x-010 control card.
68: c the cx010 card is for overriding the program default i01 = 5
69: c (unit number for card reader).
70: cx011 this card is replaced by contents of fexec x-011 control card.
71: c the cx011 card is for systems which require additional
72: c fortran statements for files associated with cx010 above.
73: c
74: cx020 this card is replaced by contents of fexec x-020 control card.
75: c the cx020 card is for overriding the program default i02 = 6
76: c (unit number for printer).
77: cx021 this card is replaced by contents of fexec x-021 control card.
78: c the cx021 card is for systems which require additional
79: c fortran statements for files associated with cx020 above.
80: c
81: ivpass=0
82: ivfail=0
83: ivdele=0
84: iczero=0
85: c
86: c write page headers
87: write (i02,90000)
88: write (i02,90001)
89: write (i02,90002)
90: write (i02, 90002)
91: write (i02,90003)
92: write (i02,90002)
93: write (i02,90004)
94: write (i02,90002)
95: write (i02,90011)
96: write (i02,90002)
97: write (i02,90002)
98: write (i02,90005)
99: write (i02,90006)
100: write (i02,90002)
101: ivtnum = 139
102: c test 139 - this tests the logical constant .true.
103: c
104: if (iczero) 31390, 1390, 31390
105: 1390 continue
106: ivon01=0
107: if ( .true. ) ivon01 = 1
108: go to 41390
109: 31390 ivdele = ivdele + 1
110: write (i02,80003) ivtnum
111: if (iczero) 41390, 1401, 41390
112: 41390 if ( ivon01 - 1 ) 21390, 11390, 21390
113: 11390 ivpass = ivpass + 1
114: write (i02,80001) ivtnum
115: go to 1401
116: 21390 ivfail = ivfail + 1
117: ivcomp=ivon01
118: ivcorr=1
119: write (i02,80004) ivtnum, ivcomp ,ivcorr
120: 1401 continue
121: ivtnum = 140
122: c test 140 - this tests the logical constant .false.
123: c
124: if (iczero) 31400, 1400, 31400
125: 1400 continue
126: ivon01=1
127: if ( .false. ) ivon01=0
128: go to 41400
129: 31400 ivdele = ivdele + 1
130: write (i02,80003) ivtnum
131: if (iczero) 41400, 1411, 41400
132: 41400 if ( ivon01 - 1 ) 21400, 11400, 21400
133: 11400 ivpass = ivpass + 1
134: write (i02,80001) ivtnum
135: go to 1411
136: 21400 ivfail = ivfail + 1
137: ivcomp=ivon01
138: ivcorr=1
139: write (i02,80004) ivtnum, ivcomp ,ivcorr
140: 1411 continue
141: ivtnum = 141
142: c test 141 - this tests the logical variable = .true.
143: c
144: if (iczero) 31410, 1410, 31410
145: 1410 continue
146: lctnt1=.true.
147: ivon01 = 0
148: if ( lctnt1 ) ivon01 = 1
149: go to 41410
150: 31410 ivdele = ivdele + 1
151: write (i02,80003) ivtnum
152: if (iczero) 41410, 1421, 41410
153: 41410 if ( ivon01 - 1 ) 21410, 11410, 21410
154: 11410 ivpass = ivpass + 1
155: write (i02,80001) ivtnum
156: go to 1421
157: 21410 ivfail = ivfail + 1
158: ivcomp=ivon01
159: ivcorr=1
160: write (i02,80004) ivtnum, ivcomp ,ivcorr
161: 1421 continue
162: ivtnum = 142
163: c test 142 - this tests the logical variable = .false.
164: c
165: if (iczero) 31420, 1420, 31420
166: 1420 continue
167: ivon01=1
168: lctnf1=.false.
169: if ( lctnf1 ) ivon01=0
170: go to 41420
171: 31420 ivdele = ivdele + 1
172: write (i02,80003) ivtnum
173: if (iczero) 41420, 1431, 41420
174: 41420 if ( ivon01 - 1 ) 21420, 11420, 21420
175: 11420 ivpass = ivpass + 1
176: write (i02,80001) ivtnum
177: go to 1431
178: 21420 ivfail = ivfail + 1
179: ivcomp=ivon01
180: ivcorr=1
181: write (i02,80004) ivtnum, ivcomp ,ivcorr
182: 1431 continue
183: ivtnum = 143
184: c test 143 - this tests changing the value of a logical variable
185: c from .true. to .false.
186: c
187: if (iczero) 31430, 1430, 31430
188: 1430 continue
189: lvtntf=.true.
190: lvtntf=.false.
191: ivon01 = 1
192: if ( lvtntf ) ivon01 = 0
193: go to 41430
194: 31430 ivdele = ivdele + 1
195: write (i02,80003) ivtnum
196: if (iczero) 41430, 1441, 41430
197: 41430 if ( ivon01 - 1 ) 21430, 11430, 21430
198: 11430 ivpass = ivpass + 1
199: write (i02,80001) ivtnum
200: go to 1441
201: 21430 ivfail = ivfail + 1
202: ivcomp=ivon01
203: ivcorr=1
204: write (i02,80004) ivtnum, ivcomp ,ivcorr
205: 1441 continue
206: ivtnum = 144
207: c test 144 - this tests changing the value of a logical variable
208: c from .false. to .true.
209: c
210: if (iczero) 31440, 1440, 31440
211: 1440 continue
212: lvtnft=.false.
213: lvtnft=.true.
214: ivon01=0
215: if ( lvtnft ) ivon01=1
216: go to 41440
217: 31440 ivdele = ivdele + 1
218: write (i02,80003) ivtnum
219: if (iczero) 41440, 1451, 41440
220: 41440 if ( ivon01 - 1 ) 21440, 11440, 21440
221: 11440 ivpass = ivpass + 1
222: write (i02,80001) ivtnum
223: go to 1451
224: 21440 ivfail = ivfail + 1
225: ivcomp=ivon01
226: ivcorr=1
227: write (i02,80004) ivtnum, ivcomp ,ivcorr
228: 1451 continue
229: ivtnum = 145
230: c test 145 - test of a logical array element set to .true.
231: c
232: if (iczero) 31450, 1450, 31450
233: 1450 continue
234: latn1a(1)=.true.
235: ivon01=0
236: if ( latn1a(1) ) ivon01=1
237: go to 41450
238: 31450 ivdele = ivdele + 1
239: write (i02,80003) ivtnum
240: if (iczero) 41450, 1461, 41450
241: 41450 if ( ivon01 - 1 ) 21450, 11450, 21450
242: 11450 ivpass = ivpass + 1
243: write (i02,80001) ivtnum
244: go to 1461
245: 21450 ivfail = ivfail + 1
246: ivcomp=ivon01
247: ivcorr=1
248: write (i02,80004) ivtnum, ivcomp ,ivcorr
249: 1461 continue
250: ivtnum = 146
251: c test 146 - test of a logical array element set to .false.
252: c
253: if (iczero) 31460, 1460, 31460
254: 1460 continue
255: latn1a(2) = .false.
256: ivon01=1
257: if ( latn1a(2) ) ivon01=0
258: go to 41460
259: 31460 ivdele = ivdele + 1
260: write (i02,80003) ivtnum
261: if (iczero) 41460, 1471, 41460
262: 41460 if ( ivon01 - 1 ) 21460, 11460, 21460
263: 11460 ivpass = ivpass + 1
264: write (i02,80001) ivtnum
265: go to 1471
266: 21460 ivfail = ivfail + 1
267: ivcomp=ivon01
268: ivcorr=1
269: write (i02,80004) ivtnum, ivcomp ,ivcorr
270: 1471 continue
271: ivtnum = 147
272: c test 147 - test of a logical array element set .true.
273: c in a data initialization statement.
274: c
275: if (iczero) 31470, 1470, 31470
276: 1470 continue
277: ivon01=0
278: if ( ladn1d(1) ) ivon01=1
279: go to 41470
280: 31470 ivdele = ivdele + 1
281: write (i02,80003) ivtnum
282: if (iczero) 41470, 1481, 41470
283: 41470 if ( ivon01 - 1 ) 21470, 11470, 21470
284: 11470 ivpass = ivpass + 1
285: write (i02,80001) ivtnum
286: go to 1481
287: 21470 ivfail = ivfail + 1
288: ivcomp=ivon01
289: ivcorr=1
290: write (i02,80004) ivtnum, ivcomp ,ivcorr
291: 1481 continue
292: ivtnum = 148
293: c test 148 - test of a logical array element set .false.
294: c in a data initialization statement.
295: c
296: if (iczero) 31480, 1480, 31480
297: 1480 continue
298: ivon01=1
299: if ( ladn1d(2) ) ivon01=0
300: go to 41480
301: 31480 ivdele = ivdele + 1
302: write (i02,80003) ivtnum
303: if (iczero) 41480, 1491, 41480
304: 41480 if ( ivon01 - 1 ) 21480, 11480, 21480
305: 11480 ivpass = ivpass + 1
306: write (i02,80001) ivtnum
307: go to 1491
308: 21480 ivfail = ivfail + 1
309: ivcomp=ivon01
310: ivcorr=1
311: write (i02,80004) ivtnum, ivcomp ,ivcorr
312: 1491 continue
313: ivtnum = 149
314: c test 149 - like test 145 except that the array declaration was
315: c in a dimension statement rather than in the type statement.
316: c
317: if (iczero) 31490, 1490, 31490
318: 1490 continue
319: ladn1b(1)=.true.
320: ivon01=0
321: if ( ladn1b(1) ) ivon01=1
322: go to 41490
323: 31490 ivdele = ivdele + 1
324: write (i02,80003) ivtnum
325: if (iczero) 41490, 1501, 41490
326: 41490 if ( ivon01 - 1 ) 21490, 11490, 21490
327: 11490 ivpass = ivpass + 1
328: write (i02,80001) ivtnum
329: go to 1501
330: 21490 ivfail = ivfail + 1
331: ivcomp=ivon01
332: ivcorr=1
333: write (i02,80004) ivtnum, ivcomp ,ivcorr
334: c
335: c for tests 150 thru 156 the true path is used..
336: c
337: 1501 continue
338: ivtnum = 150
339: c test 150 - relational expression with integer constants .lt.
340: c
341: if (iczero) 31500, 1500, 31500
342: 1500 continue
343: ivon01=0
344: if ( 3 .lt. 76 ) ivon01=1
345: go to 41500
346: 31500 ivdele = ivdele + 1
347: write (i02,80003) ivtnum
348: if (iczero) 41500, 1511, 41500
349: 41500 if ( ivon01 - 1 ) 21500, 11500, 21500
350: 11500 ivpass = ivpass + 1
351: write (i02,80001) ivtnum
352: go to 1511
353: 21500 ivfail = ivfail + 1
354: ivcomp=ivon01
355: ivcorr=1
356: write (i02,80004) ivtnum, ivcomp ,ivcorr
357: 1511 continue
358: ivtnum = 151
359: c test 151 - test with relational expression .le.
360: c
361: if (iczero) 31510, 1510, 31510
362: 1510 continue
363: ivon01=0
364: if ( 587 .le. 587 ) ivon01=1
365: go to 41510
366: 31510 ivdele = ivdele + 1
367: write (i02,80003) ivtnum
368: if (iczero) 41510, 1521, 41510
369: 41510 if ( ivon01 - 1 ) 21510, 11510, 21510
370: 11510 ivpass = ivpass + 1
371: write (i02,80001) ivtnum
372: go to 1521
373: 21510 ivfail = ivfail + 1
374: ivcomp=ivon01
375: ivcorr=1
376: write (i02,80004) ivtnum, ivcomp ,ivcorr
377: 1521 continue
378: ivtnum = 152
379: c test 152 - test of relational expression with integer constants
380: c relational operator is .eq.
381: c
382: if (iczero) 31520, 1520, 31520
383: 1520 continue
384: ivon01=0
385: if ( 9999 .eq. 9999 ) ivon01=1
386: go to 41520
387: 31520 ivdele = ivdele + 1
388: write (i02,80003) ivtnum
389: if (iczero) 41520, 1531, 41520
390: 41520 if ( ivon01 - 1 ) 21520, 11520, 21520
391: 11520 ivpass = ivpass + 1
392: write (i02,80001) ivtnum
393: go to 1531
394: 21520 ivfail = ivfail + 1
395: ivcomp=ivon01
396: ivcorr=1
397: write (i02,80004) ivtnum, ivcomp ,ivcorr
398: 1531 continue
399: ivtnum = 153
400: c test 153 - test of relational expression with integer constants
401: c relational operator is .ne.
402: c
403: if (iczero) 31530, 1530, 31530
404: 1530 continue
405: ivon01=0
406: if ( 0 .ne. 32767 ) ivon01=1
407: go to 41530
408: 31530 ivdele = ivdele + 1
409: write (i02,80003) ivtnum
410: if (iczero) 41530, 1541, 41530
411: 41530 if ( ivon01 - 1 ) 21530, 11530, 21530
412: 11530 ivpass = ivpass + 1
413: write (i02,80001) ivtnum
414: go to 1541
415: 21530 ivfail = ivfail + 1
416: ivcomp=ivon01
417: ivcorr=1
418: write (i02,80004) ivtnum, ivcomp ,ivcorr
419: 1541 continue
420: ivtnum = 154
421: c test 154 - test of relational expression with integer constants
422: c relational operator is .gt.
423: c
424: if (iczero) 31540, 1540, 31540
425: 1540 continue
426: ivon01=0
427: if ( 32767 .gt. 76 ) ivon01=1
428: go to 41540
429: 31540 ivdele = ivdele + 1
430: write (i02,80003) ivtnum
431: if (iczero) 41540, 1551, 41540
432: 41540 if ( ivon01 - 1 ) 21540, 11540, 21540
433: 11540 ivpass = ivpass + 1
434: write (i02,80001) ivtnum
435: go to 1551
436: 21540 ivfail = ivfail + 1
437: ivcomp=ivon01
438: ivcorr=1
439: write (i02,80004) ivtnum, ivcomp ,ivcorr
440: 1551 continue
441: ivtnum = 155
442: c test 155 - test of relational expression with integer constants
443: c relational operator is .ge.
444: c
445: if (iczero) 31550, 1550, 31550
446: 1550 continue
447: ivon01=0
448: if ( 32767 .ge. 76 ) ivon01=1
449: go to 41550
450: 31550 ivdele = ivdele + 1
451: write (i02,80003) ivtnum
452: if (iczero) 41550, 1561, 41550
453: 41550 if ( ivon01 - 1 ) 21550, 11550, 21550
454: 11550 ivpass = ivpass + 1
455: write (i02,80001) ivtnum
456: go to 1561
457: 21550 ivfail = ivfail + 1
458: ivcomp=ivon01
459: ivcorr=1
460: write (i02,80004) ivtnum, ivcomp ,ivcorr
461: 1561 continue
462: ivtnum = 156
463: c test 156 - test of relational expression with integer constants
464: c relational operator is .ge.
465: c
466: if (iczero) 31560, 1560, 31560
467: 1560 continue
468: ivon01=0
469: if ( 32767 .ge. 32767 ) ivon01=1
470: go to 41560
471: 31560 ivdele = ivdele + 1
472: write (i02,80003) ivtnum
473: if (iczero) 41560, 1571, 41560
474: 41560 if ( ivon01 - 1 ) 21560, 11560, 21560
475: 11560 ivpass = ivpass + 1
476: write (i02,80001) ivtnum
477: go to 1571
478: 21560 ivfail = ivfail + 1
479: ivcomp=ivon01
480: ivcorr=1
481: write (i02,80004) ivtnum, ivcomp ,ivcorr
482: c
483: c for tests 157 thru 162 the false path is used..
484: c
485: 1571 continue
486: ivtnum = 157
487: c test 157 - relational expression integer constants false path
488: c relational operator is .lt.
489: c
490: if (iczero) 31570, 1570, 31570
491: 1570 continue
492: ivon01=1
493: if ( 76 .lt. 3 ) ivon01=0
494: go to 41570
495: 31570 ivdele = ivdele + 1
496: write (i02,80003) ivtnum
497: if (iczero) 41570, 1581, 41570
498: 41570 if ( ivon01 - 1 ) 21570, 11570, 21570
499: 11570 ivpass = ivpass + 1
500: write (i02,80001) ivtnum
501: go to 1581
502: 21570 ivfail = ivfail + 1
503: ivcomp=ivon01
504: ivcorr=1
505: write (i02,80004) ivtnum, ivcomp ,ivcorr
506: 1581 continue
507: ivtnum = 158
508: c test 158 - relational expression integer constants false path
509: c relational operator is .le.
510: c
511: if (iczero) 31580, 1580, 31580
512: 1580 continue
513: ivon01=1
514: if ( 76 .le. 3 ) ivon01=0
515: go to 41580
516: 31580 ivdele = ivdele + 1
517: write (i02,80003) ivtnum
518: if (iczero) 41580, 1591, 41580
519: 41580 if ( ivon01 - 1 ) 21580, 11580, 21580
520: 11580 ivpass = ivpass + 1
521: write (i02,80001) ivtnum
522: go to 1591
523: 21580 ivfail = ivfail + 1
524: ivcomp=ivon01
525: ivcorr=1
526: write (i02,80004) ivtnum, ivcomp ,ivcorr
527: 1591 continue
528: ivtnum = 159
529: c test 159 - relational expression integer constants false path
530: c relational operator is .eq.
531: c
532: if (iczero) 31590, 1590, 31590
533: 1590 continue
534: ivon01=1
535: if ( 9999 .eq. 587 ) ivon01=0
536: go to 41590
537: 31590 ivdele = ivdele + 1
538: write (i02,80003) ivtnum
539: if (iczero) 41590, 1601, 41590
540: 41590 if ( ivon01 - 1 ) 21590, 11590, 21590
541: 11590 ivpass = ivpass + 1
542: write (i02,80001) ivtnum
543: go to 1601
544: 21590 ivfail = ivfail + 1
545: ivcomp=ivon01
546: ivcorr=1
547: write (i02,80004) ivtnum, ivcomp ,ivcorr
548: 1601 continue
549: ivtnum = 160
550: c test 160 - relational expression integer constants false path
551: c relational operator is .ne.
552: c
553: if (iczero) 31600, 1600, 31600
554: 1600 continue
555: ivon01=1
556: if ( 3 .ne. 3 ) ivon01=0
557: go to 41600
558: 31600 ivdele = ivdele + 1
559: write (i02,80003) ivtnum
560: if (iczero) 41600, 1611, 41600
561: 41600 if ( ivon01 - 1 ) 21600, 11600, 21600
562: 11600 ivpass = ivpass + 1
563: write (i02,80001) ivtnum
564: go to 1611
565: 21600 ivfail = ivfail + 1
566: ivcomp=ivon01
567: ivcorr=1
568: write (i02,80004) ivtnum, ivcomp ,ivcorr
569: 1611 continue
570: ivtnum=161
571: c
572: c test 161 - relational expression integer constants false path
573: c relational operator is .gt.
574: c
575: if ( iczero ) 31610, 1610, 31610
576: 1610 continue
577: ivon01=1
578: if ( 76 .gt. 32767 ) ivon01=0
579: go to 41610
580: 31610 ivdele = ivdele + 1
581: write (i02,80003) ivtnum
582: if ( iczero ) 41610, 1621, 41610
583: 41610 if ( ivon01 - 1 ) 21610, 11610, 21610
584: 11610 ivpass = ivpass+ 1
585: write (i02,80001) ivtnum
586: go to 1621
587: 21610 ivfail = ivfail + 1
588: ivcomp=ivon01
589: ivcorr=1
590: write (i02,80004) ivtnum, ivcomp, ivcorr
591: 1621 continue
592: ivtnum = 162
593: c
594: c
595: c **** test 162 ****
596: c
597: c test 162 - relational expression integer constants false path
598: c relational operator is .ge.
599: c
600: if (iczero) 31620, 1620, 31620
601: 1620 continue
602: ivon01=1
603: if ( 76 .ge. 32767 ) ivon01 = 0
604: go to 41620
605: 31620 ivdele = ivdele + 1
606: write (i02,80003) ivtnum
607: if (iczero) 41620, 1631, 41620
608: 41620 if ( ivon01 - 1 ) 21620, 11620, 21620
609: 11620 ivpass = ivpass + 1
610: write (i02,80001) ivtnum
611: go to 1631
612: 21620 ivfail = ivfail + 1
613: ivcomp=ivon01
614: ivcorr=1
615: write (i02,80004) ivtnum, ivcomp ,ivcorr
616: 1631 continue
617: ivtnum = 163
618: c
619: c **** test 163 ****
620: c test 163 - relational expression with integer variable
621: c references (ic) (ro) (ivr). true path. use .lt.
622: c
623: c
624: if (iczero) 31630, 1630, 31630
625: 1630 continue
626: ivon01 = 76
627: ivon02 = 0
628: if ( 3 .lt. ivon01 ) ivon02 = 1
629: go to 41630
630: 31630 ivdele = ivdele + 1
631: write (i02,80003) ivtnum
632: if (iczero) 41630, 1641, 41630
633: 41630 if ( ivon02 - 1 ) 21630, 11630, 21630
634: 11630 ivpass = ivpass + 1
635: write (i02,80001) ivtnum
636: go to 1641
637: 21630 ivfail = ivfail + 1
638: ivcomp = ivon02
639: ivcorr = 1
640: write (i02,80004) ivtnum, ivcomp ,ivcorr
641: 1641 continue
642: ivtnum = 164
643: c
644: c **** test 164 ****
645: c test 164 - relational expression. integer variable references.
646: c true path. .le.
647: c
648: c
649: if (iczero) 31640, 1640, 31640
650: 1640 continue
651: ivon01 = 587
652: ivon02 = 0
653: if ( 587 .le. ivon01 ) ivon02 = 1
654: go to 41640
655: 31640 ivdele = ivdele + 1
656: write (i02,80003) ivtnum
657: if (iczero) 41640, 1651, 41640
658: 41640 if ( ivon02 - 1 ) 21640, 11640, 21640
659: 11640 ivpass = ivpass + 1
660: write (i02,80001) ivtnum
661: go to 1651
662: 21640 ivfail = ivfail + 1
663: ivcomp = ivon02
664: ivcorr = 1
665: write (i02,80004) ivtnum, ivcomp ,ivcorr
666: 1651 continue
667: ivtnum = 165
668: c
669: c **** test 165 ****
670: c test 165 - relational expression. integer variable reference.
671: c true path. .eq.
672: c
673: c
674: if (iczero) 31650, 1650, 31650
675: 1650 continue
676: ivon01 = 9999
677: ivon02 = 0
678: if ( 9999 .eq. ivon01 ) ivon02 = 1
679: go to 41650
680: 31650 ivdele = ivdele + 1
681: write (i02,80003) ivtnum
682: if (iczero) 41650, 1661, 41650
683: 41650 if ( ivon02 - 1 ) 21650, 11650, 21650
684: 11650 ivpass = ivpass + 1
685: write (i02,80001) ivtnum
686: go to 1661
687: 21650 ivfail = ivfail + 1
688: ivcomp = ivon02
689: ivcorr = 1
690: write (i02,80004) ivtnum, ivcomp ,ivcorr
691: 1661 continue
692: ivtnum = 166
693: c
694: c **** test 166 ****
695: c test 166 - relational expression. integer variable reference.
696: c true path. .ne.
697: c
698: c
699: if (iczero) 31660, 1660, 31660
700: 1660 continue
701: ivon01 = 32767
702: ivon02 = 0
703: if ( 0 .ne. ivon01 ) ivon02 = 1
704: go to 41660
705: 31660 ivdele = ivdele + 1
706: write (i02,80003) ivtnum
707: if (iczero) 41660, 1671, 41660
708: 41660 if ( ivon02 - 1 ) 21660, 11660, 21660
709: 11660 ivpass = ivpass + 1
710: write (i02,80001) ivtnum
711: go to 1671
712: 21660 ivfail = ivfail + 1
713: ivcomp = ivon02
714: ivcorr = 1
715: write (i02,80004) ivtnum, ivcomp ,ivcorr
716: 1671 continue
717: ivtnum = 167
718: c
719: c **** test 167 ****
720: c test 167 - relational expression. integer variable reference.
721: c true path. .gt.
722: c
723: c
724: if (iczero) 31670, 1670, 31670
725: 1670 continue
726: ivon01 = 76
727: ivon02 = 0
728: if ( 32767 .gt. ivon01 ) ivon02 = 1
729: go to 41670
730: 31670 ivdele = ivdele + 1
731: write (i02,80003) ivtnum
732: if (iczero) 41670, 1681, 41670
733: 41670 if ( ivon02 - 1 ) 21670, 11670, 21670
734: 11670 ivpass = ivpass + 1
735: write (i02,80001) ivtnum
736: go to 1681
737: 21670 ivfail = ivfail + 1
738: ivcomp = ivon02
739: ivcorr = 1
740: write (i02,80004) ivtnum, ivcomp ,ivcorr
741: 1681 continue
742: ivtnum = 168
743: c
744: c **** test 168 ****
745: c test 168 - relational expression. integer variable reference.
746: c true path. .ge.
747: c
748: c
749: if (iczero) 31680, 1680, 31680
750: 1680 continue
751: ivon01 = 76
752: ivon02 = 0
753: if ( 32767 .ge. ivon01 ) ivon02 = 1
754: go to 41680
755: 31680 ivdele = ivdele + 1
756: write (i02,80003) ivtnum
757: if (iczero) 41680, 1691, 41680
758: 41680 if ( ivon02 - 1 ) 21680, 11680, 21680
759: 11680 ivpass = ivpass + 1
760: write (i02,80001) ivtnum
761: go to 1691
762: 21680 ivfail = ivfail + 1
763: ivcomp = ivon02
764: ivcorr = 1
765: write (i02,80004) ivtnum, ivcomp ,ivcorr
766: 1691 continue
767: ivtnum = 169
768: c
769: c **** test 169 ****
770: c test 169 - relational expression. integer variable reference.
771: c true path. .eq.
772: c
773: c
774: if (iczero) 31690, 1690, 31690
775: 1690 continue
776: ivon01 = 32767
777: ivon02 = 0
778: if ( 32767 .eq. ivon01 ) ivon02 = 1
779: go to 41690
780: 31690 ivdele = ivdele + 1
781: write (i02,80003) ivtnum
782: if (iczero) 41690, 1701, 41690
783: 41690 if ( ivon02 - 1 ) 21690, 11690, 21690
784: 11690 ivpass = ivpass + 1
785: write (i02,80001) ivtnum
786: go to 1701
787: 21690 ivfail = ivfail + 1
788: ivcomp = ivon02
789: ivcorr = 1
790: write (i02,80004) ivtnum, ivcomp ,ivcorr
791: 1701 continue
792: c
793: c write page footings and run summaries
794: 99999 continue
795: write (i02,90002)
796: write (i02,90006)
797: write (i02,90002)
798: write (i02,90002)
799: write (i02,90007)
800: write (i02,90002)
801: write (i02,90008) ivfail
802: write (i02,90009) ivpass
803: write (i02,90010) ivdele
804: c
805: c
806: c terminate routine execution
807: stop
808: c
809: c format statements for page headers
810: 90000 format (1h1)
811: 90002 format (1h )
812: 90001 format (1h ,10x,34hfortran compiler validation system)
813: 90003 format (1h ,21x,11hversion 1.0)
814: 90004 format (1h ,10x,38hfor official use only - copyright 1978)
815: 90005 format (1h ,5x,4htest,5x,9hpass/fail, 5x,8hcomputed,8x,7hcorrect)
816: 90006 format (1h ,5x,46h----------------------------------------------)
817: 90011 format (1h ,18x,17hsubset level test)
818: c
819: c format statements for run summaries
820: 90008 format (1h ,15x,i5,19h errors encountered)
821: 90009 format (1h ,15x,i5,13h tests passed)
822: 90010 format (1h ,15x,i5,14h tests deleted)
823: c
824: c format statements for test results
825: 80001 format (1h ,4x,i5,7x,4hpass)
826: 80002 format (1h ,4x,i5,7x,4hfail)
827: 80003 format (1h ,4x,i5,7x,7hdeleted)
828: 80004 format (1h ,4x,i5,7x,4hfail,10x,i6,9x,i6)
829: 80005 format (1h ,4x,i5,7x,4hfail,4x,e12.5,3x,e12.5)
830: c
831: 90007 format (1h ,20x,20hend of program fm016)
832: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.