Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-06 - 43,50437/pltrep.for
There are no other files named pltrep.for in the archive.
	SUBROUTINE PLTINI(PLTONX)
	INCLUDE 'SYSREP.PRM'
	COMMON/PLTDAT/ PLT(20,49),PLTON,PLTD(4,20,49)
C
C	--INITIALIZE ALL PLOTTING ROUTINES
C
	PLTON = PLTONX
	DO 10 I1 = 1,20
	DO 10 I2 = 1,49
10	PLT(I1,I2) = -2
	DO 20 I1 = 1,NUMDSK
	DO 20 I2 = 1,20
	DO 20 I3 = 1,49
20	PLTD(I1,I2,I3) = -2
	RETURN
	END
	SUBROUTINE PLTIT(ITEM,IDX)
	INCLUDE 'SYSREP.PRM'
	COMMON/PLTDAT/ PLT(20,49),PLTON,PLTD(4,20,49)
	REAL P,P1
C
C	--PUT DATA IN PLT ARRAY
C
	MIN = REC000(10,2)
	IF ((MIN .GE. 29) .AND. (MIN .LE. 31)) GOTO 10
	IF ((MIN .GE. 59) .OR. (MIN .LE. 01)) GOTO 20
	RETURN
10	P = 0.5
	GOTO 30
20	P = 0.0
C
C	--MAKE ARRAY INDEX
C
30	P1 = (FLOAT(REC000(9,2))+P)*2.0
	POS = IFIX(P1)
	IF (POS .EQ. 0) POS = 49
	IF ((POS .LT. 1) .OR. (POS .GT. 49)) RETURN
	PLT(IDX,POS) = ITEM
	RETURN
	END
	SUBROUTINE PLTOUT
	INCLUDE 'SYSREP.PRM'
	COMMON/HALSTF/ KRASH,KERROR
	COMMON/PLTX/ PLTST(30)
	COMMON/PLTDAT/ PLT(20,49),PLTON,PLTD(4,20,49)
	COMMON/FILE/ FNAME
	DOUBLE PRECISION FNAME,FN
50	FORMAT(A6,'.WEK')
40	FORMAT(A6,A4)
	DECODE(10,40,FNAME) FN,EN
	ENCODE(10,50,FNAME) FN
C
C	--OUTPUT PLOT FILES
C
	OPEN(UNIT=23,FILE=FNAME,MODE='IMAGE',ACCESS='SEQOUT')
	IF (PLTON .NE. 0) OPEN(UNIT=24,FILE='PLTDAT',MODE='IMAGE'
	1,ACCESS='SEQOUT')
	PLTST(4) = KERROR
	PLTST(5) = KRASH
	DO 20 I1 = 1,30
	IF (PLTON .NE. 0) WRITE(24) PLTST(I1)
20	WRITE(23) PLTST(I1)
	DO 10 I1 = 1,20
	DO 10 I2 = 1,49
	IF (PLTON .NE. 0) WRITE(24) PLT(I1,I2)
10	WRITE(23) PLT(I1,I2)
	DO 30 I1 = 1,NUMDSK
	DO 30 I2 = 1,20
	DO 30 I3 = 1,49
	IF (PLTON .NE. 0) WRITE(24) PLTD(I1,I2,I3)
30	WRITE(23) PLTD(I1,I2,I3)
	CLOSE(UNIT=23)
	IF (PLTON .NE. 0) CLOSE(UNIT=24)
	RETURN
	END
	SUBROUTINE PLTFIL
	INCLUDE 'SYSREP.PRM'
	COMMON/PLTX/ PLTST(30)
	PLTST(1) = REC000(6,1) !YEAR
	PLTST(2) = REC000(7,1) !MONTH
	PLTST(3) = REC000(8,1) !DAY
	RETURN
	END
	SUBROUTINE PLTDK(ITEM,UNIT,IDX)
	INCLUDE 'SYSREP.PRM'
	COMMON/PLTDAT/ PLT(20,49),PLTON,PLTD(4,20,49)
	REAL P,P1
C
C	--PUT DATA IN PLT ARRAY
C
C	--CHECK IF VALID FIRST
C
	MIN = REC000(10,2)
	IF ((MIN .GE. 29) .AND. (MIN .LE. 31)) GOTO 10
	IF ((MIN .GE. 59) .OR. (MIN .LE. 01)) GOTO 20
	RETURN
10	P = 0.5
	GOTO 30
20	P = 0.0
C
C	--MAKE ARRAY INDEX
C
30	P1 = (FLOAT(REC000(9,2))+P)*2.0
	POS = IFIX(P1)
	IF ((POS .LT. 1) .OR. (POS .GT. 49)) RETURN
	PLTD(UNIT,IDX,POS) = ITEM
	RETURN
	END