]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.2 1996/04/24 17:26:58 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:25 mclareni | |
10 | * Zebra | |
11 | * | |
12 | * | |
13 | #include "zebra/pilot.h" | |
14 | SUBROUTINE RZLDI1(IOPTA,IOPTX) | |
15 | * | |
16 | ************************************************************************ | |
17 | * | |
18 | * List current directory | |
19 | * Input: | |
20 | * IOPTA =1 to list All objects | |
21 | * IOPTX =1 for eXtended listing (default 80 columns) | |
22 | * | |
23 | * Called by <RZLDIR> | |
24 | * | |
25 | * Author : R.Brun DD/US/PD | |
26 | * Written : 19.01.89 | |
27 | * Last mod: 02.12.92 JDS. Increase IOFF2 to 50 | |
28 | * : 04.03.94 S.Banerjee (Change in cycle structure) | |
29 | * : 27.09.95 JDS. Increase width in format 10200 | |
30 | * | |
31 | ************************************************************************ | |
32 | #include "zebra/zunit.inc" | |
33 | #include "zebra/rzcl.inc" | |
34 | #include "zebra/rzdir.inc" | |
35 | #include "zebra/rzch.inc" | |
36 | #include "zebra/rzclun.inc" | |
37 | #include "zebra/rzk.inc" | |
38 | #include "zebra/rzckey.inc" | |
39 | #include "zebra/rzcycle.inc" | |
40 | CHARACTER*160 CHLD | |
41 | CHARACTER*1 CK | |
42 | DIMENSION IHTAG(40),IHDIR(4) | |
43 | #include "zebra/q_jbit.inc" | |
44 | #include "zebra/q_jbyt.inc" | |
45 | ||
46 | * | |
47 | *----------------------------------------------------------------------- | |
48 | * | |
49 | ||
50 | IOFF1 = 6 | |
51 | IF(IOPTX.EQ.0) THEN | |
52 | IOFF2 = 50 | |
53 | IOFF3 = 70 | |
54 | IOFF4 = 79 | |
55 | ELSE | |
56 | IOFF2 = 57 | |
57 | IOFF3 = 120 | |
58 | IOFF4 = 132 | |
59 | ENDIF | |
60 | * | |
61 | * General case | |
62 | * | |
63 | * | |
64 | LS=IQ(KQSP+LCDIR+KLS) | |
65 | IF(IQUEST(1).EQ.0)THEN | |
66 | CALL RZDATE(IQ(KQSP+LCDIR+KDATEC),IDATEC,ITIMEC,1) | |
67 | CALL RZDATE(IQ(KQSP+LCDIR+KDATEM),IDATEM,ITIMEM,1) | |
68 | DO 10 I=LEN(CHL),1,-1 | |
69 | IF(CHL(I:I).NE.' ')GO TO 20 | |
70 | 10 CONTINUE | |
71 | 20 WRITE(IQPRNT,10000)CHL(1:I),IDATEC,ITIMEC,IDATEM,ITIMEM | |
72 | * | |
73 | NSDIR=IQ(KQSP+LCDIR+KNSD) | |
74 | IF(NSDIR.GT.0)THEN | |
75 | WRITE(IQPRNT,10100) | |
76 | DO 30 I=1,NSDIR | |
77 | IH=LS+7*(I-1) | |
78 | IF (KVSCYC.EQ.0) THEN | |
79 | IRECS = JBYT(IQ(KQSP+LCDIR+IH+5), 1,18) | |
80 | ELSE | |
81 | IRECS = IQ(KQSP+LCDIR+IH+5) | |
82 | ENDIF | |
83 | CALL RZDATE(IQ(KQSP+LCDIR+IH+6),IDATE,ITIME,1) | |
84 | CALL ZITOH(IQ(KQSP+LCDIR+IH),IHDIR,4) | |
85 | WRITE(IQPRNT,10200)IHDIR,IDATE,ITIME,IRECS | |
86 | 30 CONTINUE | |
87 | ENDIF | |
88 | * | |
89 | XNUS = 0. | |
90 | NKEYS= IQ(KQSP+LCDIR+KNKEYS) | |
91 | NWKEY= IQ(KQSP+LCDIR+KNWKEY) | |
92 | LK = IQ(KQSP+LCDIR+KLK) | |
93 | NWK1 = NWKEY | |
94 | IF(NWKEY.GT.20)THEN | |
95 | WRITE(IQPRNT,11400) NWKEY | |
96 | NWKEY = 20 | |
97 | ENDIF | |
98 | NWK2 = 2*NWKEY | |
99 | KTAGS= KKDES+(NWK1-1)/10+1 | |
100 | CALL ZITOH(IQ(KQSP+LCDIR+KTAGS),IHTAG,NWK2) | |
101 | WRITE(IQPRNT,10300) | |
102 | CHLD=' ' | |
103 | IF( NWKEY .LE. 10 ) THEN | |
104 | WRITE(CHLD,10400)(IHTAG(I),I=1,NWK2) | |
105 | ELSE | |
106 | WRITE(CHLD,10400)(IHTAG(I),I=1,NWKEY) | |
107 | WRITE(IQPRNT,'(A)')CHLD(1:106) | |
108 | CHLD = ' ' | |
109 | WRITE(CHLD,10400)(IHTAG(I),I=NWKEY+1,NWK2) | |
110 | ENDIF | |
111 | IC1 = LENOCC(CHLD) + 2 | |
112 | IF(IC1.GT.IOFF2) THEN | |
113 | WRITE(IQPRNT,'(A)') CHLD(1:IC1) | |
114 | CHLD = ' ' | |
115 | ENDIF | |
116 | IC1 = IOFF2 | |
117 | IF(IOPTX.EQ.0) THEN | |
118 | WRITE(CHLD(IC1:IOFF4),10500) | |
119 | ELSE | |
120 | WRITE(CHLD(IC1:IOFF4),10600) | |
121 | ENDIF | |
122 | WRITE(IQPRNT,'(A)') CHLD(1:IOFF4) | |
123 | CHLD=' ' | |
124 | IF(NKEYS.GT.0)THEN | |
125 | DO 60 I=1,NKEYS | |
126 | LKC=LK+(NWK1+1)*(I-1) | |
127 | LCYC=IQ(KQSP+LCDIR+LKC) | |
128 | 40 IF (KVSCYC.EQ.0) THEN | |
129 | LCOLD = JBYT(IQ(KQSP+LCDIR+LCYC+KPPCYC), 1,16) | |
130 | IR1 = JBYT(IQ(KQSP+LCDIR+LCYC+KFRCYC),17,16) | |
131 | IR2 = JBYT(IQ(KQSP+LCDIR+LCYC+KSRCYC),17,16) | |
132 | IP1 = JBYT(IQ(KQSP+LCDIR+LCYC+KORCYC), 1,16) | |
133 | NW = JBYT(IQ(KQSP+LCDIR+LCYC+KNWCYC), 1,20) | |
134 | ELSE | |
135 | LCOLD = IQ(KQSP+LCDIR+LCYC+KPPCYC) | |
136 | IR1 = IQ(KQSP+LCDIR+LCYC+KFRCYC) | |
137 | IR2 = IQ(KQSP+LCDIR+LCYC+KSRCYC) | |
138 | IP1 = JBYT(IQ(KQSP+LCDIR+LCYC+KORCYC), 1,20) | |
139 | NW = IQ(KQSP+LCDIR+LCYC+KNWCYC) | |
140 | ENDIF | |
141 | CALL RZDATE( IQ(KQSP+LCDIR+LCYC+KFLCYC),IDATE,ITIME,1) | |
142 | IBIT4 = JBIT(IQ(KQSP+LCDIR+LCYC+KFLCYC),4) | |
143 | IBIT5 = JBIT(IQ(KQSP+LCDIR+LCYC+KFLCYC),5) | |
144 | IC = JBYT(IQ(KQSP+LCDIR+LCYC+KCNCYC),21,12) | |
145 | IF(IBIT5.EQ.0)THEN | |
146 | CK=' ' | |
147 | ELSE | |
148 | CK='*' | |
149 | ENDIF | |
150 | XNUS = XNUS+NW | |
151 | NLEFT=LREC-IP1+1 | |
152 | IF(NW.LE.NLEFT)THEN | |
153 | NR=0 | |
154 | ELSE | |
155 | NR=(NW-NLEFT-1)/LREC+1 | |
156 | ENDIF | |
157 | CHLD=' ' | |
158 | IC1=IOFF1 | |
159 | IFMOLD=0 | |
160 | DO 50 J=1,NWKEY | |
161 | IF(IC1.GT.IOFF3) THEN | |
162 | WRITE(IQPRNT,'(A)')CHLD(1:IC1) | |
163 | CHLD=' ' | |
164 | IC1=IOFF1 | |
165 | IFMOLD=0 | |
166 | ENDIF | |
167 | IKDES=(J-1)/10 | |
168 | IKBIT1=3*J-30*IKDES-2 | |
169 | IFORM=JBYT(IQ(KQSP+LCDIR+KKDES+IKDES),IKBIT1,3) | |
170 | IF(IFORM.LT.3)THEN | |
171 | KEY(J)=IQ(KQSP+LCDIR+LKC+J) | |
172 | IF(IFMOLD.NE.0)IC1=IC1+10 | |
173 | IF(IFMOLD.EQ.4)IC1=IC1+6 | |
174 | IF(IABS(KEY(J)).LT.100000)THEN | |
175 | WRITE(CHLD(IC1:),'(I6)')KEY(J) | |
176 | ELSE | |
177 | WRITE(CHLD(IC1-4:),'(I10)')KEY(J) | |
178 | ENDIF | |
179 | ELSE | |
180 | CALL ZITOH(IQ(KQSP+LCDIR+LKC+J),KEY(J),1) | |
181 | IF(IFORM.EQ.3)THEN | |
182 | IF(IFMOLD.NE.0)IC1=IC1+10 | |
183 | IF(IFMOLD.EQ.4)IC1=IC1+6 | |
184 | WRITE(CHLD(IC1:),10700)KEY(J) | |
185 | ELSE | |
186 | IF(IFMOLD.EQ.4)IC1=IC1+4 | |
187 | IF(IFMOLD.NE.4.AND.IFMOLD.NE.0)IC1=IC1+10 | |
188 | WRITE(CHLD(IC1:),'(A4)')KEY(J) | |
189 | ENDIF | |
190 | ENDIF | |
191 | IFMOLD=IFORM | |
192 | 50 CONTINUE | |
193 | IC1=LENOCC(CHLD) + 2 | |
194 | IF(IC1.GT.IOFF2) THEN | |
195 | WRITE(IQPRNT,'(A)') CHLD(1:IC1) | |
196 | CHLD = ' ' | |
197 | ENDIF | |
198 | IC1 = IOFF2 | |
199 | IF(IOPTX.EQ.0) THEN | |
200 | WRITE(CHLD(IC1:),10800)IC,CK,IDATE,ITIME,NW | |
201 | ELSE | |
202 | IF(IR2.EQ.0)THEN | |
203 | WRITE(CHLD(IC1:),10900)IC,CK,IDATE,ITIME,NW,IP1, | |
204 | + IR1 | |
205 | ENDIF | |
206 | IF(NR.EQ.1)THEN | |
207 | WRITE(CHLD(IC1:),11000)IC,CK,IDATE,ITIME,NW,IP1, | |
208 | + IR1, IR2 | |
209 | ENDIF | |
210 | IF(NR.GT.1)THEN | |
211 | IRL=IR2+NR-1 | |
212 | WRITE(CHLD(IC1:),11100)IC,CK,IDATE,ITIME,NW,IP1, | |
213 | + IR1, IR2,IRL | |
214 | ENDIF | |
215 | ENDIF | |
216 | IF(IOPTA.NE.0.OR.IBIT4.EQ.0) | |
217 | + WRITE(IQPRNT,'(A)')CHLD(1:IOFF4) | |
218 | IF(LCOLD.NE.0.AND.LCOLD.NE.LCYC)THEN | |
219 | LCYC=LCOLD | |
220 | GO TO 40 | |
221 | ENDIF | |
222 | 60 CONTINUE | |
223 | ENDIF | |
224 | * | |
225 | * Print statistics | |
226 | * | |
227 | 70 WRITE(IQPRNT,11200)IQ(KQSP+LCDIR+KRUSED),IQ(KQSP+LCDIR+KMEGA), | |
228 | + IQ(KQSP+LCDIR+KWUSED) | |
229 | XTOT =IQ(KQSP+LCDIR+KRUSED)*LREC | |
230 | IF(XTOT.GT.0.)THEN | |
231 | PERB =100.*XNUS/XTOT | |
232 | ELSE | |
233 | PERB=0. | |
234 | ENDIF | |
235 | PERD =100.*(FLOAT(IQ(KQSP+LCDIR+KRUSED)))/ | |
236 | + FLOAT(IQ(KQSP+LCDIR+KQUOTA)) | |
237 | PERF =100.*(FLOAT(IQ(KQSP+LCDIR+KRUSED)))/ | |
238 | + FLOAT(IQ(KQSP+LTOP +KQUOTA)) | |
239 | WRITE(IQPRNT,11300)PERD,PERF,PERB | |
240 | ENDIF | |
241 | * | |
242 | 10000 FORMAT(///,' ************** Directory ===> ',A,' <===',//, | |
243 | +17X,' Created ',I6,'/',I4,' Modified ',I6,'/',I4,/) | |
244 | 10100 FORMAT(/,' ===> List of subdirectories ') | |
245 | 10200 FORMAT(1X,4A4,' Created ',I6,'/',I4,' at record ',I10) | |
246 | 10300 FORMAT(/,' ===> List of objects ') | |
247 | 10400 FORMAT(5X,10(A4,A4,2X)) | |
248 | 10500 FORMAT(' CYCLE DATE/TIME NDATA') | |
249 | 10600 FORMAT(' CYCLE DATE/TIME NDATA OFFSET REC1 REC2') | |
250 | 10700 FORMAT(2X,A4) | |
251 | 10800 FORMAT(4X,I4,A,2X,I6,'/',I4.4,1X,I6) | |
252 | 10900 FORMAT(4X,I4,A,2X,I6,'/',I4.4,1X,I6,2X,I6,2X,I6) | |
253 | 11000 FORMAT(4X,I4,A,2X,I6,'/',I4.4,1X,I6,2X,I6,2X,I6,2X,I6) | |
254 | 11100 FORMAT(4X,I4,A,2X,I6,'/',I4.4,1X,I6,2X,I6,2X,I6,2X,I6,' ==>',I6) | |
255 | 11200 FORMAT(/,' Number of records =',I5,' Number of megawords =', | |
256 | + I3,' +',I6,' words') | |
257 | 11300 FORMAT(' Per cent of directory quota used =',F8.3,/ | |
258 | + ' Per cent of file used =',F8.3,/ | |
259 | + ' Blocking factor =',F8.3) | |
260 | 11400 FORMAT(' RZLDI1. Cannot list more than 20 keys',/ | |
261 | + ' Number of keys found:',I10) | |
262 | 80 RETURN | |
263 | END |