]>
Commit | Line | Data |
---|---|---|
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 |