]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MINICERN/packlib/zebra/fq/fzendi.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MINICERN / packlib / zebra / fq / fzendi.F
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"