5 * Revision 1.1.1.1 1996/03/06 10:47:26 mclareni
9 #include "zebra/pilot.h"
10 SUBROUTINE RZSTAT(CHPATH,NLEVEL,CHOPT)
12 ************************************************************************
14 * To print statistics for tree CHPATH
16 * CHPATH The pathname of the directory about which information has to
18 * NLEVEL Number of levels below CHPATH about which space information
19 * has to be accumulated.
20 * CHOPT Character variable specifying the options desired
22 * Print the statistics
23 * 'Q' Return the statistics in the user communication vector
28 * Author : R.Brun DD/US/PD
30 * Last mod: 24.06.92 JDS - protect against RZPAFF problems
31 * : 02.05.95 JMM - set iquest(13-14)
33 ************************************************************************
34 #include "zebra/zunit.inc"
35 #include "zebra/rzcl.inc"
36 #include "zebra/rzdir.inc"
37 #include "zebra/rzch.inc"
38 #include "zebra/rzk.inc"
39 CHARACTER*(*) CHPATH,CHOPT
40 DIMENSION ISD(NLPATM),NSD(NLPATM),IHDIR(4)
41 DIMENSION NRUSED(NLPATM),NWUSED(NLPATM)
43 EQUIVALENCE (IOPTQ,IOPTV(1)), (IOPTX,IOPTV(2))
45 *-----------------------------------------------------------------------
51 CALL UOPTC(CHOPT,'Q',IOPTV)
57 CALL RZCDIR(CHWOLD,'R')
58 IF(IOPTQ.EQ.0)WRITE(IQPRNT,1000)
59 1000 FORMAT(//' NREC NWORDS QUOTA(%) FILE(%) DIR. NAME')
61 * Set CWD to the current level
65 CALL RZPAFF(CHPAT,NLPAT,CHL)
66 IF(IQUEST(1).NE.0)THEN
72 CALL RZCDIR(CHPATH,' ')
73 IF(IQUEST(1).NE.0)GO TO 99
75 CALL VZERO(NRUSED,NLPATM)
76 CALL VZERO(NWUSED,NLPATM)
78 IF(IQUEST(1).NE.0)THEN
83 NSD(NLPAT)=IQ(KQSP+LCDIR+KNSD)
85 * Process possible down directories
87 20 ISD(NLPAT)=ISD(NLPAT)+1
88 IF(ISD(NLPAT).LE.NSD(NLPAT))THEN
91 IH=LS+7*(ISD(NLPAT-1)-1)
92 CALL ZITOH(IQ(KQSP+LCDIR+IH),IHDIR,4)
93 CALL UHTOC(IHDIR,4,CHPAT(NLPAT),16)
98 * Write information on current directory
100 CALL RZPAFF(CHPAT,NLPAT,CHL)
102 IF(CHL(I:I).NE.' ')GO TO 40
106 NRUSED(K)=NRUSED(K)+IQ(KQSP+LCDIR+KRUSED)
107 NWUSED(K)=NWUSED(K)+IQ(KQSP+LCDIR+KWUSED)
108 + +1000000*IQ(KQSP+LCDIR+KMEGA)
110 PERD=100.*FLOAT(NRUSED(NLPAT))/FLOAT(IQ(KQSP+LCDIR+KQUOTA))
111 PERF=100.*FLOAT(NRUSED(NLPAT))/FLOAT(IQ(KQSP+LTOP +KQUOTA))
112 IF(NLPAT.LE.(NLPAT0+NLEV))THEN
113 IF(IOPTQ.EQ.0) WRITE(IQPRNT,2000)NRUSED(NLPAT),
114 + NWUSED(NLPAT),PERD,PERF,CHL(1:I)
118 2000 FORMAT(I9,I11,2X,F8.2,1X,F8.2,3X,A)
122 IF(NLPAT.GE.NLPAT0)THEN
124 CALL MZDROP(JQPDVS,LCDIR,' ')
132 90 CALL RZCDIR(CHWOLD,' ')
137 *--------- Next two lines added JMM 2 May 1995 ---------------------------
138 iquest(13)=iq(kqsp+lcdir+kquota)
139 iquest(14)=iq(kqsp+ltop +kquota)
140 *-----------------------------------------------------------------------------