5 * Revision 1.2 1996/04/24 17:26:52 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:23 mclareni
13 #include "zebra/pilot.h"
14 SUBROUTINE RZFRFZ(LUNFZ,CHOPT)
16 ************************************************************************
18 * To read the sequential file LUNFZ into the CWD
19 * NB. A call to FZOPEN must preceede this call
21 * LUNFZ Logical unit number of the FZ sequential access file
22 * CHOPT default, read all cycles for path CHPATH
23 * 'H' read only the highest cycle
27 * Author : R.Brun DD/US/PD
31 ************************************************************************
32 #include "zebra/zbcdch.inc"
33 #include "zebra/rzcl.inc"
34 #include "zebra/rzch.inc"
35 #include "zebra/rzk.inc"
36 #include "zebra/rzckey.inc"
37 #include "zebra/rzclun.inc"
41 DIMENSION IHDIR(4),ICDIR(KNMAX)
42 EQUIVALENCE (ICDIR(1),KEY(1))
45 *-----------------------------------------------------------------------
54 CALL RZMODS('RZFRFZ',IFLAG)
55 IF(IFLAG.NE.0)GO TO 99
56 CALL UOPTC(CHOPT,'H',IOPTH)
61 CALL RZCDIR(CHWOLD,'R')
64 * Read general header and find next RZ construct
67 CALL FZIN(LUNFZ,JQPDVS,0,0,'S',NH,IHEAD)
68 IF(IQUEST(1).NE.0)GO TO 99
70 IF(IHEAD(1).NE.12345)GO TO 10
79 CALL FZIN(LUNFZ,JQPDVS,0,0,'S',NH,IHEAD)
80 IF(IQUEST(1).NE.0)GO TO 90
81 IF(NH.EQ.1.AND.IHEAD(1).EQ.99.AND.ITIME.NE.0)GO TO 90
82 IF(NH.NE.KNSIZE)GO TO 20
83 IF(IHEAD(1).NE.1)GO TO 20
84 IF(IHEAD(2).EQ.NLPI0)GO TO 70
88 IF(IHEAD(2).LE.NLPI)THEN
89 CALL MZDROP(JQPDVS,LCDIR,' ')
92 DO 30 I=NLPI-1,IHEAD(2),-1
93 CHFORM=CHL(1:ICHL)//BSLASH
100 * New subdirectory. Check if directory does not exist already
102 LS=IQ(KQSP+LCDIR+KLS)
103 NSDIR=IQ(KQSP+LCDIR+KNSD)
104 CALL ZITOH(ICDIR,IHDIR,4)
105 CALL UHTOC(IHDIR,4,CHL,16)
107 KTAGS=KKDES+(NWKEY-1)/10+1
109 IF(RZSAME(ICDIR,IQ(KQSP+LCDIR+LS+7*(I-1)),4))GO TO 60
112 * Create subdirectory
114 CALL RZMDIR(CHL,NWKEY,'?',' ')
115 IF(IQUEST(1).NE.0)GO TO 90
117 * Set CWD to new branch
119 60 CALL RZCDIR(CHL,' ')
121 * Is directory big enough ?
123 IF(IQ(KQSP+LCDIR-1).LT.ICDIR(KLE))THEN
124 NM=ICDIR(KLE)-IQ(KQSP+LCDIR-1)
125 CALL RZEXPD('RZFRFZ',NM)
126 IF(IQUEST(1).NE.0) GO TO 90
128 CALL UCOPY(ICDIR(KKDES),IQ(KQSP+LCDIR+KKDES),2*NWKEY+KTAGS-KKDES)
129 CALL UCOPY(ICDIR(KDATEC),IQ(KQSP+LCDIR+KDATEC),2)
133 * Copy keys from sequential file to CWD
135 CALL SBIT1(IQ(KQSP+LTOP),2)
136 CALL RZFRF1(LUNFZ,IOPTH)
137 IF(IQUEST(1).EQ.0) GO TO 20
139 * Set CWD to original value
144 CALL RZCDIR(CHWOLD,' ')