]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.1.1.1 1996/03/06 10:47:11 mclareni | |
6 | * Zebra | |
7 | * | |
8 | * | |
9 | #include "zebra/pilot.h" | |
10 | SUBROUTINE FZENDI (LUNPAR,CHOPT) | |
11 | ||
12 | C- TERMINATION OF ZEBRA INPUT FILE | |
13 | ||
14 | #include "zebra/zunit.inc" | |
15 | #include "zebra/mqsys.inc" | |
16 | #include "zebra/eqlqf.inc" | |
17 | #include "zebra/fzstat.inc" | |
18 | #include "zebra/fzcf.inc" | |
19 | #include "zebra/fzci.inc" | |
20 | C-------------- End CDE -------------- | |
21 | DIMENSION LUNPAR(9) | |
22 | CHARACTER CHOPT*(*) | |
23 | DIMENSION IOPNUM(4) | |
24 | EQUIVALENCE (IOPTT,IOPTVF(1)), (IOPTR,IOPTVF(6)) | |
25 | +, (IOPTN,IOPTVF(2)), (IOPTU,IOPTVF(7)) | |
26 | +, (IOPTC,IOPTVF(3)), (IOPTX,IOPTVF(8)) | |
27 | +, (IOPTI,IOPTVF(4)), (IOPTK,IOPTVF(9)) | |
28 | +, (IOPTO,IOPTVF(5)), (IOPTQ,IOPTVF(10)) | |
29 | +, (IOPNUM(1),IOPTVF(11)) | |
30 | #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M)) | |
31 | DIMENSION NAMESR(2) | |
32 | DATA NAMESR / 4HFZEN, 4HDI / | |
33 | #endif | |
34 | #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M)) | |
35 | DATA NAMESR / 6HFZENDI / | |
36 | #endif | |
37 | #if !defined(CERNLIB_QTRHOLL) | |
38 | CHARACTER NAMESR*8 | |
39 | PARAMETER (NAMESR = 'FZENDI ') | |
40 | #endif | |
41 | ||
42 | #include "zebra/q_jbit.inc" | |
43 | ||
44 | #include "zebra/qtrace.inc" | |
45 | ||
46 | LUNORG = LUNPAR(1) | |
47 | LUN = LUNORG | |
48 | CALL UOPTC (CHOPT,'TNCIORUXKQ0123',IOPTVF) | |
49 | INFLUN = 0 | |
50 | ||
51 | NEOF = -1 | |
52 | IF (IOPNUM(4).NE.0) NEOF=3 | |
53 | IF (IOPNUM(3).NE.0) NEOF=2 | |
54 | IF (IOPNUM(2).NE.0) NEOF=1 | |
55 | IF (IOPNUM(1).NE.0) NEOF=0 | |
56 | IOPTK = 1 | |
57 | ||
58 | C-- Terminate option selected | |
59 | ||
60 | IF (IOPTT.NE.0) THEN | |
61 | IOPTN = 0 | |
62 | IOPTC = 0 | |
63 | IOPTI = 0 | |
64 | IOPTO = 0 | |
65 | IOPTK = 0 | |
66 | ||
67 | C-- New option selected | |
68 | ||
69 | ELSEIF (IOPTN.NE.0) THEN | |
70 | IOPTC = 0 | |
71 | IOPTI = 0 | |
72 | IOPTO = 0 | |
73 | ELSE | |
74 | IOPTR = 0 | |
75 | IOPTU = 0 | |
76 | IOPTX = 0 | |
77 | ENDIF | |
78 | ||
79 | C-- Continue option selected | |
80 | ||
81 | IF (IOPTC.NE.0) THEN | |
82 | IOPTI = 0 | |
83 | IOPTO = 0 | |
84 | ENDIF | |
85 | ||
86 | C-- Input option selected | |
87 | ||
88 | IF (IOPTI.NE.0) THEN | |
89 | IOPTO = 0 | |
90 | IOPTR = 1 | |
91 | ENDIF | |
92 | ||
93 | C---- LOOP OVER ALL INPUT FILES IF LUNPAR=0 | |
94 | ||
95 | IF (LUN.NE.0) GO TO 24 | |
96 | LQFF = LQFS | |
97 | GO TO 22 | |
98 | ||
99 | 21 LQFF = LQ(KQSP+LQFF) | |
100 | 22 IF (LQFF.EQ.0) GO TO 999 | |
101 | LUN = IQ(KQSP+LQFF-5) | |
102 | ||
103 | LUNI = 0 | |
104 | IQUEST(1) = -7 | |
105 | CALL FZLOC (LUN,-1) | |
106 | IF (LUNI.EQ.LUN) GO TO 31 | |
107 | GO TO 21 | |
108 | ||
109 | C-- FZENDI called for one particular input file | |
110 | ||
111 | 24 LUNI = 0 | |
112 | IQUEST(1) = 0 | |
113 | CALL FZLOC (LUN,-1) | |
114 | IF (LUNI.EQ.LUN) GO TO 31 | |
115 | #if defined(CERNLIB_QPRINT) | |
116 | IF (IOPTQ.EQ.0) THEN | |
117 | WRITE (IQLOG,9024) LUN | |
118 | IF (LUNF.EQ.LUN) WRITE (IQLOG,9025) IACTVF | |
119 | ENDIF | |
120 | 9024 FORMAT (1X/' FZENDI. LUN=',I3,' is not a valid input file') | |
121 | 9025 FORMAT (10X,'last activity=',I2) | |
122 | #endif | |
123 | GO TO 999 | |
124 | ||
125 | C------------------------------------------------- | |
126 | C- Do input file | |
127 | C------------------------------------------------- | |
128 | ||
129 | 31 IF (IOPTQ.NE.0) LOGLVF=-2 | |
130 | #if defined(CERNLIB_QPRINT) | |
131 | IF (LOGLVF.GE.0) | |
132 | +WRITE (IQLOG,9031) LUN,IACTVF,CHOPT | |
133 | 9031 FORMAT (1X/' FZENDI. For input file at LUN=',I3, | |
134 | F', Last activity=',I2,', OPT= ',A) | |
135 | #endif | |
136 | IF (IACTVF.GE.8) GO TO 61 | |
137 | ||
138 | C---- Print file usage | |
139 | ||
140 | #if defined(CERNLIB_QPRINT) | |
141 | IF (LOGLVF.LT.0) GO TO 39 | |
142 | IF (IQ(KQSP+LQFF+28).EQ.IQ(KQSP+LQFF+15)) GO TO 39 | |
143 | N = 21 | |
144 | IF (IFIFOF.NE.0) N=24 | |
145 | WRITE (IQLOG,9036) (IQ(KQSP+LQFF+J),J=11,N) | |
146 | 9036 FORMAT (10X,'Number of objects read : ' | |
147 | F/10X,I9,' System EOF' | |
148 | F/10X,I9,' Zebra EOF' | |
149 | F/10X,I9,' End-of-Run' | |
150 | F/10X,I9,' Start-of-Run' | |
151 | F/10X,I9,' Pilot records' | |
152 | F/10X,I9,' Non-empty d/s selected' | |
153 | F/10X,I9,' Empty d/s selected' | |
154 | F/10X,I9,' Read or Data errors' | |
155 | F/7X,I12,' Mega-words +' | |
156 | F/7X,I12,' words' | |
157 | F/10X,I9,' Good logical records',:/ | |
158 | F 10X,I9,' Good physical records' | |
159 | F/10X,I9,' Steering blocks' | |
160 | F/10X,I9,' Words with conversion problems') | |
161 | ||
162 | IQ(KQSP+LQFF+28) = IQ(KQSP+LQFF+15) | |
163 | #endif | |
164 | 39 INFLUN = LUN | |
165 | INFSTA = IQ(KQSP+LQFF) | |
166 | CALL UCOPY (IQ(KQSP+LQFF+1), INFOFZ, 40) | |
167 | ||
168 | C---- New file to be connected by the user | |
169 | ||
170 | IF (IOPTN.EQ.0) GO TO 44 | |
171 | IQ(KQSP+LQFF+2) = 8 | |
172 | CALL VZERO (IQ(KQSP+LQFF+30),7) | |
173 | IF (IOPTR.NE.0) GO TO 57 | |
174 | GO TO 71 | |
175 | ||
176 | C-- Continue to read next file on same | |
177 | ||
178 | 44 IF (IOPTC.EQ.0) GO TO 51 | |
179 | IF (IACTVF.NE.5) GO TO 48 | |
180 | IF (IACMOF.NE.1) GO TO 79 | |
181 | IF (JBIT(MSTATF,13).EQ.0) GO TO 79 | |
182 | ||
183 | #include "fzendicx.inc" | |
184 | * Ignoring t=pass | |
185 | GO TO 79 | |
186 | ||
187 | 48 CONTINUE | |
188 | #if defined(CERNLIB_QPRINT) | |
189 | IF (LOGLVF.GE.-2) WRITE (IQLOG,9048) LUNF | |
190 | 9048 FORMAT (' FZENDI. LUN=',I3,' not positioned on system EoF;', | |
191 | F' C-option is redundant.') | |
192 | #endif | |
193 | GO TO 79 | |
194 | ||
195 | C---- REWIND | |
196 | ||
197 | 51 IF (IOPTR.EQ.0) GO TO 61 | |
198 | ||
199 | IQ(KQSP+LQFF+2) = 8 | |
200 | CALL VZERO (IQ(KQSP+LQFF+11),23) | |
201 | ||
202 | 57 CALL FZMACH (0) | |
203 | ||
204 | C---- Switch to output | |
205 | ||
206 | 61 IF (IOPTO.EQ.0) GO TO 71 | |
207 | IQ(KQSP+LQFF+2) = 10 | |
208 | IF (NEOF.GE.0) THEN | |
209 | CALL SBYT (NEOF, IQ(KQSP+LQFF), 13,2) | |
210 | #if defined(CERNLIB_QPRINT) | |
211 | IF (LOGLVF.GE.0) WRITE (IQLOG,9062) LUN,NEOF | |
212 | 9062 FORMAT (10X,'LUN=',I4,' Set NEOF =',I2) | |
213 | #endif | |
214 | ENDIF | |
215 | ||
216 | C---- Close the file, Drop the control bank | |
217 | ||
218 | 71 IF (IOPTX.NE.0) THEN | |
219 | CALL FZMACH (2) | |
220 | IQ(KQSP+LQFF+1) = IADOPF | |
221 | ENDIF | |
222 | ||
223 | IF (IOPTK.EQ.0) CALL MZDROP (0,LQFF,'.') | |
224 | ||
225 | 79 LUNI = 0 | |
226 | IF (LUNORG.EQ.0) GO TO 21 | |
227 | ||
228 | #include "zebra/qtrace99.inc" | |
229 | RETURN | |
230 | END | |
231 | * ================================================== | |
232 | #include "zebra/qcardl.inc" |