Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-06 - 43,50437/dskout.for
There are 2 other files named dskout.for in the archive. Click here to see a list.
	SUBROUTINE DSKOUT
	INCLUDE 'SYSREP.PRM'
	DOUBLE PRECISION LNAM,PNAM,UNTID
	REAL IOSEK
C
C	DISK STATS GET DONE HERE
C
C	VARIABLE DEFINITIONS:
C
C	PCNTUS	PERCENT OF DISK SPACE USED
C	MNTCNT	MOUNT COUNT
C	MONSEK	MONITOR SEEKS
C	USRSEK	USER SEEKS
C	USRIO	USER I/O'S
C	MONIO	MONITOR I/O'S
C	TOTSEK	TOTAL SEEKS
C	TOTIO	TOTAL I/O'S
C	IOSEK	I/O'S PER SEEK (REAL)
C	LNAM	LOGICAL NAME (DP ASCII)
C	PNAM	PHYSICAL NAME (DP ASCII)
C	UNTID	UNIT ID (DP ASCII)
C
	CALL DTOUT(X1,X2,1)
	CALL DTOUT(Y1,Y2,2)
	WRITE(23,50) REC000(9,1),X1,X2,REC000(9,2)
	1,Y1,Y2
80	FORMAT(1X,'Drive',6X,'Pack',9X,'Count',3X,'Used',4X,'Seek'
	1,4X,'Seek',4X,'I/Os',4X,'I/Os',4X,'Seek',4X,'I/Os'
	2,4X,'Seek',3X,'errs',3X,'errs',/)
90	FORMAT(1X,24X,'Mount',5X,'%',4X,'Montr',4X,'User',4X
	1,'User',3X,'Montr',3X,'Total',3X,'Total',4X,'I/Os'
	2,3X,'Hard',3X,'Soft')
	WRITE(23,90)
	WRITE(23,80)
	DO 10 I = 1,NUMDSK
C
C	--IF MONITOR OR USER SEEKS LOWER SKIP (OR LNAM CNANGE)
C
	IF (REC601(I,10,2) .LT. REC601(I,10,1)) GOTO 20
	IF (REC601(I,6,2) .NE. REC601(I,6,1)) GOTO 20
C
C	--GATHER STATISTICS
C
	PCNTUS = 0
	IF (REC601(I,2,2) .EQ. 0) GOTO 30
	PCNTUS = (REC601(I,2,2)*100)/REC601(I,3,2)
	PCNTUS = 100-PCNTUS
30	MNTCNT = REC601(I,4,2)
	MONSEK = REC601(I,10,2)-REC601(I,10,1)
	USRSEK = REC601(I,11,2)-REC601(I,11,1)
	USRIO  = REC601(I,12,2)-REC601(I,12,1)
	MONIO  = REC601(I,13,2)-REC601(I,13,1)
	TOTSEK = MONSEK+USRSEK
	TOTIO  = MONIO+USRIO
	J3 = I
	CALL PLTDK(PCNTUS,J3,1)
	CALL PLTDK(MNTCNT,J3,2)
	CALL PLTDK(MONSEK,J3,3)
	CALL PLTDK(USRSEK,J3,4)
	CALL PLTDK(USRIO,J3,5)
	CALL PLTDK(MONIO,J3,6)
	CALL PLTDK(TOTSEK,J3,7)
	CALL PLTDK(TOTIO,J3,8)
	HRDERR = LSH(REC601(I,14,1),-18)+(REC601(I,14,1) .AND. "777777)
	HRDERR = HRDERR-(LSH(REC601(I,14,2),-18)+(REC601(I,14,2) .AND.
	1"777777))
	SFTERR = LSH(REC601(I,15,1),-18)+(REC601(I,15,1) .AND. "777777)
	SFTERR = SFTERR-(LSH(REC601(I,15,2),-18)+(REC601(I,15,2) .AND.
	2"777777))
	HRDERR = -HRDERR ; SFTERR = -SFTERR
	IOSEK = 0
	IF (TOTSEK .EQ. 0) GOTO 70
	IOSEK  = FLOAT(TOTIO)/FLOAT(TOTSEK)
70	CALL ASCII(REC601(I,6,2),LNAM)
	CALL ASCII(REC601(I,7,2),PNAM)
	CALL ASCII(REC601(I,8,2),UNTID)
40	FORMAT(1X,A6,1X,A5,'(',A6,')',5X,I3,4X,I3,3X,I6
	1,2X,I6,2X,I6,2X,I6,2X,I6,2X,I6,3X,F5.1,3X,I3,4X,I3)
50	FORMAT(1X,'From',1X,I2,':',2I1,1X,'To',1X,I2,':',2I1,/)
60	FORMAT(1H3)
	WRITE(23,40) PNAM,LNAM,UNTID,MNTCNT,PCNTUS,MONSEK
	1,USRSEK,USRIO,MONIO,TOTSEK,TOTIO,IOSEK,HRDERR,SFTERR
20	CONTINUE !BLANK FOR NOW
10	CONTINUE
	WRITE(23,60)
	RETURN
	END