C***********************************************************************
C     THIS SUBROUTINE IS DESIGNED TO CALCULATE AN ESTIMATE OF DENSITY
C     AND ASSOCIATED STATISTICS.  IT OUTPUTS POINT ESTIMATES OF F(0)
C     THE MODEL COEFFICIENTS AND DENSITY AND THEIR ASSOCIATED STATISTICS
C
C     FUNCTIONS CALLED: TVALUE
C***********************************************************************
      SUBROUTINE PARAM (XN,DNSTY,VARD,LCL,UCL)
C***********************************************************************
C     DECLARATIONS
C***********************************************************************
      INCLUDE 'PARMTR.INC'
      CHARACTER*1 LABEL, HEAD, UL
      INTEGER CNT, STATUS
      REAL LCL, CORR(15)
      LOGICAL WARN
C***********************************************************************
C     COMMON STATEMENTS
C***********************************************************************
      COMMON /SOLN/ FZERO, VARF, FMAX, FMIN, FZ(100)
      COMMON /ALPHA/ LABEL(80), HEAD(30), UL(3,25)
      COMMON /PAGE/ IPAGE
      COMMON /IND/ IC, II, IREP, STATUS
      COMMON /NUM/ XL(MAXLIN), WIDTH, N, CNT, CONV(3), VARN, IDF, WARN
      DOUBLE PRECISION PAR, VCMAT, G, XLL
      COMMON /DPAR/ PAR(MAXPR2), VCMAT(MAXPAR,MAXPAR), G(MAXPAR),
     1    XLL, NPAR, INDEX
      WRITE (6,70)
      WRITE (6,170)
      IF (NPAR.EQ.0) GO TO 20
C***********************************************************************
C     FOR EACH PARAMETER IN THE MODEL WRITE OUT THE POINT ESTIMATE
C     STANDARD ERROR, COEFFICIENT OF VARIATION AND CONFIDENCE INTERVAL
C***********************************************************************
      DO 10 I=1,NPAR
      STERR=SNGL(DSQRT(MAX(0.D0,VCMAT(I,I))))
      LCL=PAR(I)-1.96*STERR
      UCL=PAR(I)+1.96*STERR
      CV=0.0
      IF (PAR(I).NE.0.0) CV=100.*STERR/PAR(I)
      CV=ABS(CV)
      WRITE (6,80) I,PAR(I),STERR,CV,LCL,UCL
   10 CONTINUE
C***********************************************************************
C     WRITE OUT THE POINT ESTIMATE AND ASSOCIATED STATISTICS FOR F(0)
C***********************************************************************
   20 STF=SQRT(MAX(0.E0,VARF))
      LCL=FZERO-1.96*STF
      UCL=FZERO+1.96*STF
      CVF=STF/FZERO
      CV=CVF*100.
      CV=ABS(CV)
      WRITE (6,90) FZERO,STF,CV,LCL,UCL
C***********************************************************************
C     FOR THE DENSITY ESTIMATE WRITE OUT THE POINT ESTIMATE AND ASSOCIAT
C     STATISTICS
C***********************************************************************
      DNSTY=CONV(3)*XN*FZERO/(2.*XL(II))
      CVN=VARN/(XN*XN)
      CVF=CVF**2
      VARD=(CVN+CVF)*(DNSTY*DNSTY)
      VARD=SQRT(MAX(0.E0,VARD))
      CVD=100.*VARD/DNSTY
      CVD=ABS(CVD)
      XMULT=1.96
      IF (.NOT.WARN) XMULT=TVALUE(IDF)
      LCL=DNSTY-XMULT*VARD
      UCL=DNSTY+XMULT*VARD
      WRITE (6,100) DNSTY,VARD,CVD,LCL,UCL
      WRITE (6,170)
      WRITE (6,200) (UL(3,J),J=1,25)
C***********************************************************************
C     IF NPAR .GT.1 OUTPUT SAMPLING CORRELATION OF ESTIMATED PARAMETERS
C     THE DIMENSION OF COR SHOULD BE HALF OF THE ARRAY 'PAR'.
C***********************************************************************
      IF (NPAR.LE.1) GO TO 50
      IF (NPAR.GT.11) CALL HEADER (1)
      WRITE (6,110) (J,J=1,NPAR)
      DO 40 I=1,NPAR
      DO 30 J=1,NPAR
   30 CORR(J)=SNGL(VCMAT(I,J)/DSQRT(MAX(0.D0,VCMAT(I,I)*VCMAT(J,J))))
      CORR(I)=1.0
   40 WRITE (6,120) I,(CORR(J),J=1,NPAR)
C***********************************************************************
C     WRITE OUT THE VARIANCE COMPONENTS FOR DENSITY AND EXPLAIN THE
C     METHODS USED
C***********************************************************************
   50 IF (NPAR.GT.6) CALL HEADER (1)
      WRITE (6,130)
      IF (WARN) WRITE (6,140) VARN
      IF (.NOT.WARN) WRITE (6,150) VARN,IDF,XMULT
      RATIO=100.*CVN/(CVN+CVF)
      WRITE (6,160) CVN,CVF,RATIO
      RETURN
C***********************************************************************
C     FORMAT STATEMENTS
C***********************************************************************
C
   60 FORMAT (2G15.7)
   70 FORMAT (//14X,'Point',8X,'Standard',4X,'Percent Coef.',8X,
     1 '95 Percent'/2X,'Parameter',3X,'Estimate',7X,'Error',6X,
     2'of Variation',5X,'Confidence Interval')
   80 FORMAT (4X,'A(',I2.2,')',3X,G12.4,1X,G12.4,3X,
     1 F8.1,5X,G12.4,1X,G11.4)
   90 FORMAT (4X,'F(0)',4X,G12.4,1X,G12.4,3X,
     1 F8.1,5X,G12.4,1X,G11.4)
  100 FORMAT (5X,'D',6X,G12.4,1X,G12.4,3X,
     1 F8.1,5X,G12.4,1X,G11.4)
  110 FORMAT ('0Sampling Correlation of Estimated Parameters'/
     1 8X,15(I2,6X))
  120 FORMAT (2X,I2,2X,15(F6.3,2X))
  130 FORMAT (/'0Notes on Variance Calculations and Confidence',
     1' Intervals'/1X,55('-'))
  140 FORMAT ('0All of the confidence intervals were constructed by',
     1' assuming asymptotic'/
     2' normality and using the z-value of 1.96.  It has been assumed',
     3' that the number'/
     4' of observations N is a Poisson random variable.  Thus the',
     5' variance was esti-'/
     6' mated as Var(N) = N = ',F4.0,'  This assumption is critical if',
     7' the variance'/
     8' of N is the predominant portion of the variance of density.')
  150 FORMAT ('0The confidence intervals for the coefficients A(i)',
     1' and F(0) were constructed'/
     2' by assuming asymptotic normality and using the z-value 1.96. ',
     3' The variance of'/
     4' N was estimated using replicate line lengths (Var(N) = ',G10.3,
     5').  The'/
     6' confidence interval for density was constructed with a t',
     7' distribution with'/
     8' the degrees of freedom equal to the number of line lengths - 1.'
     9,'  The t-value'/
     A' with ',I3,' degrees of freedom is ',F7.3)
  160 FORMAT (/6X,'Squared Coefficient of Variation for N = ',3X,G11.4/
     1 6X,'Squared Coefficient of Variation for F(0) = ',G11.4/
     2 6X,'Percent of the variation of density attributable to the'/
     3 6X,'sampling variance of N = ',F6.2)
  170 FORMAT (2X,9('-'),2X,11('-'),2X,11('-'),2X,14('-'),2X,22('-'))
  200 FORMAT ('0Density (D) units are numbers/',25A1)
      END
