5 * Revision 1.2 1996/04/18 16:10:30 mclareni
6 * Incorporate changes from J.Zoll for version 3.77
8 * Revision 1.1.1.1 1996/03/06 10:47:12 mclareni
12 #include "zebra/pilot.h"
13 #if defined(CERNLIB_FZDACC)
14 SUBROUTINE FZIDAT (LUNP,IXDIVP,LSUPP,JBIASP)
16 C- Find and read the Direct Access Table
18 #include "zebra/zunit.inc"
19 #include "zebra/mqsys.inc"
20 #include "zebra/eqlqf.inc"
21 #include "zebra/fzci.inc"
22 C-------------- End CDE --------------
23 DIMENSION LUNP(9),IXDIVP(9),LSUPP(9),JBIASP(9)
26 #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
28 DATA NAMESR / 4HFZID, 4HAT /
30 #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
31 DATA NAMESR / 6HFZIDAT /
33 #if !defined(CERNLIB_QTRHOLL)
35 PARAMETER (NAMESR = 'FZIDAT ')
38 #include "zebra/q_jbit.inc"
40 #include "zebra/qtrace.inc"
44 #if defined(CERNLIB_QDEBPRI)
45 IF (LOGLVI.GE.2) WRITE (IQLOG,9002) LUNI
46 9002 FORMAT (' FZIDAT- called for LUN=',I4)
51 LBPARI = LQFI + INCBPI
52 NWPREC = IQ(KQSP+LBPARI+1)
54 C---- Read the first logical record
61 24 CALL FZINXT (LUNI,MDSADR(1),MDSADR(2))
64 CALL FZIN (LUNI, IXDIVP, LSUPP, JBIASP, CHOPT, NUH, MDSADR)
68 C-- ITER = 0 read first LR of the file, is it DAT forward ref.?
69 C- 1 read the last LR of the file, is it Zebra EoF ?
70 C- 2 hunt for DAT record
71 C- 3 select DAT record
72 C- 4 read the data of the DAT record
74 IF (ITER.EQ.4) GO TO 67
75 IF (ITER.EQ.3) GO TO 64
76 IF (ITER.EQ.2) GO TO 54
77 IF (ITER.EQ.1) GO TO 44
79 C-- look at the first record
80 IF (IQUEST(1).GE.4) GO TO 802
81 IF (IQUEST(1).NE.0) GO TO 34
82 IF (IPILI(3) .NE.2) GO TO 34
83 IF (MDSADR(1).NE.0) GO TO 61
85 #if defined(CERNLIB_QDEBPRI)
86 IF (LOGLVI.GE.0) WRITE (IQLOG,9032) LUNI
87 9032 FORMAT (' FZIDAT. LUN=',I4,' DaT forward ref. record not filled')
92 #if defined(CERNLIB_QDEBPRI)
93 IF (LOGLVI.GE.0) WRITE (IQLOG,9034) LUNI
94 9034 FORMAT (' FZIDAT. LUN=',I4,
95 F' does not start with DaT forward ref. record')
98 C------ Get the last logical record
101 #if defined(CERNLIB_QDEBPRI)
102 IF (LOGLVI.GE.0) WRITE (IQLOG,9041)
103 9041 FORMAT (19X,'try direct read of last record')
105 #if defined(CERNLIB_FZDACCL)
106 IF (IACMOI.EQ.2) THEN
107 CALL CFSIZE (IADOPI, MEDIUI,NWPREC,JRECLL,ISTAT)
111 CALL FFSIZE (LUNI,NWPREC,JRECLL,ISTAT)
113 42 IF (ISTAT.NE.0) JRECLL = 0
114 IF (JRECLL.LE.0) GO TO 51
119 C-- look at the last logical record
120 44 IF (IQUEST(1).GE.4) GO TO 51
121 IF (IQUEST(1).LT.0) GO TO 51
122 IF (IQUEST(1).NE.3) GO TO 26
123 IF (MDSADR(1).NE.0) GO TO 62
125 #if defined(CERNLIB_QDEBPRI)
126 IF (LOGLVI.GE.0) WRITE (IQLOG,9046) LUNI
127 9046 FORMAT (' FZIDAT. LUN=',I4,' Zebra EoF does not point to DaT')
129 IF (MDSADR(2).EQ.0) GO TO 801
131 C------ Hunt for the DAT bank or Zebra EoF
135 JRECLL = MAX (JRECLL-25,1)
138 IF (JRECLL.GE.11) NFTOL = 12
141 #if defined(CERNLIB_QDEBPRI)
142 IF (LOGLVI.GE.0) WRITE (IQLOG,9051) LUNI,JRECLL
143 9051 FORMAT (' FZIDAT. LUN=',I4,' cannot get DaT adr from Zebra EoF'
144 F/19X,'hunt for it starting at record',I9)
148 54 IF (IQUEST(1).EQ.0) GO TO 65
149 IF (IQUEST(1).EQ.3) GO TO 55
150 IF (IQUEST(1).GE.4) GO TO 57
151 IF (IQUEST(1).LT.0) THEN
153 IF (NFTOL.LT.0) GO TO 801
159 55 IF (MDSADR(1).NE.0) GO TO 62
163 57 IF (JRECLL.LE.1) GO TO 801
164 IF (LDSADR.EQ.0) GO TO 801
168 C------ Read the DAT bank
175 64 IF (IQUEST(1).NE.0) GO TO 801
176 IF (IPILI(3).NE.1) GO TO 801
177 65 IQ(KQSP+LQFI+34) = IQUEST(5)
178 IQ(KQSP+LQFI+35) = IQUEST(6)
183 67 IF (IQUEST(1).NE.0) GO TO 801
184 IF (IQUEST(13).EQ.0) GO TO 801
186 C-- update the DAT forward reference record
187 IF (IFLUPD.EQ.0) GO TO 71
188 IF (JBIT(MSTATI,12).EQ.0) GO TO 71
192 71 IQ(KQSP+LQFI+2) = 2
193 #if defined(CERNLIB_QDEBPRI)
194 IF (LOGLVI+IFLNOR.GE.0) WRITE (IQLOG,9072) LUNI
195 9072 FORMAT (' FZIDAT. LUN=',I4,' rewind')
197 CALL FZENDI (LUNP,'IQ')
198 #include "zebra/qtrace99.inc"
204 #if defined(CERNLIB_QDEBPRI)
205 IF (LOGLVI.GE.-2) WRITE (IQLOG,9098) LUNI
206 9098 FORMAT (' FZIDAT. LUN=',I4,' DaT not found !!!')
211 #if defined(CERNLIB_QDEBPRI)
212 IF (LOGLVI.GE.-2) WRITE (IQLOG,9099) LUNI
213 9099 FORMAT (' FZIDAT. LUN=',I4,' file is empty !!!')
217 * ==================================================
218 #include "zebra/qcardl.inc"