]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/packlib/zebra/rz/rzldi1.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / packlib / zebra / rz / rzldi1.F
CommitLineData
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*
24210000 FORMAT(///,' ************** Directory ===> ',A,' <===',//,
243 +17X,' Created ',I6,'/',I4,' Modified ',I6,'/',I4,/)
24410100 FORMAT(/,' ===> List of subdirectories ')
24510200 FORMAT(1X,4A4,' Created ',I6,'/',I4,' at record ',I10)
24610300 FORMAT(/,' ===> List of objects ')
24710400 FORMAT(5X,10(A4,A4,2X))
24810500 FORMAT(' CYCLE DATE/TIME NDATA')
24910600 FORMAT(' CYCLE DATE/TIME NDATA OFFSET REC1 REC2')
25010700 FORMAT(2X,A4)
25110800 FORMAT(4X,I4,A,2X,I6,'/',I4.4,1X,I6)
25210900 FORMAT(4X,I4,A,2X,I6,'/',I4.4,1X,I6,2X,I6,2X,I6)
25311000 FORMAT(4X,I4,A,2X,I6,'/',I4.4,1X,I6,2X,I6,2X,I6,2X,I6)
25411100 FORMAT(4X,I4,A,2X,I6,'/',I4.4,1X,I6,2X,I6,2X,I6,2X,I6,' ==>',I6)
25511200 FORMAT(/,' Number of records =',I5,' Number of megawords =',
256 + I3,' +',I6,' words')
25711300 FORMAT(' Per cent of directory quota used =',F8.3,/
258 + ' Per cent of file used =',F8.3,/
259 + ' Blocking factor =',F8.3)
26011400 FORMAT(' RZLDI1. Cannot list more than 20 keys',/
261 + ' Number of keys found:',I10)
262 80 RETURN
263 END