5 * Revision 1.2 1996/04/24 17:27:10 mclareni
6 * Extend the include file cleanup to dzebra, rz and tq, and also add
7 * dependencies in some cases.
9 * Revision 1.1.1.1 1996/03/06 10:47:26 mclareni
13 #include "zebra/pilot.h"
14 SUBROUTINE RZTOF1(LUNFZ,IOPTC)
16 ************************************************************************
18 * Copy current directory to a sequential FZ file
20 * LUNFZ Logical unit number of the FZ sequential access file
21 * IOPTC 0 save only the highest cycle to LUNFZ
26 * Author : R.Brun DD/US/PD
29 * : 04.03.94 S.Banerjee (Change in cycle structure)
30 * : 23.03.95 J.Shiers - key # in cycles block is KEY(1)
32 ************************************************************************
33 #include "zebra/rzcl.inc"
34 #include "zebra/rzdir.inc"
35 #include "zebra/rzk.inc"
36 #include "zebra/rzckey.inc"
37 #include "zebra/rzcycle.inc"
39 *-----------------------------------------------------------------------
41 #include "zebra/q_jbyt.inc"
43 * Fill header for directory
45 NKEYS=IQ(KQSP+LCDIR+KNKEYS)
46 NWKEY=IQ(KQSP+LCDIR+KNWKEY)
47 LB = IQ(KQSP+LTOP+KLB)
48 LREC = IQ(KQSP+LTOP+LB+1)
50 IF(NWKEY.EQ.2.AND.LREC.EQ.128)THEN
52 CALL ZITOH(IQ(KQSP+LCDIR+KTAGS),KEY,2)
53 CALL UCTOH('DECKNAME',KEY2,4,8)
54 IF(KEY(1).EQ.KEY2(1).AND.KEY(2).EQ.KEY2(2))THEN
62 CALL UCOPY(IQ(KQSP+LCDIR+1),KEY,KNSIZE-3)
64 * Write directory header
66 CALL FZOUT(LUNFZ,JQPDVS,0,1,'Z',1,KNSIZE,IHEAD)
67 IF(IQUEST(1).NE.0)GO TO 99
69 * Loop on all keys of level 0
74 LKC=LK+(NWKEY+1)*(I-1)
76 KEY(K)=IQ(KQSP+LCDIR+LKC+K)
78 LCYC =IQ(KQSP+LCDIR+LKC)
80 * IF (IQ(KQSP+LCDIR+LCYC+KKYCYC).NE.I) THEN
81 IF (IQ(KQSP+LCDIR+LCYC+KKYCYC).NE.IQ(KQSP+LCDIR+LKC+1)) THEN
87 * Store cycles in reverse order for 'C' option
91 CALL MZBOOK(JQPDVS,LCORD,LTOP,-4,'RZCO',0,0,50,2,-1)
94 30 NORD=IQ(KQSP+LCORD+1)+1
96 LCOLD = JBYT(IQ(KQSP+LCDIR+LCYC+KPPCYC), 1,16)
98 LCOLD = IQ(KQSP+LCDIR+LCYC+KPPCYC)
100 IF(NORD.GT.IQ(KQSP+LCORD-1))THEN
101 CALL MZPUSH(JQPDVS,LCORD,0,50,'I')
103 IQ(KQSP+LCORD+1)=NORD
104 IQ(KQSP+LCORD+NORD+1)=LCYC
105 IF(LCOLD.NE.0.AND.LCOLD.NE.LCYC)THEN
110 LCYC= IQ(KQSP+LCORD+IC+1)
111 ICY = JBYT(IQ(KQSP+LCDIR+LCYC+KCNCYC),21,12)
112 CALL RZIN(JQPDVS,LRZ0,-1,I,ICY,'S')
113 IF(IQUEST(1).NE.0)GO TO 99
114 LFROM=LQ(KQSP+LRZ0-1)
116 NDATA=IQ(KQSP+LFROM-1)
118 CALL MZBOOK(JQPDVS,LTEMP,LFROM,0,'TEMP',0,0,NT,1,-1)
121 35 IF(NTOT.LT.NDATA)THEN
123 CALL MZPUSH(JQPDVS,LTEMP,0,50,'I')
126 CALL RZLIND(IQ(KQSP+LFROM+1),NTOT,
127 + IQ(KQSP+LTEMP+1),NEW)
133 IHEAD(3)=IQ(KQSP+LCDIR+LCYC+KFLCYC)
135 CALL FZOUT(LUNFZ,JQPDVS,LFROM,1,'L',2,NH,IHEAD)
136 IF(IQUEST(1).NE.0)GO TO 90
137 CALL MZDROP(JQPDVS,LFROM,'L')
141 50 ICY =JBYT(IQ(KQSP+LCDIR+LCYC+KCNCYC),21,12)
142 CALL RZIN(JQPDVS,LRZ0,-1,I,ICY,'S')
143 IF(IQUEST(1).NE.0)GO TO 99
144 LFROM=LQ(KQSP+LRZ0-1)
146 NDATA=IQ(KQSP+LFROM-1)
148 CALL MZBOOK(JQPDVS,LTEMP,LFROM,0,'TEMP',0,0,NT,1,-1)
151 55 IF(NTOT.LT.NDATA)THEN
153 CALL MZPUSH(JQPDVS,LTEMP,0,50,'I')
156 CALL RZLIND(IQ(KQSP+LFROM+1),NTOT,
157 + IQ(KQSP+LTEMP+1),NEW)
163 IHEAD(3)=IQ(KQSP+LCDIR+LCYC+KFLCYC)
165 CALL FZOUT(LUNFZ,JQPDVS,LFROM,1,'L',2,NH,IHEAD)
166 IF(IQUEST(1).NE.0)GO TO 90
167 CALL MZDROP(JQPDVS,LFROM,'L')
173 * Write directory trailer
175 CALL FZOUT(LUNFZ,JQPDVS,0,0,'Z',1,1,77)
177 90 IF(LFROM.GT.0)THEN
179 CALL MZDROP(JQPDVS,LFROM,'L')