C C******************************************************************************* C C SUBROUTINE 'T S P L O T': C FOR COMPUTING AND PRINTING THE MAXIMUM, C MINIMUM AND MEAN VALUES OF A GIVEN TIME SERIES. ALSO IT PLOTS THE C CORRESPONDING TIME SERIES ALONG WITH THE FUNCTIONAL VALUES AND C THE SCALE OF THE PLOT. C C******************************************************************************* C C MODIFIED VERSION FOR THE M.S.L. PLOTS. C SEPT. 25, 1975. C C******************************************************************************* SUBROUTINE TSPLOT(F,T,N,X,SCALE) IMPLICIT REAL * 8(A-H,O-Z) DIMENSION F(N),T(N) DIMENSION IPLOT(30),IFRAME(30) DATA IBLANK/' '/,ISTAR/'*'/,IPLUS/'+'/,IDASH/'|'/ AMAX1(A,B) = DMAX1(A,B) AMIN1(A,B) = DMIN1(A,B) C C SPECIFY THE DESIRED LATERAL SPACE FOR THE PLOT ,IN TERMS OF THE C EQUIVALENT NUMBER OF CHARACTERS ON THE LINE PRINTER 'NCOL'. C NCOL=30 C C SET-UP VALUES OF '+' FOR THE ELEMENTS OF THE ARRAY 'IFRAME', C TO BE USED IN FRAMING THE PLOT. C DO 9 I=1,NCOL IFRAME(I)=IPLUS 9 CONTINUE C C COMPUTE THE MEAN, MAXIMUM AND MINIMUM FUNCTIONAL VALUES FOR THE C GIVEN TIME-SERIES (REQUIRED TO BE PLOTTED). C C NOTE:- THE ZERO VALUES WHICH REPRESENT MISSING DATA ARE EXCLUDED C FROM THE COMPUTATIONS. C NZEROF=0 SUMF=0.0 DO 1 I=1,N IF(F(I).EQ.0.0) NZEROF=NZEROF+1 SUMF=SUMF+F(I) 1 CONTINUE NSUMF=N-NZEROF FBAR=SUMF/FLOAT(NSUMF) C FMAX=0.0 FMIN=1.0E 10 DO 2 I=1,N FMAX=AMAX1(FMAX,F(I)) IF(F(I).EQ.0.0) GO TO 2 FMIN=AMIN1(FMIN,F(I)) 2 CONTINUE C C INITIALIZE THE PLOTTING ARRAY. C DO 10 I=1,NCOL IPLOT(I)=IBLANK 10 CONTINUE IPLOT(1)=IPLUS IPLOT(NCOL)=IPLUS C Y=FMIN*X-1.0 KBAR=FBAR*X-Y IPLOT(KBAR)=IDASH C C PRINT-OUT THE MEAN, MAX. & MIN. VALUES OF THE TIME SERIES. C WRITE(6,60) FMAX,FMIN,FBAR 60 FORMAT(5X,'MAX. FUNCTIONAL VALUE IN THE SERIES = ',E11.4,/,5X,'MIN 1. FUNCTIONAL VALUE IN THE SERIES = ',E11.4,/,5X,'MEAN FUNCTIONAL V 2ALUE IN THE SERIES = ',E11.4/) C C PRINT-OUT THE SCALE OF THE PLOT, BY TAKING INTO ACCOUNT THE LINE C PRINTER # 1403 (AT U.N.B.), WHICH PRINTS 10 CHARACTERS PER INCH. C WRITE(6,70) SCALE 70 FORMAT(3X,'NO.',7X,'T',10X,'VALUE',6X,'SCALE OF THE PLOT IS: 1 INC 1H REPRESENTS',E10.3,' UNITS') C C PLOT THE GIVEN TIME SERIES, WITH ITS FUNCTIONAL VALUES. C WRITE(6,40) (IFRAME(J),J=1,NCOL) K = T(1) - 0.9 DO 30 I=1,N IF ((T(I)-T(I-1)).LT.1.1) GO TO 4 NN = T(I) - T(I-1) - 0.9 TT = T(I-1) DO 5 JJ = 1,NN K = K + 1 IF (K.GT.24)K = 1 TT = TT + 1 FF = 0.0 KF = 1 IPLOT(KF) = ISTAR WRITE (6,20) K,TT,FF,(IPLOT(J),J = 1,NCOL) IPLOT (KF) = IBLANK IPLOT (1) = IPLUS IPLOT (NCOL) = IPLUS IPLOT(KBAR) = IDASH 5 CONTINUE 4 K = K + 1 IF (K. GT. 24) K = 1 KF=F(I)*X-Y IF(KF.LT.1) KF=1 IF(KF.GT.NCOL) KF=NCOL IPLOT(KF)=ISTAR WRITE(6,20) K,T(I),F(I),(IPLOT(J),J = 1,NCOL) C C RE-INITIALIZE THE PLOTTING ARRAY. C IPLOT(KF)=IBLANK IPLOT(1)=IPLUS IPLOT(NCOL)=IPLUS IPLOT(KBAR)=IDASH 30 CONTINUE WRITE(6,40) (IFRAME(J),J=1,NCOL) WRITE(6,6) 6 FORMAT ('1') 20 FORMAT(2X,I4,2X,E11.4,2X,E11.4,3X,30A1) 40 FORMAT(35X,30A1) RETURN END