C*********************************************************************** C THIS SUBROUTINE PROVIDES FUNCTIONAL EVALUATIONS FOR PLOTTING C THE FUNCTION AGAINST THE HISTOGRAM OF THE DATA. C*********************************************************************** SUBROUTINE PLTMOD C*********************************************************************** C DECLARATIONS C*********************************************************************** INCLUDE 'PARMTR.INC' INTEGER CNT LOGICAL WARN DOUBLE PRECISION XX, A1, A2 C*********************************************************************** C COMMON STATEMENTS C*********************************************************************** DOUBLE PRECISION PAR, VCMAT, G, XLL COMMON /DPAR/ PAR(MAXPR2), VCMAT(MAXPAR,MAXPAR), G(MAXPAR), 1 XLL, NPAR, INDEX COMMON /SOLN/ FZERO, VARF, FMAX, FMIN, FZ(100) COMMON /INTER/ KCUT, CUT(MAXCEL), F(MAXCEL), NCUT, NKC(5), 1 NK(5), RFREQ(5,MAXCEL), CCUT(5,MAXCEL) COMMON /NUM/ XL(MAXLIN), WIDTH, N, CNT, CONV(3), VARN, IDF, WARN C*********************************************************************** C CALCULATE AND STORE FUNCTIONAL VALUES FOR THE FOURIER SERIES. C*********************************************************************** IF (INDEX.NE.1) GO TO 30 FMAX=0.0 FMIN=0.0 IF (NPAR.EQ.0) FMAX=1./WIDTH DO 20 I=1,100 XX=FLOAT(I)*CUT(KCUT)/65. FZ(I)=1./WIDTH IF (NPAR.EQ.0) GO TO 20 DO 10 K=1,NPAR 10 FZ(I)=FZ(I)+PAR(K)*DCOS(FLOAT(K)*3.14159*XX/WIDTH) IF (FZ(I).GT.FMAX) FMAX=FZ(I) IF (FZ(I).LT.FMIN) FMIN=FZ(I) 20 CONTINUE RETURN C*********************************************************************** C CALCULATE AND STORE FUNCTIONAL VALUES FOR THE EXPONENTIAL POWER C SERIES. C*********************************************************************** 30 IF (INDEX.NE.2) GO TO 50 FMIN=0.0 FMAX=FZERO DO 40 I=1,65 XX=FLOAT(I)*CUT(KCUT)/65. 40 FZ(I)=FZERO*DEXP(-(XX/PAR(1))**PAR(2)) RETURN C*********************************************************************** C CALCULATE AND STORE FUNCTIOANL VALUES FOR THE EXPONENTIAL POLY- C NOMIAL. C*********************************************************************** 50 IF (INDEX.NE.3) GO TO 80 A1=PAR(1) A2=PAR(2) 60 FMIN=0.0 FMAX=FZERO DO 70 I=1,65 XX=FLOAT(I)*CUT(KCUT)/65. 70 FZ(I)=FZERO*DEXP(-A1*XX-A2*XX*XX) RETURN C*********************************************************************** C CALCULATE AND STORE FUNCTIONAL VALUES FOR THE NEGATIVE EXPONENTIAL C*********************************************************************** 80 IF (INDEX.NE.4) GO TO 90 A1=PAR(1) A2=0.0 GO TO 60 C*********************************************************************** C CALCULATE AND STORE FUNCTIONAL VALUES FOR THE HALF-NORMAL. C*********************************************************************** 90 IF (INDEX.NE.5) RETURN A1=0.0 A2=PAR(1) GO TO 60 END