C*********************************************************************** C THIS SUBROUTINE CALCULATES AN ESTIMATE OF F(0) AND ITS VARIANCE C FOR A VARIETY OF ESTIMATORS. C*********************************************************************** SUBROUTINE CALC C*********************************************************************** C DECLARATIONS C*********************************************************************** INCLUDE 'PARMTR.INC' LOGICAL WARN INTEGER CNT DOUBLE PRECISION RF0, PRF0A, PRF0B, PF0A, PF0B 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 /NUM/ XL(MAXLIN), WIDTH, N, CNT, CONV(3), VARN, IDF, WARN COMMON /INTEG/ RF0, PRF0A, PRF0B C*********************************************************************** C FOURIER SERIES ESTIMATOR FOR GROUPED DATA. C*********************************************************************** IF (INDEX.EQ.1) THEN FZERO=1./WIDTH VARF=0.0 DO 10 I=1,NPAR VARF=VARF+VCMAT(I,I) 10 FZERO=FZERO+PAR(I) IF (NPAR.GT.1) THEN DO 20 I=1,NPAR-1 DO 20 J=I+1,NPAR 20 VARF=VARF+2.*VCMAT(I,J) ENDIF C*********************************************************************** C EXPONENTIAL POWER SERIES, EXPONENTIAL POLYNOMIAL, NEGATIVE EXPONEN- C TIAL, AND HALF-NORMAL FOR GROUPED AND UNGROUPED DATA. C*********************************************************************** ELSE FZERO=1./RF0 PF0A=PRF0A*FZERO*FZERO PF0B=PRF0B*FZERO*FZERO VARF=PF0A*PF0A*VCMAT(1,1)+PF0B*PF0B*VCMAT(2,2) VARF=VARF+2.*VCMAT(1,2)*PF0A*PF0B ENDIF RETURN END