]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/packlib/zebra/rz/rztofz.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / packlib / zebra / rz / rztofz.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.2 1996/04/24 17:27:14 mclareni
6* Extend the include file cleanup to dzebra, rz and tq, and also add
7* dependencies in some cases.
8*
9* Revision 1.1.1.1 1996/03/06 10:47:26 mclareni
10* Zebra
11*
12*
13#include "zebra/pilot.h"
14 SUBROUTINE RZTOFZ(LUNFZ,CHOPT)
15*
16************************************************************************
17*
18* Copy the CWD tree to a sequential FZ file
19* The FZ file must have been declared with FZOPEN
20* Input:
21* LUNFZ Logical unit number of the FZ sequential access file
22* CHOPT default save only the highest cycle to LUNFZ
23* 'C' save all cycles
24*
25* Called by <USER>
26*
27* Author : R.Brun DD/US/PD
28* Written : 14.05.86
29* Last mod: 26.06.92 JDS - protect against RZPAFF problems
30*
31************************************************************************
32#include "zebra/rzcl.inc"
33#include "zebra/rzdir.inc"
34#include "zebra/rzch.inc"
35#include "zebra/rzk.inc"
36 CHARACTER*(*) CHOPT
37 DIMENSION ISD(NLPATM),NSD(NLPATM),IHDIR(4)
38*
39*-----------------------------------------------------------------------
40*
41 IQUEST(1)=0
42 IQ1=0
43 IF(LQRS.EQ.0)GO TO 99
44*
45 CALL UOPTC(CHOPT,'C',IOPTC)
46 NLPAT0=NLPAT
47 DO 5 I=1,NLPAT0
48 CHPAT(I)=CHCDIR(I)
49 5 CONTINUE
50 ITIME=0
51 CALL RZCDIR(CHWOLD,'R')
52*
53* Garbage collection in user short range divisions
54* in primary store
55*
56 CALL MZGARB(21,0)
57*
58* Write general header
59*
60 IHDIR(1)=12345
61 IHDIR(2)=NLPAT0
62 CALL FZOUT(LUNFZ,JQPDVS,0,1,'Z',1,2,IHDIR)
63 IF(IQUEST(1).NE.0)THEN
64 IQ1=IQUEST(1)
65 GO TO 90
66 ENDIF
67*
68* Set CWD to the current level
69*
70 10 CONTINUE
71 IF(ITIME.NE.0)THEN
72 CALL RZPAFF(CHPAT,NLPAT,CHL)
73 IF(IQUEST(1).NE.0)THEN
74 IQ1=IQUEST(1)
75 NLPAT=NLPAT-1
76 GO TO 20
77 ENDIF
78 CALL RZCDIR(CHL,' ')
79 ENDIF
80 ISD(NLPAT)=0
81 NSD(NLPAT)=IQ(KQSP+LCDIR+KNSD)
82*
83* Write current directory
84*
85 CALL RZTOF1(LUNFZ,IOPTC)
86 IF(IQUEST(1).NE.0)THEN
87 IQ1=IQUEST(1)
88 NLPAT=NLPAT-1
89 GO TO 20
90 ENDIF
91*
92* Process possible down directories
93*
94 20 ISD(NLPAT)=ISD(NLPAT)+1
95 IF(ISD(NLPAT).LE.NSD(NLPAT))THEN
96 NLPAT=NLPAT+1
97 LS=IQ(KQSP+LCDIR+KLS)
98 IH=LS+7*(ISD(NLPAT-1)-1)
99 CALL ZITOH(IQ(KQSP+LCDIR+IH),IHDIR,4)
100 CALL UHTOC(IHDIR,4,CHPAT(NLPAT),16)
101 ITIME=ITIME+1
102 GO TO 10
103 ELSE
104 NLPAT=NLPAT-1
105 IF(NLPAT.GE.NLPAT0)THEN
106 LUP=LQ(KQSP+LCDIR+1)
107 CALL MZDROP(JQPDVS,LCDIR,' ')
108 LCDIR=LUP
109 GO TO 20
110 ENDIF
111 ENDIF
112*
113* Write final trailer
114*
115 NLPAT=NLPAT0
116 CALL FZOUT(LUNFZ,JQPDVS,0,1,'Z',1,1,99)
117 IF(IQUEST(1).NE.0)THEN
118 IQ1=IQUEST(1)
119 GO TO 90
120 ENDIF
121 LCORD=LQ(KQSP+LTOP-4)
122 IF(LCORD.NE.0)THEN
123 CALL MZDROP(JQPDVS,LCORD,'L')
124 LCORD=0
125 ENDIF
126*
127* Reset CWD
128*
129 90 CONTINUE
130 CALL RZCDIR(CHWOLD,' ')
131 IF(IQ1.NE.0.AND.IQUEST(1).EQ.0)IQUEST(1)=1
132*
133 99 RETURN
134 END