')
5815 FORMAT(' ')
5816 FORMAT('
Alpha = ',F7.3,'')
5817 FORMAT(' Confidence Limits for Selected ',
1 'Percentiles')
5819 FORMAT(' ')
5841 FORMAT(' ')
5843 FORMAT(' | ')
5847 FORMAT(' | ')
5848 FORMAT(' ')
5849 FORMAT(' ')
5851 FORMAT(' ',G15.7)
5859 FORMAT(' |
')
5861 FORMAT(' Percentile')
5862 FORMAT(' Point
Estimate')
5863 FORMAT(' Lower
Confidence Limit')
5864 FORMAT(' Upper
Confidence Limit')
5870 FORMAT(' ')
5872 FORMAT(' ')
CCCCC WRITE OUTPUT IN LATEX FORMAT
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8004 FORMAT(A1,'end{table}')
8005 FORMAT('{',A1,'bf Exponential Maximum Likelihood ',
1 'Estimation: Full Sample Case, Grouped Data}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf One-Parameter Model ($',A1,
1 'mu$ = 0 Case)}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Minimum Value: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Estimate of Scale Parameter: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Standard Error of Scale Parameter: & ',
1 G15.7,2X,A1,A1)
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)SCALE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,8024)SCALSE,IBASLC,IBASLC
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8093)IBASLC
8093 FORMAT(A1,'end{center}')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C WRITE SELECTED PERCENTILES (IF ANY)
C
IF(NPERC.GT.0)THEN
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8803)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8810)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8812)IBASLC,IBASLC,ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8813)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8820)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8821)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8822)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8840)IBASLC
CALL DPWRST('XXX','WRIT')
DO88830I=1,NPERC
WRITE(ICOUT,8823)QP(I),XQPHTZ(I),XQPLCZ(I),XQPUCZ(I),
1 IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
88830 CONTINUE
WRITE(ICOUT,8849)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8891)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8893)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
8801 FORMAT(A1,'end{verbatim}')
8803 FORMAT(A1,'begin{table}')
8807 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8809 FORMAT(A1,'begin{center}')
8810 FORMAT(5X,'{',A1,'bf Confidence Limits for Selected ',
1 'Percentiles:}')
8812 FORMAT(5X,'{',A1,'bf $',A1,'alpha$ = ',F7.3,'}')
8813 FORMAT(A1,'end{center}')
8815 FORMAT(5X,'} ',A1,A1)
8820 FORMAT(5X,A1,'begin{tabular} {cccc}')
8821 FORMAT(5X,' & {',A1,'bf Point} & {',A1,'bf Lower} & {',A1,
1 'bf Upper}',2X,A1,A1)
8822 FORMAT(5X,'{',A1,'bf Percentile} & {',A1,'bf Estimate} & {',
1 A1,'bf Confidence Limit} & {',A1,
1 'bf Confidence Limit}',2X,A1,A1)
8823 FORMAT(5X,G15.7,' & ',G15.7,' & ',G15.7,' & ',
1 G15.7,2X,A1,A1)
8840 FORMAT(5X,A1,'hline')
8849 FORMAT(A1,'end{tabular}')
8891 FORMAT(A1,'end{center}')
8893 FORMAT(A1,'end{table}')
8899 FORMAT(A1,'begin{verbatim}')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8899)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(6X,'EXPONENTIAL MAXIMUM LIKELIHOOD ESTIMATION: ')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4212)
4212 FORMAT(6X,'FULL SAMPLE CASE, GROUPED DATA')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4213)
4213 FORMAT('ONE-PARAMETER MODEL (LOCATION = 0)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4215)N
4215 FORMAT('NUMBER OF GROUPS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4216)NTOT
4216 FORMAT('TOTAL NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4217)XMIN
4217 FORMAT('MINIMUM VALUE = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4219)SCALE
4219 FORMAT('ESTIMATE OF SCALE PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,4221)SCALSE
C4221 FORMAT('STANDARD ERROR OF SCALE PARAMETER = ',G15.7)
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4911)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,4912)
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4915)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4921)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4922)
CALL DPWRST('XXX','WRIT')
C
DO4931I=1,NPERC
WRITE(ICOUT,4932)QP(I),XQPHTZ(I),XQPLCZ(I),XQPUCZ(I)
CALL DPWRST('XXX','WRIT')
4931 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
4911 FORMAT('CONFIDENCE LIMITS FOR SELECTED PERCENTILES:')
4915 FORMAT('ALPHA = ',F7.4)
4921 FORMAT(15X,' POINT ',' LOWER ',
1 ' UPPER')
4922 FORMAT(' PERCENTILE ',' ESTIMATE ',
1 'CONFIDENCE LIMIT ','CONFIDENCE LIMIT')
4932 FORMAT(3E15.7,2X,E15.7)
C
IF(IFEEDB.EQ.'ON')THEN
WRITE(ICOUT,4251)
4251 FORMAT('THE MINIMUM VALUE WILL BE SAVED AS THE INTERNAL ',
1 'PARAMETER U1')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4253)
4253 FORMAT('THE SCALE PARAMETER WILL BE SAVED AS THE ',
1 'INTERNAL PARAMETER B1')
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(IFEEDB.EQ.'ON')THEN
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4943)
4943 FORMAT('PERCENTILE CONFIDENCE LIMITS BASED ON 1-PARAMETER',
1 ' WRITTEN TO FILE dpst1f.dat')
CALL DPWRST('XXX','BUG ')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLE4')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLE4--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N,NTOT
9015 FORMAT('NNTOT = ',2I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLFL(Y,N,
1XTEMP,MAXNXT,
1GAMMA1,SCALE1,GAMMA2,SCALE2,
1ICAPSW,ICAPTY,DTEMP1,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE METHOD OF MOMENT AND
C MAXIMUM LIKELIHOOD ESTIMATES FOR THE FATIGUE LIFE
C DISTRIBUTION
C EXAMPLE--FATIGUE LIFE MAXIMUM LIKELIHOOD Y
C REFERENCE--JOHNSON, KOTZ, AND BALAKRISHNAN. "CONTINUOUS
C UNIVARIATE DISTRIBUTIONS, VOLUME I", SECOND
C EDITION, WILEY, 1994, PP. 614-619.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/3
C ORIGINAL VERSION--MARCH 2004.
C UPDATED --AUGUST 2005. ORDER OF SCALE/SHAPE WERE
C INVERTED. FIXED.
C UPDATED --AUGUST 2005. AESTHETIC FIXES TO OUTOUT
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
DOUBLE PRECISION DTEMP1(*)
C
DOUBLE PRECISION DGAMM1
DOUBLE PRECISION DGAMM2
DOUBLE PRECISION DALPHA
DOUBLE PRECISION DALPH2
DOUBLE PRECISION DSUM1
DOUBLE PRECISION DSUM2
DOUBLE PRECISION DSUM3
DOUBLE PRECISION DSUM4
DOUBLE PRECISION DX
DOUBLE PRECISION DN
DOUBLE PRECISION TBAR
DOUBLE PRECISION H
DOUBLE PRECISION DK
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(1)
DOUBLE PRECISION FVEC(1)
C
EXTERNAL FLFUN
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='FL '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLFL')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLFL--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLFL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN FATIGUE LIFE MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)N
1112 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** EROR FROM FATIGUE LIFE MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1147)
1147 FORMAT('***** ERROR FROM FATIGUE LIFE MAXIMUM LIKELIHOOD ',
1 'ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1148)I,Y(I)
1148 FORMAT(' ROW ',I8,' IS NON-POSITIVE (VALUE = ',
1 G15.7,')')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
C ***************************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR FATIGUE LIFE MOMENT/MLE ESTIMATION **
C ***************************************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IWRITE='OFF'
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
C
IERROR='NO'
IWRITE='OFF'
DN=DBLE(N)
DSUM1=0.0D0
DSUM2=0.0D0
DSUM3=0.0D0
DSUM4=0.0D0
DO2110I=1,N
DX=DBLE(Y(I))
DSUM1=DSUM1 + DSQRT(DX)
DSUM2=DSUM2 + 1.0D0/DSQRT(DX)
DSUM3=DSUM3 + DX
DSUM4=DSUM4 + 1.0D0/DX
2110 CONTINUE
DGAMM1=DSUM1/DSUM2
XPAR(1)=DSQRT(DSUM3/DSUM4)
C
DSUM1=0.0D0
DO2120I=1,N
DX=DBLE(Y(I))
DSUM1=DSUM1 + (DSQRT(DX/DGAMM1) - DSQRT(DGAMM1/DX))**2
2120 CONTINUE
DALPHA=DSQRT(DSUM1/DN)
SCALE1=REAL(DGAMM1)
GAMMA1=REAL(DALPHA)
C
XPAR(1)=DGAMM1
C
IOPT=2
TOL=1.0D-6
NVAR=1
NPRINT=-1
INFO=0
LWA=MAXNXT
CALL DNSQE(FLFUN,JAC,IOPT,NVAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP1,MAXNXT,Y,N)
C
DSUM1=0.0D0
DSUM2=0.0D0
DSUM3=0.0D0
C
DO200I=1,N
DX=DBLE(Y(I))
DSUM1=DSUM1 + DX
DSUM2=DSUM2 + 1.0D0/DX
DSUM3=DSUM3 + 1.0D0/(DX + XPAR(1))
200 CONTINUE
TBAR=DSUM1/DN
H=DN/DSUM2
DK=DN/DSUM3
DALPH2=2.0D0*DSQRT(0.5D0*((TBAR/XPAR(1)) + XPAR(1)/H) - 1.0D0)
SCALE2=REAL(XPAR(1))
GAMMA2=REAL(DALPH2)
C
C ***********************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR FATIGUE LIFE MLE ESTIMATION **
C ***********************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLFL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Fatigue Life Parameter Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean:')
5062 FORMAT(' Sample Standard Deviation:')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5065 FORMAT(' Estimate of Gamma:')
5066 FORMAT(' Estimate of Scale:')
5067 FORMAT(' Estimate of Gamma:')
5068 FORMAT(' Estimate of Scale:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5071 FORMAT(' Summary Statistics:')
5072 FORMAT(' Method of Moment Estimates:')
5073 FORMAT(' Maximum Likelihood Estimates:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMA1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMA2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Fatigue Life Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Estimate of $',A1,'gamma$: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'Estimate of Scale: & ',G15.7,2X,A1,A1)
8028 FORMAT(5X,'Estimate of $',A1,'gamma$: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'Estimate of Scale: & ',G15.7,2X,A1,A1)
8030 FORMAT(5X,'Summary Statistics: & ',2X,A1,A1)
8031 FORMAT(5X,'Method of Moment Estimates: & ',2X,A1,A1)
8032 FORMAT(5X,'Maximum Likelihood Estimates: & ',2X,A1,A1)
8033 FORMAT(5X,' & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8033)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)IBASLC,GAMMA1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)SCALE1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8033)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,GAMMA2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)SCALE2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(12X,
1 'FATIGUE LIFE MAXIMUM LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4220)
4220 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)XMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)XSD
4223 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4224)XMIN
4224 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)XMAX
4225 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4230)
4230 FORMAT('METHOD OF MOMENT ESTIMATES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)GAMMA1
4231 FORMAT('ESTIMATE OF GAMMA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)SCALE1
4233 FORMAT('ESTIMATE OF SCALE = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4240)
4240 FORMAT('METHOD OF MAXIMUM LIKELIHOOD:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4241)GAMMA2
4241 FORMAT('ESTIMATE OF GAMMA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)SCALE2
4243 FORMAT('ESTIMATE OF SCALE = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4251)
4251 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4252)
4252 FORMAT('GAMMAML, AND SCALEML.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4256)
4256 FORMAT('METHOD OF MOMENT ESTIMATES WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4257)
4257 FORMAT('GAMMAMOM, AND SCALEMOM.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLFL')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLFL--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLFN(Y,N,
1XTEMP,MAXNXT,
1ALOC,SCALE,
1ICAPSW,ICAPTY,DTEMP1,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD ESTIMATES
C FOR THE FOLDED NORMAL DISTRIBUTION.
C THE MAXIMUM LIKELIHOOD ESTIMATES ARE THE SOLUTION TO
C THE FOLLOWING SIMULTANEOUS NONLINEAR EQUATIONS:
C EQUATIONS.
C
C LOC**2 + SCALE**2 - SUM[i=1 to n][X(i)**2]/N
C
C LOC - SUM[i=1 to n][X(i)*tanh(LOC*X(i)/SCALE**2)]/n
C
C WITH LOC AND SCALE DENOTING THE SHAPE PARAMETERS.
C
C EXAMPLE--FOLDED NORMAL MAXIMUM LIKELIHOOD Y
C REFERENCE--"CONTINUOUS UNIVARIATE DISTRIBUTIONS-VVOLUME II",
C SECOND EDITION, JOHNSON, KOTZ, AND BALAKRISHNAN,
C 1994, WILEY, P. 454.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/3
C ORIGINAL VERSION--MARCH 2004.
C UPDATED --AUGUST 2005. REFORMAT OUTPUT FOR CONSISTENCY
C WITH OTHER ML ROUTINES
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
DOUBLE PRECISION DTEMP1(*)
C
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(2)
DOUBLE PRECISION FVEC(2)
C
EXTERNAL FNRFUN
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='FN '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLFN')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLFN--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLFN')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN FOLDED NORMAL ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN FOLDED NORMAL ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1147)
1147 FORMAT('***** ERROR IN FOLDED NORMAL ',
1 'MAXIMUM LIKELIHOOD ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1148)I,Y(I)
1148 FORMAT(' ROW ',I8,' IS NON-POSITIVE (VALUE = ',G15.7,')')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
C ********************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR FOLDED NORMAL MLE ESTIMATION **
C ********************************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLFN')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
C
XPAR(1)=DBLE(XMEAN)
XPAR(2)=DBLE(XSD*XSD)
C
IOPT=2
TOL=1.0D-5
NVAR=2
NPRINT=-1
INFO=0
LWA=MAXNXT
CALL DNSQE(FNRFUN,JAC,IOPT,NVAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP1,MAXNXT,Y,N)
C
ALOC=REAL(XPAR(1))
SCALE=REAL(XPAR(2))
SCALE=SQRT(SCALE)
C
C ***********************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR FOLDED NORMAL MLE **
C ** ESTIMATION **
C ***********************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLFN')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Folded Normal Parameter ',
1 'Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5060 FORMAT(' Summary Statistics:')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Sample Minimum:')
5065 FORMAT(' Sample Maximum:')
5066 FORMAT(' Maximum Likelihood Estimates:')
5067 FORMAT(' Estimate of MU:')
5068 FORMAT(' Estimate of SIGMA:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5060)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Folded Normal ',
1 'Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Summary Statistics: & ',2X,A1,A1)
8022 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8023 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,' & ',2X,A1,A1)
8028 FORMAT(5X,'Maximum Likelihood Estimates: & ',2X,A1,A1)
8029 FORMAT(5X,'Estimate of $',A1,'mu$: & ',G15.7,2X,A1,A1)
8030 FORMAT(5X,'Estimate of $',A1,'sigma$: & ',G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)IBASLC,ALOC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)IBASLC,SCALE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4201)
4201 FORMAT(12X,'FOLDED NORMAL PARAMETER ESTIMATION')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4210)
4210 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)N
4211 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4213)XMEAN
4213 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4215)XSD
4215 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4217)XMIN
4217 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4219)XMAX
4219 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4230)
4230 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)ALOC
4231 FORMAT('ESTIMATE OF MU = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)SCALE
4233 FORMAT('ESTIMATE OF SIGMA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4241)
4241 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4242)
4242 FORMAT('MUML, AND SIGMAML.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
END IF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLFN')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLFN--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLFR(Y,TAG,N,
1XTEMP,DTEMP,MAXNXT,
1SCALE,SCALSE,GAMMA,GAMMSE,GAMMBC,GABCSE,COVSE,COBCSE,
1NUMV,ICENTY,TEND,
1ICAPSW,ICAPTY,IFREBC,
1QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1IOUNI1,IOUNI2,ALPHAP,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR FRECHET DISTRIBUTION
C FOR THE FULL SAMPLE CASE.
C EXAMPLE--FRECHET MAXIMUM LIKELIHOOD Y
C REFERENCE--KARL BURY, "STATISTICAL DISTRIBUTIONS IN
C ENGINEERING", CAMBRIDGE UNIVERSITY PRESS,
C 1999, CHAPTER 16.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2005/5
C ORIGINAL VERSION--MAY 2005.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICENTY
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 IFREBC
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
PARAMETER (NUMALP=6)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWSC(NUMALP)
DIMENSION AUPPSC(NUMALP)
DIMENSION ALOWGA(NUMALP)
DIMENSION AUPPGA(NUMALP)
DIMENSION ALOWS2(NUMALP)
DIMENSION AUPPS2(NUMALP)
DIMENSION ALOWG2(NUMALP)
DIMENSION AUPPG2(NUMALP)
C
DIMENSION Y(*)
DIMENSION TAG(*)
DIMENSION XTEMP(*)
DIMENSION QP(*)
DIMENSION XQPHAT(*)
DIMENSION XQPSE(*)
DIMENSION XQPLCL(*)
DIMENSION XQPUCL(*)
DOUBLE PRECISION DTEMP(*)
C
DOUBLE PRECISION EV2FUN
DOUBLE PRECISION EV2FU2
DOUBLE PRECISION EV2FU3
EXTERNAL SUM
EXTERNAL EV2FUN
EXTERNAL EV2FU2
EXTERNAL EV2FU3
C
INTEGER IN
DOUBLE PRECISION DEV2SM
COMMON/EV2COM/DEV2SM,IN
C
INTEGER IN2
DOUBLE PRECISION DK
DOUBLE PRECISION DTERM1
DOUBLE PRECISION DTERM2
COMMON/EV2CO2/DK,DTERM1,DTERM2,IN2
INTEGER IN3
DOUBLE PRECISION DK2
DOUBLE PRECISION DTERM6
DOUBLE PRECISION DTERM7
DOUBLE PRECISION DGAMMA
COMMON/EV2CO3/DK2,DTERM6,DTERM7,DGAMMA,IN3
C
DOUBLE PRECISION DN
DOUBLE PRECISION DAE
DOUBLE PRECISION DRE
DOUBLE PRECISION DG
DOUBLE PRECISION DS
DOUBLE PRECISION DT1
DOUBLE PRECISION DSUM1
DOUBLE PRECISION DSUM2
DOUBLE PRECISION DXSTRT
DOUBLE PRECISION DXLOW
DOUBLE PRECISION DXUP
DOUBLE PRECISION XLOWSV
DOUBLE PRECISION XUPSV
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01, 0.001/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='FR '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLFR')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLFR--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NUMV
55 FORMAT('N,NUMV,NPERC = ',3I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I),TAG(I)
57 FORMAT('I,Y(I),TAG(I) = ',I8,2E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
WRITE(ICOUT,59)ICENTY,IFREBC
59 FORMAT('ICENTY,IFREBC = ',2A4)
CALL DPWRST('XXX','WRIT')
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLFR')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN FRECHET MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)
1112 FORMAT(' THE NUMBER OF OBSERVATIONS FOR VARIABLE 1 ',
1 'IS <= 1')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)N
1113 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
DO1125I=1,N
IF(Y(I).LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1121)
1121 FORMAT('***** ERROR FROM FRECHET MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1122)I,Y(I)
1122 FORMAT(' ROW ',I8,' HAS THE VALUE = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ELSE
XTEMP(I)=LOG(Y(I))
ENDIF
1125 CONTINUE
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR FROM FRECHET MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1132)HOLD
1132 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
IF(NPERC.GT.0)THEN
DO1145I=1,NPERC
IF(QP(I).LE.0.0 .OR. QP(I).GE.100.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1141)
1141 FORMAT('***** WARNING IN FRECHET MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1143)QP(I)
1143 FORMAT(' REQUESTED PERCENTILE (',G15.7,') IS ',
1 'OUTSIDE THE (0,100) INTERVAL')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1144)
1144 FORMAT(' NO PERCENTILE CONFIDENCE LIMITS WILL BE ',
1 'COMPUTED.')
CALL DPWRST('XXX','WRIT')
NPERC=0
ENDIF
1145 CONTINUE
ENDIF
C
C **********************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR FRECHET MLE **
C ** ESTIMATE (FULL SAMPLE CASE) **
C **********************************
C
4100 CONTINUE
C
C FOR THE SHAPE PARAMETER, SOLVE THE EQUATION:
C
C (1/GHAT) +
C SUM[i=1 to n][Y(I)**(-GHAT)*LN(Y(I))]/
C SUM[i=1 to n][[Y(I)**(-GHAT)] -
C (1/N)*SUM[i=1 to n][LN(Y(I))] = 0
C
C THEN
C
C SCALE = {((1/N)*SUM[i=1 to n][Y(I)**(-GHAT)])}**(-1/GHAT)
C
C FOR STARTING VALUE, USE FACT THAT FRECHET = EXPONENTIAL OF
C GUMBEL DISTRIBUTION. THEN GHAT = 1/SCALE WITH SCALE DENOTING
C THE SCALE ESTIMATE OF THE GUMBEL DISTRIBUTION.
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLFR')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
AN=REAL(N)
C
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL SD(XTEMP,N,IWRITE,XLOGSD,IBUGA3,IERROR)
CALL SUM(XTEMP,N,IWRITE,XLOGSM,IBUGA3,IERROR)
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
C
C ESTIMATES FOR 2-PARAMETER MODEL. USE DFZER2 TO FIND ROOT OF
C THE EQUATION GIVEN ABOVE.
C
DO4101I=1,N
DTEMP(I)=DBLE(Y(I))
4101 CONTINUE
DEV2SM=DBLE(XLOGSM/AN)
DXSTRT=DBLE(SQRT(1.645)*XSD)
DAE=2.0*0.000001D0*DXSTRT
DRE=DAE
IN=N
IFLAG=0
DXLOW=DXSTRT/5.0D0
DXUP=5.0D0*DXSTRT
ITBRAC=0
4105 CONTINUE
XLOWSV=DXLOW
XUPSV=DXUP
CALL DFZER2(EV2FUN,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
C
IF(IFLAG.EQ.4 .AND. ITBRAC.LE.100)THEN
DXLOW=XLOWSV/2.0D0
DXUP=2.0D0*XUPSV
ITBRAC=ITBRAC+1
GOTO4105
ENDIF
C
IF(IFLAG.EQ.2)THEN
C
C NOTE: SUPPRESS THIS MESSAGE FOR NOW.
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,111)
CC111 FORMAT('***** WARNING FROM FRECHET MAXIMUM ',
CCCCC1 'LIKELIHOOD--')
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,113)
CC113 FORMAT(' ESTIMATE OF SIGMA MAY NOT BE COMPUTED TO ',
CCCCC1 'DESIRED TOLERANCE.')
CCCCC CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,121)
121 FORMAT('***** WARNING FROM FRECHET MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,123)
123 FORMAT(' ESTIMATE OF GAMMA MAY BE NEAR A SINGULAR POINT.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.4)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,131)
131 FORMAT('***** ERROR FROM FRECHET MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,133)
133 FORMAT(' APPROPRIATE BRACKETING INTERVAL NOT FOUND.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.5)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,141)
141 FORMAT('***** WARNING FROM FRECHET MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,143)
143 FORMAT(' MAXIMUM ITERATIONS EXCEEDED.')
CALL DPWRST('XXX','BUG ')
ENDIF
C
GAMMA=REAL(DXLOW)
DSUM=0.0D0
DO4108I=1,N
DSUM=DSUM + DBLE(Y(I)**(-GAMMA))
4108 CONTINUE
DSUM=(DSUM/DBLE(N))**(1.0D0/DBLE(-GAMMA))
SCALE=REAL(DSUM)
BN=1.0 + 2.2/AN**1.13
GAMMBC=GAMMA/BN
C
C COMPUTE STANDARD ERRORS (CAN BASE ON EITHER THE NORMAL BIASED
C ESTIMATORS OR THE BIAS CORRECTED ESTIMATORS)
C
SCALSE=1.05293*SCALE/(GAMMA*SQRT(AN))
GAMMSE=0.77970*GAMMA/SQRT(AN)
GABCSE=0.77970*GAMMA/(BN*SQRT(AN))
COVSE=0.50697*SQRT(SCALE/AN)
COBCSE=0.50697*SQRT(SCALE/(AN*BN))
C
C CONFIDENCE INTERVALS FOR PARAMETERS. CAN BASE ON EITHER NORMAL
C APPROXIMATION OR ON LIKELIHOOD RATIO APPROXIMATION.
C
C NORMAL APPROXIMATION FIRST.
C
DO4110I=1,NUMALP
ALP=ALPHA(I)
P=1.0-(ALP/2.0)
CALL NORPPF(P,PPF)
ALOWSC(I)=SCALE - PPF*SCALSE
AUPPSC(I)=SCALE + PPF*SCALSE
IF(IFREBC.EQ.'ON')THEN
ALOWGA(I)=GAMMBC - PPF*GABCSE
AUPPGA(I)=GAMMBC + PPF*GABCSE
ELSE
ALOWGA(I)=GAMMA - PPF*GAMMSE
AUPPGA(I)=GAMMA + PPF*GAMMSE
ENDIF
4110 CONTINUE
C
C NOW DO LIKELIHOOD RATIO APPROXIMATION.
C
IN2=N
IN3=N
DN=DBLE(N)
DAE=1.D-7
DRE=1.D-7
NUTEMP=1
C
DN=DBLE(N)
DG=DBLE(GAMMA)
DS=DBLE(SCALE)
DT1=DN*DLOG(DBLE(GAMMA)) + DN*DG*DLOG(DS)
DSUM1=0.0D0
DSUM2=0.0D0
DO4125I=1,N
DTEMP(I)=DBLE(Y(I))
DSUM1=DSUM1 + DLOG(DBLE(Y(I)))
DSUM2=DSUM2 + DBLE(Y(I))**(-DG)
4125 CONTINUE
DTERM2=DSUM1
DTERM1=2.0D0*(DT1 - (DG+1.0D0)*DTERM2 - DS**DG*DSUM2)
DTERM7=DTERM2
DTERM6=DTERM1
DGAMMA=DBLE(GAMMA)
C
DO4120I=1,NUMALP
ALP=ALPHA(I)
CALL CHSPPF(1.0-ALP,NUTEMP,APPF)
DK=DBLE(APPF)
DK2=DK
C
DXSTRT=DBLE(ALOWGA(I))
DXLOW=DXSTRT/5.0D0
DXUP=DBLE(GAMMA)
CALL DFZER2(EV2FU2,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
ALOWG2(I)=REAL(DXLOW)
C
DXSTRT=DBLE(AUPPGA(I))
DXUP=DXSTRT*5.0D0
DXLOW=DBLE(GAMMA)
CALL DFZER2(EV2FU2,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
AUPPG2(I)=REAL(DXLOW)
C
DXSTRT=DBLE(ALOWSC(I))
DXLOW=DXSTRT/5.0D0
DXUP=DBLE(SCALE)
CALL DFZER2(EV2FU3,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
ALOWS2(I)=REAL(DXLOW)
C
DXSTRT=DBLE(AUPPSC(I))
DXUP=DXSTRT*5.0D0
DXLOW=DBLE(SCALE)
CALL DFZER2(EV2FU3,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
AUPPS2(I)=REAL(DXLOW)
4120 CONTINUE
C
C CONFIDENCE INTERVALS FOR SELECTED PERCENTILES.
C
C 1. STANDARD ERROR USES TECHNIQUE DEMONSTRATED IN EXAMPLE 17.4
C (P. 344) OF BURY. THIS IS BASED ON PROPOGATION OF ERROR.
C
C 2. CONFIDENCE INTERVAL IS THEN GENERATED USING NORMAL
C APPROXIMATION (EXAMPLE 17.7 OF BURY). BURY ALSO DEMONSTRATES
C A LIKELIHOOD RATIO APPROACH, BUT OMIT THIS FOR NOW.
C
IF(NPERC.GE.1)THEN
C
ALPHL=ALPHAP/2.0
ALPHU=1.0 - ALPHAP/2.0
CALL NORPPF(ALPHU,Z95)
MINMAX=2
C
IF(IFREBC.EQ.'ON')THEN
G=GAMMBC
GSE=GABCSE
COV=COBCSE
ELSE
G=GAMMA
GSE=GAMMSE
COV=COVSE
ENDIF
C
WRITE(IOUNI1,4131)
WRITE(IOUNI1,4132)
DO4129I=1,NPERC
QPTEMP=QP(I)/100.0
CALL EV2PPF(QPTEMP,G,MINMAX,APPF)
XQPHAT(I)=SCALE*APPF
C
C=LOG(1.0/QPTEMP)
DA=C**(-1.0/G)
DB=(SCALE*C**(-1.0/G)*LOG(C)/(G**2))
TERM1=(DA*SCALSE)**2
TERM2=(DB*GSE)**2
TERM3=2.0*DA*DB*COV*COV
SEXQP=SQRT(TERM1 + TERM2 + TERM3)
XQPSE(I)=SEXQP
XQPLCL(I)=XQPHAT(I) - Z95*SEXQP
XQPUCL(I)=XQPHAT(I) + Z95*SEXQP
WRITE(IOUNI1,'(5E15.7)')
1 QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),XQPUCL(I)
4129 CONTINUE
4131 FORMAT(15X,' POINT ',' LOWER ',
1 ' UPPER')
4132 FORMAT(' PERCENTILE ',' ESTIMATE ',
1 'CONFIDENCE LIMIT ','CONFIDENCE LIMIT')
ENDIF
C
C *************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR FRECHET MLE ESTIMATE **
C *************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLFR')
1 CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5002 FORMAT('FRECHET MAXIMUM LIKELIHOOD ESTIMATION:')
5004 FORMAT(' FULL SAMPLE CASE')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5002)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Two-Parameter Model (Location = 0)')
5019 FORMAT(' ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Minimum Value:')
5063 FORMAT(' Sample Mean:')
5064 FORMAT(' Sample Standard Deviation:')
5065 FORMAT(' Estimate of Scale Parameter:')
5066 FORMAT(' Standard Error of Scale Parameter:')
5067 FORMAT(' Estimate of Shape Parameter:')
5068 FORMAT(' Standard Error of Shape Parameter:')
55067 FORMAT(' Estimate of Bias Corrected Shape Parameter:')
55068 FORMAT(' Standard Error of Bias Corrected Shape ',
1 'Parameter:')
5069 FORMAT(' Standard Error of Covariance of Scale and ',
1 'Shape Parameter:')
55069 FORMAT(' Standard Error of Bias Corrected Covariance ',
1 'of Scale and Shape Parameter:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMA
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMBC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GABCSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COVSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COBCSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the Shape ',
1 'Parameter ')
5118 FORMAT(' (Based on Biased Estimate)')
55118 FORMAT(' (Based on Bias Corrected Estimate)')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
IF(IFREBC.EQ.'ON')THEN
WRITE(ICOUT,55118)
ELSE
WRITE(ICOUT,5118)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5136 FORMAT(' | ')
5137 FORMAT(' Normal Approximation')
5138 FORMAT(' Likelihood Ratio')
5139 FORMAT(' | ')
5161 FORMAT(' ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5138)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWGA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPGA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWG2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPG2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5217 FORMAT(' Confidence Limits for the Scale ',
1 'Parameter')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5217)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5138)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
DO5240I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWS2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPS2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5240 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C START THE TABLE FOR PERCENTILE CONFIDENCE INTERVALS
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,999)
WRITE(ICOUT,5811)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5813)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5815)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5817)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5816)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5819)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5861)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5863)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5864)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5870)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5872)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
DO55880I=1,NPERC
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)QP(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPHAT(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPSE(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPLCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPUCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
55880 CONTINUE
C
C END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,5801)
CALL DPWRST('XXX','WRIT')
C
5801 FORMAT('')
5811 FORMAT('')
5813 FORMAT('')
5815 FORMAT(' ')
5816 FORMAT(' Alpha = ',F7.3,'')
5817 FORMAT(' Confidence Limits (Normal Approximation) ',
1 'for Selected ',
1 'Percentiles (No Bias Correction Estimates)')
5818 FORMAT(' Confidence Limits (Normal Approximation)',
1 ' for Selected ',
1 'Percentiles (Bias Corrected Estimates)')
5819 FORMAT(' ')
5841 FORMAT(' ')
5843 FORMAT(' | ')
5847 FORMAT(' | ')
5848 FORMAT(' ')
5849 FORMAT(' ')
5851 FORMAT(' ',G15.7)
5859 FORMAT(' | ')
5861 FORMAT(' Percentile')
5862 FORMAT(' Point Estimate')
55862 FORMAT(' Standard Error')
5863 FORMAT(' Lower Confidence Limit')
5864 FORMAT(' Upper Confidence Limit')
5870 FORMAT(' ')
5872 FORMAT(' ')
CCCCC WRITE OUTPUT IN LATEX FORMAT
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8004 FORMAT(A1,'end{table}')
8005 FORMAT('{',A1,'bf FRECHET Maximum Likelihood ',
1 'Estimation: Full Sample Case}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Two-Parameter Model ($',A1,
1 'mu$ = 0 Case)}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Minimum Value: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Estimate of Scale Parameter: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Standard Error of Scale Parameter: & ',
1 G15.7,2X,A1,A1)
8027 FORMAT(5X,'Estimate of Shape Parameter: & ',G15.7,2X,A1,A1)
8028 FORMAT(5X,'Standard Error of Shape Parameter: & ',
1 G15.7,2X,A1,A1)
8029 FORMAT(5X,'Estimate of Bias Corrected Shape Parameter: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Standard Error of Bias Corrected Shape ',
1 'Parameter: & ',G15.7,2X,A1,A1)
8031 FORMAT(5X,'Standard Error of Covariance of Scale and Shape ',
1 'Parameter: & ',G15.7,2X,A1,A1)
8032 FORMAT(5X,'Standard Error of Bias Corrected Covariance of ',
1 'Scale and Shape Parameter: & ',G15.7,2X,A1,A1)
8035 FORMAT(5X,' & ',2X,A1,A1)
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8035)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)SCALE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)SCALSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8035)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)GAMMA,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)GAMMSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)GAMMBC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)GABCSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8035)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)COVSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)COBCSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8093 FORMAT(A1,'end{center}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for Shape Parameter ',
1 '(Based on No Bias Correction Estimate)}')
8112 FORMAT(5X,'{',A1,'bf Confidence Limits for Shape Parameter ',
1 '(Based on Bias Corrected Estimate)}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
IF(IFREBC.EQ.'ON')THEN
WRITE(ICOUT,8112)IBASLC
ELSE
WRITE(ICOUT,8111)IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper & Lower & Upper ',
1 2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit & Limit & Limit',
1 2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,' & ',G15.7,' & ',
1 G15.7,2X,A1,A1)
8126 FORMAT(5X,'& ',A1,'multicolumn{2}{c}{Normal Approximation}',
1 ' & ',A1,'multicolumn{2}{c}{Likelihood Ratio}',
1 2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWGA(I),AUPPGA(I),ALOWG2(I),
1 AUPPG2(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8191 FORMAT(A1,'end{table}')
8193 FORMAT(A1,'end{center}')
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8211 FORMAT(5X,'{',A1,'bf Confidence Limits for Scale Parameter}')
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8211)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8230I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWSC(I),AUPPSC(I),ALOWS2(I),
1 AUPPS2(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8230 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8191)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C WRITE SELECTED PERCENTILES (IF ANY)
C
IF(NPERC.GT.0)THEN
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8803)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8810)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IFREBC.EQ.'ON')THEN
WRITE(ICOUT,88811)IBASLC
ELSE
WRITE(ICOUT,8811)IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8812)IBASLC,IBASLC,ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8813)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8820)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8821)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8822)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,
1 IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8840)IBASLC
CALL DPWRST('XXX','WRIT')
DO8830I=1,NPERC
WRITE(ICOUT,8823)QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),
1 XQPUCL(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8830 CONTINUE
WRITE(ICOUT,8849)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8891)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8893)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
8801 FORMAT(A1,'end{verbatim}')
8803 FORMAT(A1,'begin{table}')
8807 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8809 FORMAT(A1,'begin{center}')
8810 FORMAT(5X,'{',A1,'bf Confidence Limits (Normal Approximation)',
1 'for Selected Percentiles}')
8811 FORMAT(5X,'{',A1,'bf (Based on No Bias Correction Estimates:}')
88811 FORMAT(5X,'{',A1,'bf (Based on Bias Corrected Estimates:}')
8812 FORMAT(5X,'{',A1,'bf $',A1,'alpha$ = ',F7.3,'}')
8813 FORMAT(A1,'end{center}')
8815 FORMAT(5X,'} ',A1,A1)
8820 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8821 FORMAT(5X,' & {',A1,'bf Point} & {',A1,'bf Standard} & {',
1 A1,'bf Lower} & {',A1,'bf Upper}',2X,A1,A1)
8822 FORMAT(5X,'{',A1,'bf Percentile} & {',A1,'bf Estimate} & {',
1 A1,'bf Error} & {',A1,'bf Confidence Limit} & {',
1 A1,'bf Confidence Limit}',
1 2X,A1,A1)
8823 FORMAT(5X,G15.7,' & ',G15.7,' & ',G15.7,' & ',G15.7,
1 ' & ',G15.7,2X,A1,A1)
8840 FORMAT(5X,A1,'hline')
8849 FORMAT(A1,'end{tabular}')
8891 FORMAT(A1,'end{center}')
8893 FORMAT(A1,'end{table}')
C
8899 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8899)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(6X,'FRECHET MAXIMUM LIKELIHOOD ESTIMATION: ',
1 'FULL SAMPLE CASE')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4213)
4213 FORMAT('TWO-PARAMETER MODEL (LOCATION = 0)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4215)N
4215 FORMAT('NUMBER OF OBSERVATIONS = ',
1 I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4217)XMIN
4217 FORMAT('MINIMUM VALUE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4219)XMEAN
4219 FORMAT('SAMPLE MEAN VALUE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)XSD
4221 FORMAT('SAMPLE STANDARD DEVIATION VALUE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)SCALE
4223 FORMAT('ESTIMATE OF SCALE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)SCALSE
4225 FORMAT('STANDARD ERROR OF SCALE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)GAMMA
4227 FORMAT('ESTIMATE OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)GAMMSE
4231 FORMAT('STANDARD ERROR OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4229)GAMMBC
4229 FORMAT('BIAS CORRECTED ESTIMATE OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4232)GABCSE
4232 FORMAT('STANDARD ERROR OF BIAS CORRECTED SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)COVSE
4233 FORMAT('STANDARD ERROR OF SHAPE/SCALE COVARIANCE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4234)COBCSE
4234 FORMAT('STD ERR OF BIAS CORRECTED SHAPE/SCALE COVARIANCE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4240)
4240 FORMAT('CONFIDENCE INTERVAL FOR SCALE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4242)
4242 FORMAT(' NORMAL APPROXIMATION',
1 ' LIKELIHOOD RATIO')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
4243 FORMAT(' CONFIDENCE LOWER UPPER',
1 ' LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
4245 FORMAT(' VALUE (%) LIMIT LIMIT',
1 ' LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
4246 FORMAT('---------------------------------------------------',
1 '--------------------')
CALL DPWRST('XXX','WRIT')
DO4249I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWSC(I),AUPPSC(I),ALOWS2(I),
1 AUPPS2(I)
4247 FORMAT(' ',F8.3,10X,4(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4249 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4252)
4252 FORMAT('CONFIDENCE INTERVAL FOR SHAPE PARAMETER')
CALL DPWRST('XXX','WRIT')
IF(IFREBC.EQ.'ON')THEN
WRITE(ICOUT,4254)
4254 FORMAT('(BASED ON BIAS CORRECTED ESTIMATES)')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4256)
4256 FORMAT('(BASED ON NO BIAS CORRECTION ESTIMATES)')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4242)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
CALL DPWRST('XXX','WRIT')
DO4259I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWGA(I),AUPPGA(I),ALOWG2(I),
1 AUPPG2(I)
CALL DPWRST('XXX','WRIT')
4259 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4911)
CALL DPWRST('XXX','WRIT')
IF(IFREBC.EQ.'ON')THEN
WRITE(ICOUT,4913)
ELSE
WRITE(ICOUT,4914)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4915)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4921)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4922)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4346)
CALL DPWRST('XXX','WRIT')
C
4911 FORMAT('CONFIDENCE LIMITS (NORMAL APPROXIMATION) FOR ',
1 'SELECTED PERCENTILES:')
4913 FORMAT('(BASED ON BIAS CORRECTED ESTIMATES)')
4914 FORMAT('(BASED ON NO BIAS CORRECTION ESTIMATES)')
4915 FORMAT('ALPHA = ',F7.4)
4921 FORMAT(10X,' POINT ',' STANDARD ',
1 ' LOWER ', ' UPPER')
4922 FORMAT('PERCENTILE',' ESTIMATE ',' ERROR ',
1 'CONFIDENCE LIMIT ',' CONFIDENCE LIMIT')
4346 FORMAT('-----------------------------------',
1 '-----------------------------------')
C
DO4981I=1,NPERC
WRITE(ICOUT,4932)QP(I),XQPHAT(I),XQPSE(I),
1 XQPLCL(I),XQPUCL(I)
4932 FORMAT(2X,F8.4,2G15.7,2X,G15.7,2X,G15.7)
CALL DPWRST('XXX','WRIT')
4981 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IFEEDB.EQ.'ON')THEN
WRITE(ICOUT,4291)
4291 FORMAT('THE FOLLOWING INTERNAL PARAMETERS ARE SAVED:')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4293)
4293 FORMAT(' ALPHAML, ALPHASE, GAMMAML, GAMMASE, ',
1 'CAMMABC, GAMMABCSE,COVSE,COVBCSE')
CALL DPWRST('XXX','BUG ')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(IFEEDB.EQ.'ON')THEN
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4943)
4943 FORMAT('PERCENTILE CONFIDENCE LIMITS WRITTEN TO ',
1 'FILE dpst1f.dat')
CALL DPWRST('XXX','BUG ')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
C
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLFR')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLFR--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLGA(Y,N,
1XTEMP,MAXNXT,
1GAMMA,ALPHA,GAMMA2,ALPHA2,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR 2-PARAMETER GAMMA
C EXAMPLE--MAXIMUM LIKELIHOOD GAMMA Y
C REFERENCE--XX
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--98/3
C ORIGINAL VERSION--MARCH 1998.
C UPDATED --DECEMBER 2003. ADD MOMENT ESTIMATES
C UPDATED --DECEMBER 2003. SUPPORT HTML/LATEX OUTPUT
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*4 IWRITE
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='GA '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MLGA')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLGA--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','BUG ')
DO56I=1,N
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
56 CONTINUE
66 CONTINUE
90 CONTINUE
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.GE.1)GOTO1119
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN DPMLGA--THE NUMBER OF OBSERVATIONS ',
1'FOR VARIABLE 1 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)N
1112 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1119 CONTINUE
C
IF(N.EQ.1)GOTO1120
GOTO1129
1120 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1121)
1121 FORMAT('***** NOTE FROM DPMLGA--VARIABLE 1 ',
1'HAS ONLY 1 ELEMENT')
CALL DPWRST('XXX','WRIT')
GOTO9000
1129 CONTINUE
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)HOLD
1131 FORMAT('***** NOTE FROM DPMLGA--VARIABLE 1 ',
1'HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1141)
1141 FORMAT('***** GAMMA FROM WEIBULL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1142)
1142 FORMAT(' NON-POSITIVE VALUE ENCOUNTERED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1144)I,Y(I)
1144 FORMAT(' ROW ',I8,' HAS THE VALUE = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
C ******************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR GAMMA MLE ESTIMATE **
C ******************************
C
4100 CONTINUE
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
CALL GAMEST(Y,N,ALPHA,GAMMA,IERROR)
C
CCCCC 12/2003: COMPUTE METHOD OF MOMENT ESTIMATES
C
IWRITE='OFF'
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
GAMMA2=(XMEAN/XSD)**2
ALPHA2=XSD**2/XMEAN
C
C *********************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR GAMMA MLE ESTIMATE **
C **********************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Gamma 2-Parameter Maximum Likelihood ',
1 'Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Maximum Likelihood Estimates:')
5065 FORMAT(' Shape Parameter Gamma:')
5066 FORMAT(' Scale Parameter Alpha:')
5067 FORMAT(' Method of Moments Estimates:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMA
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALPHA
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMA2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALPHA2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Gamma 2-Parameter Maximum Likelihood ',
1 'Estimate}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'{',A1,'bf Maximum Likelihood Estimates:} & ',2X,A1,A1)
8025 FORMAT(5X,'Shape Parameter Gamma: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Scale Parameter Alpha: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'{',A1,'bf Method of Moments Estimates:} & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)GAMMA,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)ALPHA,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)GAMMA2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)ALPHA2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT('GAMMA 2-PARAMETER MAXIMUM LIKELIHOOD ESTIMATE:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT(6X,'NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)XMEAN
4223 FORMAT(6X,'SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)XSD
4225 FORMAT(6X,'SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4340)
4340 FORMAT(6X,'MAXIMUM LIKELIHOOD ESTIMATES')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4343)GAMMA
4343 FORMAT(6X,' SHAPE PARAMETER GAMMA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4345)ALPHA
4345 FORMAT(6X,' SCALE PARAMETER ALPHA = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4350)
4350 FORMAT(6X,'METHOD OF MOMENTS ESTIMATES')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4353)GAMMA2
4353 FORMAT(6X,' SHAPE PARAMETER GAMMA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4355)ALPHA2
4355 FORMAT(6X,' SCALE PARAMETER ALPHA = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
ENDIF
ENDIF
C
IF(IFEEDB.EQ.'ON')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4441)
4441 FORMAT('MAXIMUM LIKELIHHOD ESTIMATES WILL BE SAVED IN THE')
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,4443)
4443 FORMAT('INTERNAL PARAMETERS GAMMA AND ALPHA')
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,4451)
4451 FORMAT('METHOD OF MOMENTS ESTIMATES WILL BE SAVED IN THE')
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,4453)
4453 FORMAT('INTERNAL PARAMETERS GAMMA2 AND ALPHA2')
CALL DPWRST('XXX','BUG')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG')
ENDIF
C
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MLGA')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLGA--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMLG1(Y,TAG,N,
1XTEMP,DTEMP,MAXNXT,
1SCALMO,GAMMMO,SCALML,SCALSE,GAMMML,GAMMSE,COVSE,
1NUMV,ICENTY,TEND,
1ICAPSW,ICAPTY,
1QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1IOUNI1,IOUNI2,ALPHAP,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR GAMMA DISTRIBUTION
C FOR THE FULL SAMPLE CASE.
C EXAMPLE--GAMMA MAXIMUM LIKELIHOOD Y
C REFERENCE--KARL BURY, "STATISTICAL DISTRIBUTIONS IN
C ENGINEERING", CAMBRIDGE UNIVERSITY PRESS,
C 1999, CHAPTER 13.
C --JOHNSON, KOTZ, AND BALAKRISNAN, "CONTINUOUS
C UNIVARIATE DISTRIBUTIONS--VOLUME 1", SECOND EDITION,
C WILEY, 1994, CHAPTER xx.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/11
C ORIGINAL VERSION--NOVEMBER 2004. NOTE: THIS REPLACES SOME
C EARLIER IMPLEMENTATIONS.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICENTY
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
PARAMETER (NUMALP=6)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWSC(NUMALP)
DIMENSION AUPPSC(NUMALP)
DIMENSION ALOWGA(NUMALP)
DIMENSION AUPPGA(NUMALP)
DIMENSION ALOWS2(NUMALP)
DIMENSION AUPPS2(NUMALP)
DIMENSION ALOWG2(NUMALP)
DIMENSION AUPPG2(NUMALP)
C
DIMENSION Y(*)
DIMENSION TAG(*)
DIMENSION XTEMP(*)
DIMENSION QP(*)
DIMENSION XQPHAT(*)
DIMENSION XQPSE(*)
DIMENSION XQPLCL(*)
DIMENSION XQPUCL(*)
DOUBLE PRECISION DTEMP(*)
C
DOUBLE PRECISION GAMFUN
DOUBLE PRECISION GAMFU2
DOUBLE PRECISION GAMFU3
EXTERNAL SUM
EXTERNAL GAMFUN
EXTERNAL GAMFU2
EXTERNAL GAMFU3
EXTERNAL GAMFU8
EXTERNAL GAMFU9
C
DOUBLE PRECISION DLOGGM
COMMON/GAMCOM/DLOGGM
C
INTEGER IN2
DOUBLE PRECISION DK
DOUBLE PRECISION DXBAR
DOUBLE PRECISION DGMEAN
DOUBLE PRECISION DSCALE
DOUBLE PRECISION DGAM
COMMON/GAMCO2/DK,DXBAR,DGMEAN,DSCALE,DGAM,IN2
C
INTEGER IN3
DOUBLE PRECISION DK2
DOUBLE PRECISION DTERM6
DOUBLE PRECISION DTERM7
DOUBLE PRECISION DGAMMA
COMMON/GAMCO3/DK2,DTERM6,DTERM7,DGAMMA,IN3
C
COMMON/GAMCO8/P8,SCALE8
COMMON/GAMCO9/P9,GHAT9
C
DOUBLE PRECISION DN
DOUBLE PRECISION AE
DOUBLE PRECISION RE
DOUBLE PRECISION DG
DOUBLE PRECISION DS
DOUBLE PRECISION DT1
DOUBLE PRECISION DSUM1
DOUBLE PRECISION DSUM2
DOUBLE PRECISION DXSTRT
DOUBLE PRECISION DXLOW
DOUBLE PRECISION DXUP
DOUBLE PRECISION XLOWSV
DOUBLE PRECISION XUPSV
DOUBLE PRECISION DANS(10)
DOUBLE PRECISION TRIGAM
DOUBLE PRECISION DTRM11
DOUBLE PRECISION DTRM12
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01, 0.001/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='G1 '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLG1')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLG1--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NUMV
55 FORMAT('N,NUMV,NPERC = ',3I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I),TAG(I)
57 FORMAT('I,Y(I),TAG(I) = ',I8,2E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
WRITE(ICOUT,59)ICENTY
59 FORMAT('ICENTY = ',A4)
CALL DPWRST('XXX','WRIT')
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLG1')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN GAMMA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)
1112 FORMAT(' THE NUMBER OF OBSERVATIONS FOR VARIABLE 1 ',
1 'IS <= 1')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)N
1113 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
DO1125I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1121)
1121 FORMAT('***** ERROR FROM GAMMA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1122)
1122 FORMAT(' A NEGATIVE VALUE WAS ENCOUNTERED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1123)I,Y(I)
1123 FORMAT(' ROW ',I8,' HAS THE VALUE = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1125 CONTINUE
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** WARNING FROM GAMMA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1132)HOLD
1132 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
IF(NPERC.GT.0)THEN
DO1145I=1,NPERC
IF(QP(I).LE.0.0 .OR. QP(I).GE.100.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1141)
1141 FORMAT('***** WARNING IN GAMMA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1143)QP(I)
1143 FORMAT(' REQUESTED PERCENTILE (',G15.7,') IS ',
1 'OUTSIDE THE (0,100) INTERVAL')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1144)
1144 FORMAT(' NO PERCENTILE CONFIDENCE LIMITS WILL BE ',
1 'COMPUTED.')
CALL DPWRST('XXX','WRIT')
NPERC=0
ENDIF
1145 CONTINUE
ENDIF
C
C **********************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR GAMMA MLE **
C ** ESTIMATE (FULL SAMPLE CASE) **
C **********************************
C
4100 CONTINUE
C
C FOR THE SHAPE PARAMETER, SOLVE THE EQUATION:
C
C LOG(GAMMAHAT) - PHI(GAMMAHAT) - LOG(XBAR/G) = 0
C
C WITH G DENOTING THE GEOMETRIC MEAN (PRODUCT[i=1 to n][X(i)**(1/N)]
C
C THEN
C
C SCALE = XBAR/GAMMAHAT
C
C FOR STARTING VALUE, USE THE METHOD OF MOMENT ESTIMATORS
C
C GAMMAHAT = (XBAR/XSD)**2
C SCALE = XSD**2/XBAR
C
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLG1')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
AN=REAL(N)
C
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL GEOMEA(Y,N,IWRITE,XGEOM,IBUGA3,IERROR)
C
GAMMMO=(XMEAN/XSD)**2
SCALMO=XSD**2/XMEAN
C
C
C ESTIMATES FOR 2-PARAMETER MODEL. USE DFZER2 TO FIND ROOT OF
C THE LIKELIHOOD EQUATION.
C
DLOGGM=DLOG(DBLE(XMEAN)/DBLE(XGEOM))
DXSTRT=DBLE(GAMMMO)
AE=2.0*0.000001D0*DXSTRT
RE=AE
IFLAG=0
DXLOW=DXSTRT/2.0D0
DXUP=2.0D0*DXSTRT
ITBRAC=0
4105 CONTINUE
XLOWSV=DXLOW
XUPSV=DXUP
CALL DFZERO(GAMFUN,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG)
C
IF(IFLAG.EQ.4 .AND. ITBRAC.LE.100)THEN
DXLOW=XLOWSV/2.0D0
DXUP=2.0D0*XUPSV
ITBRAC=ITBRAC+1
GOTO4105
ENDIF
C
IF(IFLAG.EQ.2)THEN
C
C NOTE: SUPPRESS THIS MESSAGE FOR NOW.
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,111)
CC111 FORMAT('***** WARNING FROM GAMMA MAXIMUM ',
CCCCC1 'LIKELIHOOD--')
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,113)
CC113 FORMAT(' ESTIMATE OF GAMMA MAY NOT BE COMPUTED TO ',
CCCCC1 'DESIRED TOLERANCE.')
CCCCC CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,121)
121 FORMAT('***** WARNING FROM GAMMA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,123)
123 FORMAT(' ESTIMATE OF GAMMA MAY BE NEAR A SINGULAR POINT.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.4)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,131)
131 FORMAT('***** ERROR FROM GAMMA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,133)
133 FORMAT(' APPROPRIATE BRACKETING INTERVAL NOT FOUND.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.5)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,141)
141 FORMAT('***** WARNING FROM GAMMA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,143)
143 FORMAT(' MAXIMUM ITERATIONS EXCEEDED.')
CALL DPWRST('XXX','BUG ')
ENDIF
C
C
C COMPUTE STANDARD ERRORS (CAN BASE ON EITHER THE NORMAL BIASED
C ESTIMATORS OR THE BIAS CORRECTED ESTIMATORS)
C
C NOTE THAT DPSIFN COMPUTES THE SCALED PSI DERIVATIVE FUNCTION:
C
C (-1)**(K+1)/GAMMA(K+1)
C
C FOR TRIGAMMA, K=1 AND THE SCALING FACTOR REDUCES TO 1.
C
GAMMML=REAL(DXLOW)
SCALML=XMEAN/GAMMML
C
DN=DBLE(N)
DG=DBLE(GAMMML)
DS=DBLE(SCALML)
KODE=1
NTEMP=1
M=1
NZ=0
CALL DPSIFN(DG,NTEMP,KODE,M,DANS,NZ,IERR)
TRIGAM=DANS(1)
IF(IERR.EQ.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3101)
3101 FORMAT('***** ERROR FROM GAMMA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3103)
3103 FORMAT(' UNABLE TO COMPUTE TRIGAMMA FUNCTION.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ELSEIF(IERR.EQ.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3101)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3105)
3105 FORMAT(' OVERFLOW IN COMPUTING THE TRIGAMMA FUNCTION.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ELSEIF(IERR.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3101)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3107)
3107 FORMAT(' OVERFLOW IN COMPUTING THE TRIGAMMA FUNCTION.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
DTRM11=DN*(DG*TRIGAM-1.0D0)
DTRM12=DS**2*TRIGAM
SCALSE=REAL(DSQRT(DTRM12/DTRM11))
GAMMSE=REAL(DSQRT(DG/DTRM11))
COVSE=REAL(-DS/DTRM11)
C
C CONFIDENCE INTERVALS FOR PARAMETERS. CAN BASE ON EITHER NORMAL
C APPROXIMATION OR ON LIKELIHOOD RATIO APPROXIMATION.
C
C NORMAL APPROXIMATION FIRST.
C
DO4110I=1,NUMALP
ALP=ALPHA(I)
P=1.0-(ALP/2.0)
CALL NORPPF(P,PPF)
ALOWSC(I)=SCALML - PPF*SCALSE
AUPPSC(I)=SCALML + PPF*SCALSE
ALOWGA(I)=GAMMML - PPF*GAMMSE
AUPPGA(I)=GAMMML + PPF*GAMMSE
4110 CONTINUE
C
C NOW DO LIKELIHOOD RATIO APPROXIMATION.
C
IN2=N
IN3=N
DN=DBLE(N)
AE=1.D-7
RE=1.D-7
NUTEMP=1
C
DGAM=DBLE(GAMMML)
DSCALE=DBLE(SCALML)
DXBAR=DBLE(XMEAN)
DGMEAN=DBLE(XGEOM)
C
DO4120I=1,NUMALP
ALP=ALPHA(I)
CALL CHSPPF(1.0-ALP,NUTEMP,APPF)
DK=DBLE(APPF)
DK2=DK
C
DXSTRT=DBLE(ALOWGA(I))
DXLOW=DXSTRT/5.0D0
DXUP=DBLE(GAMMML)
CALL DFZERO(GAMFU2,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG)
ALOWG2(I)=REAL(DXLOW)
C
DXSTRT=DBLE(AUPPGA(I))
DXUP=DXSTRT*5.0D0
DXLOW=DBLE(GAMMML)
CALL DFZERO(GAMFU2,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG)
AUPPG2(I)=REAL(DXLOW)
C
DXSTRT=DBLE(ALOWSC(I))
DXLOW=DXSTRT/5.0D0
DXUP=DBLE(SCALML)
CALL DFZER2(GAMFU3,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG,DTEMP)
ALOWS2(I)=REAL(DXLOW)
C
DXSTRT=DBLE(AUPPSC(I))
DXUP=DXSTRT*5.0D0
DXLOW=DBLE(SCALML)
CALL DFZER2(GAMFU3,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG,DTEMP)
AUPPS2(I)=REAL(DXLOW)
4120 CONTINUE
C
C CONFIDENCE INTERVALS FOR SELECTED PERCENTILES.
C
C 1. STANDARD ERROR USES TECHNIQUE DEMONSTRATED IN EXAMPLE 13.1
C (P. 227) OF BURY. THIS IS BASED ON PROPOGATION OF ERROR.
C
C 2. CONFIDENCE INTERVAL IS THEN GENERATED USING NORMAL
C APPROXIMATION (EXAMPLE 13.1 OF BURY).
C
IF(NPERC.GE.1)THEN
C
ALPHL=ALPHAP/2.0
ALPHU=1.0 - ALPHAP/2.0
CALL NORPPF(ALPHU,Z95)
C
GHAT9=GAMMML
SCALE8=SCALML
IORD=1
EPS=0.001
ACCUR=0.0
C
WRITE(IOUNI1,4131)
WRITE(IOUNI1,4132)
DO4129I=1,NPERC
QPTEMP=QP(I)/100.0
CALL GAMPPF(QPTEMP,GAMMML,APPF)
XQPHAT(I)=SCALML*APPF
C
P8=QPTEMP
P9=QPTEMP
C
IFAIL=0
C
GHAT = GAMMML
GHATMN = 0.0001
GHATMX = GHAT + 20.0
CALL DIFF(IORD,GHAT,GHATMN,GHATMX,GAMFU8,EPS,ACCUR,
1 GHATP,ERROR,IFAIL)
C
IF(IFAIL.EQ.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,301)
301 FORMAT('***** WARNING IN NUMERICAL DERIVATIVE FOR GAMMA ',
1 'MAXIMUM LIKELIHOOD PERCENTILES.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,303)
303 FORMAT(' THE ESTIMATED ERROR IN THE RESULT ',
1 'EXCEEDS THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,305)
305 FORMAT(' REQUESTED ERROR, BUT THE MOST ACCURATE ',
1 'RESULT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,307)
307 FORMAT(' POSSIBLE HAS BEEN RETURNED.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFAIL.EQ.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,311)
311 FORMAT('***** ERROR IN NUMERICAL DERIVATIVE FOR GAMMA ',
1 'MAXIMUM LIKELIHOOD PERCENTILES.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,313)
313 FORMAT(' ERROR IN THE INPUT TO THE DIFF ROUTINE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,315)
315 FORMAT(' NO PERCENTILES WILL BE GENERATED.')
CALL DPWRST('XXX','BUG ')
NPERC=0
ELSEIF(IFAIL.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,311)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,323)
323 FORMAT(' THE INTERVAL FOR DIFFERENTIATION, (',G15.7,
1 ',',G15.7,')')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,325)
325 FORMAT(' IS TOO SMALL.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,315)
CALL DPWRST('XXX','BUG ')
GHATP=0.0
NPERC=0
ENDIF
C
SCALHT = SCALML
SCALMN = 0.0001
SCALMX = SCALHT + 20.0
CALL DIFF(IORD,SCALHT,SCALMN,SCALMX,GAMFU9,EPS,ACCUR,
1 SCALEP,ERROR,IFAIL)
C
IF(IFAIL.EQ.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,301)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,303)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,305)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,307)
CALL DPWRST('XXX','BUG ')
ELSEIF(IFAIL.EQ.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,311)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,313)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,315)
CALL DPWRST('XXX','BUG ')
NPERC=0
ELSEIF(IFAIL.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,311)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,323)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,325)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,315)
CALL DPWRST('XXX','BUG ')
GHATP=0.0
NPERC=0
ENDIF
D1=SCALEP
D2=GHATP
V11=SCALSE**2
V22=GAMMSE**2
V21=COVSE
V12=V21
TERM11=D1*D1*V11
TERM12=D1*D2*V12
TERM21=D2*D1*V21
TERM22=D2*D2*V22
SEXQP=TERM11+TERM12+TERM21+TERM22
IF(SEXQP.GE.0.0)THEN
SEXQP=SQRT(SEXQP)
ELSE
SEXQP=0.0
ENDIF
XQPSE(I)=SEXQP
XQPLCL(I)=XQPHAT(I) - Z95*SEXQP
XQPUCL(I)=XQPHAT(I) + Z95*SEXQP
WRITE(IOUNI1,'(5E15.7)')
1 QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),XQPUCL(I)
4129 CONTINUE
4131 FORMAT(15X,' POINT ',' LOWER ',
1 ' UPPER')
4132 FORMAT(' PERCENTILE ',' ESTIMATE ',
1 'CONFIDENCE LIMIT ','CONFIDENCE LIMIT')
ENDIF
C
C *************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR GAMMA MLE ESTIMATE **
C *************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLG1')
1 CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5002 FORMAT('GAMMA MAXIMUM LIKELIHOOD ESTIMATION:')
5004 FORMAT(' FULL SAMPLE CASE')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5002)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Two-Parameter Model (Location = 0)')
5019 FORMAT(' ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Minimum Value:')
5063 FORMAT(' Sample Mean:')
5064 FORMAT(' Sample Standard Deviation:')
5065 FORMAT(' Moment Estimate of Scale Parameter:')
5066 FORMAT(' Moment Estimate of Shape Parameter:')
5067 FORMAT(' ML Estimate of Scale Parameter:')
5068 FORMAT(' Standard Error of Scale Parameter:')
5069 FORMAT(' ML Estimate of Shape Parameter:')
5070 FORMAT(' Standard Error of Shape Parameter:')
5071 FORMAT(' Standard Error of Covariance of Scale and ',
1 'Shape Parameter:')
5072 FORMAT(' Sample Geometric Mean:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XGEOM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5070)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COVSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the Shape ',
1 'Parameter ')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5136 FORMAT(' | ')
5137 FORMAT(' Normal Approximation')
5138 FORMAT(' Likelihood Ratio')
5139 FORMAT(' | ')
5161 FORMAT(' ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5138)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWGA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPGA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWG2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPG2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5217 FORMAT(' Confidence Limits for the Scale ',
1 'Parameter')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5217)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5138)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
DO5240I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWS2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPS2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5240 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C START THE TABLE FOR PERCENTILE CONFIDENCE INTERVALS
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,5801)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5811)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5813)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5815)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5817)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5816)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5819)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5861)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5863)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5864)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5870)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5872)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
DO55880I=1,NPERC
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)QP(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPHAT(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPSE(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPLCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPUCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
55880 CONTINUE
C
C END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
5801 FORMAT('')
5811 FORMAT('')
5813 FORMAT('')
5815 FORMAT(' ')
5816 FORMAT(' Alpha = ',F7.3,'')
5817 FORMAT(' Confidence Limits (Normal Approximation) ',
1 'for Selected Percentiles')
5819 FORMAT(' ')
5841 FORMAT(' ')
5843 FORMAT(' | ')
5847 FORMAT(' | ')
5848 FORMAT(' ')
5849 FORMAT(' ')
5851 FORMAT(' ',G15.7)
5859 FORMAT(' | ')
5861 FORMAT(' Percentile')
5862 FORMAT(' Point Estimate')
55862 FORMAT(' Standard Error')
5863 FORMAT(' Lower Confidence Limit')
5864 FORMAT(' Upper Confidence Limit')
5870 FORMAT(' ')
5872 FORMAT(' ')
C
5199 FORMAT('')
WRITE(ICOUT,5199)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE OUTPUT IN LATEX FORMAT
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8004 FORMAT(A1,'end{table}')
8005 FORMAT('{',A1,'bf Gamma Maximum Likelihood ',
1 'Estimation: Full Sample Case}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Two-Parameter Model ($',A1,
1 'mu$ = 0 Case)}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Minimum Value: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8033 FORMAT(5X,'Sample Geometric Mean: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Moment Estimate of Scale Parameter: & ',
1 G15.7,2X,A1,A1)
8026 FORMAT(5X,'Moment Estimate of Shape Parameter: & ',
1 G15.7,2X,A1,A1)
8027 FORMAT(5X,'ML Estimate of Scale Parameter: & ',G15.7,2X,A1,A1)
8028 FORMAT(5X,'ML Standard Error of Scale Parameter: & ',
1 G15.7,2X,A1,A1)
8029 FORMAT(5X,'Estimate of Shape Parameter: & ',G15.7,2X,A1,A1)
8030 FORMAT(5X,'Standard Error of Shape Parameter: & ',
1 G15.7,2X,A1,A1)
8031 FORMAT(5X,'Standard Error of Covariance of Scale and Shape ',
1 'Parameter: & ',G15.7,2X,A1,A1)
8035 FORMAT(5X,' & ',2X,A1,A1)
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8033)XGEOM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8035)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)SCALMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)GAMMMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8035)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)SCALML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)SCALSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)GAMMML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)GAMMSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)COVSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8093 FORMAT(A1,'end{center}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for Shape Parameter ',
1 '(Based on No Bias Correction Estimate)}')
8112 FORMAT(5X,'{',A1,'bf Confidence Limits for Shape Parameter ',
1 '(Based on Bias Corrected Estimate)}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper & Lower & Upper ',
1 2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit & Limit & Limit',
1 2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,' & ',G15.7,' & ',
1 G15.7,2X,A1,A1)
8126 FORMAT(5X,'& ',A1,'multicolumn{2}{c}{Normal Approximation}',
1 ' & ',A1,'multicolumn{2}{c}{Likelihood Ratio}',
1 2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWGA(I),AUPPGA(I),ALOWG2(I),
1 AUPPG2(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8191 FORMAT(A1,'end{table}')
8193 FORMAT(A1,'end{center}')
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8211 FORMAT(5X,'{',A1,'bf Confidence Limits for Scale Parameter}')
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8211)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8230I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWSC(I),AUPPSC(I),ALOWS2(I),
1 AUPPS2(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8230 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8191)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C WRITE SELECTED PERCENTILES (IF ANY)
C
IF(NPERC.GT.0)THEN
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8803)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8810)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8812)IBASLC,IBASLC,ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8813)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8820)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8821)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8822)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,
1 IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8840)IBASLC
CALL DPWRST('XXX','WRIT')
DO8830I=1,NPERC
WRITE(ICOUT,8823)QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),
1 XQPUCL(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8830 CONTINUE
WRITE(ICOUT,8849)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8891)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8893)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
8801 FORMAT(A1,'end{verbatim}')
8803 FORMAT(A1,'begin{table}')
8807 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8809 FORMAT(A1,'begin{center}')
8810 FORMAT(5X,'{',A1,'bf Confidence Limits (Normal Approximation)',
1 'for Selected Percentiles}')
8812 FORMAT(5X,'{',A1,'bf $',A1,'alpha$ = ',F7.3,'}')
8813 FORMAT(A1,'end{center}')
8815 FORMAT(5X,'} ',A1,A1)
8820 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8821 FORMAT(5X,' & {',A1,'bf Point} & {',A1,'bf Standard} & {',
1 A1,'bf Lower} & {',A1,'bf Upper}',2X,A1,A1)
8822 FORMAT(5X,'{',A1,'bf Percentile} & {',A1,'bf Estimate} & {',
1 A1,'bf Error} & {',A1,'bf Confidence Limit} & {',
1 A1,'bf Confidence Limit}',
1 2X,A1,A1)
8823 FORMAT(5X,G15.7,' & ',G15.7,' & ',G15.7,' & ',G15.7,
1 ' & ',G15.7,2X,A1,A1)
8840 FORMAT(5X,A1,'hline')
8849 FORMAT(A1,'end{tabular}')
8891 FORMAT(A1,'end{center}')
8893 FORMAT(A1,'end{table}')
C
8899 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8899)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(6X,'GAMMA MAXIMUM LIKELIHOOD ESTIMATION: ',
1 'FULL SAMPLE CASE')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4213)
4213 FORMAT('TWO-PARAMETER MODEL (LOCATION = 0)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4215)N
4215 FORMAT('NUMBER OF OBSERVATIONS = ',
1 I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4217)XMIN
4217 FORMAT('MINIMUM VALUE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4218)XMEAN
4218 FORMAT('SAMPLE MEAN VALUE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4219)XSD
4219 FORMAT('SAMPLE STANDARD DEVIATION VALUE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4220)XGEOM
4220 FORMAT('SAMPLE GEOMETRIC MEAN VALUE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)SCALMO
4221 FORMAT('MOMENT ESTIMATE OF SCALE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)GAMMMO
4222 FORMAT('MOMENT ESTIMATE OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)SCALML
4223 FORMAT('ML ESTIMATE OF SCALE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)SCALSE
4225 FORMAT('STANDARD ERROR OF SCALE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)GAMMML
4227 FORMAT('ML ESTIMATE OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4229)GAMMSE
4229 FORMAT('STANDARD ERROR OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)COVSE
4231 FORMAT('COVARIANCE OF THE SHAPE AND SCALE PARAMETERS = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4240)
4240 FORMAT('CONFIDENCE INTERVAL FOR SCALE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4242)
4242 FORMAT(' NORMAL APPROXIMATION',
1 ' LIKELIHOOD RATIO')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
4243 FORMAT(' CONFIDENCE LOWER UPPER',
1 ' LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
4245 FORMAT(' VALUE (%) LIMIT LIMIT',
1 ' LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
4246 FORMAT('---------------------------------------------------',
1 '--------------------')
CALL DPWRST('XXX','WRIT')
DO4249I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWSC(I),AUPPSC(I),ALOWS2(I),
1 AUPPS2(I)
4247 FORMAT(' ',F8.3,10X,4(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4249 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4252)
4252 FORMAT('CONFIDENCE INTERVAL FOR SHAPE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4242)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
CALL DPWRST('XXX','WRIT')
DO4259I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWGA(I),AUPPGA(I),ALOWG2(I),
1 AUPPG2(I)
CALL DPWRST('XXX','WRIT')
4259 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4911)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4915)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4921)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4922)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4346)
CALL DPWRST('XXX','WRIT')
C
4911 FORMAT('CONFIDENCE LIMITS (NORMAL APPROXIMATION) FOR ',
1 'SELECTED PERCENTILES:')
4915 FORMAT('ALPHA = ',F7.4)
4921 FORMAT(10X,' POINT ',' STANDARD ',
1 ' LOWER ', ' UPPER')
4922 FORMAT('PERCENTILE',' ESTIMATE ',' ERROR ',
1 'CONFIDENCE LIMIT ',' CONFIDENCE LIMIT')
4346 FORMAT('-----------------------------------',
1 '-----------------------------------')
C
DO4981I=1,NPERC
WRITE(ICOUT,4932)QP(I),XQPHAT(I),XQPSE(I),
1 XQPLCL(I),XQPUCL(I)
4932 FORMAT(2X,F8.4,2G15.7,2X,G15.7,2X,G15.7)
CALL DPWRST('XXX','WRIT')
4981 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IFEEDB.EQ.'ON')THEN
WRITE(ICOUT,4291)
4291 FORMAT('THE FOLLOWING INTERNAL PARAMETERS ARE SAVED:')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4293)
4293 FORMAT(' GAMMAML, GAMMASE, SCALEML, SCALESE, ',
1 'GAMMAMOM, SCALEMOM,COVSE')
CALL DPWRST('XXX','BUG ')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(IFEEDB.EQ.'ON')THEN
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4943)
4943 FORMAT('PERCENTILE CONFIDENCE LIMITS WRITTEN TO ',
1 'FILE dpst1f.dat')
CALL DPWRST('XXX','BUG ')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
C
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLG1')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLG1--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLG2(Y,TAG,N,
1XTEMP,DTEMP,MAXNXT,
1SCALMO,GAMMMO,SCALML,SCALSE,GAMMML,GAMMSE,COVSE,
1NUMV,ICENTY,TEND,
1ICAPSW,ICAPTY,
1QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1IOUNI1,IOUNI2,ALPHAP,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR GAMMA DISTRIBUTION
C FOR THE TIME CENSORED CASE.
C EXAMPLE--GAMMA MAXIMUM LIKELIHOOD Y
C REFERENCE--KARL BURY, "STATISTICAL DISTRIBUTIONS IN
C ENGINEERING", CAMBRIDGE UNIVERSITY PRESS,
C 1999, CHAPTER 13.
C --JOHNSON, KOTZ, AND BALAKRISNAN, "CONTINUOUS
C UNIVARIATE DISTRIBUTIONS--VOLUME 1", SECOND EDITION,
C WILEY, 1994, CHAPTER xx.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/11
C ORIGINAL VERSION--NOVEMBER 2004.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICENTY
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 ICASE
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
PARAMETER (NUMALP=6)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWSC(NUMALP)
DIMENSION AUPPSC(NUMALP)
DIMENSION ALOWGA(NUMALP)
DIMENSION AUPPGA(NUMALP)
DIMENSION ALOWS2(NUMALP)
DIMENSION AUPPS2(NUMALP)
DIMENSION ALOWG2(NUMALP)
DIMENSION AUPPG2(NUMALP)
C
DIMENSION Y(*)
DIMENSION TAG(*)
DIMENSION XTEMP(*)
DIMENSION QP(*)
DIMENSION XQPHAT(*)
DIMENSION XQPSE(*)
DIMENSION XQPLCL(*)
DIMENSION XQPUCL(*)
DOUBLE PRECISION DTEMP(*)
C
EXTERNAL SUM
EXTERNAL GC1FUN
DOUBLE PRECISION J1FUN
DOUBLE PRECISION J2FUN
DOUBLE PRECISION DGAMMA
DOUBLE PRECISION DGAMI
DOUBLE PRECISION DPSI
EXTERNAL J1FUN
EXTERNAL J2FUN
EXTERNAL DGAMMA
EXTERNAL DGAMI
EXTERNAL DPSI
C
DOUBLE PRECISION XBAR
DOUBLE PRECISION DGEOME
INTEGER IN
INTEGER IR
COMMON/GC1COM/XBAR,DGEOME,IN,IR
C
COMMON/GAMCO8/P8,SCALE8
COMMON/GAMCO9/P9,GHAT9
C
EXTERNAL GAMFU8
EXTERNAL GAMFU9
C
INTEGER LIMIT
INTEGER LENW
PARAMETER(LIMIT=200)
PARAMETER(LENW=4*LIMIT)
INTEGER INF
INTEGER NEVAL
INTEGER IER
INTEGER LAST
INTEGER IWORK(LIMIT)
DOUBLE PRECISION EPSABS
DOUBLE PRECISION EPSREL
DOUBLE PRECISION DLOW
DOUBLE PRECISION ABSERR
DOUBLE PRECISION WORK(LENW)
C
DOUBLE PRECISION DA
COMMON/J1COM/DA
C
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(2)
DOUBLE PRECISION FVEC(2)
C
DIMENSION FISH(2,2)
DIMENSION COV(2,2)
DIMENSION D(2)
C
DOUBLE PRECISION DN
DOUBLE PRECISION DR
DOUBLE PRECISION DX
DOUBLE PRECISION AE
DOUBLE PRECISION RE
DOUBLE PRECISION DG
DOUBLE PRECISION DGAM
DOUBLE PRECISION DS
DOUBLE PRECISION DP
DOUBLE PRECISION DT1
DOUBLE PRECISION DTJ
DOUBLE PRECISION DJ1
DOUBLE PRECISION DJ2
DOUBLE PRECISION DSUM1
DOUBLE PRECISION DSUM2
DOUBLE PRECISION DSUM3
DOUBLE PRECISION DSUM4
DOUBLE PRECISION DSUM5
DOUBLE PRECISION DXSTRT
DOUBLE PRECISION DXLOW
DOUBLE PRECISION DXUP
DOUBLE PRECISION XLOWSV
DOUBLE PRECISION XUPSV
DOUBLE PRECISION DANS(10)
DOUBLE PRECISION TRIGAM
DOUBLE PRECISION DTERM1
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01, 0.001/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='G2 '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLG2')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLG2--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NUMV
55 FORMAT('N,NUMV,NPERC = ',3I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I),TAG(I)
57 FORMAT('I,Y(I),TAG(I) = ',I8,2E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
WRITE(ICOUT,59)ICENTY
59 FORMAT('ICENTY = ',A4)
CALL DPWRST('XXX','WRIT')
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLG2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN GAMMA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)
1112 FORMAT(' THE NUMBER OF OBSERVATIONS FOR VARIABLE 1 ',
1 'IS <= 1')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)N
1113 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
DO1125I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1121)
1121 FORMAT('***** ERROR FROM GAMMA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1122)
1122 FORMAT(' A NEGATIVE VALUE WAS ENCOUNTERED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1123)I,Y(I)
1123 FORMAT(' ROW ',I8,' HAS THE VALUE = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1125 CONTINUE
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** WARNING FROM GAMMA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1132)HOLD
1132 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
IF(NPERC.GT.0)THEN
DO1145I=1,NPERC
IF(QP(I).LE.0.0 .OR. QP(I).GE.100.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1141)
1141 FORMAT('***** WARNING IN GAMMA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1143)QP(I)
1143 FORMAT(' REQUESTED PERCENTILE (',G15.7,') IS ',
1 'OUTSIDE THE (0,100) INTERVAL')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1144)
1144 FORMAT(' NO PERCENTILE CONFIDENCE LIMITS WILL BE ',
1 'COMPUTED.')
CALL DPWRST('XXX','WRIT')
NPERC=0
ENDIF
1145 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 21-- **
C ** CHECK THE CENSORING VARIABLE: SHOULD **
C ** BE AT MOST 2 DISTINCT VALUES, 1 **
C ** INDICATES FAILURE TIME, 0 INDICATES **
C ** CENSORING TIME. **
C ********************************************
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLG2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
CCCCC NOVEMBER 2004. FOR CENSORED CASE, CHECK THAT SECOND VARIABLE
CCCCC CONTAINS TWO DISTINCT VALUES, SET TO 1 AND 0.
C
CALL DISTIN(TAG,N,IWRITE,XTEMP,NDIST,IBUGA3,IERROR)
IF(NDIST.EQ.1)THEN
DO2102I=1,N
TAG(I)=1.0
2102 CONTINUE
ELSEIF(NDIST.EQ.2)THEN
IF(XTEMP(1).EQ.1.0 .OR. XTEMP(2).EQ.1.0)THEN
DO2103I=1,N
IF(TAG(I).NE.1.0)TAG(I)=0.0
2103 CONTINUE
ELSE
ATEMP1=MIN(XTEMP(1),XTEMP(2))
ATEMP2=MAX(XTEMP(1),XTEMP(2))
DO2108I=1,N
IF(TAG(I).EQ.ATEMP1)TAG(I)=1.0
IF(TAG(I).EQ.ATEMP2)TAG(I)=0.0
2108 CONTINUE
ENDIF
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2104)
2104 FORMAT('***** ERROR IN GAMMA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2105)
2105 FORMAT(' FOR CENSORED DATA, THE CENSORING VARIABLE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2106)
2106 FORMAT(' SHOULD CONTAIN AT MOST TWO DISTINCT VALUES.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2107)NDIST
2107 FORMAT(' ',I8,' DISTINCT VALUES FOUND.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
C
CALL SORTC(Y,TAG,N,Y,TAG)
IR=0
DO2120I=1,N
IF(TAG(I).EQ.1.0)IR=IR+1
2120 CONTINUE
C
ICNT=0
DO2122I=1,N
IF(TAG(I).EQ.1.0)THEN
ICNT=ICNT+1
XTEMP(ICNT)=Y(I)
ENDIF
2122 CONTINUE
DO2124I=1,N
IF(TAG(I).EQ.0.0)THEN
ICNT=ICNT+1
XTEMP(ICNT)=Y(I)
ENDIF
2124 CONTINUE
DO2126I=1,N
Y(I)=XTEMP(I)
IF(I.LE.IR)THEN
TAG(I)=1.0
ELSE
TAG(I)=0.0
ENDIF
2126 CONTINUE
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLG2')THEN
WRITE(ICOUT,2127)N,IR,IM
2127 FORMAT(1X,'N,IR,IM = ',3I8)
CALL DPWRST('XXX','BUG ')
DO2128I=1,N
WRITE(ICOUT,2129)I,Y(I),TAG(I)
2129 FORMAT(1X,'I,Y(I),TAG(I)=',I8,2E15.7)
CALL DPWRST('XXX','BUG ')
2128 CONTINUE
ENDIF
C
IM=N-IR
IR1=IR
IR2=IR
IR3=IR
C
AR=REAL(IR)
DR=DBLE(IR)
AN=REAL(N)
AM=REAL(IM)
C
IF(IM.EQ.0)THEN
ICASE='NONE'
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2131)
2131 FORMAT('***** WARNING FROM GAMMA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2133)
2133 FORMAT(' NO CENSORING TIMES DETECTED. IT IS RECOMMENDED')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2135)
2135 FORMAT(' THAT THE FULL SAMPLE SYNTAX BE USED:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2137)
2137 FORMAT(' GAMMA MAXIMUM LIKELIHOOD Y')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ELSE
ICASE='SING'
AHOLD=Y(IR+1)
DO2140I=IR+1,N
IF(Y(I).NE.AHOLD)THEN
ICASE='MULT'
GOTO2149
ENDIF
2140 CONTINUE
2149 CONTINUE
ENDIF
C
C ************************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR GAMMA MLE **
C ** ESTIMATE (TIME CENSORED CASE) **
C ************************************
C
4100 CONTINUE
C
C THE MAXIMUM LIKELIHOOD EQUATIONS FOR THE CENSORED CASE ARE:
C
C R*XBAR/SHAT - R*GHAT + SUM[i=1 to M]
C [Z(j)**GHAT*EXP(Z(j)/(GAMMA(GHAT) - G(Z(j),GHAT))] = 0
C
C R*LOG(GEOMEAN/SHAT) - N*DIGAMMA(GHAT) + SUM[i=1 to M]
C [(GAMMA(GHAT)*DIGAMMA(GHAT) J(Z(j),GHAT))/
C (GAMMA(GHAT) - G(Z(j),GHAT))] = 0
C
C WHERE
C
C
C XBAR = MEAN OF FAILURE DATA
C GEOMEAN = GEOMETRIC MEAN OF FAILURE DATA
C R = NUMBER OF FAILURES
C M = NUMBER OF CENSORING TIMES
C SHAT = FVEC(1) = CURRENT ESTIMATE OF SCALE PARAMETER
C GHAT = FVEC(2) = CURRENT ESTIMATE OF SHAPE PARAMETER
C Z(j) = jth CENSORING TIME
C GAMMA = GAMMA FUNCTION
C DIGAMMA = DIGAMMA FUNCTION
C G(x,a) = INCOMPLETE GAMMA FUNCTION
C J(X,a) = INTEGRAL[0 to x][t**(A-1)*LOG(t)*EXP(-t)]dt
C
C THESE ARE SOLVED USING THE DNSQE ROUTINE.
C
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLG2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
AN=REAL(N)
C
C COMPUTE STATISTICS FOR FAILURE ONLY DATA
C
CALL MEAN(Y,IR,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,IR,IWRITE,XSD,IBUGA3,IERROR)
CALL MINIM(Y,IR,IWRITE,XMIN,IBUGA3,IERROR)
CALL GEOMEA(Y,IR,IWRITE,XGEOM,IBUGA3,IERROR)
XCOEFV=XSD/XMEAN
C
C USE MOMENT ESTIMATES OF FAILURE DATA AS STARTING VALUES FOR
C EQUATION SOLVER.
C
GAMMMO=(XMEAN/XSD)**2
SCALMO=XSD**2/XMEAN
C
XBAR=DBLE(XMEAN)
DGEOME=DBLE(XGEOM)
XPAR(1)=DBLE(GAMMMO)
XPAR(2)=DBLE(SCALMO)
C
IN=N
JAC=0
IOPT=2
TOL=1.0D-6
NVAR=2
NPRINT=-1
INFO=0
LWA=MAXNXT
FVEC(1)=0.0D0
FVEC(2)=0.0D0
CALL DNSQE(GC1FUN,JAC,IOPT,NVAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP,MAXNXT,Y(IR+1),IM)
C
GAMMML=REAL(XPAR(1))
SCALML=REAL(XPAR(2))
C
C COMPUTE STANDARD ERRORS.
C
C NOTE THAT DPSIFN COMPUTES THE SCALED PSI DERIVATIVE FUNCTION:
C
C (-1)**(K+1)/GAMMA(K+1)
C
C FOR TRIGAMMA, K=1 AND THE SCALING FACTOR REDUCES TO 1.
C
ISE=1
DN=DBLE(N)
DG=DBLE(GAMMML)
DS=DBLE(SCALML)
DSUM1=0.0D0
DSUM2=0.0D0
DSUM3=0.0D0
DSUM4=0.0D0
DSUM5=0.0D0
IF(IM.GT.0)THEN
KODE=1
NTEMP=1
MTEMP=1
NZ=0
C
EPSABS=1.0D-7
EPSREL=1.0D-7
IER=0
IKEY=3
DLOW=0.0D0
DA=DBLE(GAMMML)
DGAM=DGAMMA(DG)
DP=DPSI(DG)
CALL DPSIFN(DG,NTEMP,KODE,MTEMP,DANS,NZ,IERR)
TRIGAM=DANS(1)
IF(IERR.EQ.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3101)
3101 FORMAT('***** ERROR FROM GAMMA (CENSORED CASE) MAXIMUM ',
1 'LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3103)
3103 FORMAT(' UNABLE TO COMPUTE TRIGAMMA FUNCTION.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3109)
3109 FORMAT(' PARAMETER STANDARD ERRORS AND CONFIDENCE ',
1 'WILL NOT BE COMPUTED.')
CALL DPWRST('XXX','WRIT')
ISE=0
GOTO2319
ELSEIF(IERR.EQ.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3101)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3105)
3105 FORMAT(' OVERFLOW IN COMPUTING THE TRIGAMMA ',
1 'FUNCTION.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3109)
CALL DPWRST('XXX','WRIT')
ISE=0
GOTO2319
ELSEIF(IERR.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3101)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3107)
3107 FORMAT(' OVERFLOW IN COMPUTING THE TRIGAMMA ',
1 'FUNCTION.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,3109)
CALL DPWRST('XXX','WRIT')
ISE=0
GOTO2319
ENDIF
C
C
DO2310I=IR+1,N
C
DX=DBLE(Y(I)/SCALML)
DTERM1=DGAM - DGAMI(DG,DX)
DTJ=DX**DG*DEXP(-DX)/DTERM1
C
DJ1=0.0D0
CALL DQAG(J1FUN,DLOW,DX,EPSABS,EPSREL,IKEY,DJ1,
1 ABSERR,NEVAL,
1 IER,LIMIT,LENW,LAST,IWORK,WORK)
DJ2=0.0D0
CALL DQAG(J2FUN,DLOW,DX,EPSABS,EPSREL,IKEY,DJ2,
1 ABSERR,NEVAL,
1 IER,LIMIT,LENW,LAST,IWORK,WORK)
C
DSUM1=DSUM1 + DTJ*(DX-DTJ)
DSUM2=DSUM2 + DTJ*DLOG(DX)
DSUM3=DSUM3 + DTJ*(DGAM*DP - DJ1)/DTERM1
DSUM4=DSUM4 + (DGAM*(DP**2 + TRIGAM) - DJ2)/DTERM1
DSUM5=DSUM5 + ((DGAM*DP - DJ1)/DTERM1)**2
C
2310 CONTINUE
ENDIF
2319 CONTINUE
IF(ISE.EQ.0)GOTO4129
C
DTERM1=(-DR/DS**2)*((XBAR/DS)*(DG-1.0D0) - DG**2) - DSUM1/(DS**2)
FISH(1,1)=REAL(DTERM1)
DTERM1=DN*TRIGAM - DSUM4 + DSUM5
FISH(2,2)=REAL(DTERM1)
DTERM1=(1.0D0/DS)*(DR - DSUM2 + DSUM3)
FISH(2,1)=REAL(DTERM1)
FISH(1,2)=FISH(2,1)
C
NDIM=2
CALL SGECO(FISH,NDIM,NDIM,ITEMP,RCOND,XTEMP)
IJOB=1
CALL SGEDI(FISH,NDIM,NDIM,ITEMP,XTEMP,XTEMP(MAXNXT/2),IJOB)
DO2410J=1,NDIM
DO2415I=1,NDIM
COV(I,J)=FISH(I,J)
2415 CONTINUE
2410 CONTINUE
C
SCALSE=0.0
GAMMSE=0.0
IF(COV(1,1).GE.0.0)SCALSE=SQRT(COV(1,1))
IF(COV(2,2).GE.0.0)GAMMSE=SQRT(COV(2,2))
COVSE=COV(2,1)
C
C CONFIDENCE INTERVALS FOR PARAMETERS. CAN BASE ON EITHER NORMAL
C APPROXIMATION OR ON LIKELIHOOD RATIO APPROXIMATION.
C
C NORMAL APPROXIMATION FIRST.
C
DO4110I=1,NUMALP
ALP=ALPHA(I)
P=1.0-(ALP/2.0)
CALL NORPPF(P,PPF)
ALOWSC(I)=SCALML - PPF*SCALSE
AUPPSC(I)=SCALML + PPF*SCALSE
ALOWGA(I)=GAMMML - PPF*GAMMSE
AUPPGA(I)=GAMMML + PPF*GAMMSE
4110 CONTINUE
C
C NOW DO LIKELIHOOD RATIO APPROXIMATION.
C
GOTO4129
C
CCCCC IN2=N
CCCCC IN3=N
CCCCC DN=DBLE(N)
CCCCC AE=1.D-7
CCCCC RE=1.D-7
CCCCC NUTEMP=1
C
CCCCC DGAM=DBLE(GAMMML)
CCCCC DSCALE=DBLE(SCALML)
CCCCC DXBAR=DBLE(XMEAN)
CCCCC DGMEAN=DBLE(XGEOM)
C
CCCCC DO4120I=1,NUMALP
CCCCC ALP=ALPHA(I)
CCCCC CALL CHSPPF(1.0-ALP,NUTEMP,APPF)
CCCCC DK=DBLE(APPF)
CCCCC DK2=DK
C
CCCCC DXSTRT=DBLE(ALOWGA(I))
CCCCC DXLOW=DXSTRT/5.0D0
CCCCC DXUP=DBLE(GAMMML)
CCCCC CALL DFZERO(GAMFU2,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG)
CCCCC ALOWG2(I)=REAL(DXLOW)
C
CCCCC DXSTRT=DBLE(AUPPGA(I))
CCCCC DXUP=DXSTRT*5.0D0
CCCCC DXLOW=DBLE(GAMMML)
CCCCC CALL DFZERO(GAMFU2,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG)
CCCCC AUPPG2(I)=REAL(DXLOW)
C
CCCCC DXSTRT=DBLE(ALOWSC(I))
CCCCC DXLOW=DXSTRT/5.0D0
CCCCC DXUP=DBLE(SCALML)
CCCCC CALL DFZER2(GAMFU3,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG,DTEMP)
CCCCC ALOWS2(I)=REAL(DXLOW)
C
CCCCC DXSTRT=DBLE(AUPPSC(I))
CCCCC DXUP=DXSTRT*5.0D0
CCCCC DXLOW=DBLE(SCALML)
CCCCC CALL DFZER2(GAMFU3,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG,DTEMP)
CCCCC AUPPS2(I)=REAL(DXLOW)
C4120 CONTINUE
4129 CONTINUE
C
C CONFIDENCE INTERVALS FOR SELECTED PERCENTILES.
C
C 1. STANDARD ERROR USES TECHNIQUE DEMONSTRATED IN EXAMPLE 13.1
C (P. 227) OF BURY. THIS IS BASED ON PROPOGATION OF ERROR.
C
C 2. CONFIDENCE INTERVAL IS THEN GENERATED USING NORMAL
C APPROXIMATION (EXAMPLE 13.1 OF BURY).
C
IF(NPERC.GE.1)THEN
C
ALPHL=ALPHAP/2.0
ALPHU=1.0 - ALPHAP/2.0
CALL NORPPF(ALPHU,Z95)
C
GHAT9=GAMMML
SCALE8=SCALML
IORD=1
EPS=0.001
ACCUR=0.0
C
WRITE(IOUNI1,3531)
WRITE(IOUNI1,3532)
DO3529I=1,NPERC
QPTEMP=QP(I)/100.0
CALL GAMPPF(QPTEMP,GAMMML,APPF)
XQPHAT(I)=SCALML*APPF
C
P8=QPTEMP
P9=QPTEMP
C
IFAIL=0
C
GHAT = GAMMML
GHATMN = GHAT/10.0
GHATMX = GHAT*10.0
CALL DIFF(IORD,GHAT,GHATMN,GHATMX,GAMFU8,EPS,ACCUR,
1 GHATP,ERROR,IFAIL)
C
IF(IFAIL.EQ.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,301)
301 FORMAT('***** WARNING IN NUMERICAL DERIVATIVE FOR GAMMA ',
1 'MAXIMUM LIKELIHOOD PERCENTILES.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,303)
303 FORMAT(' THE ESTIMATED ERROR IN THE RESULT ',
1 'EXCEEDS THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,305)
305 FORMAT(' REQUESTED ERROR, BUT THE MOST ACCURATE ',
1 'RESULT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,307)
307 FORMAT(' POSSIBLE HAS BEEN RETURNED.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFAIL.EQ.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,311)
311 FORMAT('***** ERROR IN NUMERICAL DERIVATIVE FOR GAMMA ',
1 'MAXIMUM LIKELIHOOD PERCENTILES.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,313)
313 FORMAT(' ERROR IN THE INPUT TO THE DIFF ROUTINE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,315)
315 FORMAT(' NO PERCENTILES WILL BE GENERATED.')
CALL DPWRST('XXX','BUG ')
NPERC=0
ELSEIF(IFAIL.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,311)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,323)
323 FORMAT(' THE INTERVAL FOR DIFFERENTIATION, (',G15.7,
1 ',',G15.7,')')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,325)
325 FORMAT(' IS TOO SMALL.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,315)
CALL DPWRST('XXX','BUG ')
GHATP=0.0
NPERC=0
ENDIF
C
SCALHT = SCALML
SCALMN = SCALHT/10.0
SCALMX = SCALHT*10.0
CALL DIFF(IORD,SCALHT,SCALMN,SCALMX,GAMFU9,EPS,ACCUR,
1 SCALEP,ERROR,IFAIL)
C
IF(IFAIL.EQ.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,301)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,303)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,305)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,307)
CALL DPWRST('XXX','BUG ')
ELSEIF(IFAIL.EQ.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,311)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,313)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,315)
CALL DPWRST('XXX','BUG ')
NPERC=0
ELSEIF(IFAIL.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,311)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,323)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,325)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,315)
CALL DPWRST('XXX','BUG ')
GHATP=0.0
NPERC=0
ENDIF
D1=SCALEP
D2=GHATP
V11=SCALSE**2
V22=GAMMSE**2
V21=COVSE
V12=V21
TERM11=D1*D1*V11
TERM12=D1*D2*V12
TERM21=D2*D1*V21
TERM22=D2*D2*V22
SEXQP=TERM11+TERM12+TERM21+TERM22
IF(SEXQP.GE.0.0)THEN
SEXQP=SQRT(SEXQP)
ELSE
SEXQP=0.0
ENDIF
XQPSE(I)=SEXQP
XQPLCL(I)=XQPHAT(I) - Z95*SEXQP
XQPUCL(I)=XQPHAT(I) + Z95*SEXQP
WRITE(IOUNI1,'(5E15.7)')
1 QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),XQPUCL(I)
3529 CONTINUE
3531 FORMAT(15X,' POINT ',' STANDARD ',
1 ' LOWER ',
1 ' UPPER')
3532 FORMAT(' PERCENTILE ',' ESTIMATE ',
1 ' ERROR ',
1 'CONFIDENCE LIMIT ','CONFIDENCE LIMIT')
ENDIF
C *************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR GAMMA MLE ESTIMATE **
C *************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLG2')
1 CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5002 FORMAT('GAMMA MAXIMUM LIKELIHOOD ESTIMATION:')
5004 FORMAT(' TIME CENSORED CASE')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5002)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Two-Parameter Model (Location = 0)')
5019 FORMAT(' ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5060 FORMAT(' Number of Observations:')
5061 FORMAT(' Number of Failure Times:')
5062 FORMAT(' Minimum Value of Failure Times:')
5063 FORMAT(' Mean of Failure Times:')
5064 FORMAT(' Standard Deviation of Failure Times:')
5065 FORMAT(' Geometric Mean of Failure Times:')
5067 FORMAT(' ML Estimate of Scale Parameter:')
5068 FORMAT(' Standard Error of Scale Parameter:')
5069 FORMAT(' ML Estimate of Shape Parameter:')
5070 FORMAT(' Standard Error of Shape Parameter:')
5071 FORMAT(' Covariance of Scale and ',
1 'Shape Parameter:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5060)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)IR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XGEOM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5070)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COVSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the Shape ',
1 'Parameter ')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5136 FORMAT(' | ')
5137 FORMAT(' Normal Approximation')
C5138 FORMAT(' Likelihood Ratio')
5139 FORMAT(' | ')
5161 FORMAT(' ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWGA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPGA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5217 FORMAT(' Confidence Limits for the Scale ',
1 'Parameter')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5217)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
DO5240I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5240 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
5811 FORMAT('')
5813 FORMAT('')
5815 FORMAT(' ')
5816 FORMAT(' Alpha = ',F7.3,'')
5817 FORMAT(' Confidence Limits (Normal Approximation) ',
1 'for Selected Percentiles')
5819 FORMAT(' ')
5841 FORMAT(' ')
5843 FORMAT(' | ')
5847 FORMAT(' | ')
5848 FORMAT(' ')
5849 FORMAT(' ')
5851 FORMAT(' ',G15.7)
5859 FORMAT(' | ')
5861 FORMAT(' Percentile')
5862 FORMAT(' Point Estimate')
55862 FORMAT(' Standard Error')
5863 FORMAT(' Lower Confidence Limit')
5864 FORMAT(' Upper Confidence Limit')
5870 FORMAT(' ')
5872 FORMAT(' ')
C
C START THE TABLE FOR PERCENTILE CONFIDENCE INTERVALS
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,999)
WRITE(ICOUT,5811)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5813)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5815)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5817)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5816)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5819)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5861)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5863)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5864)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5870)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5872)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
DO55880I=1,NPERC
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)QP(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPHAT(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPSE(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPLCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPUCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
55880 CONTINUE
C
C END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
5801 FORMAT('')
WRITE(ICOUT,5801)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE OUTPUT IN LATEX FORMAT
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8004 FORMAT(A1,'end{table}')
8005 FORMAT('{',A1,'bf Gamma Maximum Likelihood ',
1 'Estimation: Time Censored Case}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Two-Parameter Model ($',A1,
1 'mu$ = 0 Case)}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8025 FORMAT(5X,'Number of Failure Times: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Minimum of Failure Times: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Mean of Failure Times: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Standard Deviation of Failure Times: & ',
1 G15.7,2X,A1,A1)
8033 FORMAT(5X,'Geometric Mean of Failure Times: & ',
1 G15.7,2X,A1,A1)
8027 FORMAT(5X,'ML Estimate of Scale Parameter: & ',G15.7,2X,A1,A1)
8028 FORMAT(5X,'ML Standard Error of Scale Parameter: & ',
1 G15.7,2X,A1,A1)
8029 FORMAT(5X,'Estimate of Shape Parameter: & ',G15.7,2X,A1,A1)
8030 FORMAT(5X,'Standard Error of Shape Parameter: & ',
1 G15.7,2X,A1,A1)
8031 FORMAT(5X,'Standard Error of Covariance of Scale and Shape ',
1 'Parameter: & ',G15.7,2X,A1,A1)
8035 FORMAT(5X,' & ',2X,A1,A1)
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)IR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8033)XGEOM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8035)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)SCALML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)SCALSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)GAMMML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)GAMMSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)COVSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8093 FORMAT(A1,'end{center}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for Shape Parameter}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper ',
1 2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit',
1 2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,2X,A1,A1)
8126 FORMAT(5X,'& ',A1,'multicolumn{2}{c}{Normal Approximation}',
1 2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWGA(I),AUPPGA(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8191 FORMAT(A1,'end{table}')
8193 FORMAT(A1,'end{center}')
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8211 FORMAT(5X,'{',A1,'bf Confidence Limits for Scale Parameter}')
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8211)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8230I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWSC(I),AUPPSC(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8230 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8191)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C WRITE SELECTED PERCENTILES (IF ANY)
C
IF(NPERC.GT.0)THEN
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8803)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8810)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8812)IBASLC,IBASLC,ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8813)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8820)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8821)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8822)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,
1 IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8840)IBASLC
CALL DPWRST('XXX','WRIT')
DO8830I=1,NPERC
WRITE(ICOUT,8823)QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),
1 XQPUCL(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8830 CONTINUE
WRITE(ICOUT,8849)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8891)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8893)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
8801 FORMAT(A1,'end{verbatim}')
8803 FORMAT(A1,'begin{table}')
8807 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8809 FORMAT(A1,'begin{center}')
8810 FORMAT(5X,'{',A1,'bf Confidence Limits (Normal Approximation)',
1 'for Selected Percentiles}')
8812 FORMAT(5X,'{',A1,'bf $',A1,'alpha$ = ',F7.3,'}')
8813 FORMAT(A1,'end{center}')
8815 FORMAT(5X,'} ',A1,A1)
8820 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8821 FORMAT(5X,' & {',A1,'bf Point} & {',A1,'bf Standard} & {',
1 A1,'bf Lower} & {',A1,'bf Upper}',2X,A1,A1)
8822 FORMAT(5X,'{',A1,'bf Percentile} & {',A1,'bf Estimate} & {',
1 A1,'bf Error} & {',A1,'bf Confidence Limit} & {',
1 A1,'bf Confidence Limit}',
1 2X,A1,A1)
8823 FORMAT(5X,G15.7,' & ',G15.7,' & ',G15.7,' & ',G15.7,
1 ' & ',G15.7,2X,A1,A1)
8840 FORMAT(5X,A1,'hline')
8849 FORMAT(A1,'end{tabular}')
8891 FORMAT(A1,'end{center}')
8893 FORMAT(A1,'end{table}')
C
8899 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8899)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(6X,'GAMMA MAXIMUM LIKELIHOOD ESTIMATION: ',
1 'TIME CENSORED CASE')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4213)
4213 FORMAT('TWO-PARAMETER MODEL (LOCATION = 0)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4215)N
4215 FORMAT('NUMBER OF OBSERVATIONS = ',
1 I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4216)IR
4216 FORMAT('NUMBER OF FAILURE TIMES = ',
1 I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4217)XMIN
4217 FORMAT('MINIMUM OF FAILURE TIMES = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4218)XMEAN
4218 FORMAT('MEAN OF FAILURE TIMES = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4219)XSD
4219 FORMAT('STANDARD DEVIATION OF FAILURE TIMES = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4220)XGEOM
4220 FORMAT('GEOMETRIC MEAN OF FAILURE TIMES = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)SCALML
4223 FORMAT('ML ESTIMATE OF SCALE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)SCALSE
4225 FORMAT('STANDARD ERROR OF SCALE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)GAMMML
4227 FORMAT('ML ESTIMATE OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4229)GAMMSE
4229 FORMAT('STANDARD ERROR OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)COVSE
4231 FORMAT('COVARIANCE OF THE SHAPE AND SCALE PARAMETERS = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4240)
4240 FORMAT('CONFIDENCE INTERVAL FOR SCALE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4242)
4242 FORMAT(' NORMAL APPROXIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
4243 FORMAT(' CONFIDENCE LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
4245 FORMAT(' VALUE (%) LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
4246 FORMAT('-------------------------------------------')
CALL DPWRST('XXX','WRIT')
DO4249I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWSC(I),AUPPSC(I)
4247 FORMAT(' ',F8.3,10X,2(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4249 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4252)
4252 FORMAT('CONFIDENCE INTERVAL FOR SHAPE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4242)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
CALL DPWRST('XXX','WRIT')
DO4259I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWGA(I),AUPPGA(I)
CALL DPWRST('XXX','WRIT')
4259 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4911)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4915)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4921)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4922)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4946)
CALL DPWRST('XXX','WRIT')
C
4911 FORMAT('CONFIDENCE LIMITS (NORMAL APPROXIMATION) FOR ',
1 'SELECTED PERCENTILES:')
4915 FORMAT('ALPHA = ',F7.4)
4921 FORMAT(10X,' POINT ',' STANDARD ',
1 ' LOWER ', ' UPPER')
4922 FORMAT('PERCENTILE',' ESTIMATE ',' ERROR ',
1 'CONFIDENCE LIMIT ',' CONFIDENCE LIMIT')
4946 FORMAT('-----------------------------------',
1 '-----------------------------------')
C
DO4981I=1,NPERC
WRITE(ICOUT,4932)QP(I),XQPHAT(I),XQPSE(I),
1 XQPLCL(I),XQPUCL(I)
4932 FORMAT(2X,F8.4,2G15.7,2X,G15.7,2X,G15.7)
CALL DPWRST('XXX','WRIT')
4981 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IFEEDB.EQ.'ON')THEN
WRITE(ICOUT,4291)
4291 FORMAT('THE FOLLOWING INTERNAL PARAMETERS ARE SAVED:')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4293)
4293 FORMAT(' GAMMAML, GAMMASE, SCALEML, SCALESE, ',
1 'GAMMAMOM, SCALEMOM,COVSE')
CALL DPWRST('XXX','BUG ')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(IFEEDB.EQ.'ON')THEN
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4943)
4943 FORMAT('PERCENTILE CONFIDENCE LIMITS WRITTEN TO ',
1 'FILE dpst1f.dat')
CALL DPWRST('XXX','BUG ')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLG2')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLG2--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLGG(Y,X,N,NVAR,
1TEMP1,TEMP2,TEMP3,DTEMP1,
1PMOM,AMOM,PML,AML,PVARML,AVARML,COVML,
1ICAPSW,ICAPTY,MAXNXT,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR THE GENERALIZED LOST GAMES
C DISTRIBUTION.
C
C IT IS ASSUMED THAT J IS KNOWN (TYPICALLY IT WILL
C BE THE MINIMUM DATA POINT).
C
C THE METHOD OF MOMENT ESTIMATES ARE:
C
C PHAT = 0.5 + {XBAR + SQRT[XBAR*(XBAR+8*S**2)]/{8*S**2}
C
C AHAT = XBAR*(1/(1-PHAT) - 2)
C
C WITH XBAR AND S**2 DENOTING THE SAMPLE MEAN AND
C VARIANCE, RESPECTIVELY.
C
C THE MAXIMUM LIKELIHOOD ESTIMATES ARE:
C
C 1) USE THE MINIMUM VALUE AS THE ESTIMATE OF J.
C THEN SHIFT THE DATA TO START AT ZERO (I.E.,
C J = 0).
C
C 2) THEN SOLVE THE FOLLOWING SIMULTANEOUS EQUATIONS:
C
C N*SUM[x>=0][f(x)*{(a+x)/p - x/(1-p)} = 0
C
C N*SUM[x >= 0][f(x)*{LOG(p) + 1/a + PSI(a+2*x) -
C PS(a+x-1)}] = 0
C
C WITH N, f(x), AND PSI DENOTING THE TOTAL SAMPLE
C SIZE, THE FREQUENCY FOR CLASS X = x, AND THE
C DIGAMMA FUNCTION, RESPECTIVELY.
C
C THERE ARE TWO CASES:
C
C 1) ONE VARIABLE CASE: Y IS RAW DATA
C 2) TWO VARIABLE CASE: Y IS FREQUENCY, X IS CLASS
C MID-POINT.
C
C EXAMPLE--GENERALIZED LOST GAMES MAXIMUM LIKELIHOOD Y
C --GENERALIZED LOST GAMES MAXIMUM LIKELIHOOD Y X
C REFERENCES--JOHNSON, KOTZ, AND KEMP (2006). "UNIVARIATE
C DISCRETE DISTRIBUTIONS", THIRD EDITION,
C WILEY, PP. 503-505.
C --KEMP AND KEMP (1992), "A GROUP-DYNAMIC MODEL AND
C THE LOST-GAMES DISTRIBUTION", COMMUNICATIONS IN
C STATISTICS--THEORY AND METHODS, 21(3),
C PP. 791-798.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/12
C ORIGINAL VERSION--DECEMBER 2006.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-----------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBN0
C
CHARACTER*4 IRELAT
CHARACTER*4 IRHSTG
C
C-------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION X(*)
DIMENSION TEMP1(*)
DIMENSION TEMP2(*)
DIMENSION TEMP3(*)
C
DOUBLE PRECISION DTEMP1(*)
C
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(2)
DOUBLE PRECISION FVEC(2)
C
EXTERNAL GLGFUN
CCCCC EXTERNAL GLGFU2
CCCCC EXTERNAL GLGFU3
DOUBLE PRECISION XBAR
DOUBLE PRECISION S2
COMMON/GLGCOM/XBAR,S2,MAXROW,IINDX,NTOT
C
C-------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT---------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='GG '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGG')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLGG--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NVAR
55 FORMAT('N,NVAR = ',2I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I),X(I)
57 FORMAT('I,Y(I),X(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLGG')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN GENERALIZED LOST GAMES ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
IF(NVAR.EQ.1)THEN
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN GENERALIZED LOST GAMES ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1147)
1147 FORMAT('***** ERROR IN GENERALIZED LOST GAMES MAXIMUM ',
1 'LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1148)I,Y(I)
1148 FORMAT(' ROW ',I8,' IS NON-POSITIVE (VALUE = ',
1 G15.7,')')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
CALL SORT(Y,N,TEMP2)
DO1160I=1,N
Y(I)=TEMP2(I)
1160 CONTINUE
AMIN=Y(1)
AMAX=Y(N)
C
IRELAT='OFF'
IRHSTG='OFF'
XSTART=AMIN-0.5
XSTOP=AMAX+0.5
CLWID=1.0
CALL DPBINI(Y,N,IRELAT,CLWID,XSTART,XSTOP,IRHSTG,
1 TEMP2,TEMP1,N2,IBUGA3,IERROR)
ICNT=0
DO101I=1,N2
IF(TEMP2(I).GT.0.0)THEN
ICNT=ICNT+1
TEMP2(ICNT)=TEMP2(I)
TEMP1(ICNT)=REAL(INT(TEMP1(I)+0.5))
ENDIF
101 CONTINUE
N2=ICNT
IF(IERROR.EQ.'YES')GOTO9000
F1=TEMP2(1)/REAL(N)
C
IINDX=MAXNXT/2
IF(N2.LE.IINDX)THEN
IWD=0
DO2110I=1,N2
TEMP3(I)=REAL(INT(TEMP1(I) - AMIN +0.5))
TEMP3(IINDX+I)=REAL(INT(TEMP2(I)+0.5))
2110 CONTINUE
IK=N2
ELSE
IWD=1
ENDIF
C
ELSEIF(NVAR.EQ.2)THEN
CALL SORTC(X,Y,N,TEMP1,TEMP2)
NTOT=0
DO1210I=1,N
X(I)=REAL(INT(TEMP1(I)+0.5))
Y(I)=REAL(INT(TEMP2(I)+0.5))
NTOT=NTOT + Y(I)
1210 CONTINUE
F1=Y(1)/REAL(NTOT)
C
DO1220I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1221)
1221 FORMAT('***** ERROR IN GENERALIZED LOST GAMESPOISSON ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1223)
1223 FORMAT(' A NEGATIVE FREQUENCY WAS SPECIFIED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1225)I,Y(I)
1225 FORMAT(' ROW ',I8,' (AFTER SORTING) HAS FREQUENCY ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
1220 CONTINUE
ENDIF
C
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGG')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1301)N
1301 FORMAT('AFTER SORT, N = ',I8)
CALL DPWRST('XXX','WRIT')
DO1310I=1,MIN(N,100)
WRITE(ICOUT,1311)I,X(I),Y(I)
1311 FORMAT('I,X(I),Y(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
1310 CONTINUE
ENDIF
C
C ************************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR GENERALIZED LOST GAMES MLE ESTIMATION **
C ************************************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLGG')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
IF(NVAR.EQ.1)THEN
NTOT=N
DO2105I=1,N
ITEMP=INT(Y(I)+0.5)
Y(I)=REAL(ITEMP)
2105 CONTINUE
CALL MEAN(Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,ASD,IBUGA3,IERROR)
AMIN=Y(1)
AMAX=Y(N)
C
ELSE
AMIN=X(1)
AMAX=X(N)
CALL WEMEAN(X,Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL WESD(X,Y,N,IWRITE,ASD,IBUGA3,IERROR)
C
IINDX=MAXNXT/2
IF(N.LE.IINDX)THEN
IWD=0
DO2210I=1,N
TEMP3(I)=Y(I)
TEMP3(IINDX+I)=X(I) - AMIN
2210 CONTINUE
IK=N
ELSE
IWD=1
ENDIF
ENDIF
C
AVAR=ASD**2
PMOM=0.5 + (AMEAN + SQRT(AMEAN*(AMEAN+8.0*AVAR)))/(8.0*AVAR)
AMOM=AMEAN*(1.0/(1.0 - PMOM) - 2.0)
C
IOPT=2
TOL=1.0D-5
NPAR=2
NPRINT=-1
INFO=0
LWA=MAXNXT
MAXROW=MAXNXT
XBAR=AMEAN
S2=AVAR
MAXROW=MAXNXT
C
XPAR(1)=DBLE(PMOM)
XPAR(2)=DBLE(AMOM)
CALL DNSQE(GLGFUN,JAC,IOPT,NPAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP1,LWA,TEMP3,IK)
C
PML=REAL(XPAR(1))
AML=REAL(XPAR(2))
Q=1.0-PML
TERM1=REAL(NTOT)*AML/(PML*PML)
TERM2=REAL(NTOT)*DA*(1.0-2.0*PML*Q)/((PML-Q)*PMP*PML*Q)
PVARML=TERM1 + TERM2
AVARML=0.0
CCCCC TERM1=REAL(NTOT)*(1.0
COVML=-REAL(NTOT)/PML
C
C *************************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR GENERALIZED LOST GAMES MLE ESTIMATION **
C *************************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Generalized Lost Games Parameter ',
1 'Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5044 FORMAT(' | ')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean:')
5062 FORMAT(' Sample Standard Deviation:')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5068 FORMAT(' Estimate of J (Sample Minimum):')
5069 FORMAT(' Method of Moment Estimates')
5070 FORMAT(' Maximum Likelihood Estimates')
5071 FORMAT(' Estimate of J:')
5072 FORMAT(' Estimate of P:')
5073 FORMAT(' Estimate of A:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5056 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PMOM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMOM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5070)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
5080 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Generalized Lost Games ',
1 'Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Method of Moment Estimates: & ',
1 2X,A1,A1)
8027 FORMAT(5X,'Maximum Likelihood Estimates: & ',
1 2X,A1,A1)
8028 FORMAT(5X,'Estimate of J: & ',
1 G15.7,2X,A1,A1)
8029 FORMAT(5X,'Estimate of P: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Estimate of A: & ',
1 G15.7,2X,A1,A1)
8039 FORMAT(5X,' & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)AMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)ASD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)AMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)AMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)AMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)PMOM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)AMOM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)AMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)PML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)AML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(10X,
1 'GENERALIZED LOST GAMES PARAMETER ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)AMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)ASD
4223 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)AMIN
4225 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)AMAX
4227 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)
4231 FORMAT('METHOD OF MOMENT ESTIMATES')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)AMIN
4235 FORMAT('ESTIMATE OF J = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)PMOM
4237 FORMAT('ESTIMATE OF P = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4239)AMOM
4239 FORMAT('ESTIMATE OF A = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4241)
4241 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)PML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)PMOM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4239)AML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4251)
4251 FORMAT('THE MAXIMUM LIKELIHOOD ESTIMATES FOR P AND A')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4252)
4252 FORMAT('ARE SAVED IN THE INTERNAL PARAMETERS PML AND AML')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4261)
4261 FORMAT('THE MOMENT ESTIMATES FOR P AND A')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4262)
4262 FORMAT('ARE SAVED IN THE INTERNAL PARAMETERS PMOM AND AMOM')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGG')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLGG--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLGL(Y,N,
1XTEMP,TEMP2,TEMP3,TEMP4,TEMP5,YTEMP,MAXNXT,
1ASHALM,ASCALM,ALOCLM,
1ICAPSW,ICAPTY,DTEMP1,XMOM,
1ALPHAP,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE L-MOMENT ESTIMATES
C FOR THE GENERALIZED LOGISTIC DISTRIBUTION
C EXAMPLE--GENERALIZED LOGISTIC MAXIMUM LIKELIHOOD Y
C REFERENCE--FORTRAN CODE WRITTEN FOR INCLUSION IN IBM
C RESEARCH REPORT RC20525, 'FORTRAN ROUTINES FOR
C USE WITH THE METHOD OF L-MOMENTS, VERSION 3',
C J. R. M. HOSKING, IBM RESEARCH DIVISION,
C T. J. WATSON RESEARCH CENTER, YORKTOWN HEIGHTS
C NEW YORK 10598, U.S.A., VERSION 3 AUGUST 1996
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/2
C ORIGINAL VERSION--FEBRUARY 2006.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 IGEPDF
CHARACTER*4 IGEPSV
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 ICASPL
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
DIMENSION YTEMP(*)
DIMENSION TEMP2(*)
DIMENSION TEMP3(*)
DIMENSION TEMP4(*)
DIMENSION TEMP5(*)
DOUBLE PRECISION DTEMP1(*)
DOUBLE PRECISION XMOM(*)
C
DOUBLE PRECISION XPAR(3)
C
CCCCC PARAMETER (NUMALP=6)
CCCCC DIMENSION ALPHA(NUMALP)
CCCCC DIMENSION ALOWSC(NUMALP)
CCCCC DIMENSION AUPPSC(NUMALP)
CCCCC DIMENSION ALOWGA(NUMALP)
CCCCC DIMENSION AUPPGA(NUMALP)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
CCCCC DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01, 0.001/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='GL '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGL')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLGL--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.4)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN GENERALIZED LOGISTIC L-MOMENTS ',
1 'ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 5')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1137)
1137 FORMAT('***** ERROR IN GENERALIZED LOGISTIC L-MOMENTS ',
1 'ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)HOLD
1131 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
C ***************************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR GENERALIZED LOGISTIC L-MOMENT ESTIMATION **
C ***************************************************
C
2000 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL VAR(Y,N,IWRITE,XVAR,IBUGA3,IERROR)
XSD=SQRT(XVAR)
CALL SORT(Y,N,Y)
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGL')THEN
WRITE(ICOUT,2010)XMIN,XMAX,XMEAN,XSD
2010 FORMAT('XMIN,XMAX,XMEAN,XSD = ',4G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
C
NMOM=3
DO2110I=1,N
DTEMP1(I)=DBLE(Y(I))
2110 CONTINUE
CALL SAMLMU(DTEMP1,N,XMOM,NMOM)
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGL')THEN
WRITE(ICOUT,2120)XMOM(1),XMOM(2),XMOM(3)
2120 FORMAT('XMOM(1),XMOM(2),XMOM(3) = ',3G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
C
CALL PELGLO(XMOM,XPAR)
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGL')THEN
WRITE(ICOUT,2130)XPAR(1),XPAR(2),XPAR(3)
2130 FORMAT('XPAR(1),XPAR(2),XPAR(3) = ',3G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
C
ASHALM=REAL(XPAR(3))
ASCALM=REAL(XPAR(2))
ALOCLM=REAL(XPAR(1))
C
C ***********************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR GENERALIZED LOGISTIC MLE ESTIMATION **
C ***********************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5002 FORMAT('')
5003 FORMAT('Generalized Logistic Type 5 (Hosking) ',
1 'Parameter Estimation')
5004 FORMAT(' ')
5005 FORMAT('
')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5002)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5003)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5005)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5044 FORMAT(' Summary Statistics:')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean (All Data):')
5062 FORMAT(' Sample Variance (All Data):')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5044)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
5080 FORMAT(' Method of L-Moments')
5083 FORMAT(' First Sample L-Moment')
5084 FORMAT(' Second Sample L-Moment')
5085 FORMAT(' Third Sample L-Moment')
5086 FORMAT(' L-Moment Estimates Invalid')
C
5166 FORMAT(' Estimate of Location:')
5066 FORMAT(' Estimate of Gamma:')
5067 FORMAT(' Estimate of Scale:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5080)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5083)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)REAL(XMOM(1))
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5084)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)REAL(XMOM(2))
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5085)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)REAL(XMOM(3))
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(ASHALM.EQ.0.0 .AND. ASCALM.EQ.0.0 .AND.
1 ALOCLM.EQ.0.0)THEN
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5086)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ELSE
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5166)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOCLM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASCALM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASHALM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ENDIF
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Generalized Logistic Type 5 (Hosking) ',
1 'Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8121 FORMAT(5X,'{',A1,'bf Summary Statistics} & ',
1 2X,A1,A1)
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8226 FORMAT(5X,'{',A1,'bf Method of L-Moments} & ',2X,A1,A1)
8232 FORMAT(5X,'Unable To Compute The L-Moment Based Estimates: & ',
1 2X,A1,A1)
8222 FORMAT(5X,'First Sample L-Moment: & ',G15.7,2X,A1,A1)
8223 FORMAT(5X,'Second Sample L-Moment: & ',G15.7,2X,A1,A1)
8224 FORMAT(5X,'Third Sample L-Moment: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'Estimate of Gamma: & ',G15.7,2X,A1,A1)
8028 FORMAT(5X,'Estimate of Scale: & ',G15.7,2X,A1,A1)
8128 FORMAT(5X,'Estimate of Location: & ',G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8041 FORMAT(5X,': & ',2X,A1,A1)
8049 FORMAT(A1,'end{tabular}')
C
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8041)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8226)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8222)REAL(XMOM(1)),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8223)REAL(XMOM(2)),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8224)REAL(XMOM(3)),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(ASHALM.EQ.0.0 .AND. ASCALM.EQ.0.0 .AND.
1 ALOCLM.EQ.0.0)THEN
WRITE(ICOUT,8232)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8128)ALOCLM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)ASCALM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)ASHALM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8041)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(12X,'GENERALIZED LOGISTIC TYPE 5 (HOSKING) ',
1 'PARAMETER ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4220)
4220 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)XMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)XSD
4223 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4224)XMIN
4224 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)XMAX
4225 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4250)
4250 FORMAT('L-MOMENTS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4256)XMOM(1)
4256 FORMAT('FIRST SAMPLE L-MOMENT = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4257)XMOM(2)
4257 FORMAT('SECOND SAMPLE L-MOMENT = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4258)XMOM(3)
4258 FORMAT('THIRD SAMPLE L-MOMENT = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
IF(ASHALM.EQ.0.0 .AND. ASCALM.EQ.0.0 .AND.
1 ALOCLM.EQ.0.0)THEN
WRITE(ICOUT,4260)
4260 FORMAT('UNABLE TO COMPUTE L-MOMENT BASED ESTIMATES')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4262)ALOCLM
4262 FORMAT('ESTIMATE OF LOCATION = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4264)ASCALM
4264 FORMAT('ESTIMATE OF SCALE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4266)ASHALM
4266 FORMAT('ESTIMATE OF SHAPE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,7020)
7020 FORMAT('METHOD OF L-MOMENT ESTIMATES WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7022)
7022 FORMAT('GAMMALMO, SCALELMO, AND LOCLMOM.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
C
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGL')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLGL--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLGM(Y,N,
1XTEMP,MAXNXT,
1PML,PMLVAR,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR GEOMETRIC DISTRIBUTION
C THE MAXIMIM LIKELIHOOD ESTIMEATE IS SIMPLY THE
C SAMPLE MEAN.
C EXAMPLE--GEOMETRIC MAXIMUM LIKELIHOOD Y
C REFERENCE--"UNIVARIATE DISCRETE DISTRIBUTIONS", SECOND EDITION,
C JOHNSON, KOTZ, AND KEMP, WILEY, PP. 202.
C --"STATISTICAL DISTRIBUTIONS IN ENGINEERING",
C KARL BURY, 1999, CAMBRIDGE UNIVERSITY PRESS, P. 92.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/3
C ORIGINAL VERSION--MARCH 2004.
C UPDATED --AUGUST 2005. REFORMAT OUTPUT FOR CONSISTENCY
C WITH OTHER ML ROUTINES
C UPDATED --SEPTEMBER 2005. ADD CONFIDENCE INTERVALS FOR P
C
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*1 IBASLC
C
PARAMETER (NUMALP=5)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWNO(NUMALP)
DIMENSION AUPPNO(NUMALP)
EXTERNAL SUM
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
CCCCC DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01, 0.001/
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='GM '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGM')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLGM--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLGM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN GEOMETRIC MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** WARNING FROM GEOMETRIC MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
C ******************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR GEOMETRIC MLE ESTIMATE**
C ******************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
DO2105I=1,N
ITEMP=INT(Y(I)+0.5)
Y(I)=REAL(ITEMP)
2105 CONTINUE
IERROR='NO'
IWRITE='OFF'
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
IF(XMIN.LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2111)
2111 FORMAT('***** ERROR FROM GEOMETRIC MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2113)
2113 FORMAT(' NEGATIVE VALUE ENCOUNTERED.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL SUM(Y,N,IWRITE,XSUM,IBUGA3,IERROR)
PML=1.0/(XMEAN+1.0)
PMLVAR=PML*PML*(1.0-PML)/REAL(N)
C
AN=REAL(N)
DO2210I=1,NUMALP
C
ALP=ALPHA(I)
P1=ALP/2.0
P2=1.0-(ALP/2.0)
C
CALL NBPPF(P1,PML,AN,SL)
CALL NBPPF(P2,PML,AN,SU)
ALOWNO(I)=1.0/((SU/AN)+1.0)
AUPPNO(I)=1.0/((SL/AN)+1.0)
C
2210 CONTINUE
C
C **********************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR GEOMETRIC MLE ESTIMATE **
C **********************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLGM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Geometric Parameter Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5060 FORMAT(' Summary Statistics:')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Sample Minimum:')
5065 FORMAT(' Sample Maximum:')
5066 FORMAT(' Maximum Likelihood Estimates:')
5067 FORMAT(' Estimate of Probability of Success Parameter ',
1 'p:')
5068 FORMAT(' Asymptotic Sampling Variance of ',
1 'p:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5060)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PMLVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the ',
1 'Probability of Success Parameter ')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5136 FORMAT(' | ')
5139 FORMAT(' | ')
5161 FORMAT(' ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWNO(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPNO(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Geometric Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Summary Statistics: & ',2X,A1,A1)
8022 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8023 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,' & ',2X,A1,A1)
8028 FORMAT(5X,'Maximum Likelihood Estimates: & ',2X,A1,A1)
8029 FORMAT(5X,'Estimate of Probability of Success Parameter $p$: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Asymptotic Sampling Variance of $p$: & ',
1 G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)PML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)PMLVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for the ',
1 'Probability of Success Parameter}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper ',
1 2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit ',
1 2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,
1 2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWNO(I),AUPPNO(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
C
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4201)
4201 FORMAT(12X,'GEOMETRIC PARAMETER ESTIMATION')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4210)
4210 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)N
4211 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4213)XMEAN
4213 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4215)XSD
4215 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4217)XMIN
4217 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4218)XMAX
4218 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4219)XSUM
4219 FORMAT('SAMPLE SUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4220)
4220 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)PML
4223 FORMAT('PROBABILITY OF SUCCESS PARAMETER P = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)PMLVAR
4225 FORMAT('ASYMPTOTIC SAMPLING VARIANCE OF P = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4310)
4310 FORMAT('CONFIDENCE INTERVAL FOR PROBABILITY OF SUCCESS ',
1 'PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4321)
4321 FORMAT(' CONFIDENCE LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4323)
4323 FORMAT(' VALUE (%) LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4326)
4326 FORMAT('-------------------------------------------')
CALL DPWRST('XXX','WRIT')
DO4341I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4347)ATEMP,ALOWNO(I),AUPPNO(I)
4347 FORMAT(' ',F8.3,10X,2(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4341 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4401)
4401 FORMAT('PML AND PMLVAR WILL BE SAVED AS AN INTERNAL ',
1 'PARAMETERS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGM')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLGM--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLGP(Y,N,
1XTEMP,TEMP2,TEMP3,TEMP4,TEMP5,YTEMP,MAXNXT,THRESH,
1QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1GAMMA1,SCALE1,ALOC1,GAMMA2,SCALE2,ALOC2,ASHALM,ASCALM,ALOCLM,
1GAMMA3,SCALE3,ALOC3,
1ICAPSW,ICAPTY,DTEMP1,XMOM,
1IGEPDF,IOUNI1,IOUNI2,ISEED,ALPHAP,
1IGEPSV,GAMMSV,SCALSV,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE METHOD OF MOMENT AND
C MAXIMUM LIKELIHOOD ESTIMATES FOR THE GENERALIZED PARETO
C DISTRIBUTION
C EXAMPLE--GENERALIZED PARETO MAXIMUM LIKELIHOOD Y
C REFERENCE--JOHNSON, KOTZ, AND BALAKRISHNAN. "CONTINUOUS
C UNIVARIATE DISTRIBUTIONS, VOLUME I", SECOND
C EDITION, WILEY, 1994, PP. 614-619.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2003/11
C ORIGINAL VERSION--NOVEMBER 2003.
C UPDATED --JUNE 2004. SUPPORT FOR IGEPDF (ALTERNATE
C DEFINITION OF GENERALIZED
C PARETO: SIGN IS REVERSED)
C UPDATED --JUNE 2004. PRINT VARIANCE-COVARIANCE
C MATRIX
C UPDATED --JUNE 2005. SUPPORT FOR L-MOMENTS
C ESTIMATES
C UPDATED --JUNE 2005. FOR MLE, MOMENTS, DEFINE
C "THRESH" AS THE LOCATION
C PARAMETER.
C UPDATED --OCTOBER 2005. ALLOW DIFFERENT CHOICES FOR
C STARTING VALUES
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 IGEPDF
CHARACTER*4 IGEPSV
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 ICASPL
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
DIMENSION YTEMP(*)
DIMENSION TEMP2(*)
DIMENSION TEMP3(*)
DIMENSION TEMP4(*)
DIMENSION TEMP5(*)
DOUBLE PRECISION DTEMP1(*)
DOUBLE PRECISION XMOM(*)
C
PARAMETER (NUMALP=6)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWSC(NUMALP)
DIMENSION AUPPSC(NUMALP)
DIMENSION ALOWGA(NUMALP)
DIMENSION AUPPGA(NUMALP)
C
DIMENSION QP(*)
DIMENSION XQPHAT(*)
DIMENSION XQPSE(*)
DIMENSION XQPLCL(*)
DIMENSION XQPUCL(*)
C
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(2)
DOUBLE PRECISION FVEC(2)
DOUBLE PRECISION G
DOUBLE PRECISION T3
DOUBLE PRECISION DT1
DOUBLE PRECISION DT2
DOUBLE PRECISION DTERM1
DOUBLE PRECISION DG
DOUBLE PRECISION DS
DOUBLE PRECISION DQP
C
EXTERNAL GPAFUN
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01, 0.001/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='GP '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGP')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLGP--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGP')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN GENERALIZED PARETO MAXIMUM ',
1 'LIKELIHOOD ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1147)
1137 FORMAT('***** ERROR IN GENERALZIED PARETO MAXIMUM ',
1 'LIKELIHOOD ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)HOLD
1131 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1147)
1147 FORMAT('***** ERROR IN GENERALZIED PARETO MAXIMUM ',
1 'LIKELIHOOD ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1148)I,Y(I)
1148 FORMAT(' ROW ',I8,' IS NON-POSITIVE (VALUE = ',G15.7,')')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
C ***************************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR GENERALIZED PARETO MOMENT/MLE ESTIMATION **
C ***************************************************
C
2000 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGP')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
CALL MEAN(Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL VAR(Y,N,IWRITE,AVAR,IBUGA3,IERROR)
CALL SORT(Y,N,Y)
C
C EXTRACT POINTS ABOVE THE THRESHOLD. IF NO THRESHOLD SPECIFIED,
C THEN USED MINIMUM OF DATA (MINUS AN EPS) AS ESTIMATE OF LOCATION.
C
IF(THRESH.EQ.0.0)THEN
EPS=XMIN*0.0001
ALOC=XMIN - EPS
NUSE=N
DO2005I=1,N
YTEMP(I)=Y(I) - ALOC
2005 CONTINUE
ELSE
ALOC=THRESH
DO2010I=1,N
IF(Y(I).GT.THRESH)THEN
IFRST=I
GOTO2019
ENDIF
2010 CONTINUE
IFIRST=N+1
2019 CONTINUE
C
NUSE=N-IFRST+1
IF(NUSE.LT.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2011)
2011 FORMAT('***** ERROR FROM GENERALIZED PARETO MAXIMUM ',
1 'LIKELIHOOD')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2021)
2021 FORMAT(' NO POINTS ARE ABOVE THE THRESHOLD.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2023)THRESH
2023 FORMAT(' THRESHOLD = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2025)Y(N)
2025 FORMAT(' MAXIMUM DATA POINT = ',G15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ELSE
ICNT=0
DO2030I=IFRST,N
ICNT=ICNT+1
YTEMP(ICNT)=Y(I)
2030 CONTINUE
ENDIF
ENDIF
C
CALL MEAN(YTEMP,NUSE,IWRITE,XMEAN,IBUGA3,IERROR)
CALL VAR(YTEMP,NUSE,IWRITE,XVAR,IBUGA3,IERROR)
XSD=SQRT(XVAR)
C
GAMMA1=0.5*(XMEAN*XMEAN/XVAR - 1.0)
SCALE1=0.5*XMEAN*(XMEAN*XMEAN/XVAR + 1.0)
ALOC1=ALOC
C
CCCCC JUNE 2005: ADD L-MOMENT ESTIMATES.
C
NMOM=3
DO2110I=1,N
DTEMP1(I)=DBLE(Y(I))
2110 CONTINUE
CALL SAMLMU(DTEMP1,N,XMOM,NMOM)
T3=XMOM(3)
IF(XMOM(2).LE.0.0D0 .OR. DABS(T3).GE.1.0D0)THEN
ALOCLM=CPUMIN
ASCALM=CPUMIN
ASHALM=CPUMIN
ELSE
G=(1.0D0-3.0D0*T3)/(1.0D0+T3)
ASHALM=REAL(G)
ASCALM=REAL((1.0D0+G)*(2.0D0+G)*XMOM(2))
ALOCLM=REAL(XMOM(1)-DBLE(ASCALM)/(1.0D0+G))
ENDIF
C
ICASPL='GPAR'
ITEMP=2
NSAMP=20*NUSE
IF(NSAMP.GT.5000)NSAMP=5000
CALL DPEPM2(YTEMP,NUSE,ICASPL,MAXNXT,MINMAX,IGEPDF,
1 ISEED,NSAMP,
1 TEMP2,TEMP3,TEMP4,TEMP5,XTEMP,
1 ALOCDM,SCALE3,GAMMA3,
1 IBUGA3,ISUBRO,IERROR)
ALOC3=ALOC1
C
IF(IGEPSV.EQ.'EPER')THEN
XPAR(1)=DBLE(GAMMA3)
XPAR(2)=DBLE(SCALE3)
ELSEIF(IGEPSV.EQ.'LMOM')THEN
XPAR(1)=DBLE(ASHALM)
XPAR(2)=DBLE(ASCALM)
ELSEIF(IGEPSV.EQ.'MOME')THEN
XPAR(1)=DBLE(GAMMA1)
XPAR(2)=DBLE(SCALE1)
ELSEIF(IGEPSV.EQ.'USER')THEN
XPAR(1)=DBLE(GAMMSV)
XPAR(2)=DBLE(SCALSV)
ELSE
XPAR(1)=DBLE(GAMMA3)
XPAR(2)=DBLE(SCALE3)
ENDIF
DO2111I=1,MAXNXT
DTEMP1(I)=0.0D0
2111 CONTINUE
C
IOPT=2
TOL=1.0D-5
NVAR=2
NPRINT=-1
INFO=0
LWA=MAXNXT
CALL DNSQE(GPAFUN,JAC,IOPT,NVAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP1,MAXNXT,YTEMP,NUSE)
C
ALOC2=ALOC1
GAMMA2=REAL(XPAR(1))
SCALE2=REAL(XPAR(2))
MLFLAG=0
IF(INFO.EQ.0)MLFLAG=1
IF(INFO.EQ.2)MLFLAG=1
IF(INFO.EQ.4)MLFLAG=1
C
IF(GAMMA1.GT.-0.25)THEN
AC1=(1.0+GAMMA1)**2/
1 ((1.0+2.0*GAMMA1)*(1.0+3.0*GAMMA1)*(1.0+4.0*GAMMA1))
AC1=AC1/REAL(N)
VARMM2=2.0*SCALE1**2*(1.0+6.0*GAMMA1+12.0*GAMMA1**2)
VARMM2=AC1*VARMM2
VARMM1=(1.0+2.0*GAMMA1)**2*(1.0+GAMMA1+6.0*GAMMA1**2)
VARMM1=AC1*VARMM1
COVMOM=AC1*SCALE1*
1 (1.0+2.0*GAMMA1)*(1.0+4.0*GAMMA1+12.0*GAMMA1**2)
ELSE
VARMM1=CPUMIN
VARMM2=CPUMIN
COVMOM=CPUMIN
ENDIF
C
IF(MLFLAG.EQ.0)THEN
AN=REAL(N)
VARML1=(1.0-GAMMA2)**2/AN
VARML2=2.0*SCALE2**2*(1.0-GAMMA2)/AN
COVML=SCALE2*(1.0-GAMMA2)/AN
DO2310I=1,NUMALP
ALP=ALPHA(I)
P=1.0-(ALP/2.0)
CALL NORPPF(P,PPF)
ALOWSC(I)=SCALE2 - PPF*SQRT(VARML2)
AUPPSC(I)=SCALE2 + PPF*SQRT(VARML2)
IF(IGEPDF.EQ.'SIMI')THEN
ALOWGA(I)=GAMMA2 - PPF*SQRT(VARML1)
AUPPGA(I)=GAMMA2 + PPF*SQRT(VARML1)
ELSE
ALOWGA(I)=(-GAMMA2) - PPF*SQRT(VARML1)
AUPPGA(I)=(-GAMMA2) + PPF*SQRT(VARML1)
ENDIF
2310 CONTINUE
C
IF(NPERC.GE.1)THEN
C
ALPHL=ALPHAP/2.0
ALPHU=1.0 - ALPHAP/2.0
CALL NORPPF(ALPHU,Z95)
C
C
CCCCC WRITE(IOUNI1,2531)
CCCCC WRITE(IOUNI1,2532)
DO2429I=1,NPERC
QPTEMP=QP(I)/100.0
CALL GEPPPF(QPTEMP,MINMAX,GAMMA2,IGEPDF,APPF)
XQPHAT(I)=ALOC2 + SCALE2*APPF
C
IF(GAMMA2.EQ.0.0)THEN
DT1=-DLOG(1.0D0 - DBLE(QPTEMP))
DT2=0.0D0
ELSE
DG=DBLE(GAMMA2)
DS=DBLE(SCALE2)
DQP=DBLE(QPTEMP)
DT1=(1.0D0/DG)*(1.0D0 - (1.0D0 - DQP)**DG)
DT2=-(DS/(DG*DG))*(1.0D0 - (1.0D0 - DQP)**DG) -
1 (DS/DG)*((1.0D0 - DQP)**DG)*DLOG(1.0D0 - DQP)
ENDIF
C
DTERM1=DT1**2*DBLE(VARML2) + DT1*DT2*DBLE(COVML) +
1 DT2**2*DBLE(VARML1) + DT1*DT2*DBLE(COVML)
SEXQP=REAL(DTERM1)
IF(SEXQP.GE.0.0)THEN
SEXQP=SQRT(SEXQP)
ELSE
SEXQP=0.0
ENDIF
XQPSE(I)=SEXQP
XQPLCL(I)=XQPHAT(I) - Z95*SEXQP
XQPUCL(I)=XQPHAT(I) + Z95*SEXQP
CCCCC WRITE(IOUNI1,'(5E15.7)')
CCCCC1 QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),XQPUCL(I)
2429 CONTINUE
C2531 FORMAT(15X,' POINT ',' STANDARD ',
CCCCC1 ' LOWER ',
CCCCC1 ' UPPER')
C2532 FORMAT(' PERCENTILE ',' ESTIMATE ',
CCCCC1 ' ERROR ',
CCCCC1 'CONFIDENCE LIMIT ','CONFIDENCE LIMIT')
ENDIF
C
ELSE
VARML1=CPUMIN
VARML2=CPUMIN
COVML=CPUMIN
ENDIF
C
IF(IGEPDF.EQ.'SIMI')THEN
GAMMA1=-GAMMA1
IF(ASHALM.NE.CPUMIN)ASHALM=-ASHALM
ELSE
GAMMA2=-GAMMA2
ENDIF
C
C ***********************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR GENERALIZED PARETO MLE ESTIMATION **
C ***********************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGP')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5002 FORMAT('')
5003 FORMAT('Generalized Pareto Parameter Estimation')
5004 FORMAT(' ')
5005 FORMAT('
')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5002)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5003)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5005)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
C5015 FORMAT(' ')
C5017 FORMAT(' Method of Moments and Method of Maximum ',
C 1 'Likelihood')
C5019 FORMAT(' ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5015)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5017)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5019)
CCCCC CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5044 FORMAT(' Summary Statistics:')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean (All Data):')
5062 FORMAT(' Sample Variance (All Data):')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5144 FORMAT(' User-Specified Threshold:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5044)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5144)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THRESH
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
5065 FORMAT(' Method of Moments')
5165 FORMAT(' (Valid If Shape Parameter < 1)')
5265 FORMAT(' (Valid If Shape Parameter > -1)')
5266 FORMAT(' Sample Mean (after subtracting location):')
5267 FORMAT(' Sample Variance (after subtracting ',
1 'location):')
5166 FORMAT(' Estimate of Location:')
5066 FORMAT(' Estimate of Gamma:')
5067 FORMAT(' Estimate of Scale:')
5068 FORMAT(' Variance of Gamma:')
5069 FORMAT(' Variance of Scale:')
5070 FORMAT(' Covariance of Gamma and Scale:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
IF(IGEPDF.EQ.'SIMI')THEN
WRITE(ICOUT,5165)
ELSE
WRITE(ICOUT,5265)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5166)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOC1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMA1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(VARMM1.NE.CPUMIN)THEN
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)VARMM1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)VARMM2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5070)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COVMOM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
5080 FORMAT(' Method of L-Moments')
5081 FORMAT(' (L-Moments Work Best For Values Of The')
5082 FORMAT(' Shape Parameter In The Interval (-0.5,0.5))')
5083 FORMAT(' First Sample L-Moment')
5084 FORMAT(' Second Sample L-Moment')
5085 FORMAT(' Third Sample L-Moment')
5086 FORMAT(' L-Moment Estimates Cannot Be Computed')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5080)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5081)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5082)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5083)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)REAL(XMOM(1))
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5084)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)REAL(XMOM(2))
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5085)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)REAL(XMOM(3))
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(ASHALM.EQ.CPUMIN)THEN
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5082)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ELSE
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5166)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOCLM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASCALM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASHALM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ENDIF
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
5180 FORMAT(' Elemental Percentile Method')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5180)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5166)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOC3
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE3
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMA3
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
5071 FORMAT(' Maximum Likelihood')
5072 FORMAT(' (Maximum Likelihood Estimates Do Not Exist')
5073 FORMAT(' If Shape Parameter < -1')
5074 FORMAT(' And May Perform Poorly If < -0.5)')
5173 FORMAT(' If Shape Parameter > 1')
5174 FORMAT(' And May Perform Poorly If > 0.5)')
5274 FORMAT(' Unable to Compute the Maximum Likelihood ',
1 'Estimates')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(MLFLAG.EQ.1)THEN
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5274)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
GOTO5199
ENDIF
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
IF(IGEPDF.EQ.'SIMI')THEN
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5074)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,5173)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5174)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5166)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOC2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMA2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)VARML1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)VARML2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5070)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COVML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5311 FORMAT('')
5313 FORMAT('')
5315 FORMAT(' ')
5317 FORMAT(' Confidence Limits for the Shape ',
1 'Parameter ')
5319 FORMAT(' ')
WRITE(ICOUT,5311)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5313)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5315)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5317)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5319)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5321 FORMAT(' ')
5323 FORMAT(' ')
5325 FORMAT(' Confidence Value (%)')
5327 FORMAT(' | ')
5329 FORMAT(' ')
5331 FORMAT(' Lower Limit')
5333 FORMAT(' Upper Limit')
5334 FORMAT(' ')
5336 FORMAT(' | ')
5337 FORMAT(' Normal Approximation')
5339 FORMAT(' | ')
5361 FORMAT(' ')
5362 FORMAT(' ')
5364 FORMAT(' Note: For the Generalized Pareto ',
1 'distribution, large ')
5365 FORMAT(' sample sizes may be required for the ',
1 'approximation to be accurate')
5366 FORMAT(' (e.g., > 500).')
C
WRITE(ICOUT,5321)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5364)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5365)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5366)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5334)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5336)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5337)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5339)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5321)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5323)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5334)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5336)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5337)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5339)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5321)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5323)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5325)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5329)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5331)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5329)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5333)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5339)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5321)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5361)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5362)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5339)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5341 FORMAT(' | ')
5347 FORMAT(' ')
5349 FORMAT(' | ')
5351 FORMAT(' ',G15.7)
5359 FORMAT(' | ')
DO5340I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5341)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5349)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5351)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5349)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5351)ALOWGA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5349)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5351)AUPPGA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5359)
CALL DPWRST('XXX','WRIT')
5340 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5417 FORMAT(' Confidence Limits for the Scale ',
1 'Parameter')
WRITE(ICOUT,5311)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5313)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5315)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5417)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5319)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
WRITE(ICOUT,5321)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5323)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5334)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5336)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5337)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5339)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5321)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5323)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5325)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5329)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5331)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5329)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5333)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5327)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5339)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5321)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5361)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5362)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5339)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
DO5440I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5341)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5349)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5351)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5349)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5351)ALOWSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5349)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5351)AUPPSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5359)
CALL DPWRST('XXX','WRIT')
5440 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
5811 FORMAT('')
5813 FORMAT('')
5815 FORMAT(' ')
5816 FORMAT(' Alpha = ',F7.3,'')
5817 FORMAT(' Confidence Limits (Normal Approximation) ',
1 'for Selected Percentiles')
5819 FORMAT(' ')
5841 FORMAT(' ')
5843 FORMAT(' | ')
5847 FORMAT(' | ')
5848 FORMAT(' ')
5849 FORMAT(' ')
5851 FORMAT(' ',G15.7)
5859 FORMAT(' | ')
5861 FORMAT(' Percentile')
5862 FORMAT(' Point Estimate')
55862 FORMAT(' Standard Error')
5863 FORMAT(' Lower Confidence Limit')
5864 FORMAT(' Upper Confidence Limit')
5870 FORMAT(' ')
5872 FORMAT(' ')
C
C START THE TABLE FOR PERCENTILE CONFIDENCE INTERVALS
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,999)
WRITE(ICOUT,5811)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5813)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5815)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5817)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5816)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5819)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5861)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5863)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5864)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5870)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5872)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
DO55880I=1,NPERC
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)QP(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPHAT(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPSE(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPLCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPUCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
55880 CONTINUE
C
C END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
5199 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' | ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Generalized Pareto Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8121 FORMAT(5X,'{',A1,'bf Summary Statistics} & ',
1 2X,A1,A1)
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean (All Data): & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Variance (All Data): & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',
1 G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',
1 G15.7,2X,A1,A1)
8125 FORMAT(5X,'User-Specified Threshold: & ',
1 G15.7,2X,A1,A1)
8026 FORMAT(5X,'{',A1,'bf Method of Moments} & ',
1 2X,A1,A1)
8126 FORMAT(5X,'(Valid If Shape Parameter $<$ 1) & ',
1 2X,A1,A1)
8127 FORMAT(5X,'(Valid If Shape Parameter $>$ -1) & ',
1 2X,A1,A1)
8122 FORMAT(5X,'Sample Mean (After Subtracting Location): & ',
1 G15.7,2X,A1,A1)
8123 FORMAT(5X,'Sample Variance (After Subtracting Location): & ',
1 G15.7,2X,A1,A1)
8226 FORMAT(5X,'{',A1,'bf Method of L-Moments} & ',
1 2X,A1,A1)
8230 FORMAT(5X,'(L-Moment Estimates Work Best For Values Of: & ',
1 2X,A1,A1)
8231 FORMAT(5X,'The Shape Parameter in (-0.5,0.5)): & ',
1 2X,A1,A1)
8232 FORMAT(5X,'Unable To Compute The L-Moment Based Estimates: & ',
1 2X,A1,A1)
8222 FORMAT(5X,'First Sample L-Moment: & ',
1 G15.7,2X,A1,A1)
8223 FORMAT(5X,'Second Sample L-Moment: & ',
1 G15.7,2X,A1,A1)
8224 FORMAT(5X,'Third Sample L-Moment: & ',
1 G15.7,2X,A1,A1)
8027 FORMAT(5X,'Estimate of Gamma: & ',G15.7,2X,A1,A1)
8028 FORMAT(5X,'Estimate of Scale: & ',G15.7,2X,A1,A1)
8128 FORMAT(5X,'Estimate of Location: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'Variance of Gamma: & ',G15.7,2X,A1,A1)
8030 FORMAT(5X,'Variance of Scale: & ',G15.7,2X,A1,A1)
8031 FORMAT(5X,'Covariance of Gamma and Scale: & ',G15.7,2X,A1,A1)
8032 FORMAT(5X,'{',A1,'bf Maximum Likelihood} & ',
1 2X,A1,A1)
8033 FORMAT(5X,'(Maximum Likelihood Estimates Do Not Exist & ',
1 2X,A1,A1)
8034 FORMAT(5X,'If The Shape Parameter $<$ -1 And May & ',
1 2X,A1,A1)
8035 FORMAT(5X,'Perform Poorly If $<$ -0.5) & ',
1 2X,A1,A1)
8036 FORMAT(5X,'If The Shape Parameter $>$ 1 And May & ',
1 2X,A1,A1)
8037 FORMAT(5X,'Perform Poorly If $>$ 0.5) & ',
1 2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8041 FORMAT(5X,': & ',2X,A1,A1)
8049 FORMAT(A1,'end{tabular}')
8052 FORMAT(5X,'{',A1,'bf Elemental Percentile Method} & ',
1 2X,A1,A1)
8054 FORMAT(5X,'Unable to Compute the Maximum Likelihood ',
1 'Estimates & ',2X,A1,A1)
C
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)AMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)AVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8125)THRESH,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8041)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8026)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IGEPDF.EQ.'SIMI')THEN
WRITE(ICOUT,8126)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8127)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8122)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8123)XVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8128)ALOC1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)SCALE1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)GAMMA1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(VARMM1.NE.CPUMIN)THEN
WRITE(ICOUT,8029)VARMM1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)VARMM2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)COVMOM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8041)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8226)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8230)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8231)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8222)REAL(XMOM(1)),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8223)REAL(XMOM(2)),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8224)REAL(XMOM(3)),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(ASHALM.EQ.CPUMIN)THEN
WRITE(ICOUT,8232)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8128)ALOCLM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)ASCALM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)ASHALM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8041)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8052)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8128)ALOC3,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)SCALE3,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)GAMMA3,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8041)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
C START NEW TABLE FOR MAXIMIM LIKELIHOOD ESTIMATES
C
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
C
IF(MLFLAG.EQ.1)THEN
WRITE(ICOUT,8054)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
GOTO8090
ENDIF
C
WRITE(ICOUT,8032)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8033)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IGEPDF.EQ.'SIMI')THEN
WRITE(ICOUT,8034)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8035)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8036)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8037)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8128)ALOC2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)SCALE2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)GAMMA2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)VARML1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)VARML2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)COVML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8307 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8309 FORMAT(A1,'begin{center}')
8311 FORMAT(5X,'{',A1,'bf Confidence Limits for Shape Parameter}')
8313 FORMAT(A1,'end{center}')
8415 FORMAT(5X,'Note: For the generalized Pareto distribution, ',
1 'large sanple',A1,A1)
8416 FORMAT(5X,'sizes may be required for the normal approximations ',
1 'to be',A1,A1)
8417 FORMAT(5X,'accurate (e.g., > 500).',A1,A1)
C
WRITE(ICOUT,8309)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8311)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8415)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8416)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8417)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8307)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8307)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8313)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8320 FORMAT(5X,A1,'begin{tabular} {ccc}')
8321 FORMAT(5X,'Confidence & Lower & Upper ',
1 2X,A1,A1)
8322 FORMAT(5X,'Value (',A1,'%) & Limit & Limit',
1 2X,A1,A1)
8331 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,2X,A1,A1)
8326 FORMAT(5X,'& ',A1,'multicolumn{2}{c}{Normal Approximation}',
1 2X,A1,A1)
8340 FORMAT(5X,A1,'hline')
8349 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8309)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8320)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8326)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8321)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8322)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8340)IBASLC
CALL DPWRST('XXX','WRIT')
DO8330I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8331)ATEMP,ALOWGA(I),AUPPGA(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8330 CONTINUE
WRITE(ICOUT,8349)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8411 FORMAT(5X,'{',A1,'bf Confidence Limits for Scale Parameter}')
C
WRITE(ICOUT,8309)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8411)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8307)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8307)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8313)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
WRITE(ICOUT,8309)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8320)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8326)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8321)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8322)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8340)IBASLC
CALL DPWRST('XXX','WRIT')
DO8430I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8331)ATEMP,ALOWSC(I),AUPPSC(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8430 CONTINUE
WRITE(ICOUT,8349)IBASLC
CALL DPWRST('XXX','WRIT')
C
8090 CONTINUE
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C WRITE SELECTED PERCENTILES (IF ANY)
C
IF(NPERC.GT.0)THEN
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8803)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8810)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8812)IBASLC,IBASLC,ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8813)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8820)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8821)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8822)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,
1 IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8840)IBASLC
CALL DPWRST('XXX','WRIT')
DO8830I=1,NPERC
WRITE(ICOUT,8823)QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),
1 XQPUCL(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8830 CONTINUE
WRITE(ICOUT,8849)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8891)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8893)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
8801 FORMAT(A1,'end{verbatim}')
8803 FORMAT(A1,'begin{table}')
8807 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8809 FORMAT(A1,'begin{center}')
8810 FORMAT(5X,'{',A1,'bf Confidence Limits (Normal Approximation)',
1 'for Selected Percentiles}')
8812 FORMAT(5X,'{',A1,'bf $',A1,'alpha$ = ',F7.3,'}')
8813 FORMAT(A1,'end{center}')
8815 FORMAT(5X,'} ',A1,A1)
8820 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8821 FORMAT(5X,' & {',A1,'bf Point} & {',A1,'bf Standard} & {',
1 A1,'bf Lower} & {',A1,'bf Upper}',2X,A1,A1)
8822 FORMAT(5X,'{',A1,'bf Percentile} & {',A1,'bf Estimate} & {',
1 A1,'bf Error} & {',A1,'bf Confidence Limit} & {',
1 A1,'bf Confidence Limit}',
1 2X,A1,A1)
8823 FORMAT(5X,G15.7,' & ',G15.7,' & ',G15.7,' & ',G15.7,
1 ' & ',G15.7,2X,A1,A1)
8840 FORMAT(5X,A1,'hline')
8849 FORMAT(A1,'end{tabular}')
8891 FORMAT(A1,'end{center}')
8893 FORMAT(A1,'end{table}')
C
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(12X,'GENERALIZED PARETO PARAMETER ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4220)
4220 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)AMEAN
4222 FORMAT('SAMPLE MEAN (ALL DATA) = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)AVAR
4223 FORMAT('SAMPLE VARIANCE (ALL DATA) = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4224)XMIN
4224 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)XMAX
4225 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4226)THRESH
4226 FORMAT('USER-SPECIFIED THRESHOLD = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4230)
4230 FORMAT('METHOD OF MOMENTS:')
CALL DPWRST('XXX','WRIT')
IF(IGEPDF.EQ.'SIMI')THEN
WRITE(ICOUT,4231)
4231 FORMAT('(VALID IF SHAPE PARAMETER < 1)')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4232)
4232 FORMAT('(VALID IF SHAPE PARAMETER > -1)')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4234)XMEAN
4234 FORMAT('SAMPLE MEAN (AFTER SUBTRACT LOCATION) = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)XVAR
4235 FORMAT('SAMPLE VARIANCE (AFTER SUBTRACT LOCATION) = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)ALOC1
4233 FORMAT('ESTIMATE OF LOCATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)SCALE1
4237 FORMAT('ESTIMATE OF SCALE = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4236)GAMMA1
4236 FORMAT('ESTIMATE OF GAMMA = ',G15.7)
CALL DPWRST('XXX','WRIT')
IF(VARMM1.NE.CPUMIN)THEN
WRITE(ICOUT,4238)VARMM1
4238 FORMAT('VARIANCE OF GAMMA = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4239)VARMM2
4239 FORMAT('VARIANCE OF SCALE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4240)COVMOM
4240 FORMAT('COVARIANCE OF GAMMA AND SCALE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4250)
4250 FORMAT('L-MOMENTS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4251)
4251 FORMAT('(L-MOMENT ESTIMATES WORK BEST FOR')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4252)
4252 FORMAT('VALUES OF SHAPE PARAMETER IN (-0.5,0.5))')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4256)XMOM(1)
4256 FORMAT('FIRST SAMPLE L-MOMENT = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4257)XMOM(2)
4257 FORMAT('SECOND SAMPLE L-MOMENT = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4258)XMOM(3)
4258 FORMAT('THIRD SAMPLE L-MOMENT = ',G15.7)
CALL DPWRST('XXX','WRIT')
IF(ASHALM.EQ.CPUMIN)THEN
WRITE(ICOUT,4260)
4260 FORMAT('UNABLE TO COMPUTE L-MOMENT BASED ESTIMATES')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4262)ALOCLM
4262 FORMAT('ESTIMATE OF LOCATION = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4264)ASCALM
4264 FORMAT('ESTIMATE OF SCALE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4266)ASHALM
4266 FORMAT('ESTIMATE OF SHAPE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4310)
4310 FORMAT('ELEMENTAL PERCENTILE METHOD:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)ALOC3
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)SCALE3
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4236)GAMMA3
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4280)
4280 FORMAT('MAXIMUM LIKELIHOOD:')
CALL DPWRST('XXX','WRIT')
IF(MLFLAG.EQ.1)THEN
WRITE(ICOUT,4283)
4283 FORMAT('UNABLE TO COMPUTE MAXIMUM LIKELIHOOD ESTIMATES.')
CALL DPWRST('XXX','WRIT')
GOTO4299
ENDIF
IF(IGEPDF.EQ.'SIMI')THEN
WRITE(ICOUT,4291)
4291 FORMAT('(MAXIMUM LIKELIHOOD ESTIMATES DO')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4292)
4292 FORMAT('NOT EXIST IF SHAPE PARAMTER < -1')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4293)
4293 FORMAT('AND MAY PERFORM POORLY IF < -0.5)')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4296)
4296 FORMAT('(MAXIMUM LIKELIHOOD ESTIMATES DO')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4297)
4297 FORMAT('NOT EXIST IF SHAPE PARAMTER > 1')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4298)
4298 FORMAT('AND MAY PERFORM POORLY IF > 0.5)')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4233)ALOC2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)SCALE2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4236)GAMMA2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4238)VARML1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4239)VARML2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4240)COVML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4331)
4331 FORMAT('NOTE: FOR THE GENERALIZED PARETO DISTRIBUTION, ',
1 'LARGE SAMPLE SIZES')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4333)
4333 FORMAT(' MAY BE REQUIRED FOR THE NORMAL APPROXIMATIONS ',
1 'TO BE ACCURATE (E.G., > 500).')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4340)
4340 FORMAT('CONFIDENCE INTERVAL FOR SCALE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4342)
4342 FORMAT(' NORMAL APPROXIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4343)
4343 FORMAT(' CONFIDENCE LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4345)
4345 FORMAT(' VALUE (%) LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4346)
4346 FORMAT('-------------------------------------------')
CALL DPWRST('XXX','WRIT')
DO4349I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4347)ATEMP,ALOWSC(I),AUPPSC(I)
4347 FORMAT(' ',F8.3,10X,2(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4349 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4352)
4352 FORMAT('CONFIDENCE INTERVAL FOR SHAPE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4342)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4343)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4345)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4346)
CALL DPWRST('XXX','WRIT')
DO4359I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4347)ATEMP,ALOWGA(I),AUPPGA(I)
CALL DPWRST('XXX','WRIT')
4359 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4911)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4915)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4921)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4922)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4946)
CALL DPWRST('XXX','WRIT')
C
4911 FORMAT('CONFIDENCE LIMITS (NORMAL APPROXIMATION) FOR ',
1 'SELECTED PERCENTILES:')
4915 FORMAT('ALPHA = ',F7.4)
4921 FORMAT(10X,' POINT ',' STANDARD ',
1 ' LOWER ', ' UPPER')
4922 FORMAT('PERCENTILE',' ESTIMATE ',' ERROR ',
1 'CONFIDENCE LIMIT ',' CONFIDENCE LIMIT')
4946 FORMAT('-----------------------------------',
1 '-----------------------------------')
C
DO4981I=1,NPERC
WRITE(ICOUT,4932)QP(I),XQPHAT(I),XQPSE(I),
1 XQPLCL(I),XQPUCL(I)
4932 FORMAT(2X,F8.4,2G15.7,2X,G15.7,2X,G15.7)
CALL DPWRST('XXX','WRIT')
4981 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
4299 CONTINUE
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7011)
7011 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7012)
7012 FORMAT('GAMMAML, SCALEML, AND LOCML.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7013)
7013 FORMAT('MAXIMUM LIKELIHOOD PARAMETER VARIANCE-COVARIANCE ',
1 'MATRIX WRITTEN TO DPST1F.DAT')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7016)
7016 FORMAT('METHOD OF MOMENT ESTIMATES WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7017)
7017 FORMAT('GAMMAMOM, SCALEMOM, AND LOCMOM.')
CALL DPWRST('XXX','BUG ')
IF((GAMMA1.GT.-0.25.AND.IGEPDF.EQ.'JOHN') .OR.
1 (GAMMA1.LT.0.25.AND.IGEPDF.EQ.'SIMI'))THEN
WRITE(ICOUT,7018)
7018 FORMAT('METHOD OF MOMENTS PARAMETER VARIANCE-COVARIANCE ',
1 'MATRIX WRITTEN TO DPST1F.DAT')
CALL DPWRST('XXX','BUG ')
ENDIF
WRITE(ICOUT,7020)
7020 FORMAT('METHOD OF L-MOMENT ESTIMATES WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7022)
7022 FORMAT('GAMMALMO, SCALELMO, AND LOCLMOM.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7024)
7024 FORMAT('ELEMENTAL PERCENTILE METHOD ESTIMATES WILL BE SAVED ',
1 'AS INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7026)
7026 FORMAT('GAMMAEPM, SCALEEPM, AND LOCEPM.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
C
WRITE(IOUNI1,7051)
7051 FORMAT(1X,'PARAMETER VARIANCE-COVARIANCE MATRIX FOR ',
1'GENERALIZED PARETO MAXIMUM LIKELIHOOD ESTIMATION.')
WRITE(IOUNI1,7053)VARML1,COVML
WRITE(IOUNI1,7053)COVML,VARML2
7053 FORMAT(1X,2E15.7)
C
IF((GAMMA1.GT.-0.25.AND.IGEPDF.EQ.'JOHN') .OR.
1 (GAMMA1.LT.0.25.AND.IGEPDF.EQ.'SIMI'))THEN
WRITE(IOUNI2,7061)
7061 FORMAT(1X,'PARAMETER VARIANCE-COVARIANCE MATRIX FOR ',
1 'GENERALIZED PARETO METHOD OF MOMENT ESTIMATION.')
WRITE(IOUNI2,7053)VARMM1,COVMOM
WRITE(IOUNI2,7053)COVMOM,VARMM2
ENDIF
C
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MLGP')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLGP--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMLGS(Y,X,N,NVAR,
1TEMP1,TEMP2,TEMP3,DTEMP1,
1THETMO,BETAMO,THETFR,BETAFR,THETML,BETAML,
1ICAPSW,ICAPTY,MAXNXT,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR THE GENERALIZED LOGARITHMIC SERIES
C DISTRIBUTION.
C
C THE MOMENT ESTIMATE OF THETA IS THE SOLUTION
C OF THE EQUATION:
C
C (1-THETA)*XBAR**3/ALPHA**2 -
C THETA**2*(s**2+XBAR**2) 0
C
C WHERE ALPHA = 1/-LOG(1-THETA)
C
C BETA = (1/THETA) - ALPHA/XBAR
C
C THE MEAN AND ONES FREQUENCY ESTIMATE OF THETA
C IS THE SOLUTION OF THE EQUATION
C
C LOG(THETA) + ((1/THETA) -
C (1/XBAR)*(-1/LOG(1-THETA) - 1)*LOG(1-THETA) -
C LOG(-LOG(1-THETA)) - LOG(F1/N) = 0
C
C BETA = (1/THETA) - ALPHA/XBAR
C
C THE MAXIMUM LIKELIHOOD ESTIMATES ARE THE SOLUTIONS
C TO THE EQUATIONS:
C
C (N*XBAR/THETA) - (BETA-1)*N*XBAR/(1-THETA) +
C N/((1-THETA)*LOG(1-THETA)) = 0
C
C N*XBAR*LOG(1-THETA) +
C SUM[X=2 to K][SUM[i=1 to x-1][X*N(X)/(BETA*X-i)]]
C = 0
C
C THERE ARE TWO CASES:
C
C 1) ONE VARIABLE CASE: Y IS RAW DATA
C 2) TWO VARIABLE CASE: Y IS FREQUENCY, X IS CLASS
C MID-POINT.
C
C EXAMPLE--GENERALIZED LOGARITHMIC SERIES MAXIMUM LIKELIHOOD Y
C --GENERALIZED LOGARITHMIC SERIES MAXIMUM LIKELIHOOD Y X
C REFERENCES--CONSUL AND FAMOYE (2006), "LAGRANGIAN PROBABILITY
C DISTRIBUTIONS", BIRKHAUSER, CHAPTER 11.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/6
C ORIGINAL VERSION--LAGRANGE 2006.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-----------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBN0
CHARACTER*4 IRELAT
CHARACTER*4 IRHSTG
C
C-------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION X(*)
DIMENSION TEMP1(*)
DIMENSION TEMP2(*)
DIMENSION TEMP3(*)
DOUBLE PRECISION DTEMP1(*)
C
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(2)
DOUBLE PRECISION FVEC(2)
C
DOUBLE PRECISION AE
DOUBLE PRECISION RE
DOUBLE PRECISION XLOW
DOUBLE PRECISION XUP
DOUBLE PRECISION XMID
DOUBLE PRECISION DALPHA
C
DOUBLE PRECISION GLSFUN
DOUBLE PRECISION GLSFU3
EXTERNAL GLSFUN
EXTERNAL GLSFU2
EXTERNAL GLSFU3
DOUBLE PRECISION XBAR
DOUBLE PRECISION S2
DOUBLE PRECISION F1FREQ
COMMON/GLSCOM/XBAR,S2,F1FREQ,MAXROW,NTOT2
C
C-------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT---------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='GS '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGS')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLGS--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NVAR
55 FORMAT('N,NVAR = ',2I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,N
WRITE(ICOUT,57)I,Y(I),X(I)
57 FORMAT('I,Y(I),X(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLGS')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN GENERALIZED LOGARITHMIC SERIES ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
IF(NVAR.EQ.1)THEN
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN GENERALIZED LOGARITHMIC SERIES ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1147)
1147 FORMAT('***** ERROR IN GENERALIZED LOGARITHMIC SERIES ',
1 'MAXIMUM LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1148)I,Y(I)
1148 FORMAT(' ROW ',I8,' IS NON-POSITIVE (VALUE = ',
1 G15.7,')')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
CALL SORT(Y,N,TEMP2)
DO1160I=1,N
Y(I)=TEMP2(I)
1160 CONTINUE
C
IRELAT='OFF'
IRHSTG='OFF'
XMIN=Y(1)
XMAX=Y(N)
XSTART=XMIN-0.5
XSTOP=XMAX+0.5
CLWID=1.0
CALL DPBINI(Y,N,IRELAT,CLWID,XSTART,XSTOP,IRHSTG,
1 TEMP2,TEMP1,N2,IBUGA3,IERROR)
ICNT=0
DO101I=1,N2
IF(TEMP2(I).GT.0)THEN
ICNT=ICNT+1
TEMP2(ICNT)=TEMP2(I)
TEMP1(ICNT)=TEMP1(I)
ENDIF
101 CONTINUE
N2=ICNT
IF(IERROR.EQ.'YES')GOTO9000
F1=TEMP2(1)/REAL(N)
C
ELSEIF(NVAR.EQ.2)THEN
CALL SORTC(X,Y,N,TEMP1,TEMP2)
NTOT=0
DO1210I=1,N
X(I)=TEMP1(I)
Y(I)=TEMP2(I)
NTOT=NTOT + Y(I)
1210 CONTINUE
F1=Y(1)/REAL(NTOT)
C
DO1220I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1221)
1221 FORMAT('***** ERROR IN GENERALIZED LOGARITHMIC SERIES ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1223)
1223 FORMAT(' A NEGATIVE FREQUENCY WAS SPECIFIED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1225)I,Y(I)
1225 FORMAT(' ROW ',I8,' (AFTER SORTING) HAS FREQUENCY ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
1220 CONTINUE
ENDIF
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGS')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1301)N
1301 FORMAT('AFTER SORT, N = ',I8)
CALL DPWRST('XXX','WRIT')
DO1310I=1,MAX(N,100)
WRITE(ICOUT,1311)I,X(I),Y(I)
1311 FORMAT('I,X(I),Y(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
1310 CONTINUE
ENDIF
C
C *********************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR GENERALIZED LOGARITHMIC SERIES MLE **
C ** ESTIMATION **
C *********************************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLGS')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
IF(NVAR.EQ.1)THEN
NTOT=N
DO2105I=1,N
ITEMP=INT(Y(I)+0.5)
Y(I)=REAL(ITEMP)
2105 CONTINUE
CALL MEAN(Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,ASD,IBUGA3,IERROR)
AMIN=Y(1)
AMAX=Y(N)
C
IRELAT='OFF'
IRHSTG='OFF'
XSTART=AMIN-0.5
XSTOP=AMAX+0.5
CLWID=1.0
CALL DPBINI(Y,N,IRELAT,CLWID,XSTART,XSTOP,IRHSTG,
1 TEMP1,TEMP2,N2,IBUGA3,IERROR)
IINDX=MAXNXT/2
IF(N2.LE.IINDX)THEN
IML=0
DO2110I=1,N2
TEMP3(I)=TEMP1(I)
TEMP3(IINDX+I)=TEMP2(I)
2110 CONTINUE
IK=N2
ELSE
IML=1
ENDIF
C
ELSE
AMIN=X(1)
AMAX=X(N)
CALL WEMEAN(X,Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL WESD(X,Y,N,IWRITE,ASD,IBUGA3,IERROR)
IINDX=MAXNXT/2
IF(N.LE.IINDX)THEN
IML=0
DO2210I=1,N
NTOT=NTOT+Y(I)
TEMP3(I)=Y(I)
TEMP3(IINDX+I)=X(I)
2210 CONTINUE
IK=N
ELSE
IML=1
ENDIF
ENDIF
C
THETMO=0.0
BETAMO=0.0
THETFR=0.0
BETAFR=0.0
THETML=0.0
BETAML=0.0
C
AE=1.D-7
RE=1.D-7
XBAR=DBLE(AMEAN)
S2=DBLE(ASD)**2
XLOW=0.000001D0
XUP=0.999999D0
XMID=0.5D0
CALL DFZERO(GLSFUN,XLOW,XUP,XMID,RE,AE,IFLAG)
THETMO=REAL(XLOW)
DALPHA=-1.0D0/DLOG(1.0D0 - THETMO)
BETAMO=(1.0D0/THETMO) - DALPHA/XBAR
IF(BETAMO.LE.1.0)BETAMO=1.0
C
F1FREQ=DBLE(F1)
NTOT2=NTOT
XLOW=0.000001D0
XUP=0.999999D0
XMID=DBLE(THETMO)
CALL DFZERO(GLSFU3,XLOW,XUP,XMID,RE,AE,IFLAG)
THETFR=REAL(XLOW)
DALPHA=-1.0D0/DLOG(1.0D0 - THETFR)
BETAFR=(1.0D0/THETFR) - DALPHA/XBAR
IF(BETAFR.LE.1.0)BETAFR=1.0
C
IF(IML.EQ.0)THEN
IOPT=2
TOL=1.0D-5
NPAR=2
NPRINT=-1
INFO=0
LWA=MAXNXT
MAXROW=MAXNXT
C
XPAR(1)=DBLE(THETMO)
XPAR(2)=DBLE(BETAMO)
CALL DNSQE(GLSFU2,JAC,IOPT,NPAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP1,LWA,TEMP3,IK)
C
THETML=REAL(XPAR(1))
BETAML=REAL(XPAR(2))
IF(BETAML.LE.1.0)BETAML=1.0
ENDIF
C
C ***********************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR GENERALIZED LOGARITHMIC SERIES MLE **
C ** ESTIMATION **
C ***********************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Generalized Logarithmic Series Parameter ',
1 'Estimation ')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5044 FORMAT(' | ')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean:')
5062 FORMAT(' Sample Standard Deviation:')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5065 FORMAT(' First Frequency:')
5068 FORMAT(' Estimate of Theta:')
5069 FORMAT(' Estimate of Beta:')
5071 FORMAT(' Method of Moments:')
5072 FORMAT(' Method of Ones Frequency and Mean:')
5073 FORMAT(' Maximum Likelihood:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5056 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)F0
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THETMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BETAMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THETFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BETAFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THETML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BETAML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Lagrange-Poisson ',
1 'Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'First Frequency: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'Estimate of Theta: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Estimate of Beta: & ',
1 G15.7,2X,A1,A1)
8031 FORMAT(5X,'Method of Moments: & ',2X,A1,A1)
8032 FORMAT(5X,'Method of Ones Frequency and Mean: & ',
1 2X,A1,A1)
8033 FORMAT(5X,'Method of Maximum Likelihood: & ',
1 2X,A1,A1)
8039 FORMAT(5X,' & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)AMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)ASD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)AMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)AMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)F0,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)THETMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)BETAMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)THETFR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)BETAFR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8033)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)THETML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)BETAML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(10X,
1 'GENERALIZED LOGARITHMIC SERIES MAXIMUM LIKELIHOOD ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)AMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)ASD
4223 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)AMIN
4225 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)AMAX
4227 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4229)F1
4229 FORMAT('FIRST FREQUENCY: = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)
4231 FORMAT('METHOD OF MOMENTS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)THETMO
4235 FORMAT('ESTIMATE OF THETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)BETAMO
4237 FORMAT('ESTIMATE OF BETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4241)
4241 FORMAT('METHOD OF ONES FREQUENCY AND MEAN:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)THETFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)BETAFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4251)
4251 FORMAT('MAXIMUM LIKELIHOOD:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)THETML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)BETAML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4291)
4291 FORMAT('ESTIMATES ARE SAVED IN THE INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4292)
4292 FORMAT('THETAMOM, BETAMOM, THETAFR, BETAFR, THETAML, ',
1 'AND BETAML')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGS')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLGS--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLGU(Y,N,
1XTEMP,MAXNXT,
1ALOC,SCALE,ALOC2,SCALE2,
1MINMAX,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR GUMBEL (EXTREME VALUE TYPE I)
C EXAMPLE--GUMBEL MAXIMUM LIKELIHOOD Y
C REFERENCE--XX
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--98/6
C ORIGINAL VERSION--JUNE 1998.
C MODIFED --OCTOBER 2003. SUPPORT FOR MINIMUM GUMBEL
C (PREVIOUSLY ONLY MAXIMUM
C GUMBEL SUPPORTED)
C MODIFED --OCTOBER 2003. SUPPORT FOR HTML/LATEX OUTPUT
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='GU '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGU')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLGU--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,MINMAX
55 FORMAT('N,MINMAX = ',2I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,N
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLGU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN GUMBEL MAXIMUM LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)
1112 FORMAT(' THE NUMBER OF OBSERVATIONS FOR THE RESPONSE ',
1 'VARIABLE IS LESS THAN OR EQUAL TO ONE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)HOLD
1131 FORMAT('***** NOTE FROM GUMBEL MAXIMUM LIKELIHOOD--RESPONSE ',
1'VARIABLE HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
1290 CONTINUE
C
C ******************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR GUMBEL MLE ESTIMATE **
C ******************************
C
4100 CONTINUE
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
CALL EV1EST(Y,N,ALOC,SCALE,ALOC2,SCALE2,MINMAX,IERROR)
C
C *********************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR GUMBEL MLE ESTIMATE **
C **********************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLGU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5002 FORMAT('GUMBEL (MAXIMUM CASE) PARAMETER ESTIMATION')
5003 FORMAT('GUMBEL (MINIMUM) PARAMETER ESTIMATION')
5004 FORMAT('
')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,5002)
ELSE
WRITE(ICOUT,5003)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Method of Moment Estimate')
5019 FORMAT(' ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Location Parameter:')
5062 FORMAT(' Scale Parameter:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOC2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5117 FORMAT(' Maximum Likelihood Estimate')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8005 FORMAT(5X,'{',A1,'bf Gumbel (Maximum Case) Parameter ',
1 'Estimation}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Method of Moments Estimates:}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Location Parameter: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Scale Parameter: & ',G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)ALOC2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)SCALE2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
8111 FORMAT(5X,'{',A1,'bf Maximum Likelihood Estimate:}')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)ALOC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)SCALE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,4111)
4111 FORMAT('GUMBEL (MAXIMUM CASE) METHOD OF MOMENTS ESTIMATE:')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4113)
4113 FORMAT('GUMBEL (MINIMUM CASE) METHOD OF MOMENTS ESTIMATE:')
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4142)N
4142 FORMAT(6X,'NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4143)ALOC2
4143 FORMAT(6X,'LOCATION PARAMETER LOC2 = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4145)SCALE2
4145 FORMAT(6X,'SCALE PARAMETER SCALE2 = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4147)
4147 FORMAT(6X,'LOC2 AND SCALE2 WILL BE SAVED AS INTERNAL ',
1 'PARAMETERS.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.2)THEN
WRITE(ICOUT,4211)
4211 FORMAT('GUMBEL (MAXIMUM CASE) MAXIMUM LIKELIHOOD ESTIMATE:')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4213)
4213 FORMAT('GUMBEL (MINIMUM CASE) MAXIMUM LIKELIHOOD ESTIMATE:')
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4242)N
4242 FORMAT(6X,'NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4343)ALOC
4343 FORMAT(6X,'LOCATION PARAMETER LOC = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)SCALE
4243 FORMAT(6X,'SCALE PARAMETER SCALE = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4341)
4341 FORMAT(6X,'LOC AND SCALE WILL BE SAVED AS INTERNAL ',
1 'PARAMETERS.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGU')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLGU--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLGV(Y,N,
1XTEMP,TEMP2,TEMP3,TEMP4,TEMP5,YTEMP,MAXNXT,
1QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1GAMMA1,SCALE1,ALOC1,GAMMA2,SCALE2,ALOC2,ASHALM,ASCALM,ALOCLM,
1ICAPSW,ICAPTY,DTEMP1,XMOM,
1MINMAX,IOUNI1,IOUNI2,ISEED,ALPHA,
1MLFLAG,ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES PARAMETER ESTIMATES FOR THE
C GENERALIZED EXTREME VALUE DISTRIBUTION USING THE
C FOLLOWING METHODS:
C
C 1) L-MOMENTS
C 2) ELEMENTAL PERCENTILES
C 3) MAXIMUM LIKELIHOOD
C
C NOTE: I AM HAVING PROBLEMS WITH HOSKINGS MAXIMUM
C LIKELIHOOD ROUTINE. FOR NOW, BYPASS ML ESTIMATION.
C IF I GET THIS WORKING BETTER, THEN I WILL
C RE-ACTIVATE IT.
C
C EXAMPLE--GENERALIZED EXTREME VALUE MAXIMUM LIKELIHOOD Y
C REFERENCE--JOHNSON, KOTZ, AND BALAKRISHNAN. "CONTINUOUS
C UNIVARIATE DISTRIBUTIONS, VOLUME I", SECOND
C EDITION, WILEY, 1994, PP. 614-619.
C --HOSKING, ALGORITHM AS215 APPL. STATIST. (1985)
C VOL. 34, NO. 3, Modifications in AS R76 (1989)
C have been incorporated.
C --CASTILLO, HADI, BALAKRISHNAN, SARABIA, "EXTREME
C VALUE AND RELATED MODELS WITH APPLICATIONS IN
C ENGINEERING AND SCIENCE", WILEY, 2005.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2005/7
C ORIGINAL VERSION--JULY 2005.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 IGEPDF
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 ICASPL
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
LOGICAL MLFLAG
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
DIMENSION YTEMP(*)
DIMENSION TEMP2(*)
DIMENSION TEMP3(*)
DIMENSION TEMP4(*)
DIMENSION TEMP5(*)
DOUBLE PRECISION DTEMP1(*)
DOUBLE PRECISION XMOM(*)
C
DIMENSION QP(*)
DIMENSION XQPHAT(*)
DIMENSION XQPSE(*)
DIMENSION XQPLCL(*)
DIMENSION XQPUCL(*)
C
DOUBLE PRECISION VARCOV(6)
DOUBLE PRECISION PARA(3)
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(3)
DOUBLE PRECISION FVEC(3)
DOUBLE PRECISION G
DOUBLE PRECISION T3
C
EXTERNAL GPAFUN
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='GV '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGV')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLGV--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGV')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN GENERALIZED EXTREME VALUE MAXIMUM ',
1 'LIKELIHOOD ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS FOR THE RESPONSE ',
1 'VARIABLE IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1137)
1137 FORMAT('***** ERROR IN GENERALZIED EXTREME VALUE MAXIMUM ',
1 'LIKELIHOOD ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)HOLD
1131 FORMAT(' RESPONSE VARIABLE HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
C ***************************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR GENERALIZED EXTREME VALUE MOMENT/MLE **
C ** ESTIMATION **
C ***************************************************
C
2000 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGV')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL VAR(Y,N,IWRITE,XVAR,IBUGA3,IERROR)
XSD=SQRT(XVAR)
C
IF(MINMAX.EQ.1)THEN
DO2002I=1,N
Y(I)=-Y(I)
2002 CONTINUE
ENDIF
CALL SORT(Y,N,Y)
C
C COMPUTE L-MOMENT ESTIMATORS
C
NMOM=3
DO2110I=1,N
DTEMP1(I)=DBLE(Y(I))
2110 CONTINUE
CALL SAMLMU(DTEMP1,N,XMOM,NMOM)
CALL GEVPEL(XMOM,PARA)
ALOCLM=REAL(PARA(1))
ASCALM=REAL(PARA(2))
ASHALM=REAL(PARA(3))
C
ICASPL='GEV '
ITEMP=2
NSAMP=20*N
IF(NSAMP.GT.5000)NSAMP=5000
CALL DPEPM2(Y,N,ICASPL,MAXNXT,MINMAX,IGEPDF,
1 ISEED,NSAMP,
1 TEMP2,TEMP3,TEMP4,TEMP5,XTEMP,
1 ALOC2,SCALE2,GAMMA2,
1 IBUGA3,ISUBRO,IERROR)
C
IF(ASHALM.NE.CPUMIN)THEN
XPAR(1)=DBLE(ALOCLM)
XPAR(2)=DBLE(ASCALM)
XPAR(3)=DBLE(ASHALM)
ELSE
XPAR(1)=DBLE(ALOC2)
XPAR(2)=DBLE(SCALE2)
XPAR(3)=DBLE(GAMMA2)
ENDIF
C
IF(MLFLAG)THEN
MONIT=0
MONIT=1
IFAULT=0
DO2130I=1,N
DTEMP1(I)=DBLE(Y(I))
2130 CONTINUE
C
CALL MLEGEV(DTEMP1,N,XPAR,VARCOV,MONIT,IFAULT)
GAMMA1=REAL(XPAR(3))
SCALE1=REAL(XPAR(2))
ALOC1=REAL(XPAR(1))
C
IF(IFAULT.EQ.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1011)
1011 FORMAT(
1'***** ERROR: MAXIMUM LIKEHOOD ESTIMATION FOR GENERALIZED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1013)N
1013 FORMAT(
1' EXTREME VALUE REQUIRES N > 2. N = ',I8)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO1099
ELSEIF(IFAULT.EQ.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1021)
1021 FORMAT(
1'***** ERROR: MAXIMUM LIKEHOOD ESTIMATION FOR GENERALIZED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1023)
1023 FORMAT(
1' EXTREME VALUE EXCEEDED MAXIMUM NUMBER OF ITERATIONS.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO1099
ELSEIF(IFAULT.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1031)
1031 FORMAT(
1'***** ERROR: MAXIMUM LIKEHOOD ESTIMATION FOR GENERALIZED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1033)
1033 FORMAT(
1' EXTREME VALUE EXCEEDED MAXIMUM NUMBER OF EVALUATIONS ',
1'FOR LOG LIKELIHOOD.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO1099
ELSEIF(IFAULT.EQ.4)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1041)
1041 FORMAT(
1'***** ERROR: MAXIMUM LIKEHOOD ESTIMATION FOR GENERALIZED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1043)
1043 FORMAT(
1' EXTREME VALUE EXCEEDED MAXIMUM NUMBER OF STEP LENGTH ',
1'REDUCTIONS.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO1099
ENDIF
ENDIF
C
CCCCC WRITE(IOUNI1,1051)
C1051 FORMAT(1X,'PARAMETER VARIANCE-COVARIANCE MATRIX FOR ',
CCCCC1'GENERALIZED EXTREME VALUE MAXIMUM LIKELIHOOD ESTIMATION.')
CCCCC WRITE(IOUNI1,1053)REAL(VARCOV(1)),REAL(VARCOV(2)),
CCCCC1 REAL(VARCOV(4))
C1053 FORMAT(1X,3G15.7)
CCCCC WRITE(IOUNI1,1053)REAL(VARCOV(2)),REAL(VARCOV(3)),
CCCCC1 REAL(VARCOV(5))
CCCCC WRITE(IOUNI1,1053)REAL(VARCOV(4)),REAL(VARCOV(5)),
CCCCC1 REAL(VARCOV(6))
C
1099 CONTINUE
IF(MINMAX.EQ.1)THEN
ALOCLM=-ALOCLM
ALOC1=-ALOC1
ALOC2=-ALOC2
ENDIF
C
C ******************************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR GENERALIZED EXTREME VALUE MLE ESTIMATION **
C ******************************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGV')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5002 FORMAT('')
5003 FORMAT('Generalized Extreme Value Parameter ',
1 'Estimation (Maximum Case)')
5008 FORMAT('Generalized Extreme Value Parameter ',
1 'Estimation (Minimum Case)')
5004 FORMAT(' ')
5005 FORMAT('
')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5002)
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.1)THEN
WRITE(ICOUT,5008)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,5003)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5005)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
C5015 FORMAT(' ')
C5017 FORMAT(' Method of Moments and Method of Maximum ',
C 1 'Likelihood')
C5019 FORMAT(' ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5015)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5017)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5019)
CCCCC CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5044 FORMAT(' Summary Statistics:')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean (All Data):')
5062 FORMAT(' Sample Variance (All Data):')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5044)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
5065 FORMAT(' Method of Moments')
5165 FORMAT(' (Valid If Shape Parameter < 1)')
5265 FORMAT(' (Valid If Shape Parameter > -1)')
5266 FORMAT(' Sample Mean (after subtracting location):')
5267 FORMAT(' Sample Variance (after subtracting ',
1 'location):')
5166 FORMAT(' Estimate of Location:')
5066 FORMAT(' Estimate of Gamma:')
5067 FORMAT(' Estimate of Scale:')
5068 FORMAT(' Variance of Gamma:')
5069 FORMAT(' Variance of Scale:')
5070 FORMAT(' Covariance of Gamma and Scale:')
C
5080 FORMAT(' Method of L-Moments')
C5081 FORMAT(' (L-Moments Work Best For Values Of The')
C5082 FORMAT(' Shape Parameter In The Interval (-0.5,0.5))')
5083 FORMAT(' First Sample L-Moment')
5084 FORMAT(' Second Sample L-Moment')
5085 FORMAT(' Third Sample L-Moment')
5086 FORMAT(' L-Moment Estimates Cannot Be Computed')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5080)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
CCCCC WRITE(ICOUT,5041)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5043)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5081)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5047)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5049)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5055)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5047)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5059)
CCCCC CALL DPWRST('XXX','WRIT')
C
CCCCC WRITE(ICOUT,5041)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5043)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5082)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5047)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5049)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5055)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5047)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5059)
CCCCC CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5083)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)REAL(XMOM(1))
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5084)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)REAL(XMOM(2))
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5085)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)REAL(XMOM(3))
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(ASHALM.EQ.CPUMIN)THEN
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5086)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ELSE
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5166)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOCLM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASCALM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASHALM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ENDIF
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
5180 FORMAT(' Elemental Percentile Method')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5180)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5166)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOC2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMA2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
5071 FORMAT(' Maximum Likelihood')
C
IF(MLFLAG)THEN
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5166)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOC1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMA1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
ENDIF
C
CCCCC WRITE(ICOUT,5041)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5043)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5068)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5047)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5049)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5051)VARML1
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5047)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5059)
CCCCC CALL DPWRST('XXX','WRIT')
C
CCCCC WRITE(ICOUT,5041)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5043)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5069)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5047)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5049)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5051)VARML2
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5047)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5059)
CCCCC CALL DPWRST('XXX','WRIT')
C
CCCCC WRITE(ICOUT,5041)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5043)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5070)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5047)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5049)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5051)COVML
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5047)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5059)
CCCCC CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Generalized Extreme Value Parameter ',
1 'Estimation (Maximum Case)}')
8012 FORMAT(5X,'{',A1,'bf Generalized Extreme Value Parameter ',
1 'Estimation (Minimum Case)}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.1)THEN
WRITE(ICOUT,8012)IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8121 FORMAT(5X,'{',A1,'bf Summary Statistics} & ',
1 2X,A1,A1)
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean (All Data): & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Variance (All Data): & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',
1 G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',
1 G15.7,2X,A1,A1)
8226 FORMAT(5X,'{',A1,'bf Method of L-Moments} & ',
1 2X,A1,A1)
8326 FORMAT(5X,'{',A1,'bf Elemental Percentile Method} & ',
1 2X,A1,A1)
8232 FORMAT(5X,'Unable To Compute The L-Moment Based Estimates: & ',
1 2X,A1,A1)
8222 FORMAT(5X,'First Sample L-Moment: & ',
1 G15.7,2X,A1,A1)
8223 FORMAT(5X,'Second Sample L-Moment: & ',
1 G15.7,2X,A1,A1)
8224 FORMAT(5X,'Third Sample L-Moment: & ',
1 G15.7,2X,A1,A1)
8027 FORMAT(5X,'Estimate of Gamma: & ',G15.7,2X,A1,A1)
8028 FORMAT(5X,'Estimate of Scale: & ',G15.7,2X,A1,A1)
8128 FORMAT(5X,'Estimate of Location: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'Variance of Gamma: & ',G15.7,2X,A1,A1)
8030 FORMAT(5X,'Variance of Scale: & ',G15.7,2X,A1,A1)
8031 FORMAT(5X,'Covariance of Gamma and Scale: & ',G15.7,2X,A1,A1)
8032 FORMAT(5X,'{',A1,'bf Maximum Likelihood} & ',
1 2X,A1,A1)
8033 FORMAT(5X,'(Maximum Likelihood Estimates Do Not Exist & ',
1 2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8041 FORMAT(5X,': & ',2X,A1,A1)
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8041)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8226)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8222)REAL(XMOM(1)),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8223)REAL(XMOM(2)),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8224)REAL(XMOM(3)),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(ASHALM.EQ.CPUMIN)THEN
WRITE(ICOUT,8232)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8128)ALOCLM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)ASCALM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)ASHALM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8041)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8326)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8128)ALOC2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)SCALE2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)GAMMA2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8041)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
IF(MLFLAG)THEN
WRITE(ICOUT,8032)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8033)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8128)ALOC1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)SCALE1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)GAMMA1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,8029)VARML1,IBASLC,IBASLC
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,8030)VARML2,IBASLC,IBASLC
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,8031)COVML,IBASLC,IBASLC
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(12X,'GENERALIZED EXTREME VALUE PARAMETER ESTIMATION:')
CALL DPWRST('XXX','WRIT')
IF(MINMAX.EQ.1)THEN
WRITE(ICOUT,4216)
4216 FORMAT(12X,'(MINIMUM CASE)')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4217)
4217 FORMAT(12X,'(MAXIMUM CASE)')
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4220)
4220 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)XMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)XVAR
4223 FORMAT('SAMPLE VARIANCE = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4224)XMIN
4224 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)XMAX
4225 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
4233 FORMAT('ESTIMATE OF LOCATION = ',G15.7)
4237 FORMAT('ESTIMATE OF SCALE = ',G15.7)
4236 FORMAT('ESTIMATE OF GAMMA = ',G15.7)
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4250)
4250 FORMAT('L-MOMENTS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4256)XMOM(1)
4256 FORMAT('FIRST SAMPLE L-MOMENT = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4257)XMOM(2)
4257 FORMAT('SECOND SAMPLE L-MOMENT = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4258)XMOM(3)
4258 FORMAT('THIRD SAMPLE L-MOMENT = ',G15.7)
CALL DPWRST('XXX','WRIT')
IF(ASHALM.EQ.CPUMIN)THEN
WRITE(ICOUT,4260)
4260 FORMAT('UNABLE TO COMPUTE L-MOMENT BASED ESTIMATES')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4262)ALOCLM
4262 FORMAT('ESTIMATE OF LOCATION = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4264)ASCALM
4264 FORMAT('ESTIMATE OF SCALE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4266)ASHALM
4266 FORMAT('ESTIMATE OF SHAPE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4310)
4310 FORMAT('ELEMENTAL PERCENTILE METHOD:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)ALOC2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)SCALE2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4236)GAMMA2
CALL DPWRST('XXX','WRIT')
C
IF(MLFLAG)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4290)
4290 FORMAT('MAXIMUM LIKELIHOOD:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)ALOC1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)SCALE1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4236)GAMMA1
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(MLFLAG)THEN
WRITE(ICOUT,7011)
7011 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7012)
7012 FORMAT('GAMMAML, SCALEML, AND LOCML.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7013)
7013 FORMAT('MAXIMUM LIKELIHOOD PARAMETER VARIANCE-COVARIANCE ',
1 'MATRIX WRITTEN TO DPST1F.DAT')
CALL DPWRST('XXX','BUG ')
ENDIF
C
WRITE(ICOUT,7020)
7020 FORMAT('METHOD OF L-MOMENT ESTIMATES WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7022)
7022 FORMAT('GAMMALMO, SCALELMO, AND LOCLMOM.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7024)
7024 FORMAT('ELEMENTAL PERCENTILE METHOD ESTIMATES WILL BE SAVED ',
1 'AS INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,7026)
7026 FORMAT('GAMMAEPM, SCALEEPM, AND LOCEPM.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
C
IF(MLFLAG)THEN
CCCCC WRITE(IOUNI1,7051)
C7051 FORMAT(1X,'PARAMETER VARIANCE-COVARIANCE MATRIX FOR ',
CCCCC1 'GENERALIZED EXTREME VALUE MAXIMUM LIKELIHOOD ESTIMATION.')
CCCCC WRITE(IOUNI1,7053)VARML1,COVML
CCCCC WRITE(IOUNI1,7053)COVML,VARML2
C7053 FORMAT(1X,2E15.7)
ENDIF
C
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MLGV')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLGV--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMLGX(Y,N,
1XTEMP,MAXNXT,
1GAMMA1,SCALE1,
1ICAPSW,ICAPTY,DTEMP1,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD ESTIMATES
C FOR THE GEOMETRIC EXTREME EXPONENTIAL DISTRIBUTION.
C THE MAXIMUM LIKELIHOOD ESTIMATES ARE THE SOLUTION TO
C THE FOLLOWING SIMULTANEOUS NONLINEAR EQUATIONS:
C EQUATIONS.
C
C N/G - 2*SUM[i=1 to N][EXP(-L*X(i)/(1-(1-G)*EXP(-L*X(i)))]
C
C N/G - 2*SUM[i=1 to N][EXP(-L*X(i)/(1-(1-G)*EXP(-L*X(i)))]
C
C WITH G AND L DENOTING THE SHAPE PARAMETER GAMMA AND
C SCALE PARAMETER LAMBDA RESPECTIVELY.
C
C EXAMPLE--GEOMETRIC EXTREME EXPONENTIAL MAXIMUM LIKELIHOOD Y
C REFERENCE--"CAN DATA RECOGNIZE ITS PARENT DISTRIBUTION?",
C MARSHALL, MEZA, AND OLKIN, JOURNAL OF COMPUTATIONAL
C AND GRAPHICAL STATISTICS, SEPTEMBER, 2001,
C PP. 555-580.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/3
C ORIGINAL VERSION--MARCH 2004.
C UPDATED --AUGUST 2005. MODIFY OUTPUT OF FORMAT TO MAKE IT
C MORE CONSISTENT WITH OTHER ML ROUTINES
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
DOUBLE PRECISION DTEMP1(*)
C
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(2)
DOUBLE PRECISION FVEC(2)
C
EXTERNAL GEEFUN
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='GX '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGX')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLGX--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLGX')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN GEOMETRIC EXTREME EXPONENTIAL ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN GEOMETRIC EXTREME EXPONENTIAL ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1147)
1147 FORMAT('***** ERROR IN GENERALZIED EXTREME EXPONENTIAL ',
1 'MAXIMUM LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1148)I,Y(I)
1148 FORMAT(' ROW ',I8,' IS NON-POSITIVE (VALUE = ',G15.7,')')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
C ********************************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR GEOMETRIC EXTREME EXPONENTIAL MLE ESTIMATION **
C ********************************************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLGX')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
C
XPAR(1)=DBLE(XMEAN)
XPAR(2)=DBLE(XSD)
C
IOPT=2
TOL=1.0D-6
NVAR=2
NPRINT=-1
INFO=0
LWA=MAXNXT
CALL DNSQE(GEEFUN,JAC,IOPT,NVAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP1,MAXNXT,Y,N)
C
GAMMA1=REAL(XPAR(1))
SCALE1=REAL(XPAR(2))
C
C ***********************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR GEOMETRIC EXTREME EXPONENTIAL MLE **
C ** ESTIMATION **
C ***********************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLGX')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Geometric Extreme Exponential Parameter ',
1 'Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5060 FORMAT(' Summary Statistics:')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Sample Minimum:')
5065 FORMAT(' Sample Maximum:')
5066 FORMAT(' Maximum Likelihood Estimates:')
5067 FORMAT(' Estimate of Gamma:')
5068 FORMAT(' Estimate of Scale:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5060)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMA1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Geometric Extreme Exponential ',
1 'Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Summary Statistics: & ',2X,A1,A1)
8022 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8023 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,' & ',2X,A1,A1)
8028 FORMAT(5X,'Maximum Likelihood Estimates: & ',2X,A1,A1)
8029 FORMAT(5X,'Estimate of Gamma: & ',G15.7,2X,A1,A1)
8030 FORMAT(5X,'Estimate of Scale: & ',G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)GAMMA1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)SCALE1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(12X,
1 'GEOMETRIC EXTREME EXPONENTIAL PARAMETER ESTIMATION')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4220)
4220 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)XMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)XSD
4223 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)XMIN
4225 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)XMAX
4227 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4230)
4230 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)GAMMA1
4231 FORMAT('ESTIMATE OF GAMMA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)SCALE1
4233 FORMAT('ESTIMATE OF SCALE = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4241)
4241 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4242)
4242 FORMAT('GAMMAML, AND SCALEML.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLGX')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLGX--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLHE(Y,N,
1YTEMP2,XTEMP2,TEMP1,TEMP2,ITEMP1,MAXNXT,
1ALPHAM,BETAMO,ALPHML,BETAML,
1ALPHEP,BETAEP,ALPHZF,BETAZF,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES AND METHOD OF MOMENT ESTIMATES FOR
C THE HERMITE DISTRIBUTION. FOUR METHODS OF ESTIMATION
C ARE COMPUTED.
C
C 1. THE METHOD OF MOMENT ESTIMATES ARE THE SOLUTIONS
C TO THE EQUATIONS:
C ALPHA*(ALPHA+BETA) - XMEAN = 0
C ALPHA*(2*ALPHA+BETA) - XVARI = 0
C WITH XMEAN AND XVARI DENOTING THE SAMPLE MEAN AND
C VARIANCE RESPECTIVELY. AFTER SOME ALGEBRA, THIS
C CAN BE SOLVED AS:
C
C ALPHAHAT = SQRT(XVAR - XBAR)
C BETAHAT = (XVAR/ALPHAHAT) - 2*ALPHAHAT
C
C 2. THE MAXIMUM LIKELIHOOD EQUATIONS ARE:
C SUM[n=0 to k][f(n)*{(n/ALPHA) - (ALPHA + BETA)}]
C = 0
C SUM[n=0 to k][f(n)*ALPHA*{(p(n-1)/p(n) - 1}] = 0
C WITH f(n) DENOTING THE SAMPLE FREQUENCIES FOR
C N = 0, 1, 2, ..., K (K = MAXIMUM OBSERVED VALUE)
C AND P(n) = HERPDF.
C
C 3. THE EVEN POINT ESTIMATORS ARE
C
C AHAT=-0.5*LOG(2*SE/N - 1)
C BHAT=0.5*(XBAR - AHAT)
C
C WHERE
C
C XBAR = SAMPLE MEAN
C SE = SUM OF OBSEVED FREQUENCES AT X = 0, 2, ...
C ALPHAHAT = SQRT(2*BHAT)
C BETAHAT = AHAT/SQRT(2*BHAT)
C
C 4. THE ZEROTH FREQUENCY AND THE MEAN ESTIMATORS ARE
C
C AHAT = -(XBAR + 2*LOG(N0/N))
C BHAT = XBAR + LOG(N0/N)
C
C DETAILS OF MAXIMIM LIKELIHOOD ESTIMATION ARE GIVEN
C IN "SOME PROPERTIES OF THE HERMITE DISTRIBUTION",
C KEMP AND KEMP, BIOMETRIKA (1965), 52, 3 and 4,
C P. 381. THE OTHER METHODS ARE DESCRIBED IN
C "EVEN POINT ESTIMATION AND MOMENT ESTIMATION IN
C HERMITE DISTRIBUTIONS", Y. C. PATEL, BIOMETRICS,
C 32, DECEMBER, 1976, PP. 865-873. THE PATEL
C ARTICLE ALSO GIVES THE VARIANCES AND COVARIANCES
C FOR EACH OF THESE METHODS.
C EXAMPLE--HERMITE MAXIMUM LIKELIHOOD Y
C REFERENCE--"UNIVARIATE DISCRETE DISTRIBUTIONS", SECOND EDITION,
C JOHNSON, KOTZ, AND KEMP, WILEY, PP. 202.
C --"SOME PROPERTIES OF THE HERMITE DISTRIBUTION",
C KEMP AND KEMP, BIOMETRIKA (1965), 52, 3 and 4,
C P. 381.
C --"EVEN POINT ESTIMATION AND MOMENT ESTIMATION IN
C HERMITE DISTRIBUTIONS", Y. C. PATEL, BIOMETRICS,
C 32, DECEMBER, 1976, PP. 865-873.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/4
C ORIGINAL VERSION--APRIL 2004.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 IRELAT
CHARACTER*4 IRHSTG
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*1 IBASLC
C
REAL IAA
REAL IAB
REAL IBB
REAL MOMCOV
REAL MLCOV
DOUBLE PRECISION DSUM1
DOUBLE PRECISION DSUM2
DOUBLE PRECISION DSUM3
DOUBLE PRECISION DSE
DOUBLE PRECISION DS0
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION YTEMP2(*)
DIMENSION XTEMP2(*)
DIMENSION TEMP1(*)
DIMENSION TEMP2(*)
DIMENSION ITEMP1(*)
C
REAL AMLCOV(2,2)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='HE '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLHE')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLHE--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLHE')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN HERMITE MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** WARNING FROM HERMITE MAXIMUM ',
1 'LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
1139 CONTINUE
C
C ******************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR HERMITE MLE ESTIMATE **
C ******************************************
C
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLHE')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
IFLAG1=0
IFLAG2=0
IFLAG3=0
IFLAG4=0
C
DSE=0.0D0
DSO=0.0D0
DO2105I=1,N
ITEMP=INT(Y(I)+0.5)
IF(MOD(ITEMP,2).EQ.0)THEN
DSE=DSE + 1.0D0
ELSE
DSO=DSO + 1.0D0
ENDIF
Y(I)=REAL(ITEMP)
2105 CONTINUE
IERROR='NO'
IWRITE='OFF'
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
IF(XMIN.LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2111)
2111 FORMAT('***** ERROR FROM HERMITE MAXIMUM ',
1 'LIKELIHOOD ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2113)
2113 FORMAT(' NEGATIVE VALUE ENCOUNTERED.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL VAR(Y,N,IWRITE,XVAR,IBUGA3,IERROR)
C
TEMP=XVAR - XMEAN
IF(TEMP.LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2121)
2121 FORMAT('***** ERROR FROM HERMITE MAXIMUM LIKELIHOOD ',
1 'ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2123)
2123 FORMAT(' MEAN IS GREATER THAN VARIANCE. MOMENT AND ')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2125)
2125 FORMAT(' MAXIMUM LIKELIHOOD ESTIMATES DO NOT EXIST.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2127)
2127 FORMAT(' HERMITE DISTRIBUTION NOT APPROPRIATE FOR ',
1 'THESE DATA.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2129)XMEAN,XVAR
2129 FORMAT(' MEAN = ',F14.7,' AND VARIANCE = ',F14.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
ALPHAM=SQRT(XVAR - XMEAN)
BETAMO=(XVAR/ALPHAM) - 2.0*ALPHAM
IF(BETAMO.LE.0.0)IFLAG1=1
IF(IFLAG1.EQ.0)THEN
AHAT=ALPHAM*BETAMO
BHAT=ALPHAM**2/2.0
AN=REAL(N)
TERM1=(1.0/AN)*(AHAT + 2.0*(AHAT + 4.0*BHAT)**2)
TERM2=(1.0/AN**2)*(2.0*AHAT - 2.0*(AHAT + 4.0*BHAT)**2)
TERM3=(1.0/AN**3)*(AHAT + 16.0*BHAT)
AMOVAR=TERM1 + TERM2 + TERM3
TERM1=(1.0/AN)*(BHAT + 0.5*(AHAT + 4.0*BHAT)**2)
TERM2=(1.0/AN**2)*(-4.0*BHAT - 0.5*(AHAT + 4.0*BHAT)**2)
TERM3=(1.0/AN**3)*(0.25*AHAT + 4.0*BHAT)
BMOVAR=TERM1 + TERM2 + TERM3
TERM1=(1.0/AN)*(-1.0*(AHAT + 4.0*BHAT)**2)
TERM2=(1.0/AN**2)*(-0.5*AHAT + 4.0*BHAT + (AHAT+4.0*BHAT)**2)
TERM3=(1.0/AN**3)*(-0.5*AHAT - 8.0*BHAT)
MOMCOV=TERM1 + TERM2 + TERM3
ENDIF
C
C EVEN POINT ESTIMATOR
C
C NOTE: FORMULAS FOR VARIANCES, COVARIANCE IN PATEL ARTICLE
C SEEM TO BE INCORRECT (I.E., PLUGGING AHAT AND BHAT INTO
C HIS FORMULAS DOES NOT GIVE ANYTHING CLOSE TO HIS PRINTED
C RESULTS, I SUSPECT EXP(4*A) TERM IS NOT ACCURATE).
C
IF(DSE.GT.DSO)THEN
AHAT=REAL(-0.5D0*DLOG(2.0D0*DSE/DBLE(N) - 1.0D0))
BHAT=0.5*(XMEAN - AHAT)
ALPHEP=SQRT(2.0*BHAT)
BETAEP=AHAT/SQRT(2.0*BHAT)
CCCCC AEPVAR=0.25*(EXP(4.0*AHAT) - 1.0)
CCCCC BEPVAR=(1.0/16.0)*(EXP(4.0*AHAT) - 1.0 - 4.0*AHAT + 16.0*BHAT)
CCCCC EPCOV=(1.0/8.0)*(4.0*AHAT - EXP(4.0*AHAT) + 1.0)
ELSE
IFLAG2=1
ENDIF
C
C BIN DATA FOR ZERO FREQUENCY AND MAXIMUM LIKELIHOOD ESTIMATES
C
IRELAT='OFF'
IRHSTG='OFF'
XSTART=XMIN-0.5
XSTOP=XMAX+0.5
CLWID=1.0
CALL DPBINI(Y,N,IRELAT,CLWID,XSTART,XSTOP,IRHSTG,
1 YTEMP2,XTEMP2,N2,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ZERO FREQUENCY AND MEAN ESTIMATOR
C
DO2160I=1,N2
IF(XTEMP2(I).EQ.XMIN)THEN
AN0=YTEMP2(I)
GOTO2169
ENDIF
2160 CONTINUE
IFLAG3=1
2169 CONTINUE
C
IF(IFLAG3.EQ.0)THEN
AN=REAL(N)
ALOWLM=-LOG(AN0/AN)
AUPPLM=-2.0*LOG(AN0/AN)
IF(XMEAN.GE.ALOWLM .AND. XMEAN.LE.AUPPLM)THEN
ATEMP=LOG(AN0/AN)
AHAT=-(XMEAN + 2.0*ATEMP)
BHAT=XMEAN + ATEMP
ALPHZF=SQRT(2.0*BHAT)
BETAZF=AHAT/SQRT(2.0*BHAT)
Z=EXP(AHAT+BHAT)
AZFVAR=(1.0/AN)*(4.0*Z - 3.0*AHAT - 4.0*BHAT - 4.0)
BZFVAR=(1.0/AN)*(Z - AHAT - 1.0)
ZFCOV=(2.0/AN)*(Z - AHAT - BHAT - 1.0)
ELSE
IFLAG3=1
ENDIF
ENDIF
C
C USE MOMENT ESTIMATORS AS INITIAL VALUES FOR MAXIMUM
C LIKELIHOOD. CALL DPBINI TO CREATE f(n) VALUES.
C
BETAML=BETAMO
IF(BETAML.LE.0.01)BETAML=0.3
ALPHML=ALPHAM
IF(ALPHML.LE.0.01)ALPHML=0.3
MAXIT=100
ITER=0
C
2200 CONTINUE
ITER=ITER+1
IF(ITER.GT.MAXIT)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2201)
2201 FORMAT('***** WARNING FROM HERMITE MAXIMUM LIKELIHOOD ',
1 'ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2203)
2203 FORMAT(' MAXIMUM NUMBER OF ITERATIONS REACHED ',
1 'WITHOUT CONVERGENCE.')
CALL DPWRST('XXX','WRIT')
GOTO2299
ENDIF
C
IAB=REAL(N)
IF(ALPHML.GT.0.0)THEN
IAA=REAL(N)*(1.0 + XMEAN/(ALPHML*ALPHML))
ELSE
IFLAG4=1
GOTO2299
ENDIF
C
DSUM1=0.0D0
DSUM2=0.0D0
DSUM3=0.0D0
ANMAX=XTEMP2(N2)
DO2210I=1,N2
AN=XTEMP2(I)
FN=YTEMP2(I)
CALL HERPDF(AN,ALPHML,BETAML,PDFN)
AN2=AN-1
IF(AN2.GE.0.0)THEN
CALL HERPDF(AN2,ALPHML,BETAML,PDFNM1)
ELSE
PDFNM1=0.0
ENDIF
IF(PDFN.GT.0.0)THEN
THETAN=(PDFNM1/PDFN) - 1.0
ELSE
THETAN=0.0
ENDIF
DSUM1=DSUM1 + DBLE(FN)*DBLE(THETAN)
DSUM2=DSUM2 + DBLE(PDFN)*DBLE(THETAN)**2
2210 CONTINUE
C
SB=ALPHML*REAL(DSUM1)
IBB=REAL(N)*ALPHML*ALPHML*REAL(DSUM2)
BETANW=BETAML + (IAA*SB)/(IAA*IBB - IAB*IAB)
ALPHML=(-BETANW + SQRT(BETANW*BETANW + 4.0*XMEAN))/2.0
C
C CHECK FOR CONVERGENCE
C
IF(ABS(BETANW - BETAML).GT.0.0001)THEN
BETAML=BETANW
GOTO2200
ELSE
BETAML=BETANW
ENDIF
C
2299 CONTINUE
C
IF(IFLAG4.EQ.0)THEN
AMLCOV(1,1)=IAA
AMLCOV(2,2)=IBB
AMLCOV(1,2)=IAB
AMLCOV(2,1)=IAB
MAXROM=2
NR1=2
CALL SGECO(AMLCOV,MAXROM,NR1,ITEMP1,RCOND,TEMP1)
IJOB=1
CALL SGEDI(AMLCOV,MAXROM,NR1,ITEMP1,TEMP1,TEMP2,IJOB)
AMLVAR=AMLCOV(1,1)
BMLVAR=AMLCOV(2,2)
MLCOV=AMLCOV(1,2)
ENDIF
C
C ******************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR HERMITE MLE ESTIMATE **
C ******************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLHE')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' HERMITE Parameter Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5065 FORMAT(' Sample Variance:')
5066 FORMAT(' Method of Moments')
5067 FORMAT(' Method of Even Points')
5068 FORMAT(' Method of First Frequency and Mean')
5069 FORMAT(' Method of Maximum Likelihood')
5071 FORMAT(' Estimate of Alpha:')
5072 FORMAT(' Estimate of Beta:')
5073 FORMAT(' Variance of Alpha:')
5074 FORMAT(' Variance of Beta:')
5075 FORMAT(' Covariance of Alpha and Beta:')
5076 FORMAT(' Sample Even Sums:')
5077 FORMAT(' Sample Odd Sums:')
5078 FORMAT(' Sample First Frequency:')
5081 FORMAT(' Computed Estimates are Inadmissable')
5091 FORMAT(' Estimate of A:')
5092 FORMAT(' Estimate of B:')
5093 FORMAT(' Variance of A:')
5094 FORMAT(' Variance of B:')
5095 FORMAT(' Covariance of A and B:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(IFLAG1.EQ.1)THEN
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5081)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ELSE
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALPHAM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BETAMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
AHAT=ALPHAM*BETAMO
BHAT=ALPHAM**2/2.0
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5092)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMOVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5094)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BMOVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5095)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)MOMCOV
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ENDIF
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5076)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)REAL(DSE)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5077)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)REAL(DSO)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(IFLAG1.EQ.1)THEN
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5081)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ELSE
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALPHEP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BETAEP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
AHAT=ALPHEP*BETAEP
BHAT=ALPHEP**2/2.0
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5092)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ENDIF
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5078)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AN0
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(IFLAG3.EQ.1)THEN
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5081)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ELSE
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALPHZF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BETAZF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
AHAT=ALPHZF*BETAZF
BHAT=ALPHZF**2/2.0
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5092)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AZFVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5094)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BZFVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5095)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ZFCOV
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ENDIF
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(IFLAG4.EQ.1)THEN
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5081)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ELSE
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALPHML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BETAML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
AHAT=ALPHML*BETAML
BHAT=ALPHML**2/2.0
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5092)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMLVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5074)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BMLVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5075)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)MLCOV
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ENDIF
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5097 FORMAT(' ')
5098 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5097)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5098)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf HERMITE Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
C
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Sum of Even Points: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'Sum of Odd Points: & ',G15.7,2X,A1,A1)
8028 FORMAT(5X,'Sample First Frequency: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'Computations Result in Inadmissable Estimates: & ',
1 2X,A1,A1)
8030 FORMAT(5X,'Maximum Likelihood Estimates Questionable: & ',
1 2X,A1,A1)
C
8031 FORMAT(5X,'{',A1,'bf Method of Moments}: & ',2X,A1,A1)
8032 FORMAT(5X,'{',A1,'bf Method of Even Points}: & ',2X,A1,A1)
8033 FORMAT(5X,'{',A1,'bf Method of First Frequency and Mean}: & ',
1 2X,A1,A1)
8034 FORMAT(5X,'{',A1,'bf Method of Maximum Likelihood}: & ',
1 2X,A1,A1)
C
8041 FORMAT(5X,'Estimate of $',A1,'alpha$: & ',G15.7,2X,A1,A1)
8042 FORMAT(5X,'Estimate of $',A1,'beta$: & ',G15.7,2X,A1,A1)
8043 FORMAT(5X,'Variance of $',A1,'alpha$: & ',G15.7,2X,A1,A1)
8044 FORMAT(5X,'Variance of $',A1,'beta$: & ',G15.7,2X,A1,A1)
8045 FORMAT(5X,'Covariance of $',A1,'alpha$ and $',A1,'beta$: & ',
1 G15.7,2X,A1,A1)
8051 FORMAT(5X,'Estimate of a: & ',G15.7,2X,A1,A1)
8052 FORMAT(5X,'Estimate of b: & ',G15.7,2X,A1,A1)
8053 FORMAT(5X,'Variance of a: & ',G15.7,2X,A1,A1)
8054 FORMAT(5X,'Variance of b: & ',G15.7,2X,A1,A1)
8055 FORMAT(5X,'Covariance of a and b: & ',G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
C
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8031)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IFLAG1.EQ.0)THEN
WRITE(ICOUT,8041)IBASLC,ALPHAM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8042)IBASLC,BETAMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
AHAT=ALPHAM*BETAMO
BHAT=ALPHAM**2/2.0
WRITE(ICOUT,8051)AHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8052)BHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8053)AMOVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8054)BMOVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8055)MOMCOV,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8029)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,8032)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)REAL(DSE),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)REAL(DSO),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IFLAG2.EQ.0)THEN
WRITE(ICOUT,8041)IBASLC,ALPHEP,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8042)IBASLC,BETAEP,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
AHAT=ALPHEP*BETAEP
BHAT=ALPHEP**2/2.0
WRITE(ICOUT,8051)AHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8052)BHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,8053)AEPVAR,IBASLC,IBASLC
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,8054)BEPVAR,IBASLC,IBASLC
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,8055)EPCOV,IBASLC,IBASLC
CCCCC CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8029)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,8033)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)AN0,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IFLAG3.EQ.0)THEN
WRITE(ICOUT,8041)IBASLC,ALPHZF,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8042)IBASLC,BETAZF,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
AHAT=ALPHZF*BETAZF
BHAT=ALPHZF**2/2.0
WRITE(ICOUT,8051)AHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8052)BHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8053)AZFVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8054)BZFVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8055)ZFCOV,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8029)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,8033)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IFLAG4.EQ.0)THEN
WRITE(ICOUT,8041)IBASLC,ALPHML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8042)IBASLC,BETAML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
AHAT=ALPHML*BETAML
BHAT=ALPHML**2/2.0
WRITE(ICOUT,8051)AHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8052)BHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8043)IBASLC,AMLVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8044)IBASLC,BMLVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8045)IBASLC,IBASLC,MLCOV,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8030)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4301)
4301 FORMAT(12X,'HERMITE PARAMETER ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4303)N
4303 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4305)XMIN
4305 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4307)XMAX
4307 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4308)XMEAN
4308 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4309)XVAR
4309 FORMAT('SAMPLE VARIANCE = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4311)
4311 FORMAT('METHOD OF MOMENTS')
CALL DPWRST('XXX','WRIT')
IF(IFLAG1.EQ.0)THEN
WRITE(ICOUT,4312)ALPHAM
4312 FORMAT(6X,'ESTIMATE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4313)BETAMO
4313 FORMAT(6X,'ESTIMATE OF BETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
AHAT=ALPHAM*BETAMO
BHAT=ALPHAM**2/2.0
WRITE(ICOUT,4314)AHAT
4314 FORMAT(6X,'ESTIMATE OF A = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4315)BHAT
4315 FORMAT(6X,'ESTIMATE OF B = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4316)AMOVAR
4316 FORMAT(6X,'ESTIMATE OF VARIANCE OF A = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4317)BMOVAR
4317 FORMAT(6X,'ESTIMATE OF VARIANCE OF B = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4318)MOMCOV
4318 FORMAT(6X,'ESTIMATE OF COVARIANCE OF A AND B = ',G15.7)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4319)
4319 FORMAT(6X,'INADMISSABLE ESTIMATES')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4321)
4321 FORMAT('METHOD OF EVEN POINTS')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4323)REAL(DSE)
4323 FORMAT(6X,'SUM OF EVEN FREQUENCIES = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4324)REAL(DSO)
4324 FORMAT(6X,'SUM OF ODD FREQUENCIES = ',G15.7)
CALL DPWRST('XXX','WRIT')
IF(IFLAG2.EQ.0)THEN
WRITE(ICOUT,4312)ALPHEP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4313)BETAEP
CALL DPWRST('XXX','WRIT')
AHAT=ALPHEP*BETAEP
BHAT=ALPHEP**2/2.0
WRITE(ICOUT,4314)AHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4315)BHAT
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,4316)AEPVAR
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,4317)BEPVAR
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,4318)EPCOV
CCCCC CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4329)
4329 FORMAT(6X,'INADMISSABLE ESTIMATES')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4331)
4331 FORMAT('METHOD OF ZERO FREQUENCY AND MEAN')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4333)AN0
4333 FORMAT(6X,'ZERO FREQUENCY = ',G15.7)
CALL DPWRST('XXX','WRIT')
IF(IFLAG3.EQ.0)THEN
WRITE(ICOUT,4312)ALPHZF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4313)BETAZF
CALL DPWRST('XXX','WRIT')
AHAT=ALPHZF*BETAZF
BHAT=ALPHZF**2/2.0
WRITE(ICOUT,4314)AHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4315)BHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4316)AZFVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4317)BZFVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4318)ZFCOV
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4339)
4339 FORMAT(6X,'INADMISSABLE ESTIMATES')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4341)
4341 FORMAT('METHOD OF MAXIMUM LIKELIHOOD')
CALL DPWRST('XXX','WRIT')
IF(IFLAG4.EQ.0)THEN
WRITE(ICOUT,4312)ALPHML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4313)BETAML
CALL DPWRST('XXX','WRIT')
AHAT=ALPHML*BETAML
BHAT=ALPHML**2/2.0
WRITE(ICOUT,4314)AHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4315)BHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4346)AMLVAR
4346 FORMAT(6X,'ESTIMATE OF VARIANCE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4347)BMLVAR
4347 FORMAT(6X,'ESTIMATE OF VARIANCE OF BETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4348)
4348 FORMAT(6X,'ESTIMATE OF COVARIANCE OF ')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4349)MLCOV
4349 FORMAT(6X,'ALPHA AND BETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4351)
4351 FORMAT(6X,'UNABLE TO COMPUTE ESTIMATES')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4361)
4361 FORMAT('ALPHAMOM, BETAMOM, ALPHAML, BETAML, ALPHAZF, ',
1 'BETAZF, ALPHAEP, AND BETAEP')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4363)
4363 FORMAT('WILL BE SAVED AS INTERNAL PARAMETERS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLHE')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLHE--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLHY(Y,N,ITEMP1,ITEMP2,
1XTEMP,MAXNXT,
1ICAPSW,ICAPTY,IHYPTY,IOUNI1,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR HYPERGEOMETRIC DISTRIBUTION.
C FOR THE HYPERGEOMETRIC DISTRIBUTION, WE HAVE:
C
C 1) N = TOTAL NUMBER OF ITEMS IN POPULATION
C 2) n = NUMBER OF ITEMS SAMPLED (STORED IN THE
C ITEMP1 ARRAY)
C 3) K = NUMBER OF DEFECTIVE ITEMS (OR SUCCESSES)
C IN POPULATION
C 4) x = NUMBER OF DEFECTIVES IN SAMPLE (STORED IN
C Y ARRAY)
C
C THERE ARE TWO DISTINCT CASES:
C
C GIVEN THAT N (THE POPULATION SIZE) IS KNOWN, WE
C WANT TO ESTIMATE THE NUMBER OF DEFECTIVES IN
C THE POPULATION GIVEN A SAMPLE OF SIZE n WITH x
C DEFECTIVES. AN EXAMPLE IS ACCEPTANCE SAMPLING
C WHERE THE LOT SIZE IS KNOWN AND A SUBSAMPLE IS
C CHOOSEN FOR INSPECTION. IN THIS CASE, THE MAXIMUM
C LIKELIHOOD ESTIMATE OF K IS:
C
C K = MAX INTEGER <= x*(N+1)/n
C
C IN CAPTURE/RECAPTURE PROBLEMS, A SAMPLE IS TAKEN
C AND MARKED. THAT IS, K IS KNOWN. THEN A SECOND
C SAMPLE (OF SIZE n) IS TAKEN AND THE NUMBER OF MARKED
C ITEMS (x) ARE COUNTED. IN THIS CASE,
C THE MAXIMUM LIKELIHOOD ESTIMATES ARE:
C
C N = MAX INTEGER <= n*K/x
C
C WE IMPLEMENT THE REFINEMENT OF CHAPMAN (SEE
C PAGE 263 OF JOHNSON, KOTZ, AND KEMP):
C
C N* = (n+1)*(K+1)/(x+1) - 1
C
C FORMULAS FOR THE VARIANCE ARE ALSO GIVEN IN
C JOHNSON, KOTZ, AND KEMP.
C
C
C EXAMPLE--HYPERGEOMETRIC MAXIMUM LIKELIHOOD NUMDEF NSAMP NPOP
C HYPERGEOMETRIC MAXIMUM LIKELIHOOD NUMDEF NSAMP NK
C REFERENCE--"UNIVARIATE DISCRETE DISTRIBUTIONS", SECOND EDITION,
C JOHNSON, KOTZ, AND KEMP, WILEY, PP. 262-264.
C --"STATISTICAL DISTRIBUTIONS", THIRD EDITION,
C EVANS, HASTINGS, AND PEACOCK, WILEY, PP. 109-113.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/3
C ORIGINAL VERSION--MARCH 2004.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 IHYPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
DIMENSION ITEMP1(*)
DIMENSION ITEMP2(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='HY '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLHY')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLHY--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3,IHYPTY
52 FORMAT('IBUGA3,IHYPTY = ',A4,1X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I),ITEMP1(I),ITEMP2(I)
57 FORMAT('I,Y(I),ITEMP1(I) = ',I8,E15.7,2I8)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLHY')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LT.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN HYPERGEOMETRIC MAXIMUM ',
1 'LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS NON-POSITIVE.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
C ********************************************
C ** STEP 21-- **
C ** PRINT OUT PRELIMINARY INFORMATION **
C ********************************************
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Hypergeometric Maximum Likelihood ',
1 'Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
5021 FORMAT(' ')
5023 FORMAT(' | ')
5027 FORMAT(' | ')
5029 FORMAT(' ')
5031 FORMAT(' Number of Defectives in Sample')
5032 FORMAT(' Number of Items in Sample')
5033 FORMAT(' Number of Defectives in Population')
5034 FORMAT(' Number of Defectives in Population')
5035 FORMAT(' Maximum Likelihood Estimate of ',
1 'Defectives in Population')
5036 FORMAT(' Maximum Likelihood Estimate of ',
1 'Population Size')
5037 FORMAT(' Approximate Variance of ',
1 'Estimate')
5038 FORMAT(' ')
5039 FORMAT(' ')
C
WRITE(ICOUT,5021)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5023)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5031)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5027)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5023)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5032)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5027)
CALL DPWRST('XXX','WRIT')
IF(IHYPTY.EQ.'ACCE')THEN
WRITE(ICOUT,5023)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5033)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5027)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5023)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5035)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5027)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,5023)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5033)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5027)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5023)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5036)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5027)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5023)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5037)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5027)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5029)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5021)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5038)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5039)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5027)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5021)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Hypergeometric Maximum Likelihood ',
1 'Estimate}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8021 FORMAT(5X,'Number of & Number of & Number of & ',
1 'Maximum Likelihood & Approximate', 2X,A1,A1)
8022 FORMAT(5X,'Defectives & Items & Items & ',
1 'Estimate of & Variance of', 2X,A1,A1)
8023 FORMAT(5X,'Defectives & Items & Items & ',
1 'Estimate of & Variance of', 2X,A1,A1)
8024 FORMAT(5X,'Defectives & Items & Defectives & ',
1 'Estimate of', 2X,A1,A1)
8025 FORMAT(5X,'In Sample & In Sample & In Population & ',
1 'Defectives in Population & Estimate', 2X,A1,A1)
8026 FORMAT(5X,'In Sample & In Sample & In Population & ',
1 'Population Size & Estimate', 2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IHYPTY.EQ.'ACCE')THEN
WRITE(ICOUT,8023)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8024)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4301)
4301 FORMAT('HYPERGEOMETRIC MAXIMUM LIKELIHOOD ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4311)
4311 FORMAT('NUMBER OF NUMBER OF NUMBER OF ',
1 ' MAXIMUM LIKELIHOOD APPROXIMATE')
CALL DPWRST('XXX','WRIT')
IF(IHYPTY.EQ.'ACCE')THEN
WRITE(ICOUT,4313)
4313 FORMAT('DEFECTIVES ITEMS ITEMS ',
1 ' ESTIMATE OF VARIANCE OF')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4315)
4315 FORMAT('IN SAMPLE IN SAMPLE IN POPULATION',
1 ' DEFECTIVES IN POPULATION ESTIMATE')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4323)
4323 FORMAT('DEFECTIVES ITEMS DEFECTIVES ',
1 ' ESTIMATE OF VARIANCE OF')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4325)
4325 FORMAT('IN SAMPLE IN SAMPLE IN POPULATION',
1 ' POPULATION SIZE ESTIMATE')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4331)
4331 FORMAT('------------------------------------------',
1 '-----------------------------------------')
CALL DPWRST('XXX','WRIT')
C
ENDIF
ENDIF
C
C ****************************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR HYPERGEOMETRIC MLE ESTIMATE **
C ****************************************
C
4100 CONTINUE
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLHY')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
DO1405I=1,N
ITEMP=INT(Y(I)+0.5)
Y(I)=REAL(ITEMP)
IF(ITEMP.LT.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1411)
1411 FORMAT('***** ERROR FROM HYPERGEOMETRIC MAXIMUM ',
1 'LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1413)
1413 FORMAT(' NEGATIVE VALUE ENCOUNTERED FOR NUMBER OF ',
1 'DEFECTIVES.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ELSEIF(ITEMP1(I).LT.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1421)
1421 FORMAT('***** ERROR FROM HYPERGEOMETRIC MAXIMUM ',
1 'LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1423)
1423 FORMAT(' NON-POSITIVE VALUE ENCOUNTERED IN SECOND ',
1 'RESPONSE VARIABLE.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ELSEIF(ITEMP2(I).LT.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1431)
1431 FORMAT('***** ERROR FROM HYPERGEOMETRIC MAXIMUM ',
1 'LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1433)
1433 FORMAT(' NON-POSITIVE VALUE ENCOUNTERED IN THIRD ',
1 'RESPONSE VARIABLE.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1405 CONTINUE
IERROR='NO'
IWRITE='OFF'
C
IF(IHYPTY.EQ.'ACCE')THEN
DO2010I=1,N
IX=Y(I)
NSAMP=ITEMP1(I)
NPOP=ITEMP2(I)
ANSAMP=REAL(NSAMP)
ANPOP=REAL(NPOP)
AX=REAL(IX)
AK=AX*(ANPOP+1.0)/ANSAMP
K=INT(AK)
AK=REAL(K)
AP=AK/ANPOP
AVAR=(ANPOP+1.0)**2*(ANPOP-ANSAMP)*AP*(1.0-AP)/
1 (ANSAMP*(ANPOP-1.0))
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' | ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5053 FORMAT(' ',I8)
5055 FORMAT(' ',E15.7)
5059 FORMAT(' ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)IX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)NSAMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)NPOP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)K
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)AVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
8031 FORMAT(5X,I8,' & ',I8,' & ',I8,' & ',I8,' & ',G15.7,
1 2X,A1,A1)
WRITE(ICOUT,8031)IX,NSAMP,NPOP,K,AVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4351)IX,NSAMP,NPOP,K,AVAR
WRITE(IOUNI1,4352)IX,NSAMP,NPOP,K,AVAR
4351 FORMAT(I8,5X,I8,9X,I8,10X,I8,12X,E15.7)
4352 FORMAT(4(I8,2X),E15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
ENDIF
2010 CONTINUE
ELSE
DO2610I=1,N
IX=Y(I)
NSAMP=ITEMP1(I)
NK=ITEMP2(I)
ANSAMP=REAL(NSAMP)
AK=REAL(NK)
AX=REAL(IX)
CCCCC AN=REAL(NSAMP)*REAL(NK)/REAL(IX)
AN=((ANSAMP+1.0)*(AK+1.0)/(AX+1.0)) - 1.0
NPOP=INT(AN)
AN=NPOP
AM=ANSAMP*AK/AN
TERM1=(AM**(-1) + 2.0*AM**(-2) + 6.0*AN**(-3))
AVAR=AN**2*TERM1
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 4: DEFINE DATA ROW
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)IX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)NSAMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)NK
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)NPOP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)AVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
WRITE(ICOUT,8031)IX,NSAMP,NK,NPOP,AVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4351)IX,NSAMP,NK,NPOP,AVAR
CALL DPWRST('XXX','WRIT')
WRITE(IOUNI1,4352)IX,NSAMP,NK,NPOP,AVAR
ENDIF
ENDIF
2610 CONTINUE
ENDIF
C
C ******************************************
C ** STEP 42-- **
C ** CLOSE OUT TABLES **
C ******************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLHY')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLHY')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLHY--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLIG(Y,N,
1XTEMP,MAXNXT,
1GAMMA,XSCALE,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR INVERSE GAUSSIAN DISTRIBUTION
C EXAMPLE--INVERSE GAUSSIAN MAXIMUM LIKELIHOOD Y
C REFERENCE--XX
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--98/5
C ORIGINAL VERSION--MAY 1998.
C UPDATED --DECEMBER 2003. SUPPORT HTML/LATEX OUTPUT
C UPDATED --AUGUST 2005. MODIFY THE OUTPUT FORMAT FOR
C CONSISTECY WITH OTHER ML
C ROUTINES
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
DOUBLE PRECISION DSUM
C
CHARACTER*4 ICAPTY
CHARACTER*4 ICAPSW
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 IBASLC
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='IG '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLIG')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLIG--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','BUG ')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','BUG ')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLIG')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LT.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN INVERSE GAUSSIAN MAXIMUM LIKELIHOOD ',
1 'ESTIMATION.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1112)
1112 FORMAT(' THE NUMBER OF OBSERVATIONS FOR THE RESPONSE ',
1 'VARIABLE IS LESS THAN OR EQUAL TO 1.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1113)N
1113 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1131)HOLD
1131 FORMAT('***** NOTE FROM INVERSE GAUSSIAN MAXIMUM ',
1 'LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1132)HOLD
1132 FORMAT(' RESPONSE VARIABLE HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','BUG ')
GOTO9000
C
1139 CONTINUE
C
1290 CONTINUE
C
C ****************************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR INVERSE GAUSSIAN MLE ESTIMATE **
C ****************************************
C
4100 CONTINUE
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLIG')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
DO4110I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4111)
4111 FORMAT('***** NOTE FROM INVERSE GAUSSIAN MAXIMUM ',
1 'LIKELIHOOD ESTIMATION--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4113)
4113 FORMAT(' NON-POSITIVE VALUE DETECTED.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
4110 CONTINUE
C
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
C
DSUM=0.0D0
DO4120I=1,N
DSUM=DSUM + (1.0D0/DBLE(Y(I)) - 1.0D0/DBLE(XMEAN))
4120 CONTINUE
GAMMA=REAL(DBLE(N)/DSUM)
XSCALE=XMEAN
C
C *******************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR INVERSE GAUSSIAN MLE ESTIMATE **
C *******************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLIG')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Inverse Gaussian Parameter Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean:')
5062 FORMAT(' Sample Standard Deviation:')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5065 FORMAT(' Estimate of Gamma Shape Parameter:')
5066 FORMAT(' Estimate of Mu Shape Parameter:')
5067 FORMAT(' Estimate of Gamma Shape Parameter:')
5068 FORMAT(' Estimate of Mu Shape Parameter:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5071 FORMAT(' Summary Statistics:')
5073 FORMAT(' Maximum Likelihood Estimates:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMA
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSCALE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Inverse Gaussian Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8028 FORMAT(5X,'Estimate of $',A1,'gamma$ shape parameter: & ',
1 G15.7,2X,A1,A1)
8029 FORMAT(5X,'Estimate of $',A1,'mu$ shape parameter: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Summary Statistics: & ',2X,A1,A1)
8032 FORMAT(5X,'Maximum Likelihood Estimates: & ',2X,A1,A1)
8033 FORMAT(5X,' & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8033)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,GAMMA,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)XSCALE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(12X,
1 'INVERSE GAUSSIAN MAXIMUM LIKELIHOOD ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4220)
4220 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)XMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)XSD
4223 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4224)XMIN
4224 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)XMAX
4225 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4240)
4240 FORMAT('METHOD OF MAXIMUM LIKELIHOOD:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4241)GAMMA
4241 FORMAT('ESTIMATE OF GAMMA SHAPE PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)XSCALE
4243 FORMAT('ESTIMATE OF MU SHAPE PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4251)
4251 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4252)
4252 FORMAT('GAMMAML, AND MUML.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MLIG')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLIG--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMLJO(Y,N,
1XTEMP,MAXNXT,
1ALPHA1,ALPHA2,ALOC,SCALE,
1Z,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE PARAMETER ESTIMATES FOR
C THE JOHNSON SU/SB DISTRIBUTIONS USING THE PERCENTILE
C METHOD OF SLIFKER AND SHAPIRO.
C EXAMPLE--JOHNSON PERCENTILE Y
C REFERENCE--JAMES F. SLIFKER AND SAMUEL S. SHAPIRO, "THE JOHNSON
C SYSTEM: SELECTION AND PARAMETER ESTIMATION",
C TECHNOMETRICS, VOL. 22, NO. 2, MAY 1980, PP. 239-246.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/4
C ORIGINAL VERSION--APRIL 2004.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 ITYPE
CHARACTER*4 IQUAME
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='JO '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLJO')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLJO--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLJO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN JOHNSON PERCENTILE ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN JOHNSON PERCENTILE ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
C **************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR JOHNSON PERCENTILE ESTIMATE **
C **************************************
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLJO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
AN=N
C
CCCCC Z=0.524
ZM=-Z
Z3=3*Z
Z3M=-3*Z
CALL NORCDF(Z,PZ)
CALL NORCDF(ZM,PZM)
CALL NORCDF(Z3,PZ3)
CALL NORCDF(Z3M,PZ3M)
C
CCCCC CALL SORT(Y,N,XTEMP)
C
CALL QUANT(PZ,Y,N,IWRITE,XTEMP,MAXNXT,
1IQUAME,
1XZ,IBUGA3,IERROR)
CALL QUANT(PZM,Y,N,IWRITE,XTEMP,MAXNXT,
1IQUAME,
1XZM,IBUGA3,IERROR)
CALL QUANT(PZ3,Y,N,IWRITE,XTEMP,MAXNXT,
1IQUAME,
1XZ3,IBUGA3,IERROR)
CALL QUANT(PZ3M,Y,N,IWRITE,XTEMP,MAXNXT,
1IQUAME,
1XZ3M,IBUGA3,IERROR)
C
AM=XZ3 - XZ
AN2=XZM - XZ3M
AP=XZ - XZM
ACUT=AM*AN2/(AP*AP)
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLJO')THEN
WRITE(ICOUT,2190)Z,ZM,Z3,Z3M
2190 FORMAT('Z,ZM,Z3,Z3M = ',4G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2191)PZ,PZM,PZ3,PZ3M
2191 FORMAT('PZ,PZM,PZ3,PZ3M = ',4G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2192)XZ,XZM,XZ3,XZ3M
2192 FORMAT('XZ,XZM,XZ3,XZ3M = ',4G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2193)AM,AN2,AP,ACUT
2193 FORMAT('AM,AN2,AP,ACUT = ',4G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(ACUT.GE.0.99 .AND. ACUT.LE.1.01)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2201)
2201 FORMAT('***** FROM JOHNSON PERCENTILE ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2203)
2203 FORMAT(' COMPUTATIONS SUGGEST THE LOGNORMAL DISTRIBUTION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2205)
2205 FORMAT(' IS THE MOST APPROPRIATE MODEL. NO JOHNSON ',
1 'SB/SU ESTIMATION IS PERFORMED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ALPHA1=0.0
ALPHA2=0.0
ALOC=0.0
SCALE=1.0
GOTO9000
ELSEIF(ACUT.GT.1.01)THEN
ITYPE='SU'
ANUM=2.0*Z
TERM1=0.5*((AM/AP) + (AN2/AP))
IF(TERM1.LT.1.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2211)
2211 FORMAT('***** FROM JOHNSON PERCENTILE ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2213)
2213 FORMAT(' SQUARE ROOT OF A NEGATVE NUMBER ENCOUNTERED')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2215)
2215 FORMAT(' IN COMPUTING ESTIMATE OF ALPHA2. NO JOHNSON',
1 'SB/SU ESTIMATION IS PERFORMED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ALPHA1=0.0
ALPHA2=0.0
ALOC=0.0
SCALE=1.0
GOTO9000
ELSE
ADENOM=ALOG(TERM1+SQRT(TERM1*TERM1-1.0))
ENDIF
ALPHA2=ANUM/ADENOM
C
ANUM=(AN2/AP) - (AM/AP)
TERM1=(AM/AP)*(AN2/AP) - 1.0
IF(TERM1.LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2221)
2221 FORMAT('***** FROM JOHNSON PERCENTILE ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2223)
2223 FORMAT(' SQUARE ROOT OF A NEGATVE NUMBER ENCOUNTERED')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2225)
2225 FORMAT(' IN COMPUTING ESTIMATE OF ALPHA1. NO JOHNSON',
1 'SB/SU ESTIMATION IS PERFORMED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2227)Z
2227 FORMAT(' TRY ADJUSTING THE VALUE OF Z (CURRENTLY = ',
1 G15.7,')')
CALL DPWRST('XXX','WRIT')
ALPHA1=0.0
ALPHA2=0.0
ALOC=0.0
SCALE=1.0
GOTO9000
ELSE
ADENOM=2.0*SQRT(TERM1)
ENDIF
TERM1=ANUM/ADENOM
TERM2=ALOG(TERM1+SQRT(TERM1*TERM1+1.0))
ALPHA1=ALPHA2*TERM2
C
ANUM=2.0*AP*SQRT((AM/AP)*(AN2/AP) - 1.0)
ADENOM=((AM/AP)+(AN2/AP)-2.0)*SQRT((AM/AP)+(AN2/AP)+2.0)
SCALE=ANUM/ADENOM
C
TERM1=(XZ + XZM)/2.0
ANUM=AP*((AN2/AP) - (AM/AP))
ADENOM=2.0*((AM/AP) + (AN2/AP) - 2.0)
ALOC=TERM1 + (ANUM/ADENOM)
C
ELSE
ITYPE='SB'
ANUM=Z
TERM1=0.5*SQRT((1.0 + (AP/AM))*(1.0 + (AP/AN2)))
IF(TERM1.LT.1.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2231)
2231 FORMAT('***** FROM JOHNSON PERCENTILE ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2233)
2233 FORMAT(' SQUARE ROOT OF A NEGATVE NUMBER ENCOUNTERED')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2235)
2235 FORMAT(' IN COMPUTING ESTIMATE OF ALPHA2. NO JOHNSON',
1 'SB/SU ESTIMATION IS PERFORMED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2227)Z
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ALPHA1=0.0
ALPHA2=0.0
ALOC=0.0
SCALE=1.0
GOTO9000
ELSE
ADENOM=ALOG(TERM1+SQRT(TERM1*TERM1-1.0))
ENDIF
ALPHA2=ANUM/ADENOM
C
ANUM=(AP/AN2) - (AP/AM)
ANUM=ANUM*SQRT((1.0 + (AP/AM))*(1.0 + (AP/AN2)) - 4.0)
ADENOM=2.0*((AP/AM)*(AP/AN2) - 1.0)
TERM1=ANUM/ADENOM
TERM2=ALOG(TERM1+SQRT(TERM1*TERM1+1.0))
ALPHA1=ALPHA2*TERM2
C
TERM1=(1.0 + (AP/AM))*(1.0 + (AP/AN2) - 2.0)**2 - 4.0
IF(TERM1.LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2241)
2241 FORMAT('***** FROM JOHNSON PERCENTILE ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2243)
2243 FORMAT(' SQUARE ROOT OF A NEGATVE NUMBER ENCOUNTERED')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2245)
2245 FORMAT(' IN COMPUTING ESTIMATE OF SCALE FOR JOHNSON ',
1 'SB.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2247)
2247 FORMAT('NO JOHNSON SB/SU ESTIMATION IS PERFORMED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2227)Z
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ALPHA1=0.0
ALPHA2=0.0
ALOC=0.0
SCALE=1.0
GOTO9000
ELSE
ANUM=AP*SQRT(TERM1 - 4.0)
ENDIF
ADENOM=((AP/AM)*(AP/AN2) - 1.0)
SCALE=ANUM/ADENOM
C
TERM1=(XZ + XZM)/2.0
TERM2=SCALE/2.0
ANUM=AP*((AP/AN2) - (AP/AM))
ADENOM=2.0*((AP/AM)*(AP/AN2) - 1.0)
IF(ADENOM.EQ.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2251)
2251 FORMAT('***** FROM JOHNSON PERCENTILE ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2253)
2253 FORMAT(' DIVISION BY ZERO ENCOUNTERED IN COMPUTING')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2255)
2255 FORMAT(' ESTIMATE OF LOCATION FOR JOHNSON SB.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2257)
2257 FORMAT('NO JOHNSON SB/SU ESTIMATION IS PERFORMED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2227)Z
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ALPHA1=0.0
ALPHA2=0.0
ALOC=0.0
SCALE=1.0
GOTO9000
ELSE
ALOC=TERM1 - TERM2 + (ANUM/ADENOM)
ENDIF
C
ENDIF
C
C *********************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR NORMAL MLE ESTIMATE **
C **********************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLJO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Johnson SB/SU Percentile Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' z Value Used:')
5065 FORMAT(' Pz = NORCDF(z):')
5066 FORMAT(' P-z = NORCDF(-z):')
5067 FORMAT(' P3z = NORCDF(3z):')
5068 FORMAT(' P-3z = NORCDF(-3z):')
5069 FORMAT(' Xz = Quantile of 0.5 + ',
1 'Pz/N:')
5070 FORMAT(' X-z = Quantile of 0.5 + ',
1 'P-z/N:')
5071 FORMAT(' X3z = Quantile of 0.5 + ',
1 'P3z/N:')
5072 FORMAT(' X-3z = Quantile of 0.5 + ',
1 'P-3z/N:')
5073 FORMAT(' m = X3z - Xz:')
5074 FORMAT(' n = X-z - X3z:')
5075 FORMAT(' p = Xz - X-z:')
5076 FORMAT(' mn/p2:')
5077 FORMAT(' mn/p2 > 1 implies a ',
1 'Johnson SU Distribution')
5078 FORMAT(' mn/p2 < 1 implies a ',
1 'Johnson SB Distribution')
5079 FORMAT(' Estimate of alpha1:')
5080 FORMAT(' Estimate of alpha2:')
5081 FORMAT(' Estimate of Location:')
5082 FORMAT(' Estimate of Scale:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)Z
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PZ
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PZM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PZ3
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PZ3M
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XZ
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5070)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XZM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XZ3
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XZ3M
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5074)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AN2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5075)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5076)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ACUT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
IF(ACUT.GT.1.0)THEN
WRITE(ICOUT,5077)
ELSE
WRITE(ICOUT,5078)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5079)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALPHA1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5080)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALPHA2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5081)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5082)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Normal Maximum Likelihood Estimate}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',
1 G15.7,2X,A1,A1)
8024 FORMAT(5X,'z Value Used: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'$P_{z}$ = NORCDF($z$): & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'$P_{-z}$ = NORCDF($-z$): & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'$P_{3z}$ = NORCDF($3z$): & ',G15.7,2X,A1,A1)
8028 FORMAT(5X,'$P_{-3z}$ = NORCDF($-3z$): & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'$X_{z}$ = Quantile of 0.5 + $P_{z}/N$: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'$X_{-z}$ = Quantile of 0.5 + $P_{z}/N$: & ',
1 G15.7,2X,A1,A1)
8031 FORMAT(5X,'$X_{3z}$ = Quantile of 0.5 + $P_{z}/N$: & ',
1 G15.7,2X,A1,A1)
8032 FORMAT(5X,'$X_{-3z}$ = Quantile of 0.5 + $P_{z}/N$: & ',
1 G15.7,2X,A1,A1)
8033 FORMAT(5X,'$m = X_{3z} - X_{z}$: & ',G15.7,2X,A1,A1)
8034 FORMAT(5X,'$n = X_{-z} - X_{3z}$: & ',G15.7,2X,A1,A1)
8035 FORMAT(5X,'$p = X_{z} - X_{-z}$: & ',G15.7,2X,A1,A1)
8036 FORMAT(5X,'$mn/p^{2}$: & ',G15.7,2X,A1,A1)
8037 FORMAT(5X,'$mn/p^{2} > 1$: Implies a Johnson SU Distribution & ',
1 2X,A1,A1)
8038 FORMAT(5X,'$mn/p^{2} < 1$: Implies a Johnson SB Distribution & ',
1 2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8041 FORMAT(5X,'Estimate of $',A1,'alpha_{1}: & ',G15.7,2X,A1,A1)
8042 FORMAT(5X,'Estimate of $',A1,'alpha_{2}: & ',G15.7,2X,A1,A1)
8043 FORMAT(5X,'Estimate of Location: & ',G15.7,2X,A1,A1)
8044 FORMAT(5X,'Estimate of Scale: & ',G15.7,2X,A1,A1)
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)Z,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)PZ,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)PZM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)PZ3,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)PZ3M,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)XZ,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)XZM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)XZ3,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)XZ3M,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8033)AM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8034)AN2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8035)AP,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8036)ACUT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(ACUT.GT.1.0)THEN
WRITE(ICOUT,8037)IBASLC,IBASLC
ELSE
WRITE(ICOUT,8038)IBASLC,IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8041)IBASLC,ALPHA1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8042)IBASLC,ALPHA2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8043)IBASLC,ALOC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8044)IBASLC,SCALE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4201)
4201 FORMAT(15X,'JOHNSON PERCENTILE ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4203)N
4203 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4205)XMEAN
4205 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4207)XSD
4207 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4211)Z
4211 FORMAT('VALUE OF Z = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4213)PZ
4213 FORMAT('PZ = NORCDF(Z) = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4215)PZM
4215 FORMAT('PZM = NORCDF(-Z) = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4217)PZ3
4217 FORMAT('PZ3 = NORCDF(3*Z) = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4219)PZ3M
4219 FORMAT('PZ3M = NORCDF(-3*Z) = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4221)XZ
4221 FORMAT('XZ = QUANTILE(0.5 + PZ/N) = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)XZM
4223 FORMAT('XZM = QUANTILE(0.5 + PZM/N) = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)XZ3
4225 FORMAT('XZ3 = QUANTILE(0.5 + PZ3/N) = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)XZ3M
4227 FORMAT('XZ3M = QUANTILE(0.5 + PZ3M/N) = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4231)AM
4231 FORMAT('M = XZ3 - XZ = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)AN2
4233 FORMAT('N = XZM - XZ3 = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)AP
4235 FORMAT('P = XZ - XZM = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
IF(ACUT.GT.1.0)THEN
WRITE(ICOUT,4241)ACUT
4241 FORMAT('M*N/P^2 = ',G15.7,' > 1 IMPLIES JOHNSON SU ',
1 'DISTRIBUTION')
CALL DPWRST('XXX','WRIT')
ELSEIF(ACUT.LT.1.0)THEN
WRITE(ICOUT,4243)ACUT
4243 FORMAT('M*N/P^2 = ',G15.7,' < 1 IMPLIES JOHNSON SB ',
1 'DISTRIBUTION')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4251)ALPHA1
4251 FORMAT('ESTIMATE OF ALPHA1 = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4253)ALPHA2
4253 FORMAT('ESTIMATE OF ALPHA2 = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4255)ALOC
4255 FORMAT('ESTIMATE OF LOCATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4257)SCALE
4257 FORMAT('ESTIMATE OF SCALE = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4291)
4291 FORMAT('ALPHA1PE, ALPHA2PE, LOCPERC, AND SCALEPER ',
1 'WILL BE SAVED AS INTERNAL PARAMETERS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MLJO')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLJO--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMLLO(Y,N,
1XTEMP,MAXNXT,
1ALOC,ASCALE,
1ICAPSW,ICAPTY,DTEMP1,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR LOGISTIC DISTRIBUTION
C EXAMPLE--LOGISTIC MAXIMUM LIKELIHOOD Y
C REFERENCE--CHARLES ANTLE, LAWRENCE KLIMKO, AND WILLIAM
C HARKNESS, (1970), "CONFIDENCE INTERVALS FOR THE
C PARAMETERS OF THE LOGISTIC DISTRIBUTION", BIOMETRIKA,
C PP. 397-402.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2003/10
C ORIGINAL VERSION--OCTOBER 2003.
C UPDATED --JANUARY 2005. MODIFY THE OUTPUT FORMAT
C TO MAKE MORE CONSISTENT
C WITH OTHER DISTRIBUTIONS
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
DOUBLE PRECISION DTEMP1(*)
C
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(2)
DOUBLE PRECISION FVEC(2)
C
DIMENSION ATABLE(6,5)
DIMENSION BTABLE(5,10)
C
EXTERNAL LOGFUN
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA PI/3.14159265358979/
C
DATA (ATABLE(1,J),J=1,5)/6.3,12.8,25.7,32.2,64.4/
DATA (ATABLE(2,J),J=1,5)/2.9,4.0,5.0,5.4,6.7/
DATA (ATABLE(3,J),J=1,5)/2.50,3.29,4.07,4.30,5.06/
DATA (ATABLE(4,J),J=1,5)/2.34,3.06,3.67,3.87,4.45/
DATA (ATABLE(5,J),J=1,5)/2.25,2.93,3.54,3.70,4.19/
DATA (ATABLE(6,J),J=1,5)/2.22,2.85,3.40,3.56,4.03/
C
DATA (BTABLE(I,1),I=1,5)/0.01,0.24,0.436,0.588,0.707/
DATA (BTABLE(I,2),I=1,5)/0.02,0.29,0.475,0.623,0.739/
DATA (BTABLE(I,3),I=1,5)/0.024,0.304,0.492,0.640,0.749/
DATA (BTABLE(I,4),I=1,5)/0.049,0.367,0.551,0.689,0.781/
DATA (BTABLE(I,5),I=1,5)/0.098,0.454,0.626,0.745,0.821/
DATA (BTABLE(I,6),I=1,5)/1.36,1.36,1.28,1.21,1.15/
DATA (BTABLE(I,7),I=1,5)/1.66,1.53,1.45,1.29,1.21/
DATA (BTABLE(I,8),I=1,5)/1.94,1.66,1.52,1.36,1.26/
DATA (BTABLE(I,9),I=1,5)/2.03,1.75,1.55,1.38,1.27/
DATA (BTABLE(I,10),I=1,5)/2.3,2.0,1.65,1.45,1.32/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='LO '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLLO')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLLO--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,N
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLLO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN LOGISTIC MAXIMUM LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)
1112 FORMAT(' THE NUMBER OF OBSERVATIONS FOR THE RESPONSE ',
1 'VARIABLE IS LESS THAN OR EQUAL TO ONE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)HOLD
1131 FORMAT('***** NOTE FROM LOGISTIC MAXIMUM LIKELIHOOD--RESPONSE ',
1'VARIABLE HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
1290 CONTINUE
C
C ********************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR LOGISTIC MLE ESTIMATE **
C ********************************
C
4100 CONTINUE
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IWRITE='OFF'
IERROR='NO'
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL SORT(Y,N,Y)
XMIN=Y(1)
XMAX=Y(N)
XPAR(1)=DBLE(XMEAN)
XPAR(2)=DBLE((SQRT(3.0)/PI)*XSD)
C
IOPT=2
TOL=1.0D-6
NVAR=2
NPRINT=-1
INFO=0
LWA=MAXNXT
CALL DNSQE(LOGFUN,JAC,IOPT,NVAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP1,MAXNXT,Y,N)
C
ALOC=REAL(XPAR(1))
ASCALE=REAL(XPAR(2))
C
C ***********************************************
C ** STEP 41B- **
C ** COMPUTE 90% AND 95% CONFIDENCE INTERVALS **
C ** USING METHOD GIVEN IN ANTLE PAPER **
C ***********************************************
C
AN=REAL(N)
IF(N.EQ.2)THEN
A1=ATABLE(1,2)
A2=ATABLE(1,3)
ELSEIF(N.GE.3 .AND. N.LE.4)THEN
AFACT=REAL(N-2)/REAL(5-2)
A1=ATABLE(2,2) - AFACT*ABS(ATABLE(2,2)-ATABLE(1,2))
A2=ATABLE(2,3) - AFACT*ABS(ATABLE(2,3)-ATABLE(1,3))
ELSEIF(N.EQ.5)THEN
A1=ATABLE(2,2)
A2=ATABLE(2,3)
ELSEIF(N.GE.6 .AND. N.LE.9)THEN
AFACT=REAL(N-5)/REAL(10-5)
A1=ATABLE(3,2) - AFACT*ABS(ATABLE(3,2)-ATABLE(2,2))
A2=ATABLE(3,3) - AFACT*ABS(ATABLE(3,3)-ATABLE(2,3))
ELSEIF(N.EQ.10)THEN
A1=ATABLE(3,2)
A2=ATABLE(3,3)
ELSEIF(N.GE.11 .AND. N.LE.19)THEN
AFACT=REAL(N-10)/REAL(20-10)
A1=ATABLE(4,2) - AFACT*ABS(ATABLE(4,2)-ATABLE(3,2))
A2=ATABLE(4,3) - AFACT*ABS(ATABLE(4,3)-ATABLE(3,3))
ELSEIF(N.EQ.20)THEN
A1=ATABLE(4,2)
A2=ATABLE(4,3)
ELSEIF(N.GE.21 .AND. N.LE.39)THEN
AFACT=REAL(N-20)/REAL(40-20)
A1=ATABLE(5,2) - AFACT*ABS(ATABLE(5,2)-ATABLE(4,2))
A2=ATABLE(5,3) - AFACT*ABS(ATABLE(5,3)-ATABLE(4,3))
ELSEIF(N.EQ.40)THEN
A1=ATABLE(5,2)
A2=ATABLE(5,3)
ELSEIF(N.GT.40)THEN
A1=ATABLE(6,2)
A2=ATABLE(6,3)
ENDIF
ALOW90=ALOC - A1*ASCALE/SQRT(AN)
AHIG90=ALOC + A1*ASCALE/SQRT(AN)
ALOW95=ALOC - A2*ASCALE/SQRT(AN)
AHIG95=ALOC + A2*ASCALE/SQRT(AN)
C
IF(N.EQ.2)THEN
B1=BTABLE(1,4)
B2=BTABLE(1,7)
B3=BTABLE(1,3)
B4=BTABLE(1,8)
ELSEIF(N.GE.3 .AND. N.LE.4)THEN
AFACT=REAL(N-2)/REAL(5-2)
B1=BTABLE(1,4) + AFACT*ABS(BTABLE(2,4)-BTABLE(1,4))
B2=BTABLE(1,7) + AFACT*ABS(BTABLE(2,7)-BTABLE(1,7))
B3=BTABLE(1,3) + AFACT*ABS(BTABLE(2,3)-BTABLE(1,3))
B4=BTABLE(1,8) + AFACT*ABS(BTABLE(2,8)-BTABLE(1,8))
ELSEIF(N.EQ.5)THEN
B1=BTABLE(2,4)
B2=BTABLE(2,7)
B3=BTABLE(2,3)
B4=BTABLE(2,8)
ELSEIF(N.GE.6 .AND. N.LE.9)THEN
AFACT=REAL(N-5)/REAL(10-5)
B1=BTABLE(2,4) + AFACT*ABS(BTABLE(3,4)-BTABLE(2,4))
B2=BTABLE(2,7) + AFACT*ABS(BTABLE(3,7)-BTABLE(2,7))
B3=BTABLE(2,3) + AFACT*ABS(BTABLE(3,3)-BTABLE(2,3))
B4=BTABLE(2,8) + AFACT*ABS(BTABLE(3,8)-BTABLE(2,8))
ELSEIF(N.EQ.10)THEN
B1=BTABLE(3,4)
B2=BTABLE(3,7)
B3=BTABLE(3,3)
B4=BTABLE(3,8)
ELSEIF(N.GE.11 .AND. N.LE.19)THEN
AFACT=REAL(N-10)/REAL(20-10)
B1=BTABLE(3,4) + AFACT*ABS(BTABLE(4,4)-BTABLE(3,4))
B2=BTABLE(3,7) + AFACT*ABS(BTABLE(4,7)-BTABLE(3,7))
B3=BTABLE(3,3) + AFACT*ABS(BTABLE(4,3)-BTABLE(3,3))
B4=BTABLE(3,8) + AFACT*ABS(BTABLE(4,8)-BTABLE(3,8))
ELSEIF(N.EQ.20)THEN
B1=BTABLE(4,4)
B2=BTABLE(4,7)
B3=BTABLE(4,3)
B4=BTABLE(4,8)
ELSEIF(N.GE.21 .AND. N.LE.39)THEN
AFACT=REAL(N-20)/REAL(40-20)
B1=BTABLE(4,4) + AFACT*ABS(BTABLE(5,4)-BTABLE(4,4))
B2=BTABLE(4,7) + AFACT*ABS(BTABLE(5,7)-BTABLE(4,7))
B3=BTABLE(4,3) + AFACT*ABS(BTABLE(5,3)-BTABLE(4,3))
B4=BTABLE(4,8) + AFACT*ABS(BTABLE(5,8)-BTABLE(4,8))
ELSEIF(N.GE.40)THEN
B1=BTABLE(5,4)
B2=BTABLE(5,7)
B3=BTABLE(5,3)
B4=BTABLE(5,8)
ENDIF
BLOW90=ASCALE/B2
BHIG90=ASCALE/B1
BLOW95=ASCALE/B4
BHIG95=ASCALE/B3
C
C *********************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR LOGISTIC MLE ESTIMATE **
C **********************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLLO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5016 FORMAT(' Logistic Maximum Likelihood Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5016)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean:')
5062 FORMAT(' Sample Standard Deviation:')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5065 FORMAT(' Maximum Likelihood Estimate of Location:')
5066 FORMAT(' Maximum Likelihood Estimate of Scale:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASCALE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the Location ',
1 'Parameter')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5139 FORMAT(' | ')
5161 FORMAT(' ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
ATEMP=90.0
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOW90
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AHIG90
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
C
ATEMP=95.0
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOW95
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AHIG95
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5217 FORMAT(' Confidence Limits for the Scale ',
1 'Parameter')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5217)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
ATEMP=90.0
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)BLOW90
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)BHIG90
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
C
ATEMP=95.0
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)BLOW95
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)BHIG95
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5199 FORMAT('')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5199)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Logistic Maximum Likelihood Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Maximum Likelihood Estimate of Location Parameter: ',
1 '& ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'Maximum Likelihood Estimate of Scale Parameter: & ',
1 G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)ALOC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)ASCALE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8093 FORMAT(A1,'end{center}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for Location Parameter}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper ',2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit',2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
C
ATEMP=90.0
WRITE(ICOUT,8131)ATEMP,ALOW90,AHIG90,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ATEMP=95.0
WRITE(ICOUT,8131)ATEMP,ALOW95,AHIG95,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8191 FORMAT(A1,'end{table}')
8193 FORMAT(A1,'end{center}')
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8211 FORMAT(5X,'{',A1,'bf Confidence Limits for Scale Parameter}')
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8211)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
C
ATEMP=90.0
WRITE(ICOUT,8131)ATEMP,BLOW90,BHIG90,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ATEMP=95.0
WRITE(ICOUT,8131)ATEMP,BLOW95,BHIG95,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8191)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8899)IBASLC
8899 FORMAT(A1,'begin{verbatim}')
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4111)
4111 FORMAT(10X,'LOGISTIC MAXIMUM LIKELIHOOD ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4122)N
4122 FORMAT(
1 'NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4123)XMEAN
4123 FORMAT(
1 'SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4125)XSD
4125 FORMAT(
1 'SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4127)XMIN
4127 FORMAT(
1 'SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4129)XMAX
4129 FORMAT(
1 'SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4131)ALOC
4131 FORMAT(
1 'MAXIMUM LIKELIHOOD ESTIMATE OF LOCATION PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4133)ASCALE
4133 FORMAT(
1 'SCALE PARAMETER SCALE = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4640)
4640 FORMAT('CONFIDENCE INTERVAL FOR LOCATION PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4643)
4643 FORMAT(' CONFIDENCE LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4645)
4645 FORMAT(' VALUE (%) LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4646)
4646 FORMAT('-------------------------------------------')
CALL DPWRST('XXX','WRIT')
C
ATEMP=90.0
WRITE(ICOUT,4647)ATEMP,ALOW90,AHIG90
4647 FORMAT(' ',F8.3,10X,G12.6,2X,G12.6)
CALL DPWRST('XXX','WRIT')
ATEMP=95.0
WRITE(ICOUT,4647)ATEMP,ALOW95,AHIG95
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4680)
4680 FORMAT('CONFIDENCE INTERVAL FOR SCALE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4645)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4646)
CALL DPWRST('XXX','WRIT')
C
ATEMP=90.0
WRITE(ICOUT,4647)ATEMP,BLOW90,BHIG90
CALL DPWRST('XXX','WRIT')
ATEMP=95.0
WRITE(ICOUT,4647)ATEMP,BLOW95,BHIG95
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4691)
4691 FORMAT('LOCML AND SCALEML WILL BE SAVED AS INTERNAL ',
1 'PARAMETERS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLLO')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLLO--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLLN(Y,N,
1XTEMP,MAXNXT,
1XSD,XSCALE,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR LOGNORMAL DISTRIBUTION
C EXAMPLE--LOGNORMAL MAXIMUM LIKELIHOOD Y
C REFERENCE--"STATISTICAL DISTRIBUTIONS", THIRD EDITION,
C EVANS, HASTINGS, AND PEACOCK, WILEY, 2001.
C --"METHODS FOR STATISTICAL ANALYSIS OF RELIABILITY
C AND LIFE DATA", MANN, SCHAFER, AND SINGPURWALLA,
C WILEY, 1974, PP. 264-268.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--98/5
C ORIGINAL VERSION--MAY 1998.
C UPDATED --MARCH 2004. SUPPORT HTML/LATEX OUTPUT
C UPDATED --OCTOBER 2006. CALL LIST TO TPPF
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='PA '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLLN')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLLN--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLLN')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR FOR LOGNORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS FOR VARIABLE 1 ',
1 'IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR FROM LOGNORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
1290 CONTINUE
C
C *********************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR LOGNORMAL MLE ESTIMATE **
C *********************************
C
4100 CONTINUE
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
CALL MEAN(Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,ASD,IBUGA3,IERROR)
DO4110I=1,N
IF(Y(I).LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4111)
4111 FORMAT('***** ERROR FROM LOGNORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4113)
4113 FORMAT(' NON-POSITIVE VALUE DETECTED.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
Y(I)=LOG(Y(I))
4110 CONTINUE
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
XSCALE=EXP(XMEAN)
C
IDF=N-1
ADF=REAL(N-1)
CALL TPPF(0.025,REAL(IDF),T025)
CALL TPPF(0.975,REAL(IDF),T975)
XSCALL=XSCALE + T025*XSD/SQRT(ADF)
XSCAUL=XSCALE + T975*XSD/SQRT(ADF)
CALL CHSPPF(0.05,IDF,CS005)
XSDUL=SQRT(REAL(N)*XSD*XSD/CS005)
C
C *********************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR LOGNORMAL MLE ESTIMATE**
C **********************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Lognormal 2-Parameter Maximum Likelihood ',
1 'Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Maximum Likelihood Estimates:')
5065 FORMAT(' Estimate of Shape Parameter XSD:')
5066 FORMAT(' Estimate of Scale Parameter XSCALE:')
5067 FORMAT(' 95% Upper Confidence Bound for XSD:')
5068 FORMAT(' 95% Lower Confidence Limit for XSCALE:')
5069 FORMAT(' 95% Upper Confidence Limit for XSCALE:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSCALE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSDUL
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSCALL
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSCAUL
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Lognormal 2-Parameter Maximum Likelihood ',
1 'Estimate}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'{',A1,'bf Maximum Likelihood Estimates:} & ',2X,A1,A1)
8025 FORMAT(5X,'Estimate of Shape Parameter XSD: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Estimate of Scale Parameter XSCALE: & ',
1 G15.7,2X,A1,A1)
8027 FORMAT(5X,'95',A1,'% Upper Condidence Limit for XSD: & ',
1 G15.7,2X,A1,A1)
8028 FORMAT(5X,'95',A1,'% Lower Condidence Limit for XSCALE: & ',
1 G15.7,2X,A1,A1)
8029 FORMAT(5X,'95',A1,'% Upper Condidence Limit for XSCALE: & ',
1 G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)AMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)ASD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)XSCALE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,XSDUL,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,XSCALL,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)IBASLC,XSCAUL,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT('LOGNORMAL 2-PARAMETER MAXIMUM LIKELIHOOD ESTIMATE:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4242)N
4242 FORMAT(6X,'NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4343)AMEAN
4343 FORMAT(6X,'SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4344)ASD
4344 FORMAT(6X,'SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4347)XSD
4347 FORMAT(6X,'ESTIMATE OF SHAPE PARAMETER XSD = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4349)XSCALE
4349 FORMAT(6X,'ESTIMATE OF SCALE PARAMETER XSCALE = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4351)XSDUL
4351 FORMAT(6X,'95% UPPER CONFIDENCE LIMIT FOR XSD = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4353)XSCALL
4353 FORMAT(6X,'95% LOWER CONFIDENCE LIMIT FOR XSCALE = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4355)XSCAUL
4355 FORMAT(6X,'95% UPPER CONFIDENCE LIMIT FOR XSCALE = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4341)
4341 FORMAT('XSD AND XSCALE WILL BE SAVED AS INTERNAL PARAMETERS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MLLN')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLLN--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMLL1(Y,TAG,N,
1XTEMP,DTEMP,MAXNXT,
1SIGMA,SIGMSE,SCALE,SCALSE,UHAT,UHATSE,
1NUMV,ICENTY,TEND,
1ICAPSW,ICAPTY,
1QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1IOUNI1,IOUNI2,ALPHAP,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR LOGNORMAL DISTRIBUTION
C FOR THE FULL SAMPLE CASE.
C EXAMPLE--LOGNORMAL MAXIMUM LIKELIHOOD Y
C REFERENCE--KARL BURY, "STATISTICAL DISTRIBUTIONS IN
C ENGINEERING", CAMBRIDGE UNIVERSITY PRESS,
C 1999, CHAPTER 13.
C --"STATISTICAL DISTRIBUTIONS", THIRD EDITION,
C EVANS, HASTINGS, AND PEACOCK, WILEY, 2001.
C --"METHODS FOR STATISTICAL ANALYSIS OF RELIABILITY
C AND LIFE DATA", MANN, SCHAFER, AND SINGPURWALLA,
C WILEY, 1974, PP. 264-268.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/11
C ORIGINAL VERSION--NOVEMBER 2004. NOTE: THIS REPLACES AN
C EARLIER IMPLEMENTATION.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICENTY
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
PARAMETER (NUMALP=6)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWSC(NUMALP)
DIMENSION AUPPSC(NUMALP)
DIMENSION ALOWUH(NUMALP)
DIMENSION AUPPUH(NUMALP)
DIMENSION ALOWSH(NUMALP)
DIMENSION AUPPSH(NUMALP)
DIMENSION ALOWS2(NUMALP)
DIMENSION AUPPS2(NUMALP)
DIMENSION ALOWG2(NUMALP)
DIMENSION AUPPG2(NUMALP)
C
DIMENSION Y(*)
DIMENSION TAG(*)
DIMENSION XTEMP(*)
DIMENSION QP(*)
DIMENSION XQPHAT(*)
DIMENSION XQPSE(*)
DIMENSION XQPLCL(*)
DIMENSION XQPUCL(*)
DOUBLE PRECISION DTEMP(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01, 0.001/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='L1 '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLL1')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLL1--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NUMV,ICENTY
55 FORMAT('N,NUMV,NPERC,ICENTY = ',3I8,2X,A4)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I),TAG(I)
57 FORMAT('I,Y(I),TAG(I) = ',I8,2E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLL1')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN LOGNORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)
1112 FORMAT(' THE NUMBER OF OBSERVATIONS FOR VARIABLE 1 ',
1 'IS <= 1')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)N
1113 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
DO1125I=1,N
IF(Y(I).LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1121)
1121 FORMAT('***** ERROR FROM LOGNORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1132)I,Y(I)
1122 FORMAT(' ROW ',I8,' HAS THE VALUE = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1125 CONTINUE
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** WARNING FROM LOGNORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1132)HOLD
1132 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
IF(NPERC.GT.0)THEN
DO1145I=1,NPERC
IF(QP(I).LE.0.0 .OR. QP(I).GE.100.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1141)
1141 FORMAT('***** WARNING IN LOGNORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1143)QP(I)
1143 FORMAT(' REQUESTED PERCENTILE (',G15.7,') IS ',
1 'OUTSIDE THE (0,100) INTERVAL')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1144)
1144 FORMAT(' NO PERCENTILE CONFIDENCE LIMITS WILL BE ',
1 'COMPUTED.')
CALL DPWRST('XXX','WRIT')
NPERC=0
ENDIF
1145 CONTINUE
ENDIF
C
C
C **********************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR LOGNORMAL MLE **
C ** ESTIMATE (FULL SAMPLE CASE) **
C **********************************
C
4100 CONTINUE
C
C THE MAXIMUM LIKELIHOOD ESTIMATES ARE:
C
C NOTE THAT A COMMON PARAMETERIZATION USES
C
C U = LOG(SCALE)
C
C UHAT = (1/N)*SUM[i=1 to N][LOG(Y(I))]
C SCALEHAT = EXP(UHAT)
C SIGMAHAT = SQRT((1/N)*SUM[i=1 to N][(LOG(Y(I)) - UHAT)**2]
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLL1')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
AN=REAL(N)
C
C COMPUTE SOME SAMPLE STATISTICS ON UNTRANSFORMED DATA
C
CALL MINIM(Y,N,IWRITE,AMIN,IBUGA3,IERROR)
CALL MEAN(Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL MEDIAN(Y,N,IWRITE,XTEMP,MAXNXT,AMED,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,ASD,IBUGA3,IERROR)
C
C COMPUTE SOME SAMPLE STATISTICS ON LOG OF DATA
C
DO4103I=1,N
XTEMP(I)=LOG(Y(I))
4103 CONTINUE
C
CALL MEAN(XTEMP,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(XTEMP,N,IWRITE,XSD,IBUGA3,IERROR)
C
C COMPUTE MLE ESTIMATES
C
UHAT=XMEAN
SCALE=EXP(XMEAN)
SIGMA=XSD
C
C COMPUTE STANDARD ERRORS
C
UHATSE=SIGMA/SQRT(AN)
SCALSE=SIGMA/SQRT(AN)
SIGMSE=SIGMA/SQRT(2.0*(AN-1.0))
C
C CONFIDENCE INTERVALS FOR PARAMETERS. NOTE THAT FOR THE
C FULL SAMPLE CASE, THE SAMPLING DISTRIBUTIONS ARE EXACT.
C
IDF=N-1
ADF=REAL(N-1)
DO4110I=1,NUMALP
ALP=ALPHA(I)
P1=ALP/2.0
P2=1.0-(ALP/2.0)
CALL TPPF(P1,REAL(IDF),TLOW)
CALL TPPF(P2,REAL(IDF),TUPP)
ALOWUH(I)=UHAT + TLOW*UHATSE
AUPPUH(I)=UHAT + TUPP*UHATSE
ALOWSC(I)=SCALE + TLOW*UHATSE
AUPPSC(I)=SCALE + TUPP*UHATSE
CALL CHSPPF(P1,IDF,CSLOW)
CALL CHSPPF(P2,IDF,CSUPP)
ALOWSH(I)=SIGMA*SQRT(ADF/CSUPP)
AUPPSH(I)=SIGMA*SQRT(ADF/CSLOW)
4110 CONTINUE
C
C CONFIDENCE INTERVALS FOR SELECTED PERCENTILES.
C
C FULL SAMPLE CASE BASED ON NON-CENTRAL T
C
IF(NPERC.GE.1)THEN
C
C1=SIGMA/SQRT(AN)
ANU=REAL(N-1)
ALPHL=ALPHAP/2.0
ALPHU=1.0 - ALPHAP/2.0
C
WRITE(IOUNI1,4191)
4191 FORMAT(15X,' POINT ',' LOWER ',
1 ' UPPER')
WRITE(IOUNI1,4192)
4192 FORMAT(' PERCENTILE ',' ESTIMATE ',
1 'CONFIDENCE LIMIT ','CONFIDENCE LIMIT')
DO4190I=1,NPERC
QPTEMP=QP(I)/100.0
C
CALL NORPPF(QPTEMP,APPF)
DELTA=APPF*SQRT(AN)
C
CALL LGNPPF(QPTEMP,SIGMA,ATEMP)
XQPHAT(I)=SCALE*ATEMP
C
IF(DELTA.LT.0.0)THEN
DELTA2=-DELTA
CALL NCTPPF(ALPHU,ANU,DELTA2,C2)
C2=-C2
CALL NCTPPF(ALPHL,ANU,DELTA2,C3)
C3=-C3
ELSE
CALL NCTPPF(ALPHL,ANU,DELTA,C2)
CALL NCTPPF(ALPHU,ANU,DELTA,C3)
ENDIF
ATEMP1=EXP(UHAT + C1*C2)
ATEMP2=EXP(UHAT + C1*C3)
XQPLCL(I)=MIN(ATEMP1,ATEMP2)
XQPUCL(I)=MAX(ATEMP1,ATEMP2)
WRITE(IOUNI1,'(3E15.7,2X,E15.7)')
1 QP(I),XQPHAT(I),XQPLCL(I),XQPUCL(I)
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLL1')THEN
WRITE(ICOUT,4193)XMEAN,XSD,ANU,ALPHA
4193 FORMAT('XMEAN,XSD,ANU,ALPHA = ',4G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4195)DELTA,C1,C2,C3
4195 FORMAT('DELTA,C1,C2,C3 = ',4G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4197)ATEMP1,ATEMP2
4197 FORMAT('ATEMP1,ATEMP2 = ',2G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
4190 CONTINUE
C
ENDIF
C
C *************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR LOGNORMAL MLE ESTIMATE **
C *************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLL1')
1 CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5002 FORMAT('LOGNORMAL MAXIMUM LIKELIHOOD ESTIMATION:')
5004 FORMAT(' FULL SAMPLE CASE')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5002)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Two-Parameter Model (Location = 0)')
5019 FORMAT(' ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Minimum:')
5063 FORMAT(' Sample Mean:')
5064 FORMAT(' Sample Median:')
5065 FORMAT(' Sample Standard Deviation:')
5066 FORMAT(' ML Estimate of Shape Parameter:')
5067 FORMAT(' Standard Error of Shape Parameter:')
5068 FORMAT(' ML Estimate of Scale Parameter:')
5069 FORMAT(' ML Estimate of mu (= LOG(SCALE))):')
5070 FORMAT(' Standard Error of Scale/mu:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMED
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SIGMA
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SIGMSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)UHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5070)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)UHATSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the Shape ',
1 'Parameter ')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5139 FORMAT(' | ')
5161 FORMAT(' ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWSH(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPSH(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5217 FORMAT(' Confidence Limits for the Scale/mu ',
1 'Parameter')
5236 FORMAT(' ')
5237 FORMAT(' Scale Parameter')
5238 FORMAT(' mu Parameter')
5261 FORMAT(' | ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5217)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5236)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5237)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5236)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5238)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5261)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
DO5240I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWUH(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPUH(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5240 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C START THE TABLE FOR PERCENTILE CONFIDENCE INTERVALS
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,999)
WRITE(ICOUT,5811)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5813)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5815)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5817)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5816)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5819)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5861)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5863)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5864)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5870)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5872)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
DO55880I=1,NPERC
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)QP(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPHAT(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPLCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPUCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
55880 CONTINUE
C
C END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,5801)
CALL DPWRST('XXX','WRIT')
C
5801 FORMAT('')
5811 FORMAT('')
5813 FORMAT('')
5815 FORMAT(' ')
5816 FORMAT(' Alpha = ',F7.3,'')
5817 FORMAT(' Confidence Limits (Based on Non-Central ',
1 't) for Selected Percentiles')
5819 FORMAT(' ')
5841 FORMAT(' ')
5843 FORMAT(' | ')
5847 FORMAT(' | ')
5848 FORMAT(' ')
5849 FORMAT(' ')
5851 FORMAT(' ',G15.7)
5859 FORMAT(' | ')
5861 FORMAT(' Percentile')
5862 FORMAT(' Point Estimate')
5863 FORMAT(' Lower Confidence Limit')
5864 FORMAT(' Upper Confidence Limit')
5870 FORMAT(' ')
5872 FORMAT(' ')
CCCCC WRITE OUTPUT IN LATEX FORMAT
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8004 FORMAT(A1,'end{table}')
8005 FORMAT('{',A1,'bf Lognormal Maximum Likelihood ',
1 'Estimation: Full Sample Case}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Two-Parameter Model ($',A1,
1 'theta$ = 0 Case)}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Minimum : & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Median: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'ML Estimate of Shape Parameter: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'Standard Error of Shape Parameter: & ',
1 G15.7,2X,A1,A1)
8028 FORMAT(5X,'ML Estimate of Scale Parameter: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'ML Estimate of $',A1,
1 'mu$ (=LOG(Scale)) Parameter: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Standard Error of Scale/$',A1,'mu$ Parameter: & ',
1 G15.7,2X,A1,A1)
8035 FORMAT(5X,' & ',2X,A1,A1)
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)AMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)AMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)AMED,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)ASD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8035)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)SIGMA,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)SIGMSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)SCALE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)IBASLC,UHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)IBASLC,SCALSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8093 FORMAT(A1,'end{center}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for Shape Parameter}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper ',2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit',2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWSH(I),AUPPSH(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8191 FORMAT(A1,'end{table}')
8193 FORMAT(A1,'end{center}')
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8211 FORMAT(5X,'{',A1,'bf Confidence Limits for Scale Parameter}')
8220 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8221 FORMAT(5X,'Confidence & Lower & Upper & Lower & Upper ',
1 2X,A1,A1)
8222 FORMAT(5X,'Value (',A1,'%) & Limit & Limit & Limit & Limit',
1 2X,A1,A1)
8226 FORMAT(5X,'& ',A1,'multicolumn{2}{c}{Scale Parameter}',
1 ' & ',A1,'multicolumn{2}{c}{$',A1,'mu$ Parameter}',
1 2X,A1,A1)
8231 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,' & ',G15.7,' & ',
1 G15.7,2X,A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8211)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8220)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8226)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8221)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8222)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8230I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8231)ATEMP,ALOWSC(I),AUPPSC(I),ALOWUH(I),
1 AUPPUH(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8230 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8191)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C WRITE SELECTED PERCENTILES (IF ANY)
C
IF(NPERC.GT.0)THEN
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8803)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8810)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8812)IBASLC,IBASLC,ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8813)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8820)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8821)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8822)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8840)IBASLC
CALL DPWRST('XXX','WRIT')
DO8830I=1,NPERC
WRITE(ICOUT,8823)QP(I),XQPHAT(I),XQPLCL(I),
1 XQPUCL(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8830 CONTINUE
WRITE(ICOUT,8849)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8891)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8893)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
8801 FORMAT(A1,'end{verbatim}')
8803 FORMAT(A1,'begin{table}')
8807 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8809 FORMAT(A1,'begin{center}')
8810 FORMAT(5X,'{',A1,'bf Confidence Limits ',
1 '(Based on Non-Central t) ',
1 'for Selected Percentiles}',2X,A1,A1)
8812 FORMAT(5X,'{',A1,'bf $',A1,'alpha$ = ',F7.3,'}')
8813 FORMAT(A1,'end{center}')
8815 FORMAT(5X,'} ',A1,A1)
8820 FORMAT(5X,A1,'begin{tabular} {cccc}')
8821 FORMAT(5X,' & {',A1,'bf Point} & {',A1,
1 'bf Lower} & {',A1,'bf Upper}',2X,A1,A1)
8822 FORMAT(5X,'{',A1,'bf Percentile} & {',A1,'bf Estimate} & {',
1 A1,'bf Confidence Limit} & {',A1,
1 'bf Confidence Limit}',2X,A1,A1)
8823 FORMAT(5X,G15.7,' & ',G15.7,' & ',G15.7,
1 ' & ',G15.7,2X,A1,A1)
8840 FORMAT(5X,A1,'hline')
8849 FORMAT(A1,'end{tabular}')
8891 FORMAT(A1,'end{center}')
8893 FORMAT(A1,'end{table}')
C
8899 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8899)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(6X,'LOGNORMAL MAXIMUM LIKELIHOOD ESTIMATION:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4212)
4212 FORMAT(6X,'FULL SAMPLE CASE')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4213)
4213 FORMAT('TWO-PARAMETER MODEL (LOCATION = 0)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4214)N
4214 FORMAT('NUMBER OF OBSERVATIONS = ',
1 I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4215)AMIN
4215 FORMAT('SAMPLE MINIMUM = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4216)AMEAN
4216 FORMAT('SAMPLE MEAN = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4217)AMED
4217 FORMAT('SAMPLE MEDIAN = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4218)ASD
4218 FORMAT('SAMPLE STANDARD DEVIATION = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4221)SIGMA
4221 FORMAT('ML ESTIMATE OF SHAPE PARAMETER (SIGMA) = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)SIGMSE
4222 FORMAT('STANDARD ERROR OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)SCALE
4223 FORMAT('ML ESTIMATE OF SCALE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)UHAT
4225 FORMAT('ML ESTIMATE OF MU (= LOG(SCALE)) = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)UHATSE
4227 FORMAT('STANDARD ERROR OF SCALE/MU = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4240)
4240 FORMAT('CONFIDENCE INTERVAL FOR SCALE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4242)
4242 FORMAT(' SCALE PARAMETER ',
1 ' MU PARAMETER ')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
4243 FORMAT(' CONFIDENCE LOWER UPPER',
1 ' LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
4245 FORMAT(' VALUE (%) LIMIT LIMIT',
1 ' LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
4246 FORMAT('---------------------------------------------------',
1 '--------------------')
CALL DPWRST('XXX','WRIT')
DO4249I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWSC(I),AUPPSC(I),ALOWUH(I),
1 AUPPUH(I)
4247 FORMAT(' ',F8.3,10X,4(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4249 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4252)
4252 FORMAT('CONFIDENCE INTERVAL FOR SHAPE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4256)
4256 FORMAT(' CONFIDENCE LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4257)
4257 FORMAT(' VALUE (%) LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4266)
4266 FORMAT('-------------------------------------------')
CALL DPWRST('XXX','WRIT')
DO4259I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4258)ATEMP,ALOWSH(I),AUPPSH(I)
4258 FORMAT(' ',F8.3,10X,G12.6,2X,G12.6)
CALL DPWRST('XXX','WRIT')
4259 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4911)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4915)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4921)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4922)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4346)
CALL DPWRST('XXX','WRIT')
C
4911 FORMAT('CONFIDENCE LIMITS (BASED ON NON-CENTRAL T) FOR ',
1 'SELECTED PERCENTILES:')
4915 FORMAT('ALPHA = ',F7.4)
4921 FORMAT(15X,' POINT ',
1 ' LOWER ', ' UPPER')
4922 FORMAT(' PERCENTILE ',' ESTIMATE ',
1 ' CONFIDENCE LIMIT ',' CONFIDENCE LIMIT')
4346 FORMAT('---------------------------------------',
1 '-----------------------------')
C
DO4981I=1,NPERC
WRITE(ICOUT,4932)QP(I),XQPHAT(I),XQPLCL(I),XQPUCL(I)
4932 FORMAT(2G15.7,6X,G15.7,2X,G15.7)
CALL DPWRST('XXX','WRIT')
4981 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IFEEDB.EQ.'ON')THEN
WRITE(ICOUT,4291)
4291 FORMAT('THE FOLLOWING INTERNAL PARAMETERS ARE SAVED:')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4293)
4293 FORMAT(' SIGMAML, SIGMASE, SCALEML, UHATML, UHATSE')
CALL DPWRST('XXX','BUG ')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(IFEEDB.EQ.'ON')THEN
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4943)
4943 FORMAT('PERCENTILE CONFIDENCE LIMITS WRITTEN TO ',
1 'FILE dpst1f.dat')
CALL DPWRST('XXX','BUG ')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
C
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLL1')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLL1--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLL2(Y,TAG,N,
1XTEMP,DTEMP,MAXNXT,
1SIGMML,SIGMSE,SCALML,SCALSE,UHATML,UHATSE,COVSE,
1NUMV,ICENTY,TEND,
1ICAPSW,ICAPTY,
1QP,XQPHAT,XQPLCL,XQPUCL,XQPLC2,XQPUC2,XQPSE,NPERC,
1IOUNI1,IOUNI2,ALPHAP,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR LOGNORMAL DISTRIBUTION
C FOR THE TIME CENSORED CASE. CURRENTLY, ONLY
C SINGLY CENSORED DATA IS SUPPORTED (I.E., ALL
C CENSOR TIMES ARE THE SAME). THE MAXIMUM LIKELIHOOD
C EQUATIONS ARE:
C
C SUM[i=1 to r][Z(I)] + M*H(Z(I)) = 0
C
C SUM[i=1 to r][Z(I)**2] + M*Z*H(Z) - R = 0
C
C WHERE
C
C R = NUMBER OF FAILURES
C M = NUMBER OF CENSORING TIMES
C C = CENSORING TIME (ALL CENSORED DATA WILL
C HAVE THE SAME CENSORING TIME)
C Z(I) = [LOG(X(I) - UHAT]/SHAT
C UHAT = FVEC(1) = CURRENT ESTIMATE OF MU PARAMETER
C SHAT = FVEC(2) = CURRENT ESTIMATE OF SIGMA
C PARAMETER
C Z = [LOG(C) - UHAT]/SHAT
C H(Z) = NORPDF(Z)/(1 - NOCDF(Z))
C
C EXAMPLE--LOGNORMAL MAXIMUM LIKELIHOOD Y X
C REFERENCE--KARL BURY, "STATISTICAL DISTRIBUTIONS IN
C ENGINEERING", CAMBRIDGE UNIVERSITY PRESS,
C 1999, CHAPTER 11.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/11
C ORIGINAL VERSION--NOVEMBER 2004.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICENTY
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 ICASE
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
PARAMETER (NUMALP=6)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWSC(NUMALP)
DIMENSION AUPPSC(NUMALP)
DIMENSION ALOWUH(NUMALP)
DIMENSION AUPPUH(NUMALP)
DIMENSION ALOWSI(NUMALP)
DIMENSION AUPPSI(NUMALP)
DIMENSION ALOWG2(NUMALP)
DIMENSION AUPPG2(NUMALP)
DIMENSION ALOWS2(NUMALP)
DIMENSION AUPPS2(NUMALP)
DIMENSION ALOWU2(NUMALP)
DIMENSION AUPPU2(NUMALP)
C
DIMENSION Y(*)
DIMENSION TAG(*)
DIMENSION XTEMP(*)
DIMENSION QP(*)
DIMENSION XQPHAT(*)
DIMENSION XQPSE(*)
DIMENSION XQPLCL(*)
DIMENSION XQPUCL(*)
DIMENSION XQPLC2(*)
DIMENSION XQPUC2(*)
DOUBLE PRECISION DTEMP(*)
C
DOUBLE PRECISION LG1FUN
DOUBLE PRECISION LG2FUN
DOUBLE PRECISION LG4FUN
DOUBLE PRECISION LG6FUN
EXTERNAL SUM
EXTERNAL LG1FUN
EXTERNAL LG2FUN
EXTERNAL LG4FUN
EXTERNAL LG6FUN
C
DOUBLE PRECISION C
INTEGER IN
INTEGER IM
COMMON/LG1COM/C,IN,IM
C
INTEGER N2
INTEGER IR2
INTEGER IM2
DOUBLE PRECISION DLLUS
DOUBLE PRECISION DC
DOUBLE PRECISION DK
DOUBLE PRECISION DSIGMA
COMMON/LG2COM/DLLUS,DC,DK,DSIGMA,N2,IR2,IM2
C
INTEGER N3
INTEGER IR3
INTEGER IM3
DOUBLE PRECISION DLLUS2
DOUBLE PRECISION DC2
DOUBLE PRECISION DK2
DOUBLE PRECISION DU2
COMMON/LG4COM/DLLUS2,DC2,DK2,DU2,N3,IR3,IM3
C
INTEGER N4
INTEGER IR4
INTEGER IM4
DOUBLE PRECISION DLLUS3
DOUBLE PRECISION DC3
DOUBLE PRECISION DK3
DOUBLE PRECISION DSIGMA3
DOUBLE PRECISION DU3
DOUBLE PRECISION DX05
DOUBLE PRECISION DZ05
DOUBLE PRECISION SEXQP
COMMON/LG6COM/DLLUS3,DC3,DK3,DSIGMA3,DU3,DX05,DZ05,SEXQP,
1N4,IR4,IM4
C
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(2)
DOUBLE PRECISION FVEC(2)
C
DIMENSION FISH(2,2)
DIMENSION COV(2,2)
DIMENSION D(2)
C
DOUBLE PRECISION DXLOW
DOUBLE PRECISION DXUP
DOUBLE PRECISION DXSTRT
DOUBLE PRECISION DN
DOUBLE PRECISION DR
DOUBLE PRECISION DM
DOUBLE PRECISION DX
DOUBLE PRECISION AE
DOUBLE PRECISION RE
DOUBLE PRECISION DS
DOUBLE PRECISION DU
DOUBLE PRECISION DZ
DOUBLE PRECISION DH
DOUBLE PRECISION DSUM1
DOUBLE PRECISION DSUM2
DOUBLE PRECISION DTERM1
DOUBLE PRECISION DTERM2
DOUBLE PRECISION DTERM3
DOUBLE PRECISION DTERM4
DOUBLE PRECISION DSUM
DOUBLE PRECISION DCDF
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01, 0.001/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='L2 '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLL2')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLL2--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NUMV
55 FORMAT('N,NUMV,NPERC = ',3I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I),TAG(I)
57 FORMAT('I,Y(I),TAG(I) = ',I8,2E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
WRITE(ICOUT,59)ICENTY
59 FORMAT('ICENTY = ',A4)
CALL DPWRST('XXX','WRIT')
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLL2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN LOGNORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)
1112 FORMAT(' THE NUMBER OF OBSERVATIONS FOR VARIABLE 1 ',
1 'IS <= 1')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)N
1113 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
DO1125I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1121)
1121 FORMAT('***** ERROR FROM LOGNORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1122)
1122 FORMAT(' A NEGATIVE VALUE WAS ENCOUNTERED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1123)I,Y(I)
1123 FORMAT(' ROW ',I8,' HAS THE VALUE = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1125 CONTINUE
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** WARNING FROM LOGNORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1132)HOLD
1132 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
IF(NPERC.GT.0)THEN
DO1145I=1,NPERC
IF(QP(I).LE.0.0 .OR. QP(I).GE.100.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1141)
1141 FORMAT('***** WARNING IN LOGNORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1143)QP(I)
1143 FORMAT(' REQUESTED PERCENTILE (',G15.7,') IS ',
1 'OUTSIDE THE (0,100) INTERVAL')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1144)
1144 FORMAT(' NO PERCENTILE CONFIDENCE LIMITS WILL BE ',
1 'COMPUTED.')
CALL DPWRST('XXX','WRIT')
NPERC=0
ENDIF
1145 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 21-- **
C ** CHECK THE CENSORING VARIABLE: SHOULD **
C ** BE AT MOST 2 DISTINCT VALUES, 1 **
C ** INDICATES FAILURE TIME, 0 INDICATES **
C ** CENSORING TIME. **
C ********************************************
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLL2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
CCCCC NOVEMBER 2004. FOR CENSORED CASE, CHECK THAT SECOND VARIABLE
CCCCC CONTAINS TWO DISTINCT VALUES, SET TO 1 AND 0.
C
CALL DISTIN(TAG,N,IWRITE,XTEMP,NDIST,IBUGA3,IERROR)
IF(NDIST.EQ.1)THEN
DO2102I=1,N
TAG(I)=1.0
2102 CONTINUE
ELSEIF(NDIST.EQ.2)THEN
IF(XTEMP(1).EQ.1.0 .OR. XTEMP(2).EQ.1.0)THEN
DO2103I=1,N
IF(TAG(I).NE.1.0)TAG(I)=0.0
2103 CONTINUE
ELSE
ATEMP1=MIN(XTEMP(1),XTEMP(2))
ATEMP2=MAX(XTEMP(1),XTEMP(2))
DO2108I=1,N
IF(TAG(I).EQ.ATEMP1)TAG(I)=1.0
IF(TAG(I).EQ.ATEMP2)TAG(I)=0.0
2108 CONTINUE
ENDIF
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2104)
2104 FORMAT('***** ERROR IN LOGNORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2105)
2105 FORMAT(' FOR CENSORED DATA, THE CENSORING VARIABLE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2106)
2106 FORMAT(' SHOULD CONTAIN AT MOST TWO DISTINCT VALUES.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2107)NDIST
2107 FORMAT(' ',I8,' DISTINCT VALUES FOUND.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
C
CALL SORTC(Y,TAG,N,Y,TAG)
IR=0
DO2120I=1,N
IF(TAG(I).EQ.1.0)IR=IR+1
2120 CONTINUE
C
ICNT=0
DO2122I=1,N
IF(TAG(I).EQ.1.0)THEN
ICNT=ICNT+1
XTEMP(ICNT)=Y(I)
ENDIF
2122 CONTINUE
DO2124I=1,N
IF(TAG(I).EQ.0.0)THEN
ICNT=ICNT+1
XTEMP(ICNT)=Y(I)
ENDIF
2124 CONTINUE
DO2126I=1,N
Y(I)=XTEMP(I)
IF(I.LE.IR)THEN
TAG(I)=1.0
ELSE
TAG(I)=0.0
ENDIF
2126 CONTINUE
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLL2')THEN
DO2128I=1,N
WRITE(ICOUT,2129)I,Y(I),TAG(I)
2129 FORMAT(1X,'I,Y(I),TAG(I)=',I8,2E15.7)
CALL DPWRST('XXX','BUG ')
2128 CONTINUE
ENDIF
C
IM=N-IR
IR1=IR
IR2=IR
IR3=IR
C
AR=REAL(IR)
DR=DBLE(IR)
AN=REAL(N)
AM=REAL(IM)
C
IF(IM.EQ.0)THEN
ICASE='NONE'
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2131)
2131 FORMAT('***** WARNING FROM LOGNORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2133)
2133 FORMAT(' NO CENSORING TIMES DETECTED. IT IS RECOMMENDED')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2135)
2135 FORMAT(' THAT THE FULL SAMPLE SYNTAX BE USED:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2137)
2137 FORMAT(' LOGNORMAL MAXIMUM LIKELIHOOD Y')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ELSE
ICASE='SING'
AHOLD=Y(IR+1)
DO2140I=IR+1,N
IF(Y(I).NE.AHOLD)THEN
ICASE='MULT'
GOTO2149
ENDIF
2140 CONTINUE
2149 CONTINUE
C=DBLE(AHOLD)
ENDIF
C
IF(ICASE.EQ.'MULT')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2141)
2141 FORMAT('***** ERROR FROM LOGNORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2143)
2143 FORMAT(' CURRENTLY, ONLY SINGLY CENSORED DATA IS ',
1 'SUPPORTED FOR THE LOGNORMAL DISTRIBUTION.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2145)
2145 FORMAT(' MULTIPLY CENSORED DATA WAS DETECTED.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
C ************************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR LOGNORMAL MLE **
C ** ESTIMATE (TIME CENSORED CASE) **
C ************************************
C
3100 CONTINUE
C
C THE MAXIMUM LIKELIHOOD EQUATIONS ARE SOLVED USING THE DNSQE
C ROUTINE.
C
C
ISTEPN='31'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLL2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
AN=REAL(N)
C
C COMPUTE STATISTICS FOR FAILURE ONLY DATA
C
CALL MEAN(Y,IR,IWRITE,AMEAN,IBUGA3,IERROR)
CALL SD(Y,IR,IWRITE,ASD,IBUGA3,IERROR)
CALL MINIM(Y,IR,IWRITE,AMIN,IBUGA3,IERROR)
C
C USE PARAMETERS ESTIMATED FROM FAILURE DATA AS STARTING VALUES
C FOR EQUATION SOLVER.
C
DO3103I=1,IR
XTEMP(I)=LOG(Y(I))
3103 CONTINUE
C
CALL MEAN(XTEMP,IR,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(XTEMP,IR,IWRITE,XSD,IBUGA3,IERROR)
C
XPAR(1)=DBLE(XMEAN)
XPAR(2)=DBLE(XSD)
C
IN=N
JAC=0
IOPT=2
TOL=1.0D-6
NVAR=2
NPRINT=-1
INFO=0
LWA=MAXNXT
FVEC(1)=0.0D0
FVEC(2)=0.0D0
CALL DNSQE(LG1FUN,JAC,IOPT,NVAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP,MAXNXT,Y,IR)
C
UHATML=REAL(XPAR(1))
SCALML=EXP(UHATML)
SIGMML=REAL(XPAR(2))
C
C COMPUTE STANDARD ERRORS. FORMULAS FOR LOCAL FISHER INFORMATION
C MATRIX GIVEN ON PAGE 162 OF BURY.
C
DN=DBLE(N)
DR=DBLE(IR)
DM=DBLE(IM)
DS=DBLE(SIGMML)
DU=DBLE(UHATML)
DZ=(DLOG(C)-DU)/DS
CALL NODPDF(DZ,DTERM1)
CALL NODCDF(DZ,DTERM2)
DH=DTERM1/(1.0D0 - DTERM2)
DSUM1=0.0D0
DSUM2=0.0D0
DO100I=1,IR
DX=DBLE(Y(I))
DX=(DLOG(DX) - DU)/DS
DSUM1=DSUM1 + DX
DSUM2=DSUM2 + DX*DX
100 CONTINUE
C
DTERM1=(1.0D0/DS**2)*(DR + DM*DH*(DH-DZ))
FISH(1,1)=REAL(DTERM1)
DTERM1=(1.0D0/DS**2)*(2.0D0*DSUM1 +DM*DH*(1.0D0 + DZ*(DH-DZ)))
FISH(2,1)=REAL(DTERM1)
FISH(1,2)=FISH(2,1)
DTERM1=(1.0D0/DS**2)*
1 (3.0D0*DSUM2 +DM*DZ*DH*(2.0D0 + DZ*DH -DZ**2) - DR)
FISH(2,2)=REAL(DTERM1)
C
NDIM=2
CALL SGECO(FISH,NDIM,NDIM,ITEMP,RCOND,XTEMP)
IJOB=1
CALL SGEDI(FISH,NDIM,NDIM,ITEMP,XTEMP,XTEMP(MAXNXT/2),IJOB)
DO2410J=1,NDIM
DO2415I=1,NDIM
COV(I,J)=FISH(I,J)
2415 CONTINUE
2410 CONTINUE
C
SCALSE=0.0
SIGMSE=0.0
IF(COV(1,1).GE.0.0)SCALSE=SQRT(COV(1,1))
IF(COV(2,2).GE.0.0)SIGMSE=SQRT(COV(2,2))
COVSE=COV(2,1)
UHATSE=SCALSE
C
C CONFIDENCE INTERVALS FOR PARAMETERS. CAN BASE ON EITHER NORMAL
C APPROXIMATION OR ON LIKELIHOOD RATIO APPROXIMATION.
C
C NORMAL APPROXIMATION FIRST.
C
DO4110I=1,NUMALP
ALP=ALPHA(I)
P=1.0-(ALP/2.0)
CALL NORPPF(P,PPF)
ALOWSC(I)=SCALML - PPF*SCALSE
AUPPSC(I)=SCALML + PPF*SCALSE
ALOWUH(I)=UHATML - PPF*UHATSE
AUPPUH(I)=UHATML + PPF*UHATSE
ALOWSI(I)=SIGMML - PPF*SIGMSE
AUPPSI(I)=SIGMML + PPF*SIGMSE
4110 CONTINUE
C
C NOW DO LIKELIHOOD RATIO APPROXIMATION (SEE COMMENTS IN
C LG2FUN FOR FORMULAS).
C
C COMPUTE LL(UHAT,SIGMA) AND SAVE IN COMMOM BLOCK.
C
N2=N
IR2=IR
IM2=IM
DSIGMA=DBLE(SIGMML)
DC=C
N3=N
IR3=IR
IM3=IM
DSIGM2=DBLE(SIGMML)
DC2=C
DU2=DBLE(UHATML)
C
DX=(DLOG(DC) - DBLE(UHATML))/DSIGMA
CALL NODCDF(DX,DTERM2)
DTERM1=-DR*DLOG(DSIGMA) + DM*DLOG(1.0D0 - DTERM2)
DSUM1=0.0D0
DSUM2=0.0D0
DO4118I=1,IR
DTEMP(I)=DBLE(Y(I))
DX=DLOG(DTEMP(I))
DSUM1=DSUM1 + DX
DSUM2=DSUM2 + ((DX - DBLE(UHATML))/DSIGMA)**2
4118 CONTINUE
DLLUS=DTERM1 - DSUM1 - 0.5D0*DSUM2
DLLUS2=DLLUS
C
DN=DBLE(N)
AE=1.D-7
RE=1.D-7
NUTEMP=1
C
DO4120I=1,NUMALP
ALP=ALPHA(I)
CALL CHSPPF(1.0-ALP,NUTEMP,APPF)
DK=DBLE(APPF)
DK2=DK
C
DXSTRT=DBLE(ALOWSI(I))
DXLOW=DXSTRT/5.0D0
DXUP=DBLE(SIGMML)
CALL DFZER2(LG4FUN,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG,DTEMP)
ALOWG2(I)=REAL(DXLOW)
C
DXSTRT=DBLE(AUPPSI(I))
DXUP=DXSTRT*5.0D0
DXLOW=DBLE(SIGMML)
CALL DFZER2(LG4FUN,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG,DTEMP)
AUPPG2(I)=REAL(DXLOW)
C
DXSTRT=DBLE(ALOWUH(I))
DXLOW=DXSTRT/2.0D0
DXUP=DBLE(UHATML)
CALL DFZER2(LG2FUN,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG,DTEMP)
ALOWU2(I)=REAL(DXLOW)
ALOWS2(I)=EXP(ALOWU2(I))
C
DXSTRT=DBLE(AUPPUH(I))
DXUP=DXSTRT*2.0D0
DXLOW=DBLE(UHATML)
CALL DFZER2(LG2FUN,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG,DTEMP)
AUPPU2(I)=REAL(DXLOW)
AUPPS2(I)=EXP(AUPPU2(I))
4120 CONTINUE
C
C CONFIDENCE INTERVALS FOR SELECTED PERCENTILES.
C
C BASE ON EITHER THE ASYMPTOTIC NORMAL APPROXIMATION OR THE
C LIKELIHOOD RATIO.
C
C NOTE: I HAVEN'T BEEN ABLE TO GET THE LIKELIHOOD RATION METHOD
C TO WORK. COMMENT OUT FOR NOW.
C
IF(NPERC.GE.1)THEN
C
ALPHL=ALPHAP/2.0
ALPHU=1.0 - ALPHAP/2.0
CALL NORPPF(ALPHU,Z95)
DU=DBLE(UHATML)
DS=DBLE(SIGMML)
C
WRITE(IOUNI1,4191)
4191 FORMAT(15X,' POINT ',' STANDARD ',
1 ' LOWER ',' UPPER')
WRITE(IOUNI1,4192)
4192 FORMAT(' PERCENTILE ',' ESTIMATE ',' ERROR ',
1 'CONFIDENCE LIMIT ','CONFIDENCE LIMIT')
C
N4=N
IR4=IR
IM4=IM
DSIGMA3=DBLE(SIGMML)
DC3=C
DU3=DBLE(UHATML)
DLLUS3=DLLUS
C
NUTEMP=1
CALL CHSPPF(1.0-ALPHAP,NUTEMP,APPF)
DK=DBLE(APPF)
DK3=DK
C
DO4190I=1,NPERC
QPTEMP=QP(I)/100.0
C
CALL LGNPPF(QPTEMP,SIGMML,ATEMP)
XQPHAT(I)=SCALML*ATEMP
C
CALL NORPPF(QPTEMP,X95)
D0=DEXP(DU + DBLE(X95)*DS)
D1=DBLE(X95)*DEXP(DU + DBLE(X95)*DS)
DTERM1=D0*D0*UHATSE**2
DTERM2=D1*D1*SIGMSE**2
DTERM3=D0*D1*COVSE
DTERM4=D1*D0*COVSE
DSUM=DTERM1 + DTERM2 + DTERM3 + DTERM4
SEXQP=0.0
IF(DSUM.GE.0.0D0)SEXQP=DSQRT(DSUM)
XQPSE(I)=REAL(SEXQP)
XQPLCL(I)=XQPHAT(I) - Z95*XQPSE(I)
XQPUCL(I)=XQPHAT(I) + Z95*XQPSE(I)
C
CCCCC DX05=DBLE(XQPHAT(I))
CCCCC DZ05=DBLE(X95)
CCCCC DXSTRT=DBLE(XQPLCL(I))
CCCCC DXLOW=DXSTRT/2.0D0
CCCCC DXUP=DBLE(XQPHAT(I))
CCCCC CALL DFZER2(LG6FUN,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG,DTEMP)
CCCCC write(19,*)'i,iflag=',i,iflag
CCCCC XQPLC2(I)=REAL(DXLOW)
C
CCCCC DXSTRT=DBLE(XQPUCL(I))
CCCCC DXUP=DXSTRT*5.0D0
CCCCC DXLOW=DBLE(XQPHAT(I))
CCCCC CALL DFZER2(LG6FUN,DXLOW,DXUP,DXSTRT,RE,AE,IFLAG,DTEMP)
CCCCC XQPUC2(I)=REAL(DXLOW)
write(19,*)'i,xqphat(i),xqplc2(i)=',i,xqphat(i),xqplc2(i)
C
WRITE(IOUNI1,'(4E15.7,2X,E15.7)')
1 QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),XQPUCL(I)
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLL2')THEN
WRITE(ICOUT,4193)D0,D1
4193 FORMAT('D0,D1,DSUM = ',3G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4195)DTERM1,DTERM2,DTERM3,DTERM4
4195 FORMAT('DTERM1,DTERM2,DTERM3,DTERM4 = ',4G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
4190 CONTINUE
C
ENDIF
C
C *************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR LOGNORMAL MLE ESTIMATE **
C *************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLL2')
1 CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5002 FORMAT('LOGNORMAL MAXIMUM LIKELIHOOD ESTIMATION:')
5004 FORMAT(' TIME (SINGLY) CENSORED CASE')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5002)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Two-Parameter Model (Location = 0)')
5019 FORMAT(' ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5060 FORMAT(' Number of Observations:')
5061 FORMAT(' Number of Failure Times:')
5062 FORMAT(' Minimum of Failure Times:')
5063 FORMAT(' Mean of Failure Times:')
5064 FORMAT(' Standard Deviation of Failure Times:')
5065 FORMAT(' ML Estimate of Shape Parameter:')
5066 FORMAT(' Standard Error of Shape Parameter:')
5067 FORMAT(' ML Estimate of MU (= LOG(Scale)) Parameter:')
5068 FORMAT(' ML Estimate of Scale Parameter:')
5069 FORMAT(' Standard Error of Scale/MU Parameter:')
5070 FORMAT(' Covariance of Scale and ',
1 'Shape Parameter:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5060)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)IR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SIGMML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SIGMSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)UHATML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5070)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COVSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Interval for the Scale ',
1 'Parameter (Normal Approximation) ')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5136 FORMAT(' | ')
5137 FORMAT(' Scale')
5138 FORMAT(' MU')
5139 FORMAT(' | ')
5237 FORMAT(' Normal Approximation')
5238 FORMAT(' Likelihood Ratio')
5161 FORMAT(' ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5138)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWUH(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPUH(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5118 FORMAT(' Confidence Interval for the Scale ',
1 'Parameter (Likelihood Ratio) ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5118)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5138)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
DO5240I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWS2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPS2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWU2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPU2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5240 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5217 FORMAT(' Confidence Limits for the Shape ',
1 'Parameter')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5217)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5237)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5238)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
DO5340I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWSI(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPSI(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWG2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPG2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5340 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C START THE TABLE FOR PERCENTILE CONFIDENCE INTERVALS
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5811)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5813)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5815)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5817)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5816)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5819)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5861)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5863)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5864)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5870)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5872)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
DO55880I=1,NPERC
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)QP(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPHAT(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPSE(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPLCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPUCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
55880 CONTINUE
C
C END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
5811 FORMAT('')
5813 FORMAT('')
5815 FORMAT(' ')
5816 FORMAT(' Alpha = ',F7.3,'')
5817 FORMAT(' Confidence Limits (Based on Normal ',
1 'Approximation) for Selected Percentiles')
5819 FORMAT(' ')
5841 FORMAT(' ')
5843 FORMAT(' | ')
5847 FORMAT(' | ')
5848 FORMAT(' ')
5849 FORMAT(' ')
5851 FORMAT(' ',G15.7)
5859 FORMAT(' | ')
5861 FORMAT(' Percentile')
5862 FORMAT(' Point Estimate')
55862 FORMAT(' Standard Error')
5863 FORMAT(' Lower Confidence Limit')
5864 FORMAT(' Upper Confidence Limit')
5870 FORMAT(' ')
5872 FORMAT(' ')
C
WRITE(ICOUT,5199)
5199 FORMAT('')
CALL DPWRST('XXX','WRIT')
CCCCC WRITE OUTPUT IN LATEX FORMAT
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8004 FORMAT(A1,'end{table}')
8005 FORMAT('{',A1,'bf Lognormal Maximum Likelihood ',
1 'Estimation: Time (Singly) Censored Case}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Two-Parameter Model ($',A1,
1 'mu$ = 0 Case)}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Number of Failure Times: & ',I8,2X,A1,A1)
8023 FORMAT(5X,'Minimum of Failure Times: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Mean of Failure Times: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Standard Deviation of Failure Times: & ',
1 G15.7,2X,A1,A1)
8026 FORMAT(5X,'ML Estimate of Shape Parameter: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'Standard Error of Shape Parameter: & ',
1 G15.7,2X,A1,A1)
8028 FORMAT(5X,'ML Estimate of Scale Parameter: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'ML Estimate of $',A1,
1 'mu$ = (LOG(Scale Parameter)): & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Standard Error of Scale/$',A1,'mu$ Parameter: & ',
1 G15.7,2X,A1,A1)
8031 FORMAT(5X,'Standard Error of Covariance of Scale and Shape ',
1 'Parameter: & ',G15.7,2X,A1,A1)
8035 FORMAT(5X,' & ',2X,A1,A1)
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)IR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)AMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)AMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)ASD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8035)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)SIGMML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)SIGMSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)SCALML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)IBASLC,UHATML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)IBASLC,SCALSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)COVSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8093 FORMAT(A1,'end{center}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for Scale Parameter ',
1 '(Normal Approximation)}')
8112 FORMAT(5X,'{',A1,'bf Confidence Limits for Scale Parameter ',
1 '(Likelihood Ratio)}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper & Lower & Upper ',
1 2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit & Limit & Limit',
1 2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,' & ',G15.7,' & ',
1 G15.7,2X,A1,A1)
8126 FORMAT(5X,'& ',A1,'multicolumn{2}{c}{Normal Approximation}',
1 ' & ',A1,'multicolumn{2}{c}{Likelihood Ratio}',
1 2X,A1,A1)
8226 FORMAT(5X,'& ',A1,'multicolumn{2}{c}{Scale}',
1 ' & ',A1,'multicolumn{2}{c}{$',A1,'mu$}',
1 2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8226)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWSC(I),AUPPSC(I),ALOWUH(I),
1 AUPPUH(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8191 FORMAT(A1,'end{table}')
8193 FORMAT(A1,'end{center}')
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
CCCCC WRITE(ICOUT,8003)IBASLC
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8112)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8226)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8230I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWS2(I),AUPPS2(I),ALOWU2(I),
1 AUPPU2(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8230 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8191)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8211 FORMAT(5X,'{',A1,'bf Confidence Limits for Shape Parameter}')
C
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8211)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8250I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWSI(I),AUPPSI(I),ALOWG2(I),
1 AUPPG2(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8250 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8191)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C WRITE SELECTED PERCENTILES (IF ANY)
C
IF(NPERC.GT.0)THEN
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8803)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8810)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8811)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8812)IBASLC,IBASLC,ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8813)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8820)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8821)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8822)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,
1 IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8840)IBASLC
CALL DPWRST('XXX','WRIT')
DO8830I=1,NPERC
WRITE(ICOUT,8823)QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),
1 XQPUCL(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8830 CONTINUE
WRITE(ICOUT,8849)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8891)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8893)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
8801 FORMAT(A1,'end{verbatim}')
8803 FORMAT(A1,'begin{table}')
8807 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8809 FORMAT(A1,'begin{center}')
8810 FORMAT(5X,'{',A1,'bf Confidence Limits for Selected ',
1 'Percentiles}',2X,A1,A1)
8811 FORMAT(5X,'{',A1,'bf (Based on Normal Approximation)}',2X,A1,A1)
8812 FORMAT(5X,'{',A1,'bf $',A1,'alpha$ = ',F7.3,'}')
8813 FORMAT(A1,'end{center}')
8815 FORMAT(5X,'} ',A1,A1)
8820 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8821 FORMAT(5X,' & {',A1,'bf Point} & {',A1,'bf Standard} & {',A1,
1 'bf Lower} & {',A1,'bf Upper}',2X,A1,A1)
8822 FORMAT(5X,'{',A1,'bf Percentile} & {',A1,'bf Estimate} & {',
1 A1,'bf Error} & {',
1 A1,'bf Confidence Limit} & {',A1,
1 'bf Confidence Limit}',2X,A1,A1)
8823 FORMAT(5X,G15.7,' & ',G15.7,' & ',G15.7,' & ',G15.7,
1 ' & ',G15.7,2X,A1,A1)
8840 FORMAT(5X,A1,'hline')
8849 FORMAT(A1,'end{tabular}')
8891 FORMAT(A1,'end{center}')
8893 FORMAT(A1,'end{table}')
C
8899 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8899)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(6X,'LOGNORMAL MAXIMUM LIKELIHOOD ESTIMATION:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4212)
4212 FORMAT(6X,'TIME (SINGLY) CENSORED CASE')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4213)
4213 FORMAT('TWO-PARAMETER MODEL (LOCATION = 0)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4215)N
4215 FORMAT('NUMBER OF OBSERVATIONS = ',
1 I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4216)IR
4216 FORMAT('NUMBER OF FAILURE TIMES = ',
1 I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4217)AMIN
4217 FORMAT('MINIMUM OF FAILURE TIMES = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4218)AMEAN
4218 FORMAT('MEAN OF FAILURE TIMES = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4219)ASD
4219 FORMAT('STANDARD DEVIATION OF FAILURE TIMES = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)SIGMML
4227 FORMAT('ML ESTIMATE OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4229)SIGMSE
4229 FORMAT('STANDARD ERROR OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)SCALML
4223 FORMAT('ML ESTIMATE OF SCALE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4224)UHATML
4224 FORMAT('ML ESTIMATE OF MU (=LOG(SCALE)) PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)SCALSE
4225 FORMAT('STANDARD ERROR OF SCALE/MU PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)COVSE
4231 FORMAT('COVARIANCE OF THE SHAPE AND SCALE PARAMETERS = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4240)
4240 FORMAT('CONFIDENCE INTERVAL FOR SCALE PARAMETER (NORMAL ',
1 'APPROXIMATION)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4242)
4242 FORMAT(' SCALE ',
1 ' MU ')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
4243 FORMAT(' CONFIDENCE LOWER UPPER',
1 ' LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
4245 FORMAT(' VALUE (%) LIMIT LIMIT',
1 ' LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
4246 FORMAT('---------------------------------------------------',
1 '--------------------')
CALL DPWRST('XXX','WRIT')
DO4249I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWSC(I),AUPPSC(I),ALOWUH(I),
1 AUPPUH(I)
4247 FORMAT(' ',F8.3,10X,4(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4249 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4260)
4260 FORMAT('CONFIDENCE INTERVAL FOR SCALE PARAMETER (LIKELIHOOD ',
1 'RATIO)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4242)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
CALL DPWRST('XXX','WRIT')
DO4269I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWS2(I),AUPPS2(I),ALOWU2(I),
1 AUPPU2(I)
CALL DPWRST('XXX','WRIT')
4269 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4252)
4252 FORMAT('CONFIDENCE INTERVAL FOR SHAPE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4254)
4254 FORMAT(' NORMAL APPROXIMATION',
1 ' LIKELIHOOD RATIO')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
CALL DPWRST('XXX','WRIT')
DO4259I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWSI(I),AUPPSI(I),ALOWG2(I),
1 AUPPG2(I)
CALL DPWRST('XXX','WRIT')
4259 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4911)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4915)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4921)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4922)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4346)
CALL DPWRST('XXX','WRIT')
C
4911 FORMAT('CONFIDENCE LIMITS (BASED ON NORMAL APPROXIMATION) FOR ',
1 'SELECTED PERCENTILES:')
4915 FORMAT('ALPHA = ',F7.4)
4921 FORMAT(10X,' POINT ',' STANDARD ',
1 ' LOWER ', ' UPPER')
4922 FORMAT('PERCENTILE',' ESTIMATE ',' ERROR ',
1 'CONFIDENCE LIMIT ',' CONFIDENCE LIMIT')
4346 FORMAT('-----------------------------------',
1 '-----------------------------------')
C
DO4981I=1,NPERC
WRITE(ICOUT,4932)QP(I),XQPHAT(I),XQPSE(I),
1 XQPLCL(I),XQPUCL(I)
4932 FORMAT(2X,F8.4,2G15.7,2X,G15.7,2X,G15.7)
CALL DPWRST('XXX','WRIT')
4981 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IFEEDB.EQ.'ON')THEN
WRITE(ICOUT,4291)
4291 FORMAT('THE FOLLOWING INTERNAL PARAMETERS ARE SAVED:')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4293)
4293 FORMAT(' SIGMAML, SIGMASE, SCALEML, UHATML, SCALESE, ',
1 'COVSE')
CALL DPWRST('XXX','BUG ')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLL2')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLL2--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLLK(Y,X,N,NVAR,
1TEMP1,TEMP2,TEMP3,DTEMP1,
1AMOM,BETAMO,BMOM,
1AFR,BETAFR,BFR,
1AML,BETAML,BML,
1ICAPSW,ICAPTY,MAXNXT,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR THE LAGRANGE KATZ DISTRIBUTION.
C
C THE MOMENT ESTIMATES ARE:
C
C BETAHAT = 2 - 0.5*(A +/- SQRT(A*(A-4))
C
C AHAT = 0.5*XBAR**(3/2)*(1/SQRT(S2))*
C (SQRT(A) +/- SQRT(A-4))
C
C BHAT = -1 + 0.5*(SQRT(A) +/- SQRT(A-4)*
C (SQRT(A) - SQRT(XBAR/S2))
C
C WHERE
C
C A = (3*S2**2 - S3*XBAR)**2/(XBAR - S2**3)
C
C NOTE THAT THE MOMENT ESTIMATORS ONLY EXIST IF A >= 4
C
C THE MOMENTS AND ZERO FREQUENCY ESTIMATE OF BETA
C IS THE SOLUTION OF THE EQUATION
C
C (1-BETA)*(LOG(1-BETA))**2 -
C (BETA**2*S/XBAR**3)*[LOG(F0)]**2 = 0
C
C THE ESTIMATES OF A AND B ARE THEN
C
C AHAT = SQRT(XBAR**3*(1 - BETAHAT)/S2)
C BHAT = 1 - BETAHAT - (AHAT/XBAR)
C
C THE MAXIMUM LIKELIHOOD ESTIMATES OF B AND BETA
C ARE THE SOLUTIONS TO THE EQUATIONS:
C
C N*XBAR*LOG(1-BETA)/BETA -
C SUM[X=2 to k][SUM[i=1 to x-1]
C [X*N(x)/(XBAR*(1-B-BETA) + B*X + BETA*I)]] = 0
C
C -N*XBAR*(1-BETA)*LOG(1-BETA)/BETA + N*XBAR/BETA +
C SUM[X=2 to k][SUM[i=1 to x-1]
C [I*N(x)/(XBAR*(1-b-BETA) + B*X + BETA*I)]] = 0
C
C
C THE ESTIMATE OF A IS THEN
C
C AHAT = XBAR*(1 - B - BETA)
C
C THERE ARE TWO CASES:
C
C 1) ONE VARIABLE CASE: Y IS RAW DATA
C 2) TWO VARIABLE CASE: Y IS FREQUENCY, X IS CLASS
C MID-POINT.
C
C EXAMPLE--LAGRANGE KATZ MAXIMUM LIKELIHOOD Y
C --LAGRANGE KATZ MAXIMUM LIKELIHOOD Y X
C REFERENCES--CONSUL AND FAMOYE (2006), "LAGRANGIAN PROBABILITY
C DISTRIBUTIONS", BIRKHAUSER, CHAPTER 10.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/8
C ORIGINAL VERSION--AUGUST 2006.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-----------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBN0
CHARACTER*4 IRELAT
CHARACTER*4 IRHSTG
C
C-------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION X(*)
DIMENSION TEMP1(*)
DIMENSION TEMP2(*)
DIMENSION TEMP3(*)
DOUBLE PRECISION DTEMP1(*)
C
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(3)
DOUBLE PRECISION FVEC(2)
C
DOUBLE PRECISION AE
DOUBLE PRECISION RE
DOUBLE PRECISION XLOW
DOUBLE PRECISION XUP
DOUBLE PRECISION XMID
DOUBLE PRECISION DSUM
DOUBLE PRECISION DTERM1
DOUBLE PRECISION DTERM2
DOUBLE PRECISION DATER1
DOUBLE PRECISION DATER2
DOUBLE PRECISION DATERM
DOUBLE PRECISION DA
C
DOUBLE PRECISION LKFUN
DOUBLE PRECISION LKFU3
DOUBLE PRECISION LKFU4
CCCCC EXTERNAL LKFUN
CCCCC EXTERNAL LKFU2
CCCCC EXTERNAL LKFU3
CCCCC EXTERNAL LKFU4
DOUBLE PRECISION XBAR
DOUBLE PRECISION S2
DOUBLE PRECISION S3
DOUBLE PRECISION F0FREQ
DOUBLE PRECISION F1FREQ
DOUBLE PRECISION F10FRE
DOUBLE PRECISION DC1
COMMON/LKCOM/XBAR,S2,S3,F0FREQ,F1FREQ,F10FRE,DC1,
1 MAXROW,NTOT2
C
C-------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT---------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='LK '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLLK')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLLK--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NVAR
55 FORMAT('N,NVAR = ',2I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,N
WRITE(ICOUT,57)I,Y(I),X(I)
57 FORMAT('I,Y(I),X(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLLK')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN LAGRANGE KATZ ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
IF(NVAR.EQ.1)THEN
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN LAGRANGE KATZ ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1147)
1147 FORMAT('***** ERROR IN LAGRANGE KATZ ',
1 'MAXIMUM LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1148)I,Y(I)
1148 FORMAT(' ROW ',I8,' IS NON-POSITIVE (VALUE = ',
1 G15.7,')')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
CALL SORT(Y,N,TEMP2)
DO1160I=1,N
Y(I)=TEMP2(I)
1160 CONTINUE
C
IRELAT='OFF'
IRHSTG='OFF'
XMIN=Y(1)
XMAX=Y(N)
XSTART=XMIN-0.5
XSTOP=XMAX+0.5
CLWID=1.0
CALL DPBINI(Y,N,IRELAT,CLWID,XSTART,XSTOP,IRHSTG,
1 TEMP2,TEMP1,N2,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
IINDX=MAXNXT/2
IF(N2.LE.IINDX)THEN
IML=0
ICNT=0
DO101I=1,N2
CCCCC IF(TEMP2(I).GT.0)THEN
ICNT=ICNT+1
TEMP2(ICNT)=TEMP2(I)
TEMP1(ICNT)=TEMP1(I)
TEMP3(I)=TEMP2(I)
TEMP3(IINDX+I)=TEMP1(I)
CCCCC ENDIF
101 CONTINUE
N2=ICNT
IK=N2
ELSE
IML=1
ENDIF
F0=TEMP2(1)/REAL(N)
F1=TEMP2(2)/REAL(N)
IF(F0.NE.0.0)THEN
F10=F1/F0
ELSE
F10=CPUMIN
ENDIF
C
ELSEIF(NVAR.EQ.2)THEN
CALL SORTC(X,Y,N,TEMP1,TEMP2)
NTOT=0
DO1210I=1,N
X(I)=TEMP1(I)
Y(I)=TEMP2(I)
NTOT=NTOT + Y(I)
1210 CONTINUE
F0=Y(1)/REAL(NTOT)
F1=Y(2)/REAL(NTOT)
IF(F0.NE.0.0)THEN
F10=F1/F0
ELSE
F10=CPUMIN
ENDIF
C
DO1220I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1221)
1221 FORMAT('***** ERROR IN LAGRANGE KATZ ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1223)
1223 FORMAT(' A NEGATIVE FREQUENCY WAS SPECIFIED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1225)I,Y(I)
1225 FORMAT(' ROW ',I8,' (AFTER SORTING) HAS FREQUENCY ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
1220 CONTINUE
ENDIF
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLLK')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1301)N
1301 FORMAT('AFTER SORT, N = ',I8)
CALL DPWRST('XXX','WRIT')
DO1310I=1,MAX(N,100)
WRITE(ICOUT,1311)I,X(I),Y(I)
1311 FORMAT('I,X(I),Y(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
1310 CONTINUE
ENDIF
C
C *********************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR LAGRANGE KATZ MLE **
C ** ESTIMATION **
C *********************************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLLK')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
IF(NVAR.EQ.1)THEN
NTOT=N
DO2105I=1,N
ITEMP=INT(Y(I)+0.5)
Y(I)=REAL(ITEMP)
2105 CONTINUE
CALL MEAN(Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,ASD,IBUGA3,IERROR)
AVAR=ASD**2
AMIN=Y(1)
AMAX=Y(N)
DSUM=0.0D0
DO2108I=1,N
DTERM1=DBLE(Y(I)) - DBLE(AMEAN)
DSUM=DSUM + DTERM1**3
2108 CONTINUE
S3=REAL(DSUM/DBLE(N-1))
C
ELSE
AMIN=X(1)
AMAX=X(N)
CALL WEMEAN(X,Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL WESD(X,Y,N,IWRITE,ASD,IBUGA3,IERROR)
AVAR=ASD**2
IINDX=MAXNXT/2
IF(N.LE.IINDX)THEN
IML=0
DO2210I=1,N
NTOT=NTOT+Y(I)
TEMP3(I)=Y(I)
TEMP3(IINDX+I)=X(I)
2210 CONTINUE
IK=N
ELSE
IML=1
ENDIF
DSUM=0.0D0
DO2208I=1,N
DSUM=DSUM + DBLE(Y(I))*(DBLE(I) - DBLE(AMEAN))**3
2208 CONTINUE
S3=REAL(DSUM/DBLE(NTOT-1))
ENDIF
C
AMOM=0.0
BETAMO=0.0
BMOM=0.0
AFR=0.0
BETAFR=0.0
BFR=0.0
THETF2=0.0
BETAF2=0.0
AMF2=0.0
AML=0.0
BETAML=0.0
BML=0.0
C
IMOM=0
XBAR=DBLE(AMEAN)
S2=DBLE(ASD)**2
print *,'unstandardized s3=',s3
S3=S3/(DBLE(ASD)**3)
print *,'standardized s3=',s3
DA=(3.0D0*S2**2 - S3*XBAR)**2/(XBAR - S2**3)
print *,'xbar,s2,da=',xbar,s2,da
IF(DA.GE.4.0D0)THEN
DATER1=DA + DSQRT(DA*(DA-4.0D0))
DATER2=DA - DSQRT(DA*(DA-4.0D0))
BETAM1=2.0D0 - 0.5D0*DATER1
BETAM2=2.0D0 - 0.5D0*DATER2
print *,'dater1,dater2=',dater1,dater2
IF(BETAM1.LT.1.0D0)THEN
BETAM0=BETAM1
DATERM=DATER1
ELSEIF(BETAM2.LT.1.0D0)THEN
BETAM0=BETAM2
DATERM=DATER2
ELSE
IMOM=1
ENDIF
AMOM=REAL(0.5D0*XBAR**(1.5D0)*DATERM/DSQRT(S2))
BMOM=REAL(1.0D0 + 0.5D0*DATERM*(DSQRT(DA) - DSQRT(XBAR/S2)))
ELSE
IMOM=1
ENDIF
C
AE=1.D-7
RE=1.D-7
XLOW=0.000001D0
XUP=0.999999D0
XMID=0.5D0
F0FREQ=DBLE(F0)
F1FREQ=DBLE(F1)
F10FRE=DBLE(F10)
NTOT2=NTOT
C
CCCCC IFR=0
CCCCC IF(F0.GT.0.0)THEN
CCCCC C1=S2*LOG(F0)**2/(XBAR**3)
CCCCC IF(C1.GE.1.0 .OR. C1.LE.0.0)IFR=1
CCCCC ELSE
CCCCC IFR=1
CCCCC ENDIF
CCCCC IF(IFR.EQ.0)THEN
CCCCC DC1=DBLE(C1)
CCCCC XLOW=0.000001D0
CCCCC XUP=0.999999D0
CCCCC XMID=DBLE(AMOM)
CCCCC CALL DFZERO(GNBFU3,XLOW,XUP,XMID,RE,AE,IFLAG)
CCCCC AFR=REAL(XLOW)
CCCCC BFR=SQRT((1.0-AFR)*AMEAN**3/AVAR)/AFR
CCCCC BETAFR=(1.0/AFR) - (BFR/AMEAN)
CCCCC IF(BETAFR.LE.1.0)BETAFR=1.0
CCCCC ENDIF
C
IF(IML.EQ.0)THEN
IOPT=2
TOL=1.0D-5
NPAR=2
NPRINT=-1
INFO=0
LWA=MAXNXT
MAXROW=MAXNXT
C
CCCCC IF(IFR2.EQ.0)THEN
CCCCC XPAR(1)=DBLE(BETAF2)
CCCCC XPAR(2)=DBLE(AMF2)
CCCCC ELSEIF(IFR.EQ.0)THEN
CCCCC XPAR(1)=DBLE(BETAFR)
CCCCC XPAR(2)=DBLE(BFR)
CCCCC ELSE
CCCCC XPAR(1)=DBLE(BETAMO)
CCCCC XPAR(2)=DBLE(BMOM)
CCCCC ENDIF
CCCCC CALL DNSQE(GNBFU2,JAC,IOPT,NPAR,XPAR,FVEC,TOL,NPRINT,INFO,
CCCCC1 DTEMP1,LWA,TEMP3,IK)
CCCCC print *,'info = ',info
C
CCCCC BETAML=REAL(XPAR(1))
CCCCC BML=REAL(XPAR(2))
CCCCC IF(BETAML.LE.1.0)BETAML=1.0
CCCCC AML=AMEAN/(BML + BETAML*XBAR)
ENDIF
C
C ***********************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR LAGRANGE KATZ MLE **
C ** ESTIMATION **
C ***********************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Lagrange-Poisson Parameter Estimation ')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5044 FORMAT(' | ')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean:')
5062 FORMAT(' Sample Standard Deviation:')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5065 FORMAT(' First Frequency:')
5068 FORMAT(' Estimate of Theta:')
5069 FORMAT(' Estimate of Beta:')
5071 FORMAT(' Method of Moments:')
5072 FORMAT(' Method of Ones Frequency and Mean:')
5073 FORMAT(' Maximum Likelihood:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5056 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)F0
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMOM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BETAMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BETAFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PWD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Lagrange-Poisson ',
1 'Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'First Frequency: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'Estimate of Theta: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Estimate of Beta: & ',
1 G15.7,2X,A1,A1)
8031 FORMAT(5X,'Method of Moments: & ',2X,A1,A1)
8032 FORMAT(5X,'Method of Ones Frequency and Mean: & ',
1 2X,A1,A1)
8033 FORMAT(5X,'Method of Maximum Likelihood: & ',
1 2X,A1,A1)
8039 FORMAT(5X,' & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)AMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)ASD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)AMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)AMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)F0,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)AMOM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)BETAMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)AFR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)BETAFR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8033)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)AML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)BETAML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(10X,
1 'LAGRANGE KATZ PARAMETER ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)AMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)ASD
4223 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4224)REAL(S3)
4224 FORMAT('SAMPLE CENTRALIZED THIRD MOMENT = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)AMIN
4225 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)AMAX
4227 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4228)F0
4228 FORMAT('ZERO-CLASS FREQUENCY: = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4229)F1
4229 FORMAT('ONES-CLASS FREQUENCY: = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4230)F10
4230 FORMAT('RATIO OF ONES- AND ZERO-FREQUENCIES: = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)
4231 FORMAT('METHOD OF MOMENTS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)AMOM
4235 FORMAT('ESTIMATE OF THETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)BETAMO
4237 FORMAT('ESTIMATE OF BETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4239)BMOM
4239 FORMAT('ESTIMATE OF M = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(IFR.EQ.0)THEN
WRITE(ICOUT,4241)
4241 FORMAT('METHOD OF ZERO-CLASS FREQUENCY AND MOMENTS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)AFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)BETAFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4239)BFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IFR.EQ.0)THEN
WRITE(ICOUT,4251)
4251 FORMAT('METHOD OF MOMENTS AND RATIO OF FREQUENCIES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)THETF2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)BETAF2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4239)AMF2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,4261)
4261 FORMAT('MAXIMUM LIKELIHOOD:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)AML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)BETAML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4239)BML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4291)
4291 FORMAT('ESTIMATES ARE SAVED IN THE INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4292)
4292 FORMAT('THETAMOM, BETAMOM, THETAFR, BETAFR, THETAML, ',
1 'AND BETAML')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLLK')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLLK--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLLP(Y,X,N,NVAR,
1TEMP1,TEMP2,TEMP3,DTEMP1,
1THETMO,ALAMMO,THETVM,ALAMVM,COVMOM,
1THETFR,ALAMFR,THETVF,ALAMVF,COVFR,
1THETWD,ALAMWD,
1THETML,ALAMML,THETVL,ALAMVL,COVML,
1ICAPSW,ICAPTY,MAXNXT,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR THE LAGRANGE-POISSON DISTRIBUTION.
C
C THE MOMENT ESTIMATORS ARE:
C
C THETAHAT = SQRT(XBAR**3/XVAR)
C LAMBDAHAT = THETAHAT*[SQRT(XVAR/XBAR**3) - 1/XBAR]
C
C THE MEAN AND ZERO FREQUENCY ESTIMATORS ARE:
C
C THETAHAT = LOG(f0/N)
C LAMBDAHAT = 1 - THETHAT/XBAR
C
C THE WEIGHTED DISCREPANCIES ESTIMATES ARE THE
C SOLUTION TO THE EQUATIONS:
C
C SUM[i=1 to k][Y(i) - LPOPDF(X)]*
C [(X*(THETA+LAMBDA)/(THETA*(THETA+LAMBDA*X)) - 1] = 0
C
C SUM[i=1 to k][Y(i) - LPOPDF(X)]*
C [(X*(X-1)/(THETA+LAMBDA*X)) - X] = 0
C
C THE EWRC ESTIMATES ARE THE SOLUTION TO THE EQUATIONS:
C
C SUM[i=1 to k][Y(i)*(Y(i) - LPOPDF(X))]*
C [(X*(THETA+LAMBDA)/(THETA*(THETA+LAMBDA*X)) - 1] = 0
C
C SUM[i=1 to k][Y(i)*(Y(i) - LPOPDF(X))]*
C [(X*(X-1)/(THETA+LAMBDA*X)) - X] = 0
C
C THE MAXIMUM LIKELIHOOD ESTIMATE OF LAMBDA IS
C THE SOLUTION OF THE EQUATION:
C
C SUM[X=0 to K][X*(X-1)*N(X)/(XBAR+(X-XBAR)*LAMBDA)] -
C N*XBAR = 0
C
C THERE ARE TWO CASES:
C
C 1) ONE VARIABLE CASE: Y IS RAW DATA
C 2) TWO VARIABLE CASE: Y IS FREQUENCY, X IS CLASS
C MID-POINT.
C
C EXAMPLE--LAGRANGE-POISSON MAXIMUM LIKELIHOOD Y
C --LAGRANGE-POISSON MAXIMUM LIKELIHOOD Y X
C REFERENCES--JOHNSON, KOTZ, AND KEMP (1992). "UNIVARIATE
C DISCRETE DISTRIBUTIONS", SECOND EDITION,
C WILEY, PP. 394-396.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/6
C ORIGINAL VERSION--LAGRANGE 2006.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-----------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBN0
CHARACTER*4 IRELAT
CHARACTER*4 IRHSTG
C
C-------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION X(*)
DIMENSION TEMP1(*)
DIMENSION TEMP2(*)
DIMENSION TEMP3(*)
DOUBLE PRECISION DTEMP1(*)
C
REAL LCL
REAL UCL
C
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(2)
DOUBLE PRECISION FVEC(2)
C
EXTERNAL LPOFUN
EXTERNAL LPOFU2
EXTERNAL LPOFU3
DOUBLE PRECISION XBAR
COMMON/LPOCOM/XBAR,MAXROW,NTOT
C
PARAMETER (NUMALP=5)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWTH(NUMALP)
DIMENSION AUPPTH(NUMALP)
DIMENSION ALOWLA(NUMALP)
DIMENSION AUPPLA(NUMALP)
C
C-------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01/
C
C-----START POINT---------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='LP '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLLP')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLLP--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NVAR
55 FORMAT('N,NVAR = ',2I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,N
WRITE(ICOUT,57)I,Y(I),X(I)
57 FORMAT('I,Y(I),X(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLLP')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN LAGRANGE-POISSON ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
IF(NVAR.EQ.1)THEN
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN LAGRANGE-POISSON ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1147)
1147 FORMAT('***** ERROR IN LAGRANGE-POISSON MAXIMUM ',
1 'LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1148)I,Y(I)
1148 FORMAT(' ROW ',I8,' IS NON-POSITIVE (VALUE = ',
1 G15.7,')')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
CALL SORT(Y,N,TEMP2)
DO1160I=1,N
Y(I)=TEMP2(I)
1160 CONTINUE
XMIN=Y(1)
XMAX=Y(N)
C
IRELAT='OFF'
IRHSTG='OFF'
XSTART=XMIN-0.5
XSTOP=XMAX+0.5
CLWID=1.0
CALL DPBINI(Y,N,IRELAT,CLWID,XSTART,XSTOP,IRHSTG,
1 TEMP2,TEMP1,N2,IBUGA3,IERROR)
ICNT=0
DO101I=1,N2
IF(TEMP2(I).GT.0)THEN
ICNT=ICNT+1
TEMP2(ICNT)=TEMP2(I)
TEMP1(ICNT)=TEMP1(I)
ENDIF
101 CONTINUE
N2=ICNT
IF(IERROR.EQ.'YES')GOTO9000
F1=TEMP2(1)/REAL(N)
C
IINDX=MAXNXT/2
IF(N2.LE.IINDX)THEN
IWD=0
DO2110I=1,N2
TEMP3(I)=TEMP1(I)
TEMP3(IINDX+I)=TEMP2(I)
2110 CONTINUE
IK=N2
ELSE
IWD=1
ENDIF
C
ELSEIF(NVAR.EQ.2)THEN
CALL SORTC(X,Y,N,TEMP1,TEMP2)
NTOT=0
DO1210I=1,N
X(I)=TEMP1(I)
Y(I)=TEMP2(I)
NTOT=NTOT + Y(I)
1210 CONTINUE
F1=Y(1)/REAL(NTOT)
C
DO1220I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1221)
1221 FORMAT('***** ERROR IN LAGRANGE-POISSON ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1223)
1223 FORMAT(' A NEGATIVE FREQUENCY WAS SPECIFIED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1225)I,Y(I)
1225 FORMAT(' ROW ',I8,' (AFTER SORTING) HAS FREQUENCY ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
1220 CONTINUE
ENDIF
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLLP')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1301)N
1301 FORMAT('AFTER SORT, N = ',I8)
CALL DPWRST('XXX','WRIT')
DO1310I=1,MAX(N,100)
WRITE(ICOUT,1311)I,X(I),Y(I)
1311 FORMAT('I,X(I),Y(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
1310 CONTINUE
ENDIF
C
C *********************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR LAGRANGE-POISSON MLE ESTIMATION **
C *********************************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLLP')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
IF(NVAR.EQ.1)THEN
NTOT=N
DO2105I=1,N
ITEMP=INT(Y(I)+0.5)
Y(I)=REAL(ITEMP)
2105 CONTINUE
CALL MEAN(Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,ASD,IBUGA3,IERROR)
AMIN=Y(1)
AMAX=Y(N)
C
ELSE
AMIN=X(1)
AMAX=X(N)
CALL WEMEAN(X,Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL WESD(X,Y,N,IWRITE,ASD,IBUGA3,IERROR)
IINDX=MAXNXT/2
IF(N.LE.IINDX)THEN
IWD=0
DO2210I=1,N
NTOT=NTOT+Y(I)
TEMP3(I)=Y(I)
TEMP3(IINDX+I)=X(I)
2210 CONTINUE
IK=N
ELSE
IWD=1
ENDIF
ENDIF
C
C MOMENT ESTIMATES AND ASSOCITED VARIANCES AND COVARIANCES
C
AN=REAL(NTOT)
THETMO=SQRT(AMEAN**3/ASD**2)
ALAMMO=THETMO*(SQRT(ASD**2/AMEAN**3) - 1.0/AMEAN)
TERM1=THETMO/(2.0*AN)
TERM2=THETMO + (2.0-2.0*ALAMMO+3.0*ALAMMO**2)/(1.0-ALAMMO)
THETVM=TERM1*TERM2
TERM1=(1.0 - ALAMMO)/(2.0*AN*THETMO)
TERM2=THETMO - THETMO*ALAMMO + 2.0*ALAMMO + 3.0*THETMO**2
ALAMVM=TERM1*TERM2
TERM1=1.0/(2.0*AN)
TERM2=THETMO*(1.0-ALAMMO) + 3.0*ALAMMO**2
COVMOM=TERM1*TERM2
C
IF(F1.GT.0.0)THEN
THETFR=LOG(1.0/F1)
ALAMFR=1.0 - THETFR/AMEAN
THETVF=(1.0/AN)*(EXP(THETMO) - 1.0)
ALAMVF=1.0 - THETFR/AMEAN
TERM1=(1.0 - ALAMFR)/(AN*THETFR**2)
TERM2=(1.0 - ALAMFR)*(EXP(THETFR-1.0) +
1 THETFR*(2.0*ALAMFR - 1.0))
TERM1=(1.0-ALAMFR)/(AN*THETFR)
TERM2=EXP(THETFR) - THETFR - 1.0
COVFR=TERM1*TERM2
ELSE
THETFR=0.0
ALAMFR=0.0
THETVF=0.0
ALAMVF=0.0
COVFR=0.0
ENDIF
C
XBAR=DBLE(AMEAN)
IF(IWD.EQ.0)THEN
IOPT=2
TOL=1.0D-5
NPAR=2
NPRINT=-1
INFO=0
LWA=MAXNXT
MAXROW=MAXNXT
C
IF(ALAMFR.GT.0.0 .AND. THETFR.GT.0.0)THEN
XPAR(1)=DBLE(ALAMFR)
XPAR(2)=DBLE(THETFR)
ELSE
XPAR(1)=DBLE(ALAMMO)
XPAR(2)=DBLE(THETMO)
ENDIF
CALL DNSQE(LPOFUN,JAC,IOPT,NPAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP1,LWA,TEMP3,IK)
C
ALAMWD=REAL(XPAR(1))
THETWD=REAL(XPAR(2))
IF(ALAMFR.GT.0.0 .AND. THETFR.GT.0.0)THEN
XPAR(1)=DBLE(ALAMFR)
XPAR(2)=DBLE(THETFR)
ELSE
XPAR(1)=DBLE(ALAMMO)
XPAR(2)=DBLE(THETMO)
ENDIF
CCCCC XPAR(1)=DBLE(ALAMWD)
CCCCC XPAR(2)=DBLE(THETWD)
CCCCC CALL DNSQE(LPOFU3,JAC,IOPT,NPAR,XPAR,FVEC,TOL,NPRINT,INFO,
CCCCC1 DTEMP1,LWA,TEMP3,IK)
CCCCC ALAMEW=REAL(XPAR(1))
CCCCC THETEW=REAL(XPAR(2))
THETEW=0.0
ALAMEW=0.0
ELSE
THETWD=0.0
ALAMWD=0.0
THETEW=0.0
ALAMEW=0.0
ENDIF
C
IOPT=2
TOL=1.0D-5
NPAR=1
NPRINT=-1
INFO=0
LWA=MAXNXT
MAXROW=MAXNXT
C
IF(IWD.EQ.0)THEN
XPAR(1)=DBLE(ALAMWD)
ELSE
XPAR(1)=DBLE(ALAMMO)
ENDIF
CALL DNSQE(LPOFU2,JAC,IOPT,NPAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP1,LWA,TEMP3,IK)
C
ALAMML=REAL(XPAR(1))
THETML=XBAR*(1.0-ALAMML)
THETVL=THETML*(THETML+2.0)/(2.0*AN)
ALAMVL=(THETML+2.0*ALAMML-THETML*ALAMML)*(1.0-ALAMML)/
1 (2.0*AN*THETML)
COVML=-THETML*(1.0-ALAMML)/(2.0*AN)
C
DO2310I=1,NUMALP
C
ALP=ALPHA(I)
P1=ALP/2.0
P2=1.0-(ALP/2.0)
CALL NORPPF(P2,ZALPHA)
C
TERM1=AMEAN*(1.0 - ALAMML)**3*SQRT(AN)
TERM2=(1.0-ALAMML)**2*SQRT(AN) + ZALPHA
TERM3=(1.0-ALAMML)**2*SQRT(AN) - ZALPHA
UCL=TERM1/TERM3
LCL=TERM1/TERM2
ALOWTH(I)=LCL
AUPPTH(I)=UCL
UCL=1.0 - THETML/(AMEAN + ZALPHA*ASD/SQRT(AN))
LCL=1.0 - THETML/(AMEAN - ZALPHA*ASD/SQRT(AN))
ALOWLA(I)=LCL
AUPPLA(I)=UCL
C
2310 CONTINUE
C
C ***********************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR LAGRANGE-POISSON MLE ESTIMATION **
C ***********************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Lagrange-Poisson Parameter Estimation ')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5044 FORMAT(' | ')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean:')
5062 FORMAT(' Sample Standard Deviation:')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5065 FORMAT(' First Frequency:')
5068 FORMAT(' Estimate of Theta:')
5069 FORMAT(' Estimate of Lambda:')
5071 FORMAT(' Method of Moments:')
5072 FORMAT(' Method of Zero Frequency and Mean:')
5073 FORMAT(' Method of Weighted Discrepancies:')
5074 FORMAT(' Method of Maximum Likelihood:')
5076 FORMAT(' Asymptotic Variance of Theta:')
5077 FORMAT(' Asymptotic Variance of Lambda:')
5078 FORMAT(' Asymptotic Covariance of Theta and Lambda:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5056 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)F1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THETMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALAMMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5076)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THETVM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5077)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALAMVM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5078)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COVMOM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THETFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALAMFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5076)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THETVF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5077)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALAMVF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5078)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COVFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THETWD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALAMWD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5074)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THETML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALAMML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5076)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THETVL
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5077)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALAMVL
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5078)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COVML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Large Sample Normal Confidence ',
1 'Intervals for Theta and Lambda Parameters ')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5136 FORMAT(' | ')
5137 FORMAT(' Theta')
5138 FORMAT(' Lambda')
5139 FORMAT(' | ')
5161 FORMAT(' ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5138)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWTH(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPTH(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWLA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPLA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C
5099 FORMAT('')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Lagrange-Poisson ',
1 'Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'First Frequency: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'Estimate of Theta: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Estimate of Lambda: & ',
1 G15.7,2X,A1,A1)
8031 FORMAT(5X,'Method of Moments: & ',2X,A1,A1)
8032 FORMAT(5X,'Method of Zero Frequency and Mean: & ',
1 2X,A1,A1)
8033 FORMAT(5X,'Method of Weighted Descrepancies: & ',
1 2X,A1,A1)
8034 FORMAT(5X,'Method of Maximum Likelihood: & ',
1 2X,A1,A1)
8036 FORMAT(5X,'Asymptotic Variance of Theta: & ',
1 G15.7,2X,A1,A1)
8037 FORMAT(5X,'Asymptotic Variance of Lambda: & ',
1 G15.7,2X,A1,A1)
8038 FORMAT(5X,'Asymptotic Covariance of Theta and Lambda: & ',
1 G15.7,2X,A1,A1)
8039 FORMAT(5X,' & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)AMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)ASD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)AMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)AMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)F0,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8031)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)THETMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)ALAMMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8036)THETVM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8037)ALAMVM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8038)COVMOM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8032)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)THETFR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)ALAMFR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8036)THETVF,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8037)ALAMVF,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8038)COVFR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8033)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)THETWD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)ALAMWD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8034)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)THETML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)ALAMML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8036)THETVL,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8037)ALAMVL,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8038)COVML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Large Sample Normal Confidence ',
1 'Intervals for Theta nd Beta Parameters}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper & Lower & Upper ',
1 2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit & Limit & Limit',
1 2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,' & ',G15.7,' & ',
1 G15.7,2X,A1,A1)
8126 FORMAT(5X,'& ',A1,'multicolumn{2}{c}{Theta}',
1 ' & ',A1,'multicolumn{2}{c}',
1 '{Lambda}',
1 2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWTH(I),AUPPTH(I),ALOWLA(I),
1 AUPPLA(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(10X,
1 'LAGRANGE-POISSON MAXIMUM LIKELIHOOD ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)AMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)ASD
4223 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)AMIN
4225 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)AMAX
4227 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4229)F1
4229 FORMAT('FIRST FREQUENCY: = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)
4231 FORMAT('METHOD OF MOMENTS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4232)THETMO
4232 FORMAT('ESTIMATE OF THETA: = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)ALAMMO
4233 FORMAT('ESTIMATE OF LAMBDA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4236)THETVM
4236 FORMAT('ASYMPTOTIC VARIANCE OF THETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)ALAMVM
4237 FORMAT('ASYMPTOTIC VARIANCE OF LAMBDA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4238)COVMOM
4238 FORMAT('ASYMPTOTIC COVARIANCE OF LAMBDA AND THETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4241)
4241 FORMAT('METHOD OF ZERO FREQUENCY AND MEAN:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4232)THETFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)ALAMFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4236)THETVF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)ALAMVF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4238)COVFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4251)
4251 FORMAT('METHOD OF WEIGHTED DISCREPANCIES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4232)THETWD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)ALAMWD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
CCCCC WRITE(ICOUT,4256)
C4256 FORMAT('METHOD OF EMPIRICAL WEIGHTED RATE OF CHANGE:')
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,4232)THETEW
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,4233)ALAMEW
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4261)
WRITE(ICOUT,4261)
4261 FORMAT('METHOD OF MAXIMUM LIKELIHOOD:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4232)THETML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)ALAMML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4236)THETVL
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)ALAMVL
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4238)COVML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4310)
4310 FORMAT('LARGE SAMPLE NORMAL CONFIDENCE INTERVALS FOR ',
1 'THETA AND LAMBDA PARAMETERS')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4312)
4312 FORMAT(' THETA ',
1 ' LAMBDA ')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4321)
4321 FORMAT(' CONFIDENCE LOWER UPPER',
1 ' LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4323)
4323 FORMAT(' VALUE (%) LIMIT LIMIT',
1 ' LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4326)
4326 FORMAT('------------------------------------------------',
1 '-----------------------')
CALL DPWRST('XXX','WRIT')
DO4341I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4347)ATEMP,ALOWTH(I),AUPPTH(I),ALOWLA(I),
1 AUPPLA(I)
4347 FORMAT(' ',F8.3,10X,4(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4341 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4291)
4291 FORMAT('ESTIMATES ARE SAVED IN THE INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4292)
4292 FORMAT('THETAMOM, LAMBDAMO, THETAFR, LAMBDAFR, THETAWD, ',
1 'LAMBDAWD,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4294)
4294 FORMAT('THETAML, AND LAMBDAML')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLLP')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLLP--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLLS(Y,X,N,NVAR,
1TEMP1,TEMP2,
1RHAT,PHAT,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR THE LOST GAMES DISTRIBUTION.
C THE MAXIMUM LIKELIHOOD ESTIMATES ARE:
C
C 1) USE THE MINIMUM VALUE AS THE ESTIMATE OF
C R.
C
C 2) THEN USE
C
C PHAT = XMEAN/(2*XMEAN-XMIN)
C
C AS THE ESTIMATE OF P.
C
C THERE ARE TWO CASES:
C
C 1) ONE VARIABLE CASE: Y IS RAW DATA
C 2) TWO VARIABLE CASE: Y IS FREQUENCY, X IS CLASS
C MID-POINT.
C
C EXAMPLE--LOST GAMES MAXIMUM LIKELIHOOD Y
C --LOST GAMES MAXIMUM LIKELIHOOD Y X
C REFERENCES--JOHNSON, KOTZ, AND KEMP (1992). "UNIVARIATE
C DISCRETE DISTRIBUTIONS", SECOND EDITION,
C WILEY, PP. 445-447.
C --LUC DEVROYE (1986), "NON-UNIFORM RANDOM VARIATE
C GENERATION", SPRINGER-VERLANG, PP. 758-759.
C --KEMP AND KEMP (1968), "ON A DISTRIBUTION ASSOCIATED
C WITH CERTAIN STOCHASTIC PROCESSES", JOURNAL OF
C THE ROYAL STATISTICAL SOCIETY, SERIES B, 30,
C PP. 401-410.
C --HAIGHT (1961), "A DISTRIBUTION ANALOGOUS TO THE
C BOREL-TANNER", BIOMETRIKA, 48, PP. 167-173.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/6
C ORIGINAL VERSION--JUNE 2006.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-----------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBN0
C
C-------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION X(*)
DIMENSION TEMP1(*)
DIMENSION TEMP2(*)
C
C-------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT---------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='LS '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLLS')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLLS--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NVAR
55 FORMAT('N,NVAR = ',2I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,N
WRITE(ICOUT,57)I,Y(I),X(I)
57 FORMAT('I,Y(I),X(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN LOST GAMES ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
IF(NVAR.EQ.1)THEN
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN LOST GAMES ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1147)
1147 FORMAT('***** ERROR IN LOST GAMES MAXIMUM ',
1 'LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1148)I,Y(I)
1148 FORMAT(' ROW ',I8,' IS NON-POSITIVE (VALUE = ',
1 G15.7,')')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
CALL SORT(Y,N,TEMP2)
DO1160I=1,N
Y(I)=TEMP2(I)
1160 CONTINUE
C
ELSEIF(NVAR.EQ.2)THEN
CALL SORTC(X,Y,N,TEMP1,TEMP2)
DO1210I=1,N
X(I)=TEMP1(I)
Y(I)=TEMP2(I)
1210 CONTINUE
C
DO1220I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1221)
1221 FORMAT('***** ERROR IN LOST GAMES ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1223)
1223 FORMAT(' A NEGATIVE FREQUENCY WAS SPECIFIED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1225)I,Y(I)
1225 FORMAT(' ROW ',I8,' (AFTER SORTING) HAS FREQUENCY ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
1220 CONTINUE
ENDIF
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLNM')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1301)N
1301 FORMAT('AFTER SORT, N = ',I8)
CALL DPWRST('XXX','WRIT')
DO1310I=1,MAX(N,100)
WRITE(ICOUT,1311)I,X(I),Y(I)
1311 FORMAT('I,X(I),Y(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
1310 CONTINUE
ENDIF
C
C *****************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR LOST GAMES MLE ESTIMATION **
C *****************************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
IF(NVAR.EQ.1)THEN
NTOT=N
DO2105I=1,N
ITEMP=INT(Y(I)+0.5)
Y(I)=REAL(ITEMP)
2105 CONTINUE
CALL MEAN(Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,ASD,IBUGA3,IERROR)
CALL MINIM(Y,N,IWRITE,AMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,AMAX,IBUGA3,IERROR)
C
ELSE
AMIN=X(1)
AMAX=X(N)
CALL WEMEAN(X,Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL WESD(X,Y,N,IWRITE,ASD,IBUGA3,IERROR)
ENDIF
RHAT=AMIN
PHAT=AMEAN/(2.0*AMEAN - RHAT)
C
C ***********************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR LOST GAMES MLE ESTIMATION **
C ***********************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Lost Games Maximum ',
1 'Likelihood Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5044 FORMAT(' | ')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean:')
5062 FORMAT(' Sample Standard Deviation:')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5068 FORMAT(' Estimate of R (Sample Minimum):')
5069 FORMAT(' Maximum Likelihood Estimate of P:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5056 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)RHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
5080 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Lost Games ',
1 'Maximum Likelihood Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'Estimate of R: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Maximum Likelihood Estimate of P: & ',
1 G15.7,2X,A1,A1)
8039 FORMAT(5X,' & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)AMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)ASD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)AMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)AMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)RHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)PHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(10X,
1 'LOST GAMES MAXIMUM LIKELIHOOD ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)AMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)ASD
4223 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)AMIN
4225 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)AMAX
4227 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)RHAT
4235 FORMAT('ESTIMATE OF R = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)PHAT
4237 FORMAT('MAXIMUM LIKELIHOOD ESTIMATE OF P = ',G15.7)
CALL DPWRST('XXX','WRIT')
4230 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4241)
4241 FORMAT('THE MAXIMUM LIKELIHOOD ESTIMATES FOR R AND P')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4242)
4242 FORMAT('ARE SAVED IN THE INTERNAL PARAMETERS RML AND PML')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLLS')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLLS--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLMX(Y,N,AMXMIN,
1XTEMP,MAXNXT,
1ALOCML,SCALEML,ALOCM2,SCALEM2,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR THE MAXWELL DISTRIBUTION
C EXAMPLE--MAXWELL MAXIMUM LIKELIHOOD Y
C REFERENCE--"CONTINUOUS UNIVARIATE DISTRIBUTIONS--VOLUME 1",
C SECOND EDITION, JOHNSON, KOTZ, AND BALAKRISHNAN,
C WILEY, 1994, P. 453.
C THE MAXIMUM LIKELIHOOD ESTIMATE OF SCALE IS:
C
C SIGMAHAT = SQRT(SUM[i=1 to n][X(i)**2]/(3*N)]
C
C WITH N DENOTING THE SAMPLE SIZE.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/6
C ORIGINAL VERSION--JUNE 2004.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*1 IBASLC
C
DOUBLE PRECISION DSUM
DOUBLE PRECISION DSUM2
DOUBLE PRECISION DTEMP
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='MX '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLMX')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLMX--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLMX')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN MAXWELL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)N
1112 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR FROM MAXWELL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
C **********************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR MAXWELL MLE **
C ** ESTIMATE (FULL SAMPLE CASE) **
C **********************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLMX')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
C
IWRITE='OFF'
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
C
IF(AMXMIN.NE.CPUMIN)THEN
IF(AMXMIN.LE.XMIN)THEN
ALOCML=AMXMIN
ELSE
ALOCML=XMIN
ENDIF
ELSE
ALOCML=XMIN
ENDIF
AZERO=0.0
IF(XMIN.LT.0.0)AZERO=XMIN
ALOCM2=AZERO
C
DSUM=0.0D0
DSUM2=0.0D0
DO2110I=1,N
DSUM=DSUM + DBLE(Y(I) - ALOCML)**2
DSUM2=DSUM2 + DBLE(Y(I) - AZERO)**2
2110 CONTINUE
DTEMP=DSQRT(DSUM/(3.0D0*DBLE(N)))
SCALEML=REAL(DTEMP)
DTEMP=DSQRT(DSUM2/(3.0D0*DBLE(N)))
SCALEM2=REAL(DTEMP)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Maxwell Parameter Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5060 FORMAT(' Summary Statistics:')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Sample Minimum:')
5065 FORMAT(' Sample Maximum:')
5066 FORMAT(' Maximum Likelihood Estimates: ')
5067 FORMAT(' (Location = Data Minimum)')
5068 FORMAT(' (Location = User Specified)')
5069 FORMAT(' (Location = Zero)')
5071 FORMAT(' Estimate for Location Parameter:')
5072 FORMAT(' Estimate of Scale ',
1 'Parameter:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5060)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
IF(XMIN.EQ.ALOCML)THEN
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOCML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALEML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOCM2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALEM2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Maxwell Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8031 FORMAT(5X,'Estimate of Location Parameter: & ',G15.7,2X,A1,A1)
8032 FORMAT(5X,'Maximum Likelihood Estimate of Scale Parameter: & ',
1 G15.7,2X,A1,A1)
8027 FORMAT(5X,' & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)ALOCML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)SCALEML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)ALOCM2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)SCALEM2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4101)
4101 FORMAT(12X,'MAXWELL PARAMETER ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4110)
4110 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4111)N
4111 FORMAT('THE NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4113)XMEAN
4113 FORMAT('THE SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4115)XSD
4115 FORMAT('THE SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4117)XMIN
4117 FORMAT('THE SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4118)XMAX
4118 FORMAT('THE SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
IF(ALOCML.EQ.XMIN)THEN
WRITE(ICOUT,4120)
4120 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES (LOCATION = ',
1 'DATA MINIMUM:')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4122)
4122 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES (LOCATION = ',
1 'USER SPECIFIED:')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4126)ALOCML
4126 FORMAT('ESTIMATE OF LOCATION PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4128)SCALEML
4128 FORMAT('ESTIMATE OF SCALE PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4130)
4130 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES (LOCATION = ZERO:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4126)ALOCM2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4128)SCALEM2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4131)
4131 FORMAT(6X,'THE LOCATION AND SCALE PARAMETERS WILL BE SAVED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4133)
4133 FORMAT('AS THE INTERNAL PARAMETERS LOCML, SCALEML, ',
1 'LOCM2, AND SCALEM2.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLMX')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLMX--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLNB(Y,N,AK,
1XTEMP,DTEMP,MAXNXT,
1PMOM,AKMOM,PML,PMLBC,PMLBCV,AKML2,PML2,PML2BC,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES AND METHOD OF MOMENT ESTIMATES FOR
C NEGATIVE BINOMIAL DISTRIBUTION. THE METHOD OF
C MOMENT ESTIMATES ARE:
C PHAT = ((S**2/XBAR) -1)
C KHAT = XBAR**2/(S**2 - XBAR)
C WITH XBAR AND S**2 DENOTING THE SAMPLE MEAN AND
C VARIANCE, RESPECTIVELY. THE MAXIMUM LIKELIHOOD
C ESTIMATE OF P (ASSUMING K IS KNOWN) IS:
C PHAT = XBAR/(K + XBAR)
C FOR ML, WE ALLOW USER TO SPECIFY K. IF K IS NOT
C SPECIFIED, THEN USE THE MOMENT ESTIMATOR FOR K.
C EXAMPLE--NEGATIVE BINOMIAL MAXIMUM LIKELIHOOD Y
C REFERENCE--"UNIVARIATE DISCRETE DISTRIBUTIONS", SECOND EDITION,
C JOHNSON, KOTZ, AND KEMP, WILEY, PP. 202.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/3
C ORIGINAL VERSION--MARCH 2004.
C UPDATED --AUGUST 2005. REFORMAT OUTPUT FOR
C CONSISTENCY WITH OTHER ML
C ROUTINES
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*1 IBASLC
C
PARAMETER (NUMALP=5)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWP1(NUMALP)
DIMENSION AUPPP1(NUMALP)
CCCCC DIMENSION ALOWP2(NUMALP)
CCCCC DIMENSION AUPPP2(NUMALP)
C
EXTERNAL SUM
EXTERNAL NBFUN
DOUBLE PRECISION NBFUN
C
DOUBLE PRECISION DXBAR
COMMON/NBCOM/DXBAR,NSAMP
C
DOUBLE PRECISION DN
DOUBLE PRECISION DTERM1
DOUBLE PRECISION DAE
DOUBLE PRECISION DRE
DOUBLE PRECISION DT1
DOUBLE PRECISION DSUM1
DOUBLE PRECISION DSUM2
DOUBLE PRECISION DXSTRT
DOUBLE PRECISION DXLOW
DOUBLE PRECISION DXUP
DOUBLE PRECISION XLOWSV
DOUBLE PRECISION XUPSV
C
INTEGER IFLAG
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
DOUBLE PRECISION DTEMP(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='NB '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLNB')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLNB--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNB')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN NEGATIVE BINOMIAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** WARNING FROM NEGATIVE BINOMIAL MAXIMUM ',
1 'LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
1139 CONTINUE
C
C ******************************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR NEGATIVE BINOMIAL MLE ESTIMATE **
C ******************************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLNB')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
DO2105I=1,N
ITEMP=INT(Y(I)+0.5)
IF(ITEMP.LT.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2108)I,Y(I)
2108 FORMAT(' ROW ',I8,' IS NEGATIVE. THE VALUE IS ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
Y(I)=REAL(ITEMP)
2105 CONTINUE
C
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
CALL SUM(Y,N,IWRITE,XSUM,IBUGA3,IERROR)
C
IF(XMIN.LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2111)
2111 FORMAT('***** ERROR FROM NEGATIVE BINOMIAL MAXIMUM ',
1 'LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2113)
2113 FORMAT(' NEGATIVE VALUE ENCOUNTERED.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
C FIRST COMPUTE METHOD OF MOMENT ESTIMATES
C
AKMOM=XMEAN*XMEAN/(XSD*XSD - XMEAN)
PMOM=((XSD*XSD/XMEAN) - 1.0)
C
C NOW COMPUTE MAXIMUM LIKELIHOOD ESTIMATES. TWO CASES:
C 1) K ASSUMED KNOWN
C 2) K ASSUMED NOT KNOWN
C
C CASE 1: K ASSUMED KNOWN
C
PMLBC=0.0
PMLBCV=0.0
IF(AK.GT.0.0)THEN
PML=AK/(XMEAN+AK)
IF(AK.GE.2.0)THEN
PMLBC=(AK-1.0)/(XMEAN+AK-1.0)
PMLBCV=(1.0/REAL(N))*PMLBC*PMLBC*(1.0-PMLBC)/
1 (AK-1.0-PMLBC)
ENDIF
ELSE
PML=AKMOM/(XMEAN+AKMOM)
IF(AKMOM.GE.2.0)THEN
PMLBC=(AKMOM-1.0)/(XMEAN+AKMOM-1.0)
PMLBCV=(1.0/REAL(N))*PMLBC*PMLBC*(1.0-PMLBC)/
1 (AKMOM-1.0-PMLBC)
ENDIF
ENDIF
C
AKTEMP=AK
IF(AKTEMP.LE.0.0)AKTEMP=AKMOM
AN=REAL(N)
IF(AKTEMP.GE.2.0)THEN
DO2160I=1,NUMALP
C
ALP=ALPHA(I)
P1=ALP/2.0
P2=1.0-(ALP/2.0)
CALL NBPPF(P1,PMLBC,AN*AKTEMP,SL)
CALL NBPPF(P2,PMLBC,AN*AKTEMP,SU)
TERM1=AKTEMP-1.0
ALOWP1(I)=TERM1/((SU/AN)+TERM1)
AUPPP1(I)=TERM1/((SL/AN)+TERM1)
2160 CONTINUE
ENDIF
C
C CASE 2: K ASSUMED UNKNOWN
C
DXBAR=DBLE(XMEAN)
NSAMP=N
C
DXSTRT=DBLE(AKTEMP)
DAE=0.000001D0
DRE=DAE
IFLAG=0
DXLOW=DXSTRT - 1.0D0
DXUP=DXSTRT + 1.0D0
ITBRAC=0
DO3104I=1,N
DTEMP(I)=DBLE(Y(I))
3104 CONTINUE
C
3105 CONTINUE
XLOWSV=DXLOW
XUPSV=DXUP
CALL DFZER2(NBFUN,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
C
IF(IFLAG.EQ.4 .AND. ITBRAC.LE.100)THEN
DXLOW=MAX(0.1D0,XLOWSV-1.0D0)
DXUP=XUPSV+1.0D0
ITBRAC=ITBRAC+1
GOTO3105
ENDIF
C
IF(IFLAG.EQ.2)THEN
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,111)
111 FORMAT('***** WARNING FROM NEGATIVE BINOMIAL MAXIMUM ',
1 'LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,113)
113 FORMAT(' ESTIMATE OF K MAY NOT BE COMPUTED TO ',
1 'DESIRED TOLERANCE.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,111)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,123)
123 FORMAT(' ESTIMATE OF K MAY BE NEAR A SINGULAR POINT.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.4)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,131)
131 FORMAT('***** ERROR FROM NEGATIVE BINOMIAL MAXIMUM ',
1 'LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,133)
133 FORMAT(' APPROPRIATE BRACKETING INTERVAL NOT FOUND.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.5)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,141)
141 FORMAT('***** WARNING FROM GUMBEL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,143)
143 FORMAT(' MAXIMUM ITERATIONS EXCEEDED.')
CALL DPWRST('XXX','BUG ')
ENDIF
C
AKML2=REAL(DXLOW)
PML2=AKML2/(XMEAN + AKML2)
IF(AKML2.GT.1.0)THEN
PML2BC=(AKML2-1.0)/(XMEAN + AKML2 - 1.0)
ELSE
PML2BC=0.0
ENDIF
C
C ******************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR NEGATIVE BINOMIAL MLE ESTIMATE **
C ******************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNB')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Negative Binomial Parameter ',
1 'Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5060 FORMAT(' Summary Statistics::')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Sample Minimum:')
5065 FORMAT(' Sample Maximum:')
5066 FORMAT(' Method of Moment Estimates:')
5067 FORMAT(' Estimate of k:')
5068 FORMAT(' Estimate of p:')
5069 FORMAT(' Maximum Likelihood Estimates (k ',
1 'assumed known)')
5070 FORMAT(' Value for k (User-Specified):')
5071 FORMAT(' Value for k (Method of Moments):')
5072 FORMAT(' Bias Corrected Estimate of p:')
5073 FORMAT(' Sampling Variance of Bias Corrected Estimate ',
1 'of p:')
5076 FORMAT(' Maximum Likelihood Estimates (k ',
1 'assumed unknown)')
5077 FORMAT(' Estimate of k:')
5078 FORMAT(' Estimate of p:')
5079 FORMAT(' Bias Corrected Estimate of p:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5060)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AKMOM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PMOM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
IF(AK.GT.0.0)THEN
AKTEMP=AK
WRITE(ICOUT,5070)
ELSE
AKTEMP=AKMOM
WRITE(ICOUT,5071)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AKTEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
AKTEMP=AK
IF(AKTEMP.LE.0.0)AKTEMP=AKMOM
IF(AKTEMP.GE.2.0)THEN
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PMLBC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PMLBCV
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ENDIF
C
5091 FORMAT(' ')
5093 FORMAT(' ')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the ',
1 'p Parameter ')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5136 FORMAT(' | ')
5139 FORMAT(' | ')
5161 FORMAT(' ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWP1(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPP1(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5076)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5077)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AKML2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5078)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PML2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(AKML2.GT.1.0)THEN
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5079)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PML2BC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
ENDIF
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Negative Binomial Parameter ',
1 'Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Summary Statistics: & ',2X,A1,A1)
8022 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8023 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,' & ',2X,A1,A1)
8028 FORMAT(5X,'Method of Moment Estimates: & ',2X,A1,A1)
8029 FORMAT(5X,'Maximum Likelihood Estimates: & ',2X,A1,A1)
8030 FORMAT(5X,'Estimate of k: ',G15.7,2X,A1,A1)
8031 FORMAT(5X,'Estimate of p: ',G15.7,2X,A1,A1)
8032 FORMAT(5X,'Value for k (User-Specified): ',G15.7,2X,A1,A1)
8033 FORMAT(5X,'Value for k (Method of Moments): ',G15.7,2X,A1,A1)
8034 FORMAT(5X,'Bias Corrected Estimate of p: ',G15.7,2X,A1,A1)
8035 FORMAT(5X,'Sampling Variance of Bias Corrected Estimate: ',
1 G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)AKMOM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)PMOM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8029)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(AK.GT.0.0)THEN
WRITE(ICOUT,8032)AK,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8033)AKMOM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8031)PML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
AKTEMP=AK
IF(AKTEMP.LE.0.0)AKTEMP=AKMOM
IF(AKTEMP.GE.2.0)THEN
WRITE(ICOUT,8034)PMLBC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8035)PMLBCV,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for the p Parameter}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper ',
1 2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit ',
1 2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,
1 2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWP1(I),AUPPP1(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
8220 FORMAT(5X,A1,'begin{tabular} {lr}')
8229 FORMAT(5X,'Maximum Likelihood Estimates (k assumed unknown): ',
1 '& ',2X,A1,A1)
8230 FORMAT(5X,'Estimate of k: ',G15.7,2X,A1,A1)
8231 FORMAT(5X,'Estimate of p: ',G15.7,2X,A1,A1)
8234 FORMAT(5X,'Bias Corrected Estimate of p: ',G15.7,2X,A1,A1)
8240 FORMAT(5X,A1,'hline')
8249 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8220)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8229)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8230)AKML2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8231)PML2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8234)PML2BC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4301)
4301 FORMAT(12X,'NEGATIVE BINOMIAL PARAMETER ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4310)
4310 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4311)N
4311 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4313)XMEAN
4313 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4315)XSD
4315 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4317)XMIN
4317 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4319)XMAX
4319 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4320)
4320 FORMAT('METHOD OF MOMENT ESTIMATES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4323)AKMOM
4323 FORMAT('ESTIMATE OF K = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4325)PMOM
4325 FORMAT('ESTIMATE OF P = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4330)
4330 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES (K ASSUMED KNOWN):')
CALL DPWRST('XXX','WRIT')
IF(AK.GT.0)THEN
WRITE(ICOUT,4331)AK
4331 FORMAT('VALUE OF K (USER-SPECIFIED) = ',G15.7)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4333)AKMOM
4333 FORMAT('VALUE OF K (METHOD OF MOMENT) = ',G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4335)PML
4335 FORMAT('ESTIMATE OF P = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
AKTEMP=AK
IF(AKTEMP.LE.0.0)AKTEMP=AKMOM
IF(AKTEMP.GE.2.0)THEN
WRITE(ICOUT,4337)PMLBC
4337 FORMAT('BIAS CORRECTED ESTIMATE OF P = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4339)PMLBCV
4339 FORMAT('SAMPLING VARIANCE OF P = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4340)
4340 FORMAT('CONFIDENCE INTERVAL FOR P PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4351)
4351 FORMAT(' CONFIDENCE LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4353)
4353 FORMAT(' VALUE (%) LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4356)
4356 FORMAT('-------------------------------------------')
CALL DPWRST('XXX','WRIT')
DO4361I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4367)ATEMP,ALOWP1(I),AUPPP1(I)
4367 FORMAT(' ',F8.3,10X,2(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4361 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4430)
4430 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES (K ASSUMED UNKNOWN):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4432)AKML2
4432 FORMAT('ESTIMATE OF K = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4434)PML2
4434 FORMAT('ESTIMATE OF P = ',G15.7)
CALL DPWRST('XXX','WRIT')
IF(AKML2.GT.1.0)THEN
WRITE(ICOUT,4436)PML2BC
4436 FORMAT('BIAS CORRECTED ESTIMATE OF P = ',G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4941)
4941 FORMAT('PMOM, KMOM, PML, PMLBC, PMLVAR, KML2, PML2, AND ',
1 'PML2BC WILL BE SAVED AS INTERNAL PARAMETERS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLNB')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLNB--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLNM(Y,X,N,NVAR,Y2,X2,N2,
1TEMP1,TEMP2,WORK,ITEMP1,MAXNXT,
1CLLIMI,CLWIDT,NCOMP,
1TEMP5,IHSTCW,MAXOBV,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR THE NORMAL MIXTURE DISTRIBUTION.
C IT USES APPLIED STATISTICS ALGORITHM 203 TO
C PERFORM THE MAXIMUM LIKELIHOOD ESTIMATION.
C
C THERE ARE TWO CASES:
C
C 1) ONE VARIABLE CASE: Y IS RAW DATA
C A) CALL DPBIN TO BIN DATA
C B) IF USER HAS SPECIFIED CLASS LIMITS OR WIDTH,
C PASS TO DPBIN.
C 2) TWO VARIABLE CASE: Y IS FREQUENCY, X IS CLASS
C MID-POINT.
C
C NCOMP DEFINES NUMBER OF NORMAL DISTRIBUTIONS BEING
C FIT. MAXIMUM OF 20 ALLOWED.
C
C EXAMPLE--NORMAL MIXTURE MAXIMUM LIKELIHOOD Y
C --NORMAL MIXTURE MAXIMUM LIKELIHOOD Y X
C REFERENCE--"MAXIMUM LIKELIHOOD ESTIMATION OF MIXTURES OF
C DISTRIBUTIONS", M. AGHA AND T. IBRAHIM,
C APPLIED STATISTICS, 1984, VOLUME 33, NO. 3,
C PP. 327-329.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/8
C ORIGINAL VERSION--AUGUST 2004.
C UPDATED --MARCH 2006. SUPPORT FOR DIFFERENT DEFAULT
C BINNING ALGORITHMS
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-----------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 IHSTCW
CHARACTER*4 IRELAT
CHARACTER*4 IRHSTG
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
INCLUDE 'DPCOF2.INC'
C
CHARACTER*4 ISUBN0
C
CHARACTER*80 IFILE1
CHARACTER*12 ISTAT1
CHARACTER*12 IFORM1
CHARACTER*12 IACCE1
CHARACTER*12 IPROT1
CHARACTER*12 ICURS1
CHARACTER*4 IERRF1
CHARACTER*4 IENDF1
CHARACTER*4 IREWI1
C
C-------------------------------------------------------------------
C
PARAMETER (KMAX=20)
PARAMETER (MMAX=200)
C
DIMENSION Y(*)
DIMENSION X(*)
DIMENSION Y2(*)
DIMENSION X2(*)
DIMENSION TEMP1(*)
DIMENSION TEMP2(*)
DIMENSION TEMP5(*)
DIMENSION CLLIMI(*)
DIMENSION CLWIDT(*)
INTEGER ITEMP1(*)
C
REAL TOL
C
REAL ALPHA(KMAX)
REAL XMEAN(KMAX)
REAL XSD(KMAX)
C
C FOR STORAGE EFFICIENCY, USE SINGLE "WORK" ARRAY FOR FOLLOWING.
C TO AVOID CONFUSION, LEAVE ALPHA, XMEAN, AND XSD AS DISTINCT
C ARRAYS (THESE TAKE A MINIMAL AMOUNT OF STORAGE, SINCE THESE
C REFERENCED IN THIS ROUTINE, KEEP CLARITY IN CODE)
C
DIMENSION WORK(*)
C
CCCCC REAL NEWALP(KMAX)
CCCCC REAL NEWMEA(KMAX)
CCCCC REAL NEWSD(KMAX)
CCCCC REAL DT(KMAX)
CCCCC REAL NT(KMAX)
CCCCC REAL VT(KMAX)
CCCCC REAL G(MMAX)
CCCCC REAL F(MMAX,KMAX)
C
CCCCC EQUIVALENCE(NEWALP(1), WORK(1))
CCCCC EQUIVALENCE(NEWMEA(1), WORK(KMAX + 1))
CCCCC EQUIVALENCE(NEWSD(1), WORK(2*KMAX + 1))
CCCCC EQUIVALENCE(DT(1), WORK(3*KMAX + 1))
CCCCC EQUIVALENCE(NT(1), WORK(4*KMAX + 1))
CCCCC EQUIVALENCE(VT(1), WORK(5*KMAX + 1))
CCCCC EQUIVALENCE(G(1), WORK(6*KMAX + 1))
CCCCC EQUIVALENCE(F(1,1), WORK(7*KMAX + 1))
C
C-------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT---------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='NM '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLNM')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLNM--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NCOMP,NVAR
55 FORMAT('N,NCOMP,NVAR = ',3I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,N
WRITE(ICOUT,57)I,Y(I),X(I)
57 FORMAT('I,Y(I),X(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN NORMAL MIXTURE ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
IF(NCOMP.LT.2 .OR. NCOMP.GT.KMAX)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1121)
1121 FORMAT('***** ERROR IN NORMAL MIXTURE ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1123)
1123 FORMAT(' THE SPECIFIED NUMBER OF COMPONENT ',
1 'DISTRIBUTIONS IS')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1125)KMAX
1125 FORMAT(' LESS THAN 2 OR GREATER THAN ',I8,'.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1127)NCOMP
1127 FORMAT(' NUMBER OF COMPONENTS = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(NVAR.EQ.1)THEN
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN NORMAL MIXTURE ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
CCCCC DO1145I=1,N
CCCCC IF(Y(I).LE.0.0)THEN
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,1147)
C1147 FORMAT('***** ERROR IN NORMAL MIXTURE MAXIMUM ',
CCCCC1 'LIKELIHOOD ESTIMATION')
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,1148)I,Y(I)
C1148 FORMAT(' ROW ',I8,' IS NON-POSITIVE (VALUE = ',
CCCCC1 G15.7,')')
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC IERROR='YES'
CCCCC GOTO9000
CCCCC ENDIF
C1145 CONTINUE
C
CALL SORT(Y,N,TEMP2)
DO1160I=1,N
Y(I)=TEMP2(I)
1160 CONTINUE
C
ELSEIF(NVAR.EQ.2)THEN
CALL SORTC(X,Y,N,TEMP1,TEMP2)
DO1210I=1,N
X(I)=TEMP1(I)
Y(I)=TEMP2(I)
1210 CONTINUE
C
DO1220I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1221)
1221 FORMAT('***** ERROR IN NORMAL MIXTURE ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1223)
1223 FORMAT(' A NEGATIVE FREQUENCY WAS SPECIFIED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1225)I,Y(I)
1225 FORMAT(' ROW ',I8,' (AFTER SORTING) HAS FREQUENCY ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
1220 CONTINUE
ENDIF
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLNM')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1301)N
1301 FORMAT('AFTER SORT, N = ',I8)
CALL DPWRST('XXX','WRIT')
DO1310I=1,MAX(N,100)
WRITE(ICOUT,1311)I,X(I),Y(I)
1311 FORMAT('I,X(I),Y(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
1310 CONTINUE
ENDIF
C
C *****************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR NORMAL MIXTURE MLE ESTIMATION **
C *****************************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
TOL=1.0E-6
IA = 1
K = NCOMP
IC = 0
C
IF(NVAR.EQ.1)THEN
NTOT=N
CALL MEAN(Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,ASD,IBUGA3,IERROR)
AMIN=Y(1)
AMAX=Y(N)
IRELAT='OFF'
IRHSTG='PERC'
CLWID=CLWIDT(1)
CALL DPBIN(Y,N,IRELAT,CLWID,CLLIMI(1),CLLIMI(2),IRHSTG,
1 TEMP5,MAXOBV,IHSTCW,
1 Y2,X2,N2,IBUGA3,IERROR)
C
M=N2
DO2210I=1,N2
ITEMP1(I)=INT(Y2(I)+0.5)
2210 CONTINUE
C
ELSE
M=N
DO2310I=1,M
ITEMP1(I)=INT(Y(I)+0.5)
X2(I)=X(I)
2310 CONTINUE
AMIN=X2(1)
AMAX=X2(M)
DSUM1=0.0D0
NTOT=0
DO2220I=1,M
NTOT=NTOT + ITEMP1(I)
DSUM1= DSUM1 + DBLE(ITEMP1(I))*DBLE(X2(I))
2220 CONTINUE
AMEAN=REAL(DSUM1/DBLE(NTOT))
DSUM1=0.0D0
DO2230I=1,M
TERM1=X2(I) - AMEAN
DSUM1= DSUM1 + DBLE(ITEMP1(I))*(DBLE(TERM1)**2)
2230 CONTINUE
ASD=REAL(DSUM1/DBLE(NTOT))
ENDIF
C
ACOMP=REAL(NCOMP)
PTEMP=1.0/ACOMP
DO2410I=1,NCOMP
ALPHA(I)=PTEMP
XSD(I)=ASD
XMEAN(I)=AMIN + REAL(I)*PTEMP*(AMAX-AMIN)
2410 CONTINUE
XMEAN(NCOMP)=XMEAN(NCOMP) - 0.5*PTEMP*(AMAX-AMIN)
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLNM')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
DO2412I=1,M
WRITE(ICOUT,2411)I,X2(I),ITEMP1(I)
2411 FORMAT('I,X2(I),ITEMP1(I) = ',I8,G15.7,I8)
CALL DPWRST('XXX','WRIT')
2412 CONTINUE
ENDIF
C
CALL MIXTUR(IA,K,M,IC,X2,ITEMP1,
1 ALPHA,XMEAN,XSD,TOL,NTOT,
CCCCC1 NEWALP,NEWMEA,NEWSD,DT,NT,VT,G,F,KMAX,MMAX,
1 WORK(1),WORK(KMAX+1),WORK(2*KMAX+1),WORK(3*KMAX+1),
1 WORK(4*KMAX+1),WORK(5*KMAX+1),WORK(6*KMAX+1),
1 WORK(7*KMAX+1),
1 KMAX,MMAX,
1 ALOGL,ICOUNT,IFAULT)
C
IF(IFAULT.EQ.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2011)
2011 FORMAT('**** ERROR: FOR NORMAL MIXTURE MAXIMUM LIKELIHOOD ',
1 'ESTIMATION,')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2013)
2013 FORMAT(' AN INVALID CHOICE FOR DISTRIBUTION WAS MADE.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2015)
2015 FORMAT(' VALUE OF IA = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ELSEIF(IFAULT.EQ.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2021)
2021 FORMAT('**** ERROR: FOR NORMAL MIXTURE MAXIMUM LIKELIHOOD ',
1 'ESTIMATION,')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2023)
2023 FORMAT(' A MIXING PARAMETER OUTSIDE THE (0,1] ',
1 'INTERVAL WAS SPECIFIED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ELSEIF(IFAULT.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2031)
2031 FORMAT('**** ERROR: FOR NORMAL MIXTURE MAXIMUM LIKELIHOOD ',
1 'ESTIMATION,')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2033)
2033 FORMAT(' MEAN IS OUTSIDE THE RANGE OF THE DATA.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ELSEIF(IFAULT.EQ.4)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2041)
2041 FORMAT('**** ERROR: FOR NORMAL MIXTURE MAXIMUM LIKELIHOOD ',
1 'ESTIMATION,')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2043)
2043 FORMAT(' A NON-POSITIVE STANDARD DEVIATION WAS ',
1 'SPECIFIED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ELSEIF(IFAULT.EQ.5)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2051)
2051 FORMAT('**** ERROR: FOR NORMAL MIXTURE MAXIMUM LIKELIHOOD ',
1 'ESTIMATION,')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2053)
2053 FORMAT(' INPUT DATA WAS NOT SORTED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ELSEIF(IFAULT.EQ.6)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2061)
2061 FORMAT('**** ERROR: FOR NORMAL MIXTURE MAXIMUM LIKELIHOOD ',
1 'ESTIMATION,')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2063)
2063 FORMAT(' A NEGATIVE FREQUENCY WAS SPECIFIED OR THE ')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2065)
2065 FORMAT(' TOTAL FREQUENCY IS LESS THAN 2 TIMES THE ',
1 'NUMBER OF CLASSES.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ELSEIF(IFAULT.EQ.7)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2071)
2071 FORMAT('**** ERROR: FOR NORMAL MIXTURE MAXIMUM LIKELIHOOD ',
1 'ESTIMATION,')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2073)
2073 FORMAT(' NEGATIVE FREQUENCY SPECIFIED FOR NON-NORMAL ',
1 'DISTRIBUTION.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ELSEIF(IFAULT.EQ.8)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2081)
2081 FORMAT('**** ERROR: FOR NORMAL MIXTURE MAXIMUM LIKELIHOOD ',
1 'ESTIMATION,')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2083)
2083 FORMAT(' EQUAL MEANS SPECIFIED FOR NON-NORMAL ',
1 'DISTRIBUTION.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ELSEIF(IFAULT.EQ.9)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2091)
2091 FORMAT('**** ERROR: FOR NORMAL MIXTURE MAXIMUM LIKELIHOOD ',
1 'ESTIMATION,')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2093)
2093 FORMAT(' ALL MEANS AND ALL STANDARD DEVIATIONS ',
1 'WERE SPECIFIED EQUAL.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IOUNI1=IST1NU
IFILE1=IST1NA
ISTAT1=IST1ST
IFORM1=IST1FO
IACCE1=IST1AC
IPROT1=IST1PR
ICURS1=IST1CS
ISUBN0='MLNM'
IERRF1='NO'
C
IREWI1='ON'
CALL DPOPFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
DO2300I=1,NCOMP
WRITE(IOUNI1,2301)ALPHA(I),XMEAN(I),XSD(I)
2300 CONTINUE
2301 FORMAT(3(E15.7,1X))
C
IENDF1='OFF'
IREWI1='ON'
CALL DPCLFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1IENDF1,IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
C
C ***********************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR NORMAL MIXTURE MLE ESTIMATION **
C ***********************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Normal Mixture Maximum ',
1 'Likelihood Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5044 FORMAT(' | ')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean:')
5062 FORMAT(' Sample Standard Deviation:')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5065 FORMAT(' Number of Components:')
5066 FORMAT(' Maximum Likelihood Estimates of ',
1 'Component ',I8,'')
5067 FORMAT(' Maximum Likelihood Estimate of Mixing ',
1 'Proportion:')
5068 FORMAT(' Maximum Likelihood Estimate of Mean:')
5069 FORMAT(' Maximum Likelihood Estimate of Standard ',
1 'Deviation:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5056 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)NCOMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
DO5080I=1,NCOMP
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5044)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)I
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALPHA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
5080 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Normal Mixture ',
1 'Maximum Likelihood Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Number of Components: & ',I8,2X,A1,A1)
8027 FORMAT(5X,'{',A1,'bf Maximum Likelihood Estimates of ',
1 'Component ',I2,'} & ',2X,A1,A1)
8028 FORMAT(5X,'Estimate of Mixing Proportion: & ',
1 G15.7,2X,A1,A1)
8029 FORMAT(5X,'Estimate of Mean: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Estimate of Standard Deviation: & ',
1 G15.7,2X,A1,A1)
8039 FORMAT(5X,' & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)AMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)ASD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)AMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)AMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)NCOMP,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
DO8035I=1,NCOMP
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,I,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)ALPHA(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)XMEAN(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)XSD(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8035 CONTINUE
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(10X,
1 'NORMAL MIXTURE MAXIMUM LIKELIHOOD ',
1 'ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)AMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)ASD
4223 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)AMIN
4225 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)AMAX
4227 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4229)NCOMP
4229 FORMAT('NUMBER OF COMPONENTS = ',I8)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
DO4230I=1,NCOMP
WRITE(ICOUT,4231)I
4231 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES OF COMPONENT ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)ALPHA(I)
4233 FORMAT(6X,'ESTIMATE OF MIXING PROPORTION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)XMEAN(I)
4235 FORMAT(6X,'ESTIMATE OF MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4237)XSD(I)
4237 FORMAT(6X,'ESTIMATE OF STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
4230 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4241)
4241 FORMAT('THE MAXIMUM LIKELIHOOD ESTIMATES FOR THE MIXING ',
1 'PROPORTION, MEAN, AND')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4242)
4242 FORMAT('STANDARD DEVIATION WERE WRITTEN TO THE FILE ',
1 'dpst1f.dat')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLNM')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLNM--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLNO(Y,X,N,
1XTEMP,DTEMP1,MAXNXT,
1QP,XQPHAT,XQPLCL,XQPUCL,NPERC,
1XMEAN,XSD,
1ICAPSW,ICAPTY,NUMV,
1IOUNI1,IOUNI2,ALPHAP,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR NORMAL DISTRIBUTION. IT WILL
C CONSIDER EITHER THE FULL SAMPLE CASE OR THE
C MULTIPLY (RIGHT) CENSORED CASE. FOR THE
C CENSORED CASE, X SHOULD CONTAIN A 1 TO
C INDICATE A FAILURE TIME AND A 0 TO INDICATE A
C CENSORING TIME.
C EXAMPLE--NORMAL MAXIMUM LIKELIHOOD Y
C --NORMAL MAXIMUM LIKELIHOOD Y CENSOR
C REFERENCE--KARL BURY, "STATISTICAL DISTRIBUTIONS IN ENGINEERING",
C CAMBRIDGE UNIVERSITY PRESS, 1999, CHAPTER 10.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--98/5
C ORIGINAL VERSION--MAY 1998.
C UPDATED --MARCH 2004. SUPPORT HTML/LATEX OUTPUT
C UPDATED --OCTOBER 2004. SUPPORT FOR CENSORED SAMPLES
C UPDATED --OCTOBER 2004. CONFIDENCE INTERVALS FOR
C SELECTED PERCENTILES
C UPDATED --DECEMBER 2004. MODIFY THE OUTPUT FORMAT TO
C BE MORE CONSISTENT WITH OTHER
C DISTRIBUTIONS.
C UPDATED --OCTOBER 2006. CALL LIST TO TPPF
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION X(*)
DIMENSION XTEMP(*)
DIMENSION QP(*)
DIMENSION XQPHAT(*)
DIMENSION XQPLCL(*)
DIMENSION XQPUCL(*)
DOUBLE PRECISION DTEMP1(*)
C
PARAMETER (NUMALP=6)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWSC(NUMALP)
DIMENSION AUPPSC(NUMALP)
DIMENSION ALOWLO(NUMALP)
DIMENSION AUPPLO(NUMALP)
C
DIMENSION FISH(2,2)
DIMENSION COV(2,2)
DIMENSION D(2)
C
COMMON/NORCML/IR
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(2)
DOUBLE PRECISION FVEC(2)
C
EXTERNAL NORFUN
C
DOUBLE PRECISION DN
DOUBLE PRECISION DR
DOUBLE PRECISION DX
DOUBLE PRECISION MU
DOUBLE PRECISION DCDF
DOUBLE PRECISION DPDF
DOUBLE PRECISION DHAZ
DOUBLE PRECISION SIGMA
DOUBLE PRECISION DSUM1
DOUBLE PRECISION DSUM2
DOUBLE PRECISION DSUM3
DOUBLE PRECISION DSUM4
DOUBLE PRECISION DSUM5
DOUBLE PRECISION DSUM6
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01, 0.001/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='NO '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLNO')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLNO--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NUMV,NPERC
55 FORMAT('N,NUMV,NPERC = ',3I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I),X(I)
57 FORMAT('I,Y(I),X(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
IF(NPERC.GT.0)THEN
DO66I=1,NPERC
WRITE(ICOUT,67)I,QP(I)
67 FORMAT('I,QP(I) = ',I8,G15.7)
CALL DPWRST('XXX','WRIT')
66 CONTINUE
ENDIF
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN NORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN NORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
IF(NPERC.GT.0)THEN
DO1145I=1,NPERC
IF(QP(I).LE.0.0 .OR. QP(I).GE.100.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1141)
1141 FORMAT('***** WARNING IN NORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1143)QP(I)
1143 FORMAT(' REQUESTED PERCENTILE (',G15.7,') IS ',
1 'OUTSIDE THE (0,100) INTERVAL')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1144)
1144 FORMAT(' NO PERCENTILE CONFIDENCE LIMITS WILL BE ',
1 'COMPUTED.')
CALL DPWRST('XXX','WRIT')
NPERC=0
ENDIF
1145 CONTINUE
ENDIF
C
IF(NUMV.EQ.2)THEN
CALL DISTIN(X,N,IWRITE,XTEMP,NDIST,IBUGA3,IERROR)
IF(NDIST.EQ.1)THEN
DO1202I=1,N
X(I)=1.0
1202 CONTINUE
IR=N
ELSEIF(NDIST.EQ.2)THEN
IF(XTEMP(1).EQ.1.0 .OR. XTEMP(2).EQ.1.0)THEN
IR=0
DO1203I=1,N
IF(X(I).NE.1.0)THEN
X(I)=2.0
ELSE
IR=IR+1
ENDIF
1203 CONTINUE
ELSE
ATEMP1=MIN(XTEMP(1),XTEMP(2))
ATEMP2=MAX(XTEMP(1),XTEMP(2))
IR=0
DO1208I=1,N
IF(X(I).EQ.ATEMP1)THEN
X(I)=1.0
IR=IR+1
ENDIF
IF(X(I).EQ.ATEMP2)X(I)=2.0
1208 CONTINUE
ENDIF
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1304)
1304 FORMAT('***** ERROR IN NORMAL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1305)
1305 FORMAT(' FOR CENSORED DATA, THE CENSORING VARIABLE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1306)
1306 FORMAT(' SHOULD CONTAIN AT MOST TWO DISTINCT VALUES.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1307)NDIST
1307 FORMAT(' ',I8,' DISTINCT VALUES FOUND.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
CALL SORTC(X,Y,N,X,Y)
ENDIF
C
C ******************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR NORMAL MLE ESTIMATE **
C ******************************
C
4000 CONTINUE
C
ISTEPN='4'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
AN=REAL(N)
C
IF(NUMV.LE.1)THEN
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
C
XSDMEA=XSD/SQRT(AN)
XSDSD=XSD/SQRT(2.0*(AN-1.0))
C
IDF=N-1
ADF=REAL(IDF)
DO4010I=1,NUMALP
C
ALP=ALPHA(I)
P1=ALP/2.0
P2=1.0-(ALP/2.0)
C
CALL TPPF(P1,REAL(IDF),TLOW)
CALL TPPF(P2,REAL(IDF),TUPP)
ALOWLO(I)=XMEAN + TLOW*XSDMEA
AUPPLO(I)=XMEAN + TUPP*XSDMEA
C
CALL CHSPPF(P1,IDF,APPF1)
CALL CHSPPF(P2,IDF,APPF2)
ALOWSC(I)=XSD*SQRT(ADF/APPF2)
AUPPSC(I)=XSD*SQRT(ADF/APPF1)
C
4010 CONTINUE
ELSE
CALL MEAN(Y,IR,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,IR,IWRITE,XSD,IBUGA3,IERROR)
XPAR(1)=DBLE(XMEAN)
XPAR(2)=DBLE(XSD)
IOPT=2
TOL=1.0D-6
NVAR=2
NPRINT=-1
INFO=0
LWA=MAXNXT
CALL DNSQE(NORFUN,JAC,IOPT,NVAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP1,MAXNXT,Y,N)
C
XMEAN=REAL(XPAR(1))
XSD=REAL(XPAR(2))
C
C NOW COMPUTE THE FISHER INFORMATION MATRIX, INVERT TO GET THE
C PARAMETER VARIANCE-COVARIANCE MATRIX.
C
MU=DBLE(XMEAN)
SIGMA=DBLE(XSD)
DN=DBLE(N)
DR=DBLE(IR)
C
DSUM1=0.0D0
DSUM2=0.0D0
DO4150I=1,IR
DX=(DBLE(Y(I)) - MU)/SIGMA
DSUM1=DSUM1 + DX
DSUM2=DSUM2 + DX*DX
4150 CONTINUE
C
DSUM3=0.0D0
DSUM4=0.0D0
DSUM5=0.0D0
DSUM6=0.0D0
IF(IR.LT.N)THEN
DO4180I=IR+1,N
DX=(DBLE(Y(I)) - MU)/SIGMA
CALL NODPDF(DX,DPDF)
CALL NODCDF(DX,DCDF)
DHAZ=DPDF/(1.0D0 - DCDF)
DSUM3=DSUM3 + DHAZ*(DHAZ - DX)
DSUM4=DSUM4 + DHAZ*(1.0D0 + DX*(DHAZ - DX))
DSUM5=DSUM5 + DX*DHAZ
DSUM6=DSUM6 + DX*DX*DHAZ*(DHAZ - DX)
4180 CONTINUE
ENDIF
XVAR=XSD*XSD
FISH(1,1)=(1.0/XVAR)*REAL(DR + DSUM3)
FISH(1,2)=(1.0/XVAR)*REAL(2.0D0*DSUM1 + DSUM4)
FISH(2,1)=FISH(1,2)
FISH(2,2)=(1.0/XVAR)*REAL(3.0D0*DSUM2+2.0D0*DSUM5+DSUM6-DR)
C
NDIM=2
CALL SGECO(FISH,NDIM,NDIM,ITEMP,RCOND,XTEMP)
IJOB=1
CALL SGEDI(FISH,NDIM,NDIM,ITEMP,XTEMP,XTEMP(MAXNXT/2),IJOB)
DO4210J=1,NDIM
DO4215I=1,NDIM
COV(I,J)=FISH(I,J)
4215 CONTINUE
4210 CONTINUE
DO4219I=1,NDIM
WRITE(IOUNI2,'(2E15.7)')(COV(I,J),J=1,NDIM)
4219 CONTINUE
C
XSDMEA=SQRT(COV(1,1))
XSDSD=SQRT(COV(2,2))
C
IDF=N-1
ADF=REAL(IDF)
C
DO4260I=1,NUMALP
C
ALP=ALPHA(I)
P1=ALP/2.0
P2=1.0-(ALP/2.0)
CALL NORPPF(P1,APPF1)
CALL NORPPF(P2,APPF2)
ALOWLO(I)=0.0
AUPPLO(I)=0.0
ALOWSC(I)=0.0
AUPPSC(I)=0.0
C
IF(COV(1,1).GE.0.0)THEN
ALOWLO(I)=XMEAN + APPF1*SQRT(COV(1,1))
AUPPLO(I)=XMEAN + APPF2*SQRT(COV(1,1))
ENDIF
IF(COV(2,2).GE.0.0)THEN
ALOWSC(I)=XMEAN + APPF1*SQRT(COV(2,2))
AUPPSC(I)=XMEAN + APPF2*SQRT(COV(2,2))
ENDIF
4260 CONTINUE
C
ENDIF
C
C **********************************************
C ** STEP 41B-- **
C ** ESTIMATE CONFIDENCE LIMITS FOR SELECTED **
C ** PERCENTILES **
C **********************************************
C
ISTEPN='41B'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NPERC.GE.1)THEN
C
C FULL SAMPLE CASE BASED ON NON-CENTRAL T
C
IF(NUMV.EQ.1)THEN
C1=XSD/SQRT(AN)
ANU=REAL(N-1)
ALPHL=ALPHAP/2.0
ALPHU=1.0 - ALPHAP/2.0
C
WRITE(IOUNI1,4111)
4111 FORMAT(15X,' POINT ',' LOWER ',
1 ' UPPER')
WRITE(IOUNI1,4112)
4112 FORMAT(' PERCENTILE ',' ESTIMATE ',
1 'CONFIDENCE LIMIT ','CONFIDENCE LIMIT')
DO4110I=1,NPERC
QPTEMP=QP(I)/100.0
CALL NORPPF(QPTEMP,APPF)
XQPHAT(I)=XMEAN + XSD*APPF
DELTA=APPF*SQRT(AN)
IF(DELTA.LT.0.0)THEN
DELTA2=-DELTA
CALL NCTPPF(ALPHU,ANU,DELTA2,C2)
C2=-C2
CALL NCTPPF(ALPHL,ANU,DELTA2,C3)
C3=-C3
ELSE
CALL NCTPPF(ALPHL,ANU,DELTA,C2)
CALL NCTPPF(ALPHU,ANU,DELTA,C3)
ENDIF
ATEMP1=XMEAN + C1*C2
ATEMP2=XMEAN + C1*C3
XQPLCL(I)=MIN(ATEMP1,ATEMP2)
XQPUCL(I)=MAX(ATEMP1,ATEMP2)
WRITE(IOUNI1,'(3E15.7,2X,E15.7)')
1 QP(I),XQPHAT(I),XQPLCL(I),XQPUCL(I)
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNO')THEN
WRITE(ICOUT,4113)XMEAN,XSD,ANU,ALPHAP
4113 FORMAT('XMEAN,XSD,ANU,ALPHAP = ',4G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4115)DELTA,C1,C2,C3
4115 FORMAT('DELTA,C1,C2,C3 = ',4G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4117)ATEMP1,ATEMP2
4117 FORMAT('ATEMP1,ATEMP2 = ',2G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
4110 CONTINUE
C
C CENSORED CASE BASED ON NORMAL APPROXIMATION
C
ELSE
D(1)=1.0
ALPHL=ALPHAP/2.0
ALPHU=1.0 - ALPHAP/2.0
CALL NORPPF(ALPHU,ZALPU)
C
WRITE(IOUNI1,4111)
WRITE(IOUNI1,4112)
DO4360I=1,NPERC
QPTEMP=QP(I)/100.0
CALL NORPPF(QPTEMP,D(2))
XQPHAT(I)=XMEAN + XSD*D(2)
DSUM1=0.0D0
DO4370II=1,2
DO4380JJ=1,2
DSUM1=DSUM1 + D(II)*D(JJ)*COV(II,JJ)
4380 CONTINUE
4370 CONTINUE
XQPSE=SQRT(REAL(DSUM1))
ATEMP1=XQPHAT(I) - ZALPU*XQPSE
ATEMP2=XQPHAT(I) + ZALPU*XQPSE
XQPLCL(I)=MIN(ATEMP1,ATEMP2)
XQPUCL(I)=MAX(ATEMP1,ATEMP2)
WRITE(IOUNI1,'(3E15.7,2X,E15.7)')
1 QP(I),XQPHAT(I),XQPLCL(I),XQPUCL(I)
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNO')THEN
WRITE(ICOUT,4361)I,QP(I),XQPHAT(I)
4361 FORMAT('I,QP(I),XQPHAT(I) = ',I8,2G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4363)XMEAN,XSD,ALPHAP,ZALPU
4363 FORMAT('XMEAN,XSD,ALPHAP,ZALPU = ',4G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4365)DSUM1,XQPSE
4365 FORMAT('DSUM1,XQPSE = ',2G15.7)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4367)ATEMP1,ATEMP2
4367 FORMAT('ATEMP1,ATEMP2 = ',2G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
4360 CONTINUE
ENDIF
ENDIF
C
C *********************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR NORMAL MLE ESTIMATE **
C **********************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5016 FORMAT(' Normal Maximum Likelihood Estimation')
5017 FORMAT(' Full Sample Case')
5018 FORMAT(' Time Censored Case')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5016)
CALL DPWRST('XXX','WRIT')
IF(NUMV.EQ.1)THEN
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,5018)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Number of Censoring Times:')
5063 FORMAT(' Maximum Likelihood Estimate of Location:')
5064 FORMAT(' Standard Error of Maximum Likelihood ',
1 'Estimate of Location:')
5065 FORMAT(' Maximum Likelihood Estimate of Sale:')
5066 FORMAT(' Standard Error of Maximum Likelihood ',
1 'Estimate of Scale:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(NUMV.EQ.2)THEN
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N-IR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSDMEA
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSDSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the Location ',
1 'Parameter')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5139 FORMAT(' | ')
5161 FORMAT(' ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWLO(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPLO(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5217 FORMAT(' Confidence Limits for the Scale ',
1 'Parameter')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5217)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
DO5240I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5240 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
C
C START THE TABLE
C
5811 FORMAT('')
5813 FORMAT('')
5815 FORMAT(' ')
5816 FORMAT(' Alpha = ',F7.3,'')
5817 FORMAT(' Confidence Limits for Selected ',
1 'Percentiles: Full Sample Case (Based on ',
1 'Non-Central t)')
5818 FORMAT(' Confidence Limits for Selected ',
1 'Percentiles: Censored Case (Based on ',
1 'Normal Approximation)')
5819 FORMAT(' ')
WRITE(ICOUT,999)
WRITE(ICOUT,5811)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5813)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5815)
CALL DPWRST('XXX','WRIT')
IF(NUMV.LE.1)THEN
WRITE(ICOUT,5817)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,5818)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5816)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5819)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5841 FORMAT(' ')
5843 FORMAT(' | ')
5847 FORMAT(' | ')
5848 FORMAT(' ')
5849 FORMAT(' ')
5851 FORMAT(' ',G15.7)
5859 FORMAT(' | ')
5861 FORMAT(' Percentile')
5862 FORMAT(' Point Estimate')
5863 FORMAT(' Lower Confidence Limit')
5864 FORMAT(' Upper Confidence Limit')
5870 FORMAT(' ')
5872 FORMAT(' ')
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5861)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5863)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5864)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5870)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5872)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
DO5880I=1,NPERC
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)QP(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPHAT(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPLCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPUCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
5880 CONTINUE
C
C END THE TABLE AND RESET ASIS MODE
C
5891 FORMAT(' | ')
5893 FORMAT(' ')
WRITE(ICOUT,5891)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5893)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5899)
5899 FORMAT('')
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Normal Maximum Likelihood Estimate: ',
1 'Full Sample Case}')
8012 FORMAT(5X,'{',A1,'bf Normal Maximum Likelihood Estimate: ',
1 'Time Censored Case}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
IF(NUMV.EQ.1)THEN
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8012)IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Number of Censoring Times: & ',I8,2X,A1,A1)
8023 FORMAT(5X,'Maximum Likelihood Estimate of Location: & ',
1 G15.7,2X,A1,A1)
8024 FORMAT(5X,'Standard Error of Maximum Likelihood Estimate ',
1 'of Location: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Maximum Likelihood Estimate of Scale: & ',
1 G15.7,2X,A1,A1)
8026 FORMAT(5X,'Standard Error of Maximum Likelihood Estimate ',
1 'of Scale: & ',G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(NUMV.EQ.2)THEN
WRITE(ICOUT,8022)N-IR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8023)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XSDMEA,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)XSDSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for Location Parameter}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper ',2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit',2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWLO(I),AUPPLO(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8191 FORMAT(A1,'end{table}')
8193 FORMAT(A1,'end{center}')
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8211 FORMAT(5X,'{',A1,'bf Confidence Limits for Scale Parameter}')
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8211)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8230I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWSC(I),AUPPSC(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8230 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8191)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8803 FORMAT(A1,'begin{table}')
8807 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8809 FORMAT(A1,'begin{center}')
8810 FORMAT(5X,'{',A1,'bf Confidence Limits for Selected ',
1 'Percentiles:}')
8811 FORMAT(5X,'{',A1,'bf Full Sample Case (Based on Non-Central t)}')
88811 FORMAT(5X,'{',A1,'bf Censored Case (Based on Normal ',
1 'Approximation)}')
8812 FORMAT(5X,'{',A1,'bf $',A1,'alpha$ = ',F7.3,'}')
8813 FORMAT(A1,'end{center}')
8815 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8803)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8810)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(NUMV.LE.1)THEN
WRITE(ICOUT,8811)IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,88811)IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8812)IBASLC,IBASLC,ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8813)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8820 FORMAT(5X,A1,'begin{tabular} {cccc}')
8821 FORMAT(5X,' & {',A1,'bf Point} & {',A1,'bf Lower} & {',A1,
1 'bf Upper}',2X,A1,A1)
8822 FORMAT(5X,'{',A1,'bf Percentile} & {',A1,'bf Estimate} & {',A1,
1 'bf Confidence Limit} & {',A1,
1 'bf Confidence Limit}',2X,A1,A1)
8823 FORMAT(5X,G15.7,' & ',G15.7,' & ',G15.7,' & ',G15.7,2X,A1,A1)
8840 FORMAT(5X,A1,'hline')
8849 FORMAT(A1,'end{tabular}')
C
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8820)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8821)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8822)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8840)IBASLC
CALL DPWRST('XXX','WRIT')
DO8830I=1,NPERC
WRITE(ICOUT,8823)QP(I),XQPHAT(I),XQPLCL(I),XQPUCL(I),
1 IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8830 CONTINUE
WRITE(ICOUT,8849)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8891 FORMAT(A1,'end{center}')
8893 FORMAT(A1,'end{table}')
WRITE(ICOUT,8891)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8893)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ENDIF
WRITE(ICOUT,8899)IBASLC
8899 FORMAT(A1,'begin{verbatim}')
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4611)
4611 FORMAT(10X,'NORMAL MAXIMUM LIKELIHOOD ESTIMATE:')
CALL DPWRST('XXX','WRIT')
IF(NUMV.EQ.1)THEN
WRITE(ICOUT,4612)
4612 FORMAT(10X,'FULL SAMPLE CASE')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4613)
4613 FORMAT(10X,'TIME CENSORED CASE')
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4622)N
4622 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
IF(NUMV.EQ.2)THEN
WRITE(ICOUT,4623)N-IR
CALL DPWRST('XXX','WRIT')
ENDIF
4623 FORMAT('NUMBER OF CENSORING TIMES = ',I8)
WRITE(ICOUT,4624)XMEAN
4624 FORMAT('MAXIMUM LIKELIHOOD ESTIMATE OF LOCATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4625)XSDMEA
4625 FORMAT('STANDARD ERROR OF ML ESTIMATE OF LOCATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4626)XSD
4626 FORMAT('MAXIMUM LIKELIHOOD ESTIMATE OF SCALE = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4628)XSDSD
4628 FORMAT('STANDARD ERROR OF ML ESTIMATE OF SCALE = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4640)
4640 FORMAT('CONFIDENCE INTERVAL FOR LOCATION PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4643)
4643 FORMAT(' CONFIDENCE LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4645)
4645 FORMAT(' VALUE (%) LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4646)
4646 FORMAT('-------------------------------------------')
CALL DPWRST('XXX','WRIT')
C
DO4649I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4647)ATEMP,ALOWLO(I),AUPPLO(I)
4647 FORMAT(' ',F8.3,10X,G12.6,2X,G12.6)
CALL DPWRST('XXX','WRIT')
4649 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4680)
4680 FORMAT('CONFIDENCE INTERVAL FOR SCALE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4645)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4646)
CALL DPWRST('XXX','WRIT')
C
DO4689I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4647)ATEMP,ALOWSC(I),AUPPSC(I)
CALL DPWRST('XXX','WRIT')
4689 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4911)
4911 FORMAT('CONFIDENCE LIMITS FOR SELECTED PERCENTILES:')
CALL DPWRST('XXX','WRIT')
IF(NUMV.LE.1)THEN
WRITE(ICOUT,4912)
4912 FORMAT('FULL SAMPLE CASE (BASED ON NON-CENTRAL T)')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4914)
4914 FORMAT('CENSORED CASE (BASED ON NORMAL APPROXIMATION)')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4915)ALPHAP
4915 FORMAT('ALPHA = ',F7.4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4921)
4921 FORMAT(15X,' POINT ',' LOWER ',
1 ' UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4922)
4922 FORMAT(' PERCENTILE',' ESTIMATE ',
1 'CONFIDENCE LIMIT ',' CONFIDENCE LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4924)
4924 FORMAT('---------------','------------------',
1 '-----------------','------------------')
CALL DPWRST('XXX','WRIT')
C
DO4930I=1,NPERC
WRITE(ICOUT,4932)QP(I),XQPHAT(I),XQPLCL(I),XQPUCL(I)
4932 FORMAT(F15.3,2X,G15.7,6X,G15.7,4X,G15.7)
CALL DPWRST('XXX','WRIT')
4930 CONTINUE
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(IFEEDB.EQ.'ON')THEN
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4943)
4943 FORMAT('PERCENTILE CONFIDENCE LIMITS WRITTEN TO FILE ',
1 'dpst1f.dat')
ENDIF
IF(NUMV.GT.1)THEN
WRITE(ICOUT,4945)
4945 FORMAT('PARAMETER VARIANCE-COVARIANCE MATRIX WRITTEN ',
1 'TO FILE dpst2f.dat')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MLNO')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLNO--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMLPA(Y,N,
1XTEMP,MAXNXT,
1GAMMML,AML,GAMMSE,AMLSE,
1QP,XQPHAT,XQPLCL,XQPUCL,NPERC,ALPHAP,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR PARETO DISTRIBUTION
C EXAMPLE--PARETO MAXIMUM LIKELIHOOD Y
C REFERENCE--XX
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--98/5
C ORIGINAL VERSION--MAY 1998.
C UPDATED --OCTOBER 2003. SUPPORT FOR HTML, LATEX OUTPUT
C UPDATED --OCTOBER 2003. CONFIDENCE INTERVAL FOR SHAPE
C PARAMETER
C UPDATED --DECEMBER 2004. MODIFY FORMAT OF OUTPUT
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
DOUBLE PRECISION DSUM
DOUBLE PRECISION DTERM1
C
PARAMETER (NUMALP=6)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWGA(NUMALP)
DIMENSION AUPPGA(NUMALP)
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
C
DIMENSION QP(*)
DIMENSION XQPHAT(*)
DIMENSION XQPLCL(*)
DIMENSION XQPUCL(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01, 0.001/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='PA '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MLPA')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLPA--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
66 CONTINUE
90 CONTINUE
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLPA')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN PARETO MAXIMUM LIKELIHOOD.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS IS LESS THAN TWO.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)HOLD
1131 FORMAT('***** NOTE FROM PARETO MAXIMUM LIKELIHOOD--VARIABLE 1 ',
1'HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LE.0.0)THEN
WRITE(ICOUT,1111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1147)
1147 FORMAT(' ROW ',I8,' IS NEGATIVE. THE VALUE IS ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
IF(NPERC.GT.0)THEN
DO1155I=1,NPERC
IF(QP(I).LE.0.0 .OR. QP(I).GE.100.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1151)
1151 FORMAT('***** WARNING IN PARETO MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1153)QP(I)
1153 FORMAT(' REQUESTED PERCENTILE (',G15.7,') IS ',
1 'OUTSIDE THE (0,100) INTERVAL')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1154)
1154 FORMAT(' NO PERCENTILE CONFIDENCE LIMITS WILL BE ',
1 'COMPUTED.')
CALL DPWRST('XXX','WRIT')
NPERC=0
ENDIF
1155 CONTINUE
ENDIF
C
1290 CONTINUE
C
C ******************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR PARETO MLE ESTIMATE **
C ******************************
C
4100 CONTINUE
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLPA')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
C
DSUM=0.0D0
DO4110I=1,N
IF(Y(I).LE.0.0)THEN
IERROR='YES'
GOTO9000
ENDIF
DTERM1=DBLE(LOG(Y(I)/XMIN))
DSUM=DSUM + DTERM1
4110 CONTINUE
GAMMA=REAL(DSUM)/REAL(N)
GAMMA=1.0/GAMMA
GAMMML=GAMMA
AML=XMIN
C
AN=REAL(N)
GAMMSE=0.0
AMLSE=0.0
IF(N.GT.3)THEN
TERM1=AN*GAMMA**2/((AN-2.0)**2*(AN-3.0))
GAMMSE=SQRT(TERM1)
ENDIF
IF(AN.GT.2.0/GAMMA)THEN
TERM1=AN*AML*GAMMA**2/((AN*GAMMA-1.0)**2*(AN*GAMMA-2.0))
AMLSE=SQRT(TERM1)
ENDIF
C
NU=2*(N-1)
C
DO4120I=1,NUMALP
ALP=ALPHA(I)
PL=ALP/2.0
PU=1.0-(ALP/2.0)
CALL CHSPPF(PL,NU,PPF1)
CALL CHSPPF(PU,NU,PPF2)
ALOWGA(I)=GAMMA*PPF1/REAL(2*N)
AUPPGA(I)=GAMMA*PPF2/REAL(2*N)
4120 CONTINUE
C
C CONFIDENCE INTERVALS FOR SELECTED PERCENTILES.
C
C METHOD OF ASTRABADI AS DESCRIBED ON PP. 591-592 OF JOHNSON, KOTZ,
C AND BALAKRISHNAN (SEE REFERENCE ABOVE). THESE ARE APPROXIMATE
C INTERVALS.
C
C STILL NEED SOME DEBUGGING ON THIS.
C
NPERC=0
IF(NPERC.GE.1)THEN
C
ALPHL=ALPHAP/2.0
ALPHU=1.0 - ALPHAP/2.0
NUTEMP=2*N
CALL CHSPPF(ALPHL,NUTEMP,ZUPP)
CALL CHSPPF(ALPHU,NUTEMP,ZLOW)
C
CCCCC WRITE(IOUNI1,4131)
CCCCC WRITE(IOUNI1,4132)
DO4139I=1,NPERC
QPTEMP=QP(I)/100.0
CALL PARPPF(QPTEMP,GAMMML,AML,APPF)
XQPHAT(I)=APPF
C
TERM1=2.0*GAMMML*LOG(APPF/AML)/ZLOW
TERM2=TERM1**(AN-1.0)
XQPLCL(I)=1.0 - TERM1
TERM2=1.0 - (1.0 - 2.0*GAMMML*LOG(APPF/AML)/ZUPP)**(AN-1.0)
XQPUCL(I)=TERM2
CCCCC WRITE(IOUNI1,'(4E15.7)')
CCCCC1 QP(I),XQPHAT(I),XQPLCL(I),XQPUCL(I)
4139 CONTINUE
4131 FORMAT(15X,' POINT ',' LOWER ',
1 ' UPPER')
4132 FORMAT(' PERCENTILE ',' ESTIMATE ',
1 'CONFIDENCE LIMIT ','CONFIDENCE LIMIT')
C
ENDIF
C
C *********************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR PARETO MLE ESTIMATE **
C **********************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5002 FORMAT('PARETO PARAMETER ESTIMATION')
5004 FORMAT(' FULL SAMPLE CASE')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5002)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
C5015 FORMAT(' ')
C5017 FORMAT(' Method of Maximum Likelihood')
C5019 FORMAT(' ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5015)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5017)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5019)
CCCCC CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5045 FORMAT(' Summary Statistics:')
5060 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Minimum:')
5062 FORMAT(' Sample Maximum:')
5063 FORMAT(' Sample Mean:')
5064 FORMAT(' Sample Standard Deviation:')
5065 FORMAT(' Estimate of the ',
1 'Tail Length Shape Parameter:')
5066 FORMAT(' Estimate of the ',
1 'Location Shape Parameter:')
5067 FORMAT(' Standard Error of the ',
1 'Estimate of the Tail Length Shape Parameter:')
5068 FORMAT(' Standard Error of the ',
1 'Estimate of the Lower Bound Shape Parameter:')
5069 FORMAT(' Maximum Likelihood Estimates:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5060)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(N.GT.3)THEN
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(AN.GT.2.0/GAMMA)THEN
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMLSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
ENDIF
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the Shape ',
1 '(Tail Length) Parameter ')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5136 FORMAT(' | ')
5139 FORMAT(' | ')
5161 FORMAT(' ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWGA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPGA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
5099 FORMAT('')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Pareto Parameter Estimation: ',
1 'Full Sample Case}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Estimate of Tail Length ',
1 'Shape Parameter: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'Estimate of Lower Bound ',
1 'Shape Parameter: & ',G15.7,2X,A1,A1)
8028 FORMAT(5X,' & ',2X,A1,A1)
8029 FORMAT(5X,'Standard Error of the ',
1 'Estimate of Tail Length ',
1 'Shape Parameter: & ',G15.7,2X,A1,A1)
8030 FORMAT(5X,'Standard Error of the ',
1 'Estimate of Lower Bound ',
1 'Shape Parameter: & ',G15.7,2X,A1,A1)
8031 FORMAT(5X,'Summary Statistics: & ',2X,A1,A1)
8032 FORMAT(5X,'Maximum Likelihood Estimates: & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)GAMMML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)GAMMSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)AML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)AMLSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for Shape ',
1 '(Tail Length) Parameter}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper ',
1 2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit ',
1 2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWGA(I),AUPPGA(I),
1 IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(12X,'PARETO MAXIMUM LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4220)
4220 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',
1 I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)XMIN
4222 FORMAT('SAMPLE MINIMUM = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)XMAX
4223 FORMAT('SAMPLE MAXIMUM = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4224)XMEAN
4224 FORMAT('SAMPLE MEAN = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)XSD
4225 FORMAT('SAMPLE STANDARD DEVIATION = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4226)
4226 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)GAMMML
4227 FORMAT('ESTIMATE OF SHAPE (TAIL LENGTH) PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
IF(N.GT.3)THEN
WRITE(ICOUT,4228)GAMMSE
4228 FORMAT('STANDARD ERROR OF TAIL LENGTH PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4229)AML
4229 FORMAT('ESTIMATE OF SHAPE (LOWER BOUND) PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
IF(AN.GT.2.0/GAMMA)THEN
WRITE(ICOUT,4230)AMLSE
4230 FORMAT('STANDARD ERROR OF LOWER BOUND PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4240)
4240 FORMAT('CONFIDENCE INTERVAL FOR SHAPE (TAIL LENGTH) PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
4243 FORMAT(' CONFIDENCE LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
4245 FORMAT(' VALUE (%) LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
4246 FORMAT('---------------------------------------------------')
CALL DPWRST('XXX','WRIT')
DO4249I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWGA(I),AUPPGA(I)
4247 FORMAT(' ',F8.3,10X,2(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4249 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4911)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4915)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4921)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4922)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4346)
CALL DPWRST('XXX','WRIT')
C
4911 FORMAT('CONFIDENCE LIMITS (ASRABADI APPROXIMATION) FOR ',
1 'SELECTED PERCENTILES:')
4915 FORMAT('ALPHA = ',F7.4)
4921 FORMAT(10X,' POINT ',
1 ' LOWER ', ' UPPER')
4922 FORMAT('PERCENTILE',' ESTIMATE ',
1 'CONFIDENCE LIMIT ',' CONFIDENCE LIMIT')
4346 FORMAT('-----------------------------------',
1 '--------------------')
C
DO4981I=1,NPERC
WRITE(ICOUT,4932)QP(I),XQPHAT(I),XQPLCL(I),XQPUCL(I)
4932 FORMAT(2X,F8.4,G15.7,2X,G15.7,2X,G15.7)
CALL DPWRST('XXX','WRIT')
4981 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IFEEDB.EQ.'ON')THEN
WRITE(ICOUT,4241)
4241 FORMAT('GAMMA, GAMMASE, AML, AND AMLSE WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MLPA')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLPA--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMLPL(Y1,N,X1,NGROUP,XCEN,NCENS,NUMV,
1XIDTEM,TEMP2,TEMP3,TEMP4,TEMP5,TEMP6,TEMP7,TEMP8,MAXNXT,
1TEND,
1ICAPSW,ICAPTY,
1IOUNI1,IOUNI2,ALPHAP,
1AHAT,BHAT,AMTBF,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR A NON-HOMOGENEOUS POISSON PROCESS
C THAT FOLLOWS THE "POWER LAW" MODEL.
C
C THE POWER LAW MODEL IS:
C
C M(t) = a*t**b
C
C WHERE
C
C M(t) = CUMULATIVE REPAIR FUNCTION
C t = TIME TO FAILURE
C a, b = PARAMETERS TO BE ESTIMATED
C
C THE POWER LAW OFTEN APPLIES WHEN WE HAVE
C MONOTONICALLY INCREASING OR DECREASING TRENDS
C IN THE REPAIR DATA.
C
C THE INPUT IS ASSUMED TO BE REPAIR TIMES. WE CAN
C OPTIONALLY HAVE A XCENORING VARIABLE (THERE SHOULD
C BE AT MOST ONE XCENORING TIME).
C
C FOR THE CASE WHERE THE TEST IS TERMINATED AT THE
C NTH FAILURE, THE MAXIMUM LIKELIHOOD ESTIMATES ARE:
C
C bhat = (n-1)/SUM[i=1 to n-1][LOG(t(n)/t(i))]
C ahat = n/t(n)**bhat
C
C FOR THE CASE WHERE THE TEST IS TERMINATED AT A FIXED
C TIME T, THE MAXIMUM LIKELIHOOD ESTIMATES ARE:
C
C bhat = (n-1)/SUM[i=1 to n][LOG(T/t(i))]
C ahat = n/T**bhat
C
C IF THERE ARE K COPIES OF THE SYSTEM, THEN THE
C WE CAN COMBINE THE ESTIMATES TO OBTAIN:
C
C bhat = (N(s) - 1)/(SUM[q=1 tp k][SUM[i=1 to q]
C [LOG(T(q)/t(iq)]
C ahat = SUM[q=1 to k][n(q)]/SUM[q=1 to k][T(q)**bhat]
C
C WHERE
C
C T(q) = TRUNCATION TIME FOR QTH SYSTEM
C n(q) = NUMBER OF FAILURE TIMES FOR QTH SYSTEM
C N(q) = n(q) IF WE HAVE A XCENORING TIME
C n(q) - 1 IF THERE IS NO XCENORING TIME
C t(iq) = ITH FAILURE TIME FOR QTH SYSTEM
C N(s) = SUM[q=1 to k][N(q)][N(q)]
C
C EXAMPLE--EXPONENTIAL MAXIMUM LIKELIHOOD Y
C REFERENCE--TOBIAS AND TRINDADE, "APPLIED RELIABILITY", SECOND
C EDITION, PP. 357-358.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/10
C ORIGINAL VERSION--OCTOBER 2006.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 IEXPBC
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
DOUBLE PRECISION DSUM
DOUBLE PRECISION DSUM1
DOUBLE PRECISION DSUM2
DOUBLE PRECISION DTERM1
DOUBLE PRECISION DTERM2
C
C---------------------------------------------------------------------
C
PARAMETER (NUMALP=6)
DIMENSION ALPHA(NUMALP)
DIMENSION ALPHA2(5)
CCCCC DIMENSION ALOWU(NUMALP)
CCCCC DIMENSION AHIGHU(NUMALP)
CCCCC DIMENSION ALOWB(NUMALP)
CCCCC DIMENSION AHIGHB(NUMALP)
DIMENSION A2LOWB(NUMALP)
DIMENSION A2UPPB(NUMALP)
C
DIMENSION Y1(*)
DIMENSION X1(*)
DIMENSION XCEN(*)
DIMENSION XIDTEM(*)
DIMENSION TEMP2(*)
DIMENSION TEMP3(*)
DIMENSION TEMP4(*)
DIMENSION TEMP5(*)
DIMENSION TEMP6(*)
DIMENSION TEMP7(*)
DIMENSION TEMP8(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.50, 0.20, 0.10, 0.05, 0.01, 0.001/
DATA ALPHA2 /0.20, 0.15, 0.10, 0.05, 0.01/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='PL '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLPL')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLPL--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NGROUP,NCENS,NUMV,TEND
55 FORMAT('N,NGROUP,NCENS,NUMV,TEND = ',4I8,G15.7)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y1(I),X1(I),XCEN(I)
57 FORMAT('I,Y1(I),X1(I),XCEN(I) = ',I8,3G15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLPL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LT.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN POWER LAW MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)
1112 FORMAT(' THE NUMBER OF OBSERVATIONS IS < 2')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)N
1113 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
DO1135I=2,N
IF(Y1(I).LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1132)I
1132 FORMAT(' FAILURE TIME ',I8,' IS NON-POSITIVE.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1134)Y1(I)
1134 FORMAT(' FAILURE TIME = ',G15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1135 CONTINUE
C
C **********************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR POWER LAW MLE **
C ** ESTIMATE (FULL SAMPLE CASE) **
C **********************************
C
4100 CONTINUE
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLPL')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
AN=REAL(N)
C
C CASE 1: NO GROUP OR CENSORING VARIABLE
C
IF(NGROUP.EQ.0 .AND. NCENS.EQ.0)THEN
CALL SORT(Y1,N,Y1)
IF(TEND.LE.Y1(N))TEND=0.0
IF(TEND.LE.0.0)THEN
NFAIL=N
NUMCEN=0
DSUM=0.0D0
ICNT=0
DTERM2=DBLE(Y1(N))
DO4110I=1,N-1
DTERM1=DBLE(Y1(I))
DSUM=DSUM + DLOG(DTERM2/DTERM1)
ICNT=ICNT+1
TEMP8(ICNT)=DTERM1/DTERM2
4110 CONTINUE
BHAT=DBLE(N-1)/DSUM
AHAT=DBLE(N)/DTERM2**DBLE(BHAT)
AMTBF=Y1(N)/(AN*BHAT)
DO4115I=1,NUMALP
ALP=ALPHA(I)
P=1.0 - (ALP/2.0)
CALL NORPPF(P,PPF)
ANUM=AN*(AN-1.0)
TERM1=AN + PPF**2/4.0
TERM2=SQRT(AN*PPF**2/2.0 + PPF**4/16.0)
ADEN=(TERM1 + TERM2)**2
A2LOWB(I)=AMTBF*ANUM/ADEN
TERM1=AN - PPF*SQRT(AN/2.0)
ADEN=TERM1**2
A2UPPB(I)=AMTBF*ANUM/ADEN
4115 CONTINUE
ELSE
NFAIL=N
NUMCEN=1
DSUM=0.0D0
ICNT=0
DTERM2=DBLE(TEND)
DO4120I=1,N
DTERM1=DBLE(Y1(I))
DSUM=DSUM + DLOG(DBLE(DTERM2/DTERM1))
ICNT=ICNT+1
TEMP8(ICNT)=DTERM1/DTERM2
4120 CONTINUE
BHAT=DBLE(N-1)/DSUM
AHAT=DBLE(N)/DTERM2**DBLE(BHAT)
AMTBF=TEND/(AN*BHAT)
DO4125I=1,NUMALP
ALP=ALPHA(I)
P=1.0 - (ALP/2.0)
CALL NORPPF(P,PPF)
ANUM=AN*(AN-1.0)
TERM1=AN + PPF**2/4.0
TERM2=SQRT(AN*PPF**2/2.0 + PPF**4/16.0)
ADEN=(TERM1 + TERM2)**2
A2LOWB(I)=AMTBF*ANUM/ADEN
TERM1=AN - PPF*SQRT(AN/2.0)
ADEN=TERM1**2
A2UPPB(I)=AMTBF*ANUM/ADEN
4125 CONTINUE
ENDIF
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Power Law Maximum Likelihood Estimation')
5003 FORMAT(' M(t) = a*tb')
5004 FORMAT(' Single System, Failure Truncated Case')
5005 FORMAT(' Single System, Time Truncated Case')
5019 FORMAT(' ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5003)
CALL DPWRST('XXX','WRIT')
IF(NUMCEN.LE.0)THEN
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,5005)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5059 FORMAT(' | ')
5061 FORMAT(' Number of Failure Times:')
5062 FORMAT(' Estimate of b:')
5063 FORMAT(' Estimate of a:')
5064 FORMAT(' Estimate of End of Test MTBF:')
5065 FORMAT(' Estimate of Reliability Growth Slope ',
1 '(1 - b):')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)NFAIL
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)BHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)1.0-BHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMTBF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the End of ',
1 'Test MTBF')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5139 FORMAT(' | ')
5161 FORMAT(' ')
5162 FORMAT(' ')
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)A2LOWB(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)A2UPPB(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
5195 FORMAT('')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5195)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8004 FORMAT(A1,'end{table}')
8005 FORMAT('{',A1,'bf Power Law Maximum Likelihood ',
1 'Estimation:}')
8006 FORMAT('{',A1,'bf Single System, Failure Censored Case}')
88006 FORMAT('{',A1,'bf Single System, Time Censored Case}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
IF(NUMCEN.EQ.0)THEN
WRITE(ICOUT,8006)IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,88006)IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8009 FORMAT(A1,'begin{center}')
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Failure Times: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Censoring Time: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Estimate of b: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Estimate of a: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Estimate of MTBF at End of Test: & ',
1 G15.7,2X,A1,A1)
8026 FORMAT(5X,'Estimate of Reliability Growth Slope (1 - b): & ',
1 G15.7,2X,A1,A1)
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)NFAIL,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(TEND.GT.0.0)THEN
WRITE(ICOUT,8022)TEND,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8023)BHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)1.0-BHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)AHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)AMTBF,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8093 FORMAT(A1,'end{center}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Approximate Confidence Limits for ',
1 'End of Test MTBF}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper',2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit',2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,A2LOWB(I),A2UPPB(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8191 FORMAT(A1,'end{table}')
8193 FORMAT(A1,'end{center}')
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8191)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(6X,'POWER LAW MAXIMUM LIKELIHOOD ESTIMATION:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4212)
4212 FORMAT(6X,'M(t) = a*t**b')
CALL DPWRST('XXX','WRIT')
IF(NUMCEN.EQ.0)THEN
WRITE(ICOUT,4213)
4213 FORMAT(6X,'SINGLE SYSTEM, FAILURE TRUNCATED CASE')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4215)
4215 FORMAT(6X,'SINGLE SYSTEM, TIME TRUNCATED CASE')
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)NFAIL
4221 FORMAT('NUMBER OF FAILURE TIMES = ',I8)
CALL DPWRST('XXX','WRIT')
IF(TEND.GT.0.0)THEN
WRITE(ICOUT,4223)TEND
4223 FORMAT('CENSORING TIME = ',G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,4231)BHAT
4231 FORMAT('ESTIMATE OF B = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)AHAT
4233 FORMAT('ESTIMATE OF A = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4234)1.0-BHAT
4234 FORMAT('ESTIMATE OF RELIABILITY GROWTH SLOPE = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4235)AMTBF
4235 FORMAT('ESTIMATE OF MTBF AT END OF TEST = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4241)
4241 FORMAT('APPROXIMATE CONFIDENCE INTERVAL FOR END OF ',
1 'TEST MTBF')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
CALL DPWRST('XXX','WRIT')
DO4249I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,A2LOWB(I),A2UPPB(I)
4247 FORMAT(' ',F8.3,10X,3(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4249 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
4243 FORMAT(' CONFIDENCE LOWER UPPER')
4245 FORMAT(' VALUE (%) LIMIT LIMIT')
4246 FORMAT('-------------------------------------------')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ENDIF
ENDIF
C
C CASE 2: GROUP VARIABLE, BUT NO CENSORING VARIABLE
C
ELSEIF(NCENS.EQ.0)THEN
C
C STEP 1: DETERMINE UNIQUE GROUPS
C
NUMSET=0
NS=0
DSUM1=0.0D0
C
DO4301I=1,N
IF(NUMSET.EQ.0)GOTO4303
DO4302J=1,NUMSET
IF(X1(I).EQ.XIDTEM(J))GOTO4301
4302 CONTINUE
4303 CONTINUE
NUMSET=NUMSET+1
XIDTEM(NUMSET)=X1(I)
4301 CONTINUE
CALL SORT(XIDTEM,NUMSET,XIDTEM)
C
C STEP 2: MAXIMUM LIKELIHOOD COMPUTATIONS
C
J=0
TENDSV=TEND
DO4310ISET=1,NUMSET
C
K=0
DO4311I=1,N
IF(X1(I).EQ.XIDTEM(ISET))THEN
K=K+1
TEMP2(K)=Y1(I)
ENDIF
4311 CONTINUE
NI=K
CALL SORT(TEMP2,NI,TEMP2)
C
C CHECK FOR ERRORS:
C
C 1) REQUIRE AT LEAST 2 FAILURE TIMES
C 2) ALL FAILURE TIMES SHOULD BE LESS THAN TEND
C
IF(NI.LT.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4313)
4313 FORMAT('***** WARNING IN POWER LAW MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4314)ISET
4314 FORMAT(' FOR SYSTEM ',I8,' THE NUMBER OF ',
1 'REPAIR TIMES IS < 2')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4315)N
4315 FORMAT(' NUMBER OF REPAIR TIMES = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4316)
4316 FORMAT(' THIS SYSTEM WILL BE OMITTED FROM THE ',
1 'ANALYSIS')
CALL DPWRST('XXX','WRIT')
TEMP4(ISET)=0.0
GOTO4310
ENDIF
IF(TEMP2(NI).GE.TENDSV)THEN
TEND=0.0
ELSE
TEND=TENDSV
ENDIF
C
IF(TEND.LE.0.0)THEN
NS=NS + (NI-1)
DSUM=0.0D0
ICNT=0
DTERM2=DBLE(TEMP2(NI))
DO4330I=1,NI-1
DTERM1=DBLE(TEMP2(I))
DSUM=DSUM + DLOG(DTERM2/DTERM1)
ICNT=ICNT+1
TEMP8(ICNT)=REAL(DTERM1/DTERM2)
4330 CONTINUE
DSUM1=DSUM1 + DSUM
TEMP4(ISET)=REAL(NI-1)
TEMP5(ISET)=REAL(DTERM2)
ELSE
NS=NS + NI
DSUM=0.0D0
ICNT=0
DTERM2=DBLE(TEND)
DO4340I=1,NI
DTERM1=DBLE(TEMP2(I))
DSUM=DSUM + DLOG(DBLE(DTERM2/DTERM1))
ICNT=ICNT+1
TEMP8(ICNT)=REAL(DTERM1/DTERM2)
4340 CONTINUE
DSUM1=DSUM1 + DSUM
TEMP4(ISET)=REAL(NI)
TEMP5(ISET)=REAL(DTERM2)
ENDIF
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5201 FORMAT('')
IF(ISET.EQ.1)THEN
WRITE(ICOUT,5201)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5211 FORMAT('')
5213 FORMAT('')
5215 FORMAT(' ')
5217 FORMAT(' Power Law Maximum Likelihood ',
1 'Estimation: Multiple Systems')
5203 FORMAT(' M(t) = a*tb')
5219 FORMAT(' ')
WRITE(ICOUT,5211)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5213)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5215)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5217)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5203)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5219)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
C STEP 4: DEFINE DATA ROW
C
5241 FORMAT(' ')
5243 FORMAT(' | ')
5247 FORMAT(' | ')
5249 FORMAT(' ')
5251 FORMAT(' ',G15.7)
5253 FORMAT(' ',I8)
5255 FORMAT(' ')
5256 FORMAT(' Failure Censored')
5257 FORMAT(' Time Censored')
5259 FORMAT(' | ')
5261 FORMAT(' Number of Systems:')
5262 FORMAT(' System ',I8,':')
5263 FORMAT(' Last Repair Time:')
5264 FORMAT(' Censoring Time:')
5265 FORMAT(' Number of Repair Times:')
C
WRITE(ICOUT,5241)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5261)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5249)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5253)NUMSET
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5259)
CALL DPWRST('XXX','WRIT')
C
ENDIF
IF(TEND.LE.0.0)THEN
WRITE(ICOUT,5241)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5262)ISET
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5249)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5256)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5259)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5241)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5263)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5249)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5251)TEMP2(NI)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5259)
CALL DPWRST('XXX','WRIT')
C
ELSE
WRITE(ICOUT,5241)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5262)ISET
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5249)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5257)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5259)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5241)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5264)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5249)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5251)TEND
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5259)
CALL DPWRST('XXX','WRIT')
C
ENDIF
C
WRITE(ICOUT,5241)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5265)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5249)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5253)NI
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5259)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5241)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5255)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5249)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5255)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5259)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
8701 FORMAT(A1,'end{verbatim}')
8703 FORMAT(A1,'begin{table}')
8704 FORMAT(A1,'end{table}')
8705 FORMAT('{',A1,'bf Power Law Maximum Likelihood ',
1 'Estimation: Multiple Systems}')
8706 FORMAT('{',A1,'bf $M(t) = a t^{b}$}')
8707 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8709 FORMAT(A1,'begin{center}')
8713 FORMAT(A1,'end{center}')
8715 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8701)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8703)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8705)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8706)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8707)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8707)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8709)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8707)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8707)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8713)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
8720 FORMAT(5X,A1,'begin{tabular} {lr}')
8721 FORMAT(5X,'$H_{0}$: Repair Times Follow a Power Law ',
1 'Model: & ',2X,A1,A1)
8722 FORMAT(5X,'$H_{a}$: Repair Times Do Not Follow a ',
1 'Power Law Model: & ',2X,A1,A1)
8723 FORMAT(5X,'$M(t) = a t^{b}$: & ',2X,A1,A1)
8724 FORMAT(5X,'Number of Systems: & ',I8,2X,A1,A1)
8725 FORMAT(5X,'System ',I8,' (Failure Censored): & ',
1 2X,A1,A1)
8726 FORMAT(5X,'Last Repair Time: & ',G15.7,2X,A1,A1)
8727 FORMAT(5X,'System ',I8,' (Time Censored): & ',
1 2X,A1,A1)
8728 FORMAT(5X,'Censoring Time: & ',G15.7,2X,A1,A1)
8729 FORMAT(5X,'Number of Repair Times: & ',I8,2X,A1,A1)
8749 FORMAT(A1,'end{tabular}')
IF(ISET.EQ.1)THEN
WRITE(ICOUT,8709)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8720)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8721)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8722)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8723)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8724)NUMSET,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
IF(TEND.LE.0.0)THEN
WRITE(ICOUT,8725)ISET,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8726)TEMP2(NTEMPR),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8727)ISET,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8728)TEND,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8729)NTEMPR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8749)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8713)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
IF(ISET.EQ.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4361)
4361 FORMAT(6X,'POWER LAW MAXIMUM LIKELIHOOD ESTIMATION: ',
1 'MULTIPLE SYSTEMS')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4362)
4362 FORMAT(6X,'M(t) = a*t**b')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4321)NUMSET
4321 FORMAT('NUMBER OF SYSTEMS = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(TEND.LE.0.0)THEN
WRITE(ICOUT,4326)ISET
4326 FORMAT('SYSTEM ',I8,' (FAILURE CENSORED):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,44329)TEMP2(NI)
44329 FORMAT(3X,'LAST REPAIR TIME = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4327)ISET
4327 FORMAT('SYSTEM ',I8,' (TIME CENSORED):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4329)TEND
4329 FORMAT(3X,'CENSORING TIME = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4328)NI
4328 FORMAT(3X,'NUMBER OF REAIR TIMES = ',I8)
CALL DPWRST('XXX','WRIT')
C
ENDIF
ENDIF
C
4310 CONTINUE
C
BHAT=DBLE(NS-1)/DSUM1
DSUM=0.0D0
DO4350ISET=1,NUMSET
IF(TEMP4(ISET).GT.0.5)THEN
DSUM=DSUM + TEMP5(ISET)**BHAT
ENDIF
4350 CONTINUE
AHAT=DBLE(NS)/DSUM
CCCCC AMTBF=Y1(N)/(AN*BHAT)
CCCCC DO4335I=1,NUMALP
CCCCC ALP=ALPHA(I)
CCCCC P=1.0 - (ALP/2.0)
CCCCC CALL NORPPF(P,PPF)
CCCCC ANUM=AN*(AN-1.0)
CCCCC TERM1=AN + PPF**2/4.0
CCCCC TERM2=SQRT(AN*PPF**2/2.0 + PPF**4/16.0)
CCCCC ADEN=(TERM1 + TERM2)**2
CCCCC A2LOWB(I)=AMTBF*ANUM/ADEN
CCCCC TERM1=AN - PPF*SQRT(AN/2.0)
CCCCC ADEN=TERM1**2
CCCCC A2UPPB(I)=AMTBF*ANUM/ADEN
C4355 CONTINUE
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
5272 FORMAT(' Estimate of b:')
5273 FORMAT(' Estimate of a:')
C
WRITE(ICOUT,5241)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5272)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5249)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5251)BHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5259)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5241)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5273)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5249)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5251)AHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5259)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5291 FORMAT(' ')
5293 FORMAT(' ')
5295 FORMAT('')
WRITE(ICOUT,5291)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5293)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5295)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
88726 FORMAT(5X,'Estimate of b: & ',G15.7,2X,A1,A1)
88727 FORMAT(5X,'Estimate of a: & ',G15.7,2X,A1,A1)
88728 FORMAT(5X,' & ',2X,A1,A1)
88749 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,88726)BHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,88727)AHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,88728)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,88749)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
88791 FORMAT(A1,'end{table}')
88793 FORMAT(A1,'end{center}')
88795 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,88793)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,88791)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,88795)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4431)BHAT
4431 FORMAT('ESTIMATE OF B = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4433)AHAT
4433 FORMAT('ESTIMATE OF A = ',G15.7)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,4434)1.0-BHAT
C4434 FORMAT('ESTIMATE OF RELIABILITY GROWTH SLOPE = ',G15.7)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,4435)AMTBF
C4435 FORMAT('ESTIMATE OF MTBF AT END OF TEST = ',G15.7)
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ENDIF
ENDIF
C
C CASE 3: BOTH GROUP VARIABLE AND CENSORING VARIABLE
C
ELSE
C
C STEP 1: DETERMINE UNIQUE GROUPS
C
NUMSET=0
DO4601I=1,N
IF(NUMSET.EQ.0)GOTO4603
DO4602J=1,NUMSET
IF(X1(I).EQ.XIDTEM(J))GOTO4601
4602 CONTINUE
4603 CONTINUE
NUMSET=NUMSET+1
XIDTEM(NUMSET)=X1(I)
4601 CONTINUE
CALL SORT(XIDTEM,NUMSET,XIDTEM)
C
C STEP 2A: EXTRACT RESPONSE AND CENSORING DATA FOR EACH
C GROUP
C
J=0
ISETMX=NUMSET
NS=0
ICNT=0
DSUM1=0.0D0
C
DO4690ISET=1,NUMSET
C
K=0
DO4611I=1,N
IF(X1(I).EQ.XIDTEM(ISET))THEN
K=K+1
TEMP2(K)=Y1(I)
TEMP3(K)=XCEN(I)
ENDIF
4611 CONTINUE
NI=K
C
C STEP 2B: PROCESS THE CENSORING VARIABLE. THERE CAN
C BE AT MOST ONE CENSORING POINT FOR EACH
C GROUP.
C
CALL SORTC(TEMP2,TEMP3,NI,TEMP4,TEMP5)
DO4620I=1,NI
TEMP2(I)=TEMP4(I)
TEMP3(I)=TEMP5(I)
4620 CONTINUE
AREP=TEMP3(1)
ACEN=TEMP3(NI)
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLPL')THEN
WRITE(ICOUT,4621)ISET,NI,AREP,ACEN
4621 FORMAT('ISET,NI,AREP,ACEN = ',2I10,2G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
C
IF(NI.LE.1)THEN
NTEMPR=1
NTEMPC=0
ELSE
IF(AREP.EQ.ACEN)THEN
NTEMPR=NI
NTEMPC=0
TEND=0.0
DO4630I=1,NI
IF(TEMP3(I).NE.AREP)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1111)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4631)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4632)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4633)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4634)XIDTEM(ISET)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
4630 CONTINUE
ELSEIF(TEMP2(NI).EQ.TEMP2(NI-1))THEN
NTEMPR=NI-1
NI=NTEMPR
NTEMPC=0
TEND=0.0
DO4635I=1,NTEMPR
IF(TEMP3(I).NE.AREP)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1111)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4631)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4632)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4633)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4634)XIDTEM(ISET)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
4635 CONTINUE
ELSE
NTEMPR=NI-1
NTEMPC=1
TEND=TEMP2(NI)
DO4640I=1,NTEMPR
IF(TEMP3(I).NE.AREP)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1111)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4631)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4632)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4633)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4634)XIDTEM(ISET)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
4640 CONTINUE
ENDIF
ENDIF
4631 FORMAT(' FOR EACH SYSTEM, THERE SHOULD BE AT MOST')
4632 FORMAT(' ONE CENSORING TIME AND IT MUST BE THE ',
1 'MAXIMUM')
4633 FORMAT(' VALUE FOR THAT SYSTEM.')
4634 FORMAT(' SUCH WAS NOT THE CASE FOR SYSTEM ',G15.7)
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLPL')THEN
WRITE(ICOUT,4641)NTEMPR,NTEMPC,TEND
4641 FORMAT('NTEMPR,NTEMPC,TEND = ',2I10,G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
IF(ISET.EQ.1)THEN
WRITE(ICOUT,5201)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
WRITE(ICOUT,5211)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5213)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5215)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5217)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5203)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5219)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
C STEP 4: DEFINE DATA ROW
C
5341 FORMAT(' ')
5343 FORMAT(' | ')
5347 FORMAT(' | ')
5349 FORMAT(' ')
5351 FORMAT(' ',G15.7)
5353 FORMAT(' ',I8)
5355 FORMAT(' ')
5356 FORMAT(' Failure Censored')
5357 FORMAT(' Time Censored')
5359 FORMAT(' | ')
5361 FORMAT(' Number of Systems:')
5362 FORMAT(' System ',I8,':')
5363 FORMAT(' Last Repair Time:')
5364 FORMAT(' Censoring Time:')
5365 FORMAT(' Number of Repair Times:')
C
WRITE(ICOUT,5341)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5343)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5361)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5349)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5353)NUMSET
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5359)
CALL DPWRST('XXX','WRIT')
C
ENDIF
IF(TEND.LE.0.0)THEN
WRITE(ICOUT,5341)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5343)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5362)ISET
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5349)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5356)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5359)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5341)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5343)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5363)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5349)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5351)TEMP2(NTEMPR)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5359)
CALL DPWRST('XXX','WRIT')
C
ELSE
WRITE(ICOUT,5341)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5343)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5362)ISET
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5349)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5357)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5359)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5341)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5343)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5364)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5349)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5351)TEND
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5359)
CALL DPWRST('XXX','WRIT')
C
ENDIF
C
WRITE(ICOUT,5341)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5343)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5365)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5349)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5353)NTEMPR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5359)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5341)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5343)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5355)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5349)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5355)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5347)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5359)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
8801 FORMAT(A1,'end{verbatim}')
8803 FORMAT(A1,'begin{table}')
8804 FORMAT(A1,'end{table}')
8805 FORMAT('{',A1,'bf Power Law Maximum Likelihood ',
1 'Estimation: Multiple Systems}')
8806 FORMAT('{',A1,'bf $M(t) = a t^{b}$}')
8807 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8809 FORMAT(A1,'begin{center}')
8813 FORMAT(A1,'end{center}')
8815 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
IF(ISET.EQ.1)THEN
WRITE(ICOUT,8801)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8803)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8805)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8806)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8813)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
8820 FORMAT(5X,A1,'begin{tabular} {lr}')
8824 FORMAT(5X,'Number of Systems: & ',I8,2X,A1,A1)
8825 FORMAT(5X,'System ',I8,' (Failure Censored): & ',
1 2X,A1,A1)
8826 FORMAT(5X,'Last Repair Time: & ',G15.7,2X,A1,A1)
8827 FORMAT(5X,'System ',I8,' (Time Censored): & ',
1 2X,A1,A1)
8828 FORMAT(5X,'Censoring Time: & ',G15.7,2X,A1,A1)
8829 FORMAT(5X,'Number of Repair Times: & ',I8,2X,A1,A1)
8849 FORMAT(5X,A1,'end{tabular}')
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8820)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8824)NUMSET,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
IF(TEND.LE.0.0)THEN
WRITE(ICOUT,8825)ISET,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8826)TEMP2(NTEMPR),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8827)ISET,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8828)TEND,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8829)NTEMPR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
IF(ISET.EQ.NUMSET)THEN
WRITE(ICOUT,8849)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8813)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8804)IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
IF(ISET.EQ.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4711)
4711 FORMAT(6X,'POWER LAW MAXIMUM LIKELIHOOD ESTIMATION: ',
1 'MULTIPLE SYSTEMS')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4712)
4712 FORMAT(6X,'M(t) = a*t**b')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4721)NUMSET
4721 FORMAT('NUMBER OF SYSTEMS = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(TEND.LE.0.0)THEN
WRITE(ICOUT,4726)ISET
4726 FORMAT('SYSTEM ',I8,' (FAILURE CENSORED):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,44729)TEMP2(NTEMPR)
44729 FORMAT(3X,'LAST REPAIR TIME = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4727)ISET
4727 FORMAT('SYSTEM ',I8,' (TIME CENSORED):')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4729)TEND
4729 FORMAT(3X,'CENSORING TIME = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4728)NTEMPR
4728 FORMAT(3X,'NUMBER OF REAIR TIMES = ',I8)
CALL DPWRST('XXX','WRIT')
C
ENDIF
ENDIF
C
C
C STEP 2C: MAXIMUM LIKELIHOOD COMPUTATIONS
C
C CHECK FOR ERRORS:
C
C 1) REQUIRE AT LEAST 2 FAILURE TIMES
C 2) ALL FAILURE TIMES SHOULD BE LESS THAN TEND
C
IF(NI.LT.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4613)
4613 FORMAT('***** WARNING IN POWER LAW MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4614)ISET
4614 FORMAT(' FOR SYSTEM ',I8,' THE NUMBER OF ',
1 'REPAIR TIMES IS < 2')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4615)N
4615 FORMAT(' NUMBER OF REPAIR TIMES = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4616)
4616 FORMAT(' THIS SYSTEM WILL BE OMITTED FROM THE ',
1 'ANALYSIS')
CALL DPWRST('XXX','WRIT')
TEMP6(ISET)=0.0
GOTO4690
ENDIF
C
IF(TEND.LE.0.0)THEN
NS=NS + (NTEMPR-1)
DSUM=0.0D0
DTERM2=DBLE(TEMP2(NI))
DO4680I=1,NTEMPR-1
DTERM1=DBLE(TEMP2(I))
DSUM=DSUM + DLOG(DTERM2/DTERM1)
ICNT=ICNT+1
TEMP8(ICNT)=REAL(DTERM1/DTERM2)
4680 CONTINUE
DSUM1=DSUM1 + DSUM
TEMP6(ISET)=REAL(NTEMPR-1)
TEMP7(ISET)=REAL(DTERM2)
ELSE
NS=NS + NTEMPR
DSUM=0.0D0
DTERM2=DBLE(TEND)
DO4685I=1,NTEMPR
DTERM1=DBLE(TEMP2(I))
DSUM=DSUM + DLOG(DBLE(DTERM2/DTERM1))
ICNT=ICNT+1
TEMP8(ICNT)=REAL(DTERM1/DTERM2)
4685 CONTINUE
DSUM1=DSUM1 + DSUM
TEMP6(ISET)=REAL(NTEMPR)
TEMP7(ISET)=REAL(DTERM2)
ENDIF
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLPL')THEN
WRITE(ICOUT,4686)NS,DSUM
4686 FORMAT('NS,DSUM = ',I10,G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
C
4690 CONTINUE
C
BHAT=DBLE(NS-1)/DSUM1
DSUM=0.0D0
DO4688ISET=1,NUMSET
C
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLPL')THEN
WRITE(ICOUT,4689)ISET,TEMP5(ISET),TEMP7(ISET)
4689 FORMAT('ISET,TEMP5(ISET),TEMP7(ISET) = ',I10,2G15.7)
CALL DPWRST('XXX','BUG ')
ENDIF
C
IF(TEMP6(ISET).GT.0.5)THEN
DSUM=DSUM + TEMP7(ISET)**BHAT
ENDIF
4688 CONTINUE
AHAT=DBLE(NS)/DSUM
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
WRITE(ICOUT,5241)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5272)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5249)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5251)BHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5259)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5241)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5273)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5249)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5251)AHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5247)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5259)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5291)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5293)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5295)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
8846 FORMAT('{',A1,'bf Estimate of b: ',G15.7,'}')
8847 FORMAT('{',A1,'bf Estimate of a: ',G15.7,'}')
WRITE(ICOUT,8846)IBASLC,BHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8847)IBASLC,AHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4731)BHAT
4731 FORMAT('ESTIMATE OF B = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4733)AHAT
4733 FORMAT('ESTIMATE OF A = ',G15.7)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,4734)1.0-BHAT
C4734 FORMAT('ESTIMATE OF RELIABILITY GROWTH SLOPE = ',G15.7)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,4735)AMTBF
C4735 FORMAT('ESTIMATE OF MTBF AT END OF TEST = ',G15.7)
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
ENDIF
C
ENDIF
C
CALL SORT(TEMP8,ICNT,TEMP8)
ACNT=REAL(ICNT)
DSUM=0.0D0
DO4810I=1,ICNT
AI=REAL(I)
DTERM1=DBLE(TEMP8(I)**BHAT - (2.0*AI-1.0)/(2.0*ACNT))**2
DSUM=DSUM + DTERM1
4810 CONTINUE
CNS=(1.0/(12.0*ACNT)) + REAL(DSUM)
C
IF(ICNT.EQ.2)THEN
CV020=0.138
CV015=0.149
CV010=0.162
CV005=0.175
CV001=0.186
ELSEIF(ICNT.EQ.3)THEN
CV020=0.121
CV015=0.135
CV010=0.154
CV005=0.184
CV001=0.230
ELSEIF(ICNT.EQ.4)THEN
CV020=0.121
CV015=0.134
CV010=0.155
CV005=0.191
CV001=0.280
ELSEIF(ICNT.EQ.5)THEN
CV020=0.121
CV015=0.137
CV010=0.160
CV005=0.199
CV001=0.300
ELSEIF(ICNT.EQ.6)THEN
CV020=0.123
CV015=0.139
CV010=0.162
CV005=0.204
CV001=0.310
ELSEIF(ICNT.EQ.7)THEN
CV020=0.124
CV015=0.140
CV010=0.165
CV005=0.208
CV001=0.320
ELSEIF(ICNT.EQ.8)THEN
CV020=0.124
CV015=0.141
CV010=0.165
CV005=0.208
CV001=0.320
ELSEIF(ICNT.EQ.9)THEN
CV020=0.124
CV015=0.142
CV010=0.167
CV005=0.212
CV001=0.320
ELSEIF(ICNT.EQ.10)THEN
CV020=0.125
CV015=0.142
CV010=0.167
CV005=0.212
CV001=0.320
ELSEIF(ICNT.EQ.11)THEN
CV020=0.126
CV015=0.143
CV010=0.169
CV005=0.214
CV001=0.320
ELSEIF(ICNT.EQ.12)THEN
CV020=0.126
CV015=0.144
CV010=0.169
CV005=0.214
CV001=0.320
ELSEIF(ICNT.EQ.13)THEN
CV020=0.126
CV015=0.144
CV010=0.169
CV005=0.214
CV001=0.330
ELSEIF(ICNT.EQ.14)THEN
CV020=0.126
CV015=0.144
CV010=0.169
CV005=0.214
CV001=0.330
ELSEIF(ICNT.EQ.15)THEN
CV020=0.126
CV015=0.144
CV010=0.169
CV005=0.215
CV001=0.330
ELSEIF(ICNT.EQ.16)THEN
CV020=0.127
CV015=0.145
CV010=0.171
CV005=0.216
CV001=0.330
ELSEIF(ICNT.EQ.17)THEN
CV020=0.127
CV015=0.145
CV010=0.171
CV005=0.217
CV001=0.330
ELSEIF(ICNT.EQ.18)THEN
CV020=0.127
CV015=0.146
CV010=0.171
CV005=0.217
CV001=0.330
ELSEIF(ICNT.EQ.19)THEN
CV020=0.127
CV015=0.146
CV010=0.171
CV005=0.217
CV001=0.330
ELSEIF(ICNT.GE.20 .AND. ICNT.LE.25)THEN
CV020=0.128
CV015=0.146
CV010=0.172
CV005=0.217
CV001=0.330
ELSEIF(ICNT.GE.26 .AND. ICNT.LE.45)THEN
CV020=0.128
CV015=0.146
CV010=0.172
CV005=0.218
CV001=0.330
ELSEIF(ICNT.GE.46 .AND. ICNT.LE.80)THEN
CV020=0.128
CV015=0.146
CV010=0.173
CV005=0.220
CV001=0.330
ELSE
CV020=0.129
CV015=0.147
CV010=0.173
CV005=0.220
CV001=0.34
ENDIF
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5901 FORMAT('')
WRITE(ICOUT,5901)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5911 FORMAT('')
5913 FORMAT('')
5915 FORMAT(' ')
5917 FORMAT(' Power Law Goodness of Fit Test')
5919 FORMAT(' ')
WRITE(ICOUT,5911)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5913)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5915)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5917)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5919)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
C STEP 4: DEFINE DATA ROW
C
5941 FORMAT(' ')
5943 FORMAT(' | ')
5947 FORMAT(' | ')
5949 FORMAT(' ')
5951 FORMAT(' ',G15.7)
5953 FORMAT(' ',I8)
5955 FORMAT(' ')
5959 FORMAT(' | ')
5961 FORMAT(' H0: Repair Times Follow a ',
1 'Power Law Model')
5962 FORMAT(' Ha: Repair Times Do Not ',
1 'Follow a Power Law Model')
5963 FORMAT(' Value of Ns:')
5964 FORMAT(' Value of Test Statistic:')
5965 FORMAT(' Conclusion: Accept H0')
5966 FORMAT(' Conclusion: Reject H0')
5967 FORMAT(' Critical Value (alpha = ',F4.2,'):')
C
WRITE(ICOUT,5941)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5943)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5961)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5949)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5955)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5959)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5941)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5943)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5962)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5949)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5955)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5959)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5941)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5943)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5963)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5949)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5953)NS
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5959)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5941)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5943)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5964)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5949)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5951)CNS
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5959)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5941)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5943)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5955)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5949)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5955)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5959)
CALL DPWRST('XXX','WRIT')
C
DO5980II=1,5
C
IF(II.EQ.1)ATEMP2=CV020
IF(II.EQ.2)ATEMP2=CV015
IF(II.EQ.3)ATEMP2=CV010
IF(II.EQ.4)ATEMP2=CV005
IF(II.EQ.5)ATEMP2=CV001
ATEMP=ALPHA2(II)
WRITE(ICOUT,5941)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5943)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5967)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5949)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5951)ATEMP2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5959)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5941)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5943)
CALL DPWRST('XXX','WRIT')
IF(CNS.LT.ATEMP)THEN
WRITE(ICOUT,5965)
ELSE
WRITE(ICOUT,5966)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5949)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5955)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5959)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5941)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5943)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5955)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5949)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5955)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5947)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5959)
CALL DPWRST('XXX','WRIT')
C
5980 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5991 FORMAT(' ')
5993 FORMAT(' ')
5995 FORMAT('')
WRITE(ICOUT,5991)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5993)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5995)
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8901 FORMAT(A1,'end{verbatim}')
8903 FORMAT(A1,'begin{table}')
8904 FORMAT(A1,'end{table}')
8905 FORMAT('{',A1,'bf Power Law Goodness of Fit Test}')
8907 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8909 FORMAT(A1,'begin{center}')
8913 FORMAT(A1,'end{center}')
8915 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
CCCCC WRITE(ICOUT,8901)IBASLC
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8903)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8905)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8907)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8907)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8909)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8907)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8907)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8913)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8920 FORMAT(5X,A1,'begin{tabular} {lr}')
8921 FORMAT(5X,'$H_{0}$: Repair Times Follow a Power Law ',
1 'Model: & ',2X,A1,A1)
8922 FORMAT(5X,'$H_{a}$: Repair Times Do Not Follow a ',
1 'Power Law Model: & ',2X,A1,A1)
8923 FORMAT(5X,'Value of Ns: & ',I8,2X,A1,A1)
8924 FORMAT(5X,'Value of Test Statistic: & ',G15.7,2X,A1,A1)
8925 FORMAT(5X,'Critical Value (Alpha = ',F4.2,'): & ',
1 G15.7,2X,A1,A1)
8926 FORMAT(5X,'Conclusion: Accept $H_{0}$: & ',2X,A1,A1)
8927 FORMAT(5X,'Conclusion: Reject $H_{a}$: & ',2X,A1,A1)
8928 FORMAT(5X,' & ',2X,A1,A1)
8949 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8909)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8920)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8921)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8922)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8923)NS,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8924)CNS,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8928)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
DO8951II=1,5
ATEMP=ALPHA2(II)
IF(II.EQ.1)ATEMP2=CV020
IF(II.EQ.2)ATEMP2=CV015
IF(II.EQ.3)ATEMP2=CV010
IF(II.EQ.4)ATEMP2=CV005
IF(II.EQ.5)ATEMP2=CV001
WRITE(ICOUT,8925)ATEMP,ATEMP2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(CNS.LT.ATEMP)THEN
WRITE(ICOUT,8926)IBASLC,IBASLC
ELSE
WRITE(ICOUT,8927)IBASLC,IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8928)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8951 CONTINUE
WRITE(ICOUT,8949)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8991 FORMAT(A1,'end{table}')
8993 FORMAT(A1,'end{center}')
8995 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8993)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8991)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8995)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF ')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4821)
4821 FORMAT(12X,'POWER LAW GOODNESS OF FIT TEST')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4823)
4823 FORMAT('H0: REPAIR TIMES FOLLOW A POWER LAW MODEL')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4825)
4825 FORMAT('HA: REPAIR TIMES DO NOT FOLLOW A POWER LAW MODEL')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4826)NS
4826 FORMAT('VALUE OF Ns: ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4827)CNS
4827 FORMAT('VALUE OF TEST STATISTIC: ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4831)CV020
4831 FORMAT('CRITICAL VALUE (ALPHA = 0.20): ',G15.7)
CALL DPWRST('XXX','WRIT')
IF(CNS.LT.CV020)THEN
WRITE(ICOUT,4833)
4833 FORMAT('CONCLUSION: ACCEPT H0')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4835)
4835 FORMAT('CONCLUSION: REJECT H0')
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4841)CV015
4841 FORMAT('CRITICAL VALUE (ALPHA = 0.15): ',G15.7)
CALL DPWRST('XXX','WRIT')
IF(CNS.LT.CV015)THEN
WRITE(ICOUT,4833)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4835)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4842)CV010
4842 FORMAT('CRITICAL VALUE (ALPHA = 0.10): ',G15.7)
CALL DPWRST('XXX','WRIT')
IF(CNS.LT.CV010)THEN
WRITE(ICOUT,4833)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4835)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4843)CV005
4843 FORMAT('CRITICAL VALUE (ALPHA = 0.05): ',G15.7)
CALL DPWRST('XXX','WRIT')
IF(CNS.LT.CV005)THEN
WRITE(ICOUT,4833)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4835)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4844)CV001
4844 FORMAT('CRITICAL VALUE (ALPHA = 0.01): ',G15.7)
CALL DPWRST('XXX','WRIT')
IF(CNS.LT.CV005)THEN
WRITE(ICOUT,4833)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4835)
CALL DPWRST('XXX','WRIT')
ENDIF
C
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLPL')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLPL--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)BHAT,AHAT,AMTBF
9015 FORMAT('BHAT,AHAT,AMTBF = ',3G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLPO(Y,N,
1XTEMP,MAXNXT,
1ALAMB,ALMBSE,XMIN,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR POISSON DISTRIBUTION
C EXAMPLE--POISSON MAXIMUM LIKELIHOOD Y
C REFERENCE--XX
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--98/3
C ORIGINAL VERSION--MARCH 1998.
C UPDATED --MARCH 2004. SUPPORT FOR HTML, LATEX
C UPDATED --AUGUST 2005. REFORMAT FOR CONSISTENCY WITH
C OTHER ML ROUTINES
C UPDATED --SEPTEMBER 2005. CONFIDENCE INTERVALS FOR
C LAMBDA
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*4 IBASLC
C
PARAMETER (NUMALP=5)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWNO(NUMALP)
DIMENSION AUPPNO(NUMALP)
C
EXTERNAL SUM
EXTERNAL POIFUN
COMMON/POICOM/NTEMP,XSUM,CONST
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
CCCCC DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01, 0.001/
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='PO '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLPO')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLPO--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLPO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN POISSON MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS FOR VARIABLE 1 ',
1 'IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR FROM POISSON MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
C ******************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR POISSON MLE ESTIMATE**
C ******************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLPO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
DO2105I=1,N
ITEMP=INT(Y(I)+0.5)
Y(I)=REAL(ITEMP)
2105 CONTINUE
IERROR='NO'
IWRITE='OFF'
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
IF(XMIN.LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2111)
2111 FORMAT('***** ERROR FROM DPMLPO--NEGATIVE VALUE ENCOUNTERED.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL SUM(Y,N,IWRITE,XSUM,IBUGA3,IERROR)
ALAMB=XMEAN
ALMBSE=SQRT(ALAMB/REAL(N))
C
NTEMP=N
AE=1.E-5
RE=1.E-5
IFLAG=0
C
DO2210I=1,NUMALP
C
ALP=ALPHA(I)
P1=ALP/2.0
P2=1.0-(ALP/2.0)
C
ITER=0
CONST=P2
ALOWLI=ALAMB - 5.0*ALMBSE
IF(ALOWLI.LE.0.0)ALOWLI=0.00001
AUPPLI=ALAMB
ALOWSV=ALAMB - 5.0*ALMBSE
ALAHAT=(AUPPLI+ALOWLI)/2.0
2201 CONTINUE
IFLAG=0
CALL FZERO(POIFUN,ALOWLI,AUPPLI,ALAHAT,RE,AE,IFLAG)
ALOWNO(I)=ALOWLI
IF(IFLAG.EQ.2)THEN
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2211)
2211 FORMAT('***** WARNING FROM POISSON MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2213)
2213 FORMAT(' ESTIMATE OF LOWER CONFIDENCE VALUE FOR ',
1 'LAMBDA MAY NOT BE COMPUTED TO DESIRED TOLERANCE.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2211)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2223)
2223 FORMAT(' ESTIMATE OF LOWER CONFIDENCE VALUE FOR ',
1 'LAMBDA MAY BE NEAR A SINGULAR POINT.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.4)THEN
ITER=ITER+1
ALOWLI=ALOWSV/2.0
AUPPLI=ALAMB
ALAHAT=(AUPPLI+ALOWLI)/2.0
IF(ITER.LT.10)GOTO2201
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2211)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2233)
2233 FORMAT(' APPROPRIATE BRACKETING INTERVAL NOT FOUND.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.5)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2211)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2243)
2243 FORMAT(' MAXIMUM ITERATIONS EXCEEDED.')
CALL DPWRST('XXX','BUG ')
ENDIF
C
ITER=0
IFLAG=0
CONST=P1
ALAHAT=ALAMB
ALOWLI=ALAHAT
IF(ALOWLI.LE.0.0)ALOWLI=0.00001
AUPPLI=ALAHAT + 5.0*ALMBSE
AUPPSV=AUPPLI
AUPPLI=ALAMB + 5.0*ALMBSE
ALOWLI=ALAMB
AUPPSV=ALAMB + 5.0*ALMBSE
ALAHAT=(AUPPLI+ALOWLI)/2.0
2251 CONTINUE
IFLAG=0
CALL FZERO(POIFUN,ALOWLI,AUPPLI,ALAHAT,RE,AE,IFLAG)
AUPPNO(I)=ALOWLI
IF(IFLAG.EQ.2)THEN
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2211)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2263)
2263 FORMAT(' ESTIMATE OF UPPER CONFIDENCE VALUE FOR P ',
1 'MAY NOT BE COMPUTED TO DESIRED TOLERANCE.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2211)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2273)
2273 FORMAT(' ESTIMATE OF UPPER CONFIDENCE VALUE FOR P ',
1 'MAY BE NEAR A SINGULAR POINT.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.4)THEN
ITER=ITER+1
AHIGLI=AHIGLI*2.0
ALOWLI=ALAMB
ALAHAT=ALAMB
AUPPLI=AUPPSV*2.0
IF(ITER.LT.1)GOTO2251
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2211)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2277)
2277 FORMAT(' APPROPRIATE BRACKETING INTERVAL NOT FOUND.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.5)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2211)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2283)
2283 FORMAT(' MAXIMUM ITERATIONS EXCEEDED.')
CALL DPWRST('XXX','BUG ')
ENDIF
C
2210 CONTINUE
C
C *********************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR POISSON MLE ESTIMATE **
C **********************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLPO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Poisson Parameter Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5060 FORMAT(' Summary Statistics:')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample SD:')
5064 FORMAT(' Sample Minimum:')
5065 FORMAT(' Sample Maximum:')
5066 FORMAT(' Maximum Likelihood Estimates:')
5067 FORMAT(' Estimate of Shape Parameter Lambda:')
5068 FORMAT(' Standard Error of Lambda:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5060)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALAMB
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALMBSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the ',
1 'Lambda Parameter ')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5136 FORMAT(' | ')
5139 FORMAT(' | ')
5161 FORMAT(' ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWNO(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPNO(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Poisson Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Summary Statistics: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8023 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,' & ',2X,A1,A1)
8028 FORMAT(5X,'Maximum Likelihood Estimates: & ',I8,2X,A1,A1)
8029 FORMAT(5X,'Estimate of Shape Parameter $',A1,'lambda$: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Standard Error of $',A1,'lambda$: & ',
1 G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)IBASLC,ALAMB,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)IBASLC,ALMBSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for the ',
1 '$',A1,'lambda$ Parameter}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper ',
1 2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit ',
1 2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,
1 2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWNO(I),AUPPNO(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(12X,'POISSON PARAMETER ESTIMATION')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4240)
4240 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4241)N
4241 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)XMEAN
4243 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)XSD
4245 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4247)XMIN
4247 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4249)XMAX
4249 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4250)
4250 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4253)ALAMB
4253 FORMAT('ESTIMATE OF SHAPE PARAMETER LAMBDA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4255)ALMBSE
4255 FORMAT('STANDARD ERROR OF LAMBDA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4310)
4310 FORMAT('CONFIDENCE INTERVAL FOR LAMBDA PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4321)
4321 FORMAT(' CONFIDENCE LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4323)
4323 FORMAT(' VALUE (%) LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4326)
4326 FORMAT('-------------------------------------------')
CALL DPWRST('XXX','WRIT')
DO4341I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4347)ATEMP,ALOWNO(I),AUPPNO(I)
4347 FORMAT(' ',F8.3,10X,2(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4341 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4391)
4391 FORMAT('LAMBDAML AND LAMBDASE WILL BE SAVED AS INTERNAL ',
1 'PARAMETERS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLPO')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLPO--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLPW(Y,N,
1XTEMP,MAXNXT,
1C,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR THE POWER DISTRIBUTION
C EXAMPLE--POWER MAXIMUM LIKELIHOOD Y
C REFERENCE--XX
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--98/6
C ORIGINAL VERSION--JUNE 1998.
C UPDATED --MARCH 2004. SUPPORT FOR HTML, LATEX
C UPDATED --AUGUST 2005. REFORMAT OUTPUT FOR CONSISTENCY
C WITH OTHER ML ROUTINES
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*1 IBASLC
C
DOUBLE PRECISION DSUM
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='PO '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLPO')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLPW--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLPO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN POWER MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)N
1112 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR FROM POWER MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
C **********************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR POWER MLE **
C ** ESTIMATE (FULL SAMPLE CASE) **
C **********************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLPO')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
C
DSUM=0.0D0
DO2110I=1,N
IF(Y(I).LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2108)
2108 FORMAT('***** ERROR FROM POWER MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2109)
2109 FORMAT(' A NON-POSITIVE DATA VALUE WAS ENCOUNTERED.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
DSUM=DSUM + DBLE(LOG(Y(I)))
2110 CONTINUE
C=-REAL(N)/REAL(DSUM)
IWRITE='OFF'
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Power Parameter Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5060 FORMAT(' Summary Statistics:')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Sample Minimum:')
5065 FORMAT(' Sample Maximum:')
5066 FORMAT(' Maximum Likelihood Estimates:')
5067 FORMAT(' Estmate of Shape Parameter C:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5060)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)C
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Power Maximum Likelihood Estimate}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Summary Statistics: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8023 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'Maximum Likelihood Estimates: & ',I8,2X,A1,A1)
8028 FORMAT(5X,' & ',I8,2X,A1,A1)
8029 FORMAT(5X,'Estimate of Shape Parameter C: & ',
1 G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)C,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4101)
4101 FORMAT(12X,'POWER PARAMETER ESTIMATION')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4110)
4110 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4111)N
4111 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4117)XMEAN
4113 FORMAT('THE SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4115)XSD
4115 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4117)XMIN
4117 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4119)XMAX
4119 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4130)
4130 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4133)C
4133 FORMAT('ESTIMATE OF SHAPE PARAMETER C = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4149)
4149 FORMAT('THE SHAPE PARAMETER WILL BE SAVED AS ',
1 'THE INTERNAL PARAMETER CML.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLPW')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLPW--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLQB(Y,X,N,NVAR,
1TEMP1,TEMP2,TEMP3,DTEMP1,
1XTEMP,ITEMP1,
1PSTART,PHISTR,
1PML,PHIML,AM,PVAR,PHIVAR,PPHCOV,
1ICAPSW,ICAPTY,MAXNXT,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR THE QUASI BINOMIAL TYPE I
C DISTRIBUTION.
C
C THE MAXIMUM LIKELIHOOD ESTIMATES ARE THE SOLUTIONS
C TO THE EQUATIONS:
C
C SUM[i=1 to N][(m-X(i))/(1 - P - X9i)*PHI] - M*N = 0
C
C SUM[i=1 to N][(X(i)*(X(i) - 1)/(p + X(i)*PHI) -
C SUM[i=1 to N][(M - X(i))/(1 - P - X(i)*PHI)] = 0
C
C NOTE THAT M IS ASSUMED FIXED AND KNOWN AND WE ARE
C SOLVING FOR P AND PHI.
C
C WHEN THE DATA IS BINNED, THE MAXIMUM LIKELIHOOD
C EQUATIONS BECOME
C
C SUM[i=1 to k][N(i)*(i-1)*i/(p+i*PHI)] -
C SUM[i=1 to k][N(i)*(M-i)*i/(1-p-i*PHI)] = 0
C
C (N/P) - SUM[i=1 to k][N(i)*(i-1)/(p+i*PHI)] -
C SUM[i=1 to k][N(i)*(i-1)/(P+i*PHI) -
C SUM[i=1 to k][N(i)*(M-i)/(1-P-i*PHI)] = 0
C
C THERE ARE TWO CASES:
C
C 1) ONE VARIABLE CASE: Y IS RAW DATA
C 2) TWO VARIABLE CASE: Y IS FREQUENCY, X IS CLASS
C MID-POINT.
C
C EXAMPLE--QUASI BINOMIAL TYPE I MAXIMUM LIKELIHOOD Y
C --QUASI BINOMIAL TYPE I MAXIMUM LIKELIHOOD Y X
C REFERENCES--CONSUL AND FAMOYE (2006), "LAGRANGIAN PROBABILITY
C DISTRIBUTIONS", BIRKHAUSER, PP. 70-80.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBUG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/7
C ORIGINAL VERSION--JULY 2006.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-----------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBN0
CHARACTER*4 IRELAT
CHARACTER*4 IRHSTG
C
C-------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION X(*)
DIMENSION TEMP1(*)
DIMENSION TEMP2(*)
DIMENSION TEMP3(*)
DIMENSION XTEMP(*)
DIMENSION ITEMP1(*)
DOUBLE PRECISION DTEMP1(*)
C
DOUBLE PRECISION TOL
DOUBLE PRECISION XPAR(3)
DOUBLE PRECISION FVEC(2)
C
DOUBLE PRECISION AE
DOUBLE PRECISION RE
DOUBLE PRECISION XLOW
DOUBLE PRECISION XUP
DOUBLE PRECISION XMID
DOUBLE PRECISION DSUM
DOUBLE PRECISION DTERM1
DOUBLE PRECISION DTERM2
DOUBLE PRECISION DA
C
DIMENSION FISH(2,2)
DIMENSION COV(2,2)
C
DOUBLE PRECISION QBIFUN
EXTERNAL QBIFUN
DOUBLE PRECISION DM
DOUBLE PRECISION F0FREQ
COMMON/QBICOM/DM,F0FREQ,MAXROW,NTOT2
C
C-------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT---------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='QB '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLQB')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLQB--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NVAR
55 FORMAT('N,NVAR = ',2I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,N
WRITE(ICOUT,57)I,Y(I),X(I)
57 FORMAT('I,Y(I),X(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLQB')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN QUASI BINOMIAL TYPE I ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
IF(NVAR.EQ.1)THEN
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN QUASI BINOMIAL TYPE I ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1147)
1147 FORMAT('***** ERROR IN QUASI BINOMIAL TYPE I ',
1 'MAXIMUM LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1148)I,Y(I)
1148 FORMAT(' ROW ',I8,' IS NON-POSITIVE (VALUE = ',
1 G15.7,')')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
CALL SORT(Y,N,TEMP2)
DO1160I=1,N
Y(I)=TEMP2(I)
1160 CONTINUE
C
IRELAT='OFF'
IRHSTG='OFF'
XMIN=Y(1)
XMAX=Y(N)
XSTART=XMIN-0.5
XSTOP=XMAX+0.5
CLWID=1.0
CALL DPBINI(Y,N,IRELAT,CLWID,XSTART,XSTOP,IRHSTG,
1 TEMP2,TEMP1,N2,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
IINDX=MAXNXT/2
IF(N2.LE.IINDX)THEN
IML=0
ICNT=0
DO101I=1,N2
CCCCC IF(TEMP2(I).GT.0)THEN
ICNT=ICNT+1
TEMP2(ICNT)=TEMP2(I)
TEMP1(ICNT)=TEMP1(I)
TEMP3(I)=TEMP2(I)
TEMP3(IINDX+I)=TEMP1(I)
CCCCC ENDIF
101 CONTINUE
N2=ICNT
IK=N2
ELSE
IML=1
ENDIF
IF(TEMP3(1).EQ.0.0)THEN
F0=TEMP2(1)/REAL(N)
F1=TEMP2(2)/REAL(N)
F2=TEMP2(3)/REAL(N)
ELSE
F0=0.0
F1=0.0
F2=0.0
ENDIF
C
ELSEIF(NVAR.EQ.2)THEN
CALL SORTC(X,Y,N,TEMP1,TEMP2)
NTOT=0
DO1210I=1,N
X(I)=TEMP1(I)
Y(I)=TEMP2(I)
NTOT=NTOT + Y(I)
1210 CONTINUE
IF(X(1).EQ.0.0)THEN
F0=Y(1)/REAL(NTOT)
F1=Y(2)/REAL(NTOT)
F2=Y(3)/REAL(NTOT)
ELSE
F0=0.0
F1=0.0
F2=0.0
ENDIF
C
DO1220I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1223)
1223 FORMAT(' A NEGATIVE FREQUENCY WAS SPECIFIED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1225)I,Y(I)
1225 FORMAT(' ROW ',I8,' (AFTER SORTING) HAS FREQUENCY ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
1220 CONTINUE
ENDIF
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLQB')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1301)N
1301 FORMAT('AFTER SORT, N = ',I8)
CALL DPWRST('XXX','WRIT')
DO1310I=1,MAX(N,100)
WRITE(ICOUT,1311)I,X(I),Y(I)
1311 FORMAT('I,X(I),Y(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
1310 CONTINUE
ENDIF
C
C *********************************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR QUASI BINOMIAL TYPE I MLE **
C ** ESTIMATION **
C *********************************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLQB')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
PML=0.0
PHIML=0.0
PVAR=0.0
PHIVAR=0.0
PPHCOV=0.0
C
IF(NVAR.EQ.1)THEN
NTOT=N
DO2105I=1,N
ITEMP=INT(Y(I)+0.5)
Y(I)=REAL(ITEMP)
2105 CONTINUE
CALL MEAN(Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,ASD,IBUGA3,IERROR)
AVAR=ASD**2
AMIN=Y(1)
AMAX=Y(N)
C
ELSE
AMIN=X(1)
AMAX=X(N)
CALL WEMEAN(X,Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL WESD(X,Y,N,IWRITE,ASD,IBUGA3,IERROR)
IINDX=MAXNXT/2
IF(N.LE.IINDX)THEN
IML=0
DO2210I=1,N
NTOT=NTOT+Y(I)
TEMP3(I)=Y(I)
TEMP3(IINDX+I)=X(I)
2210 CONTINUE
IK=N
ELSE
IML=1
ENDIF
ENDIF
C
IF(AM.LT.AMAX)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1401)
1401 FORMAT(' USER-SPECIFIED VALUE OF M PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1403)
1403 FORMAT(' IS LESS THAN THE DATA MAXIMUM.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1405)AM
1405 FORMAT(' VALUE OF M = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1407)AMAX
1407 FORMAT(' DATA MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
IM=INT(AM+0.5)
IF(IM.EQ.1)THEN
PML=1.0 - F0
PHIML=0.0
ELSEIF(IM.EQ.2)THEN
PML=1.0 - SQRT(F0)
AN=REAL(NTOT)
AN0=AN*F0
AN1=AN*F1
AN2=AN*F2
PHIML=((AN2 + 0.5*AN1)*SQRT(F0) - AN1/2.0)/(AN1+AN2)
ELSE
DM=DBLE(AM)
F0FREQ=DBLE(F0)
NTOT2=NTOT
IOPT=2
TOL=1.0D-5
NPAR=2
NPRINT=-1
INFO=0
LWA=MAXNXT
MAXROW=MAXNXT
C
ALOWLM=-0.999/AM
AUPPLM=(1.0 - 0.001)/AM
IF((PSTART.GT.0.0 .AND. PSTART.LT.1.0) .AND.
1 (PHISTR.GT.ALOWLM .AND. PHISTR.LT.AUPPLM))THEN
XPAR(1)=PSTART
XPAR(2)=PHISTR
ELSE
XPAR(1)=1.0D0 - (F0FREQ)**(1.0D0/DM)
XPAR(2)=(1.0D0/(2.0D0*(DM-2.0D0)))*(-1.0D0 +
1 DSQRT(1.0D0+4.0D0*(DM-2.0D0)*
1 (-1.0D0+DBLE(AMEAN)/(DM*XPAR(1)))/
1 (DM-1.0D0)))
ENDIF
CALL DNSQE(QBIFUN,JAC,IOPT,NPAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP1,LWA,TEMP3,IK)
C
PML=REAL(XPAR(1))
PHIML=REAL(XPAR(2))
ENDIF
C
AN=REAL(NTOT)
C
ANUM=AN*AM*(AM-1.0)*PML*(2.0 + (AM - 3.0)*PML)
ADEN=(PML + 2.0*PHIML)*(1.0 - PML - AM*PHIML + PHIML)
FISH(1,1)=ANUM/ADEN
C
ANUM=AN*AM*(AM-1.0)*PML*(1.0 - (AM - 1.0)*PHIML)
FISH(1,2)=ANUM/ADEN
FISH(2,1)=FISH(1,2)
C
ANUM=AN*AM*(PML-(AM-3.0)*PHIML+(AM-1.0)*(AM-3.0)*PHIML**2)
FISH(2,2)=-(AN*AM/PML) - ANUM/ADEN
C
NDIM=2
CALL SGECO(FISH,NDIM,NDIM,ITEMP1,RCOND,XTEMP)
IJOB=1
CALL SGEDI(FISH,NDIM,NDIM,ITEMP1,XTEMP,XTEMP(MAXNXT/2),IJOB)
DO2810J=1,NDIM
DO2815I=1,NDIM
COV(I,J)=FISH(I,J)
2815 CONTINUE
2810 CONTINUE
C
PVAR=COV(1,1)
PHIVAR=COV(2,2)
PPHCOV=COV(2,1)
C
C ***********************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR QUASI BINOMIAL TYPE I MLE **
C ** ESTIMATION **
C ***********************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLNM')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Quasi-Binomial Parameter Estimation ')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5044 FORMAT(' | ')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean:')
5062 FORMAT(' Sample Standard Deviation:')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5065 FORMAT(' Zero Class Frequency:')
5068 FORMAT(' Maximum Likelihood:')
5069 FORMAT(' User-Specified Value for M:')
5070 FORMAT(' Estimate of P:')
5071 FORMAT(' Estimate of Phi:')
5072 FORMAT(' Variance of P:')
5073 FORMAT(' Variance of Phi:')
5074 FORMAT(' Covariance of P and Phi:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5056 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)F0
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)IM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5070)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PHIML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COV(1,1)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COV(2,2)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5074)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COV(2,1)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Quasi-Binomial Type I ',
1 'Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Zero Class Frequency: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'Method of Maximum Likelihood: & ',
1 2X,A1,A1)
8028 FORMAT(5X,'User-Specified Value of M: & ',
1 I8,2X,A1,A1)
8029 FORMAT(5X,'Estimate of P: & ',G15.7,2X,A1,A1)
8030 FORMAT(5X,'Estimate of Phi: & ',G15.7,2X,A1,A1)
8031 FORMAT(5X,'Variance of P: & ',G15.7,2X,A1,A1)
8032 FORMAT(5X,'Variance of Phi: & ',G15.7,2X,A1,A1)
8033 FORMAT(5X,'Covariance of P and Phi: & ',G15.7,2X,A1,A1)
8039 FORMAT(5X,' & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)AMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)ASD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)AMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)AMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)F0,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)PML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)PHIML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)COV(1,1),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)COV(2,2),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8033)COV(2,1),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8039)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(10X,
1 'QUASI BINOMIAL TYPE I PARAMETER ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)AMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)ASD
4223 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)AMIN
4225 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)AMAX
4227 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4228)F0
4228 FORMAT('ZERO-CLASS FREQUENCY: = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4261)
4261 FORMAT('MAXIMUM LIKELIHOOD:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4269)AM
4269 FORMAT('USER-SPECIFIED VALUE FOR M = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4265)PML
4265 FORMAT('ESTIMATE OF P = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4267)PHIML
4267 FORMAT('ESTIMATE OF PHI = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4271)COV(1,1)
4271 FORMAT('VARIANCE OF P = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4273)COV(2,2)
4273 FORMAT('VARIANCE OF PHI = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4275)COV(2,1)
4275 FORMAT('COVARIANCE OF P AND PHI = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4291)
4291 FORMAT('ESTIMATES ARE SAVED IN THE INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4292)
4292 FORMAT('PML, PHIML, PVAR, PHIVAR, AND PPHICOV.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLQB')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLQB--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLRA(Y,N,RAYMIN,
1XTEMP,MAXNXT,
1ALOCML,SCALML,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR THE RAYLEIGH DISTRIBUTION
C EXAMPLE--RAYLEIGH MAXIMUM LIKELIHOOD Y
C REFERENCE--"CONTINUOUS UNIVARIATE DISTRIBUTIONS--VOLUME 1",
C SECOND EDITION, JOHNSON, KOTZ, AND BALAKRISHNAN,
C WILEY, 1994, P. 453.
C THE MAXIMUM LIKELIHOOD ESTIMATE OF SCALE IS:
C
C SIGMAHAT = SQRT(SUM[i=1 to n][X(i)**2](2*N)]
C
C WITH N DENOTING THE SAMPLE SIZE.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/6
C ORIGINAL VERSION--JUNE 2004.
C UPDATED --AUGUST 2005. MODIFY FORMAT OF OUTPUT TO MAKE MORE
C CONSISTENT WITH OTHER ML ROUTINES
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*1 IBASLC
C
DOUBLE PRECISION DSUM2
DOUBLE PRECISION DTEMP
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
C
PARAMETER (NUMALP=4)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWB(NUMALP)
DIMENSION AHIGHB(NUMALP)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.10, 0.05, 0.01, 0.001/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='PO '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLRA')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLRA--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLRA')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN RAYLEIGH MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)N
1112 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR FROM RAYLEIGH MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
C **********************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR RAYLEIGH MLE **
C ** ESTIMATE (FULL SAMPLE CASE) **
C **********************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLRA')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
C
IWRITE='OFF'
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
C
IF(RAYMIN.NE.CPUMIN)THEN
IF(RAYMIN.LE.XMIN)THEN
ALOCML=RAYMIN
ELSE
ALOCML=XMIN
ENDIF
ELSE
ALOCML=XMIN
ENDIF
C
DSUM2=0.0D0
DO2110I=1,N
DSUM2=DSUM2 + DBLE(Y(I) - ALOCML)**2
2110 CONTINUE
DTEMP=DSQRT(DSUM2/(2.0D0*DBLE(N)))
SCALML=REAL(DTEMP)
SCALSE=SCALML/(2.0*SQRT(REAL(N)))
C
NU=2*N
DO2120I=1,NUMALP
ALP=ALPHA(I)
P=1.0-(ALP/2.0)
CALL CHSPPF(P,NU,PPF1)
P=ALP/2.0
CALL CHSPPF(P,NU,PPF2)
ALOWB(I)=SQRT(REAL(DSUM2)/PPF1)
AHIGHB(I)=SQRT(REAL(DSUM2)/PPF2)
2120 CONTINUE
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Rayleigh Parameter Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Sample Minimum:')
5069 FORMAT(' Sample Maximum:')
5065 FORMAT(' Location Parameter (Data Minimum):')
5068 FORMAT(' Location Parameter (User-Specified):')
5066 FORMAT(' Estimate of Scale Parameter:')
5067 FORMAT(' Standard Error of Scale Parameter:')
5071 FORMAT(' Summary Statistics:')
5072 FORMAT(' Maximum Likelihood Estimates:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
IF(ALOCML.EQ.XMIN)THEN
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOCML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the Scale ',
1 'Parameter')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5139 FORMAT(' | ')
5161 FORMAT(' ')
5162 FORMAT(' ')
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWB(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AHIGHB(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Rayleigh Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8034 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Location Parameter (Data Minimum): & ',G15.7,2X,A1,A1)
8035 FORMAT(5X,'Location Parameter (User Specified): & ',
1 G15.7,2X,A1,A1)
8026 FORMAT(5X,'Estimate of Scale Parameter: & ',
1 G15.7,2X,A1,A1)
8027 FORMAT(5X,'Standard Error of Scale Parameter: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Summary Statistics:: & ',2X,A1,A1)
8031 FORMAT(5X,'Maximum Likelihood Estimates:: & ',2X,A1,A1)
8032 FORMAT(5X,' & ',2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8034)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8031)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(ALOCML.EQ.XMIN)THEN
WRITE(ICOUT,8035)ALOCML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8025)ALOCML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8026)SCALML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)SCALSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8093 FORMAT(A1,'end{center}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for Scale Parameter}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper',2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit',2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
WRITE(ICOUT,8131)ATEMP,ALOWB(I),AHIGHB(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8191 FORMAT(A1,'end{center}')
8193 FORMAT(A1,'end{table}')
8199 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8191)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8199)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4101)
4101 FORMAT(12X,'RAYLEIGH MAXIMUM LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4110)
4110 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4111)N
4111 FORMAT('THE NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4113)XMEAN
4113 FORMAT('THE SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4115)XSD
4115 FORMAT('THE SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4117)XMIN
4117 FORMAT('THE SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4118)XMAX
4118 FORMAT('THE SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4120)
4120 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES:')
CALL DPWRST('XXX','WRIT')
IF(ALOCML.EQ.XMIN)THEN
WRITE(ICOUT,4121)ALOCML
4121 FORMAT('LOCATION PARAMETER (USER SPECIFIED) = ',G15.7)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4123)ALOCML
4123 FORMAT('LOCATION PARAMETER (USER SPECIFIED) = ',G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4125)SCALML
4125 FORMAT('ESTIMATE OF SCALE PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4127)SCALSE
4127 FORMAT('STANDARD ERROR OF SCALE PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)
4222 FORMAT('CONFIDENCE INTERVAL FOR SCALE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)
4223 FORMAT(' CONFIDENCE LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)
4225 FORMAT(' VALUE (%) LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4226)
4226 FORMAT('---------------------------------------------------')
CALL DPWRST('XXX','WRIT')
DO4229I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4227)ATEMP,ALOWB(I),AHIGHB(I)
4227 FORMAT(' ',F8.3,10X,3(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4229 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4131)
4131 FORMAT('THE LOCATION AND SCALE PARAMETERS WILL BE SAVED')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4133)
4133 FORMAT('AS THE INTERNAL PARAMETERS LOCML AND SCALEML.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLRA')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLRA--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLTS(Y,N,A,B,
1XTEMP,TEMP1,TEMP2,TEMP3,MAXNXT,
1THETA,AN,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR THE TWO-SIDED POWER DISTRIBUTION
C EXAMPLE--TWO-SIDED POWER MAXIMUM LIKELIHOOD Y
C REFERENCE --"THE STANDARD TWO-SIDED POWER DISTRIBUTION AND
C ITS PROPERTIES WITH APPLICATIONS IN FINANCIAL
C ENGINEERING", J. RENE VAN DORP AND SAMUEL KOTZ,
C AMERICAN STATISTICIAN, VOLUME 56,
C NUMBER 2, MAY, 2002.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2002/5
C ORIGINAL VERSION--MAY 2002.
C UPDATED --MARCH 2004. SUPPORT FOR HTML/LATEX OUTPUT
C UPDATED --AUGUST 2005. REFORMAT OUTPUT FOR CONSISTENCY
C WITH OTHER ML ROUTINES
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*4 IWRITE
CHARACTER*4 IBASLC
C
DOUBLE PRECISION DSUM
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
DIMENSION TEMP1(*)
DIMENSION TEMP2(*)
DIMENSION TEMP3(*)
DOUBLE PRECISION DPROD
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='TS '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLTS')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLTS--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLTS')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN TWO-SIDED POWER MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)N
1112 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR FROM TWO-SIDED POWER MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LE.A .OR. Y(I).GE.B)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1141)
1141 FORMAT('***** ERROR FROM TWO-SIDED POWER MAXIMUM ',
1 'LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1142)I
1142 FORMAT(' ELEMENT ',I8,' OF THE INPUT VARIABLE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1143)A,B
1143 FORMAT(' IS OUTSIDE THE ALLOWABLE (',
1 G15.7,',',G15.7,') ','INTERVAL.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1144)Y(I)
1144 FORMAT(' IT HAS THE VALUE ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
C **********************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR TWO-SIDED POWER MLE **
C ** ESTIMATE (FULL SAMPLE CASE) **
C **********************************
C
2100 CONTINUE
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLTS')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
C
CALL SORT(Y,N,TEMP1)
IWRITE='OFF'
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
C
EPS=0.000001
IF(A.EQ.0.0 .AND. B.EQ.0.0)THEN
IF(A.GT.XMIN)A=XMIN-EPS
IF(B.LT.XMAX)B=XMAX+EPS
ENDIF
C
IR=1
AMAX=-999999.0
DO5100J=1,N
DPROD=1.0D0
DO5200I=1,N
IF(I.LT.J)THEN
TEMP2(I)=(TEMP1(I)-A)/(TEMP1(J)-A)
ELSE
TEMP2(I)=(B-TEMP1(I))/(B-TEMP1(J))
ENDIF
DPROD=DPROD*DBLE(TEMP2(I))
5200 CONTINUE
TEMP3(J)=REAL(DPROD)
IF(TEMP3(J).GT.AMAX)THEN
IR=J
AMAX=TEMP3(J)
ENDIF
5100 CONTINUE
C
THETA=TEMP1(IR)
AN=-REAL(N)/LOG(TEMP3(IR))
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Two-Sided Power Parameter ',
1 'Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5060 FORMAT(' Summary Statistics:')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Sample Minimum:')
5065 FORMAT(' Sample Maximum:')
5066 FORMAT(' Maximum Likelihood Estimates:')
5067 FORMAT(' The (fixed) Lower Limit (Data Minimum):')
5068 FORMAT(' The (fixed) Upper Limit (Data Maximum):')
5069 FORMAT(' The (fixed) Lower Limit (User Specified):')
5070 FORMAT(' The (fixed) Upper Limit (User Specified):')
5071 FORMAT(' Shape Parameter Theta:')
5072 FORMAT(' Shape Parameter N:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5060)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
IF(A.EQ.XMIN-EPS)THEN
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)A
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
IF(A.EQ.XMIN-EPS)THEN
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,5070)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)B
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)THETA
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Two-Sided Power Parameter ',
1 'Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Summary Statistics: & ',2X,A1,A1)
8022 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8023 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,' & ',G15.7,2X,A1,A1)
8028 FORMAT(5X,'Maximum Likelihood Estimates: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'The (fixed) Lower Limit (Data Minimum):} & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'The (fixed) Lower Limit (User Specified):} & ',
1 G15.7,2X,A1,A1)
8031 FORMAT(5X,'The (fixed) Upper Limit (Data Minimum):} & ',
1 G15.7,2X,A1,A1)
8032 FORMAT(5X,'The (fixed) Upper Limit (User Specified):} & ',
1 G15.7,2X,A1,A1)
8033 FORMAT(5X,'Shape Parameter $',A1,'theta$: & ',G15.7,2X,A1,A1)
8034 FORMAT(5X,'Shape Parameter N: & ',G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(A.EQ.XMIN-EPS)THEN
WRITE(ICOUT,8029)A,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)B,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8030)A,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)B,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8033)THETA,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8034)AN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4101)
4101 FORMAT(12X,'TWO-SIDED POWER PARAMETER ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4102)
4102 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4103)N
4103 FORMAT('THE NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4105)XMEAN
4105 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4107)XSD
4107 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4109)XMIN
4109 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4111)XMAX
4111 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4120)
4120 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES:')
CALL DPWRST('XXX','WRIT')
IF(A.EQ.XMIN-EPS)THEN
WRITE(ICOUT,4123)A
4123 FORMAT('THE (FIXED) LOWER LIMIT (DATA MINIMUM) = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4125)B
4125 FORMAT('THE (FIXED) UPPER LIMIT (DATA MINIMUM) = ',G15.7)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4127)A
4127 FORMAT('THE (FIXED) LOWER LIMIT (USER SPECIFIED) = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4129)B
4129 FORMAT('THE (FIXED) UPPER LIMIT (USER SPECIFIED) = ',G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4131)THETA
4131 FORMAT('ESTIMATE OF THE SHAPE PARAMETER THETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4133)AN
4133 FORMAT('THE ESTIMATE OF THE SHAPE PARAMETER N = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4141)
4141 FORMAT('THE ESTIMATES OF THE SHAPE PARAMETERS WILL BE ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4143)
4143 FORMAT('SAVED AS THE INTERNAL PARAMETERS THETAML AND NML.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLTS')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLTS--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLUN(Y,N,
1XTEMP,MAXNXT,
1ALOWLI,AUPPLI,ALOCML,ASCAML,AHAT,HHAT,
1ALOWL2,AUPPL2,ALOCMO,ASCAMO,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE METHOD OF MOMENT AND
C MAXIMUM LIKELIHOOD ESTIMATES FOR THE LOWER AND UPPER
C LIMITS OF THE UNIFORM DISTRIBUTION
C EXAMPLE--UNIFORM MOMENTS Y
C REFERENCE--EVANS, HASTINGS, AND PEACOCK. "STATISTICAL
C DISTRIBUTIONS", THIRD EDITION, WILEY, 2000,
C PP. 170-174
C JOHNSON, KOTZ, AND BALAKRISHNAN. "CONTINUOUS
C UNIVARIATE DISTRIBUTIONS, VOLUME II", SECOND
C EDITION, WILEY, 1994.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2003/10
C ORIGINAL VERSION--OCTOBER 2003.
C UPDATED --JULY 2005. ADD LOCATION/SCALE ESTIMATES
C TO OUTPUT
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
DOUBLE PRECISION DSUM
DOUBLE PRECISION DTERM1
C
EXTERNAL RANGE
C
DIMENSION Y(*)
DIMENSION XTEMP(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='UN '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MLUN')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLUN--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
66 CONTINUE
90 CONTINUE
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN DPMLUN--THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)N
1112 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)HOLD
1131 FORMAT('***** NOTE FROM DPMLUN--VARIABLE 1 ',
1'HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
1290 CONTINUE
C
C *******************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR UNIFORM MLE ESTIMATE **
C *******************************
C
4100 CONTINUE
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL MIDRAN(Y,N,IWRITE,XMIDR,IBUGA3,IERROR)
CALL RANGE(Y,N,IWRITE,XRANG,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
HHAT=0.5*XRANG
AHAT=XMIDR
ALOWLI=AHAT - HHAT
AUPPLI=AHAT + HHAT
ALO2LI=XMEAN - SQRT(3.0)*XSD
AUP2LI=XMEAN + SQRT(3.0)*XSD
ALOCMO=ALO2LI
ASCAMO=AUP2LI - ALO2LI
ALOCML=ALOWLI
ASCAML=AUPPLI - ALOWLI
C
C *********************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR UNIFORM MLE ESTIMATE **
C **********************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5002 FORMAT('UNIFORM DISTRIBUTION PARAMETER ESTIMATION')
5004 FORMAT('
')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5002)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
C5015 FORMAT(' ')
C5017 FORMAT(' Method of Maximum Likelihood')
C5019 FORMAT(' ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5015)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5017)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5019)
CCCCC CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5044 FORMAT(' Summary Statistics:')
5144 FORMAT(' Method of Moments:')
5244 FORMAT(' Maximum Likelihood:')
5045 FORMAT(' Number of Observations:')
5061 FORMAT(' Sample Mean:')
5062 FORMAT(' Sample Standard Deviation:')
5063 FORMAT(' Sample Minimum:')
5064 FORMAT(' Sample Maximum:')
5065 FORMAT(' Estimate of Lower Limit:')
5066 FORMAT(' Estimate of Upper Limit:')
5067 FORMAT(' Estimate of A:')
5068 FORMAT(' Estimate of H:')
5069 FORMAT(' Estimate of Location:')
5070 FORMAT(' Estimate of Scale:')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5044)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5045)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5144)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALO2LI
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AUP2LI
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOCMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5070)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASCAMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5244)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)HHAT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOWLI
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AUPPLI
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOCML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5070)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASCAML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Uniform Distribution Parameter ',
1 'Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8120 FORMAT(5X,'{',A1,'bf Summary Statistics: & ',2X,A1,A1)
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8126 FORMAT(5X,'{',A1,'bf Method of Moment Estimation: & ',2X,A1,A1)
8026 FORMAT(5X,'Estimate of Lower Limit: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'Estimate of Upper Limit: & ',G15.7,2X,A1,A1)
8128 FORMAT(5X,'{',A1,'bf Maximum Likelihood Estimation: & ',2X,A1,A1)
8028 FORMAT(5X,'Estimate of A: & ',G15.7,2X,A1,A1)
8029 FORMAT(5X,'Estimate of H: & ',G15.7,2X,A1,A1)
8030 FORMAT(5X,'Estimate of Location: & ',G15.7,2X,A1,A1)
8031 FORMAT(5X,'Estimate of Scale: & ',G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
C
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8120)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8126)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)ALO2LI,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)AUP2LI,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)ALOCMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)ASCAMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8128)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)AHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)HHAT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)ALOWLI,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)AUPPLI,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)ALOCML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)ASCAML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{table}')
8093 FORMAT(A1,'end{center}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT(12X,
1 'UNIFORM DISTRIBUTION PARAMETER ESTIMATION')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4220)
4220 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4221)N
4221 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)XMEAN
4222 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)XSD
4223 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4224)XMIN
4224 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)XMAX
4225 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4230)
4230 FORMAT('METHOD OF MOMENT ESTIMATES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)ALO2LI
4231 FORMAT('ESTIMATE OF LOWER LIMIT = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4232)AUP2LI
4232 FORMAT('ESTIMATE OF UPPER LIMIT = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)ALOCMO
4233 FORMAT('ESTIMATE OF LOCATION PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4234)ASCAMO
4234 FORMAT('ESTIMATE OF SCALE PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4240)
4240 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4241)AHAT
4241 FORMAT('ESTIMATE OF A = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4242)HHAT
4242 FORMAT('ESTIMATE OF H = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)ALOWLI
4243 FORMAT('ESTIMATE OF LOWER LIMIT = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4244)AUPPLI
4244 FORMAT('ESTIMATE OF UPPER LIMIT = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)ALOCML
4245 FORMAT('ESTIMATE OF LOCATION PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)ASCAML
4246 FORMAT('ESTIMATE OF SCALE PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4251)
4251 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4252)
4252 FORMAT('LOWLIMIT, UPPLIMIT, AHAT, HHAT, LOCML, SCALEML.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4256)
4256 FORMAT('METHOD OF MOMENT ESTIMATES WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4257)
4257 FORMAT('LOWLIMI2, UPPLIMI2, LOCMOM, AND SCALEMOM.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MLUN')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLUN--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMLWE(XTEMP1,MAXNXT,
1ICAPSW,
1MINMAX,ISEED,
1ICASAN,IBUGA2,IBUGA3,IBUGQ,ISUBRO,IFOUND,IERROR)
C
C PURPOSE--COMPUTE MAXIMUM LIKELIHOOD ESTIMATES FOR
C 2-PARAMETER WEIBULL DISTRIBUTION
C EXAMPLE--WEIBULL MAXIMUM LIKELIHOOD Y
C REFERENCE--XX
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--98/3
C ORIGINAL VERSION--MARCH 1998.
C UPDATED --MAY 1998. ADD SUPPORT FOR OTHER
C DISTRIBUTIONS:
C EXPONENTIAL
C NORMAL
C LOG-NORMAL
C INVERSE GAUSSIAN
C GUMBEL (EV1)
C PARETO
C GENERALIZED PARETO
C BINOMIAL
C POISSON
C UPDATED --MAY 1998. FOR GENERALIZED PARETO, ADD
C DEHAAN AND CME
C UPDATED --JUNE 1998. ADD CENSORING VARIABLE FOR
C EXPONENTIAL CASE
C UPDATED --JUNE 1998. ADD GAMMA CASE
C UPDATED --JUNE 1998. ADD POWER CASE
C UPDATED --JUNE 1998. ADD DOUBLE EXPONENTIAL CASE
C UPDATED --MARCH 1999. ADD GENERALIZED EXTREME VALUE
C UPDATED --MARCH 1999. ADD SUPPORT FOR WEIBULL
C CENSORED CASE AND ADD CI
C FOR WEIBULL
C UPDATED --MAY 2002. ADD SUPPORT FOR TWO-SIDED
C POWER
C UPDATED --JULY 2003. ADD SUPPORT FOR JOHNSON SB
C AND JOHNSON SU MOMENT
C ESTIMATORS
C UPDATED --OCTOBER 2003. SUPPORT FOR HTML/LATEX OUTPUT
C UPDATED --OCTOBER 2003. SUPPORT FOR LOGISTIC
C UPDATED --OCTOBER 2003. SUPPORT FOR CAUCHY
C UPDATED --OCTOBER 2003. SUPPORT FOR BETA
C UPDATED --OCTOBER 2003. SUPPORT FOR UNIFORM
C UPDATED --NOVEMBER 2003. GENERALIZED PARETO
C NOTE: THIS ONE STILL NEEDS SOME
C ALGORITHMIC WORK, SO DON'T DOCUMENT
C YET.
C UPDATED --MARCH 2004. LOGARITHMIC SERIES
C UPDATED --MARCH 2004. GEOMETRIC
C UPDATED --MARCH 2004. FATIGE LIFE
C UPDATED --MARCH 2004. GEOMETRIC EXTREME EXPONENTIAL
C UPDATED --MARCH 2004. FOLDED NORMAL
C UPDATED --MARCH 2004. UPDATE CAUCHY CASE
C UPDATED --MARCH 2004. CONFIDENCE INTERVAL FOR
C BINOMIAL
C UPDATED --MARCH 2004. CONFIDENCE INTERVAL FOR
C LOGNORMAL
C UPDATED --MARCH 2004. NEGATIVE BINOMIAL
C UPDATED --MARCH 2004. ADD BETA-BINOMIAL/POLYA
C UPDATED --MARCH 2004. HYPERGEOMETRIC
C UPDATED --APRIL 2004. HERMITE
C UPDATED --APRIL 2004. YULE
C UPDATED --APRIL 2004. WARING
C THIS ONE STILL NEEDS SOME WORK
C UPDATED --APRIL 2004. ADD SUPPORT FOR JOHNSON SB/SU
C PERCENTILE ESTIMATORS
C UPDATED --JUNE 2004. IGEPDF FOR GENERALIZED PARETO
C UPDATED --JUNE 2004. RAYLEIGH, MAXWELL
C UPDATED --AUGUST 2004. ASYMETRIC LAPLACE
C UPDATED --AUGUST 2004. NORMAL MIXTURE
C UPDATED --OCTOBER 2004. CENSORED NORMAL
C UPDATED --OCTOBER 2004. ESTIMATE CONFIDENCE INTERVALS
C FOR PERCENTILES FOR SELECT
C DISTRIBUTIONS (NORMAL,
C EXPONENTIAL)
C UPDATED --OCTOBER 2004. SUPPORT EXPONENTIAL MLE FOR
C GROUPED DATA
C UPDATED --MAY 2005. FRECHET
C UPDATED --AUGUST 2005. INVERTED WEIBULL
C UPDATED --FEBRUARY 2006. L-MOMENT ESTIMATES FOR
C GENERALIZED LOGISTIC
C UPDATED --MARCH 2006. CALL LIST TO DPMLNM
C UPDATED --MAY 2006. BOREL-TANNER
C UPDATED --MAY 2006. BETA-GEOMETRIC
C UPDATED --MAY 2006. ZETA
C UPDATED --JUNE 2006. LAGRANGE-POISSON
C UPDATED --JUNE 2006. POLYA-AEPPLI
C UPDATED --JUNE 2006. LOST GAMES
C UPDATED --JULY 2006. GENERALIZED LOGARITHMIC SERIES
C UPDATED --JULY 2006. GENERALIZED NEGATIVE BINOMIAL
C UPDATED --JULY 2006. GEETA
C UPDATED --JULY 2006. QUASI BINOMIAL TYPE I
C UPDATED --AUGUST 2006. CONSUL
C UPDATED --AUGUST 2006. LAGRANGE KATZ
C UPDATED --OCTOBER 2006. POWER LAW
C UPDATED --DECEMBER 2006. GENERALIZED LOST GAMES
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICASAN
CHARACTER*4 IWRITE
C
CHARACTER*4 IBUGA2
CHARACTER*4 IBUGA3
CHARACTER*4 IBUGQ
CHARACTER*4 ISUBRO
CHARACTER*4 IFOUND
CHARACTER*4 IERROR
C
CHARACTER*4 MESSAG
CHARACTER*4 ICASEQ
C
CHARACTER*4 IHWUSE
CHARACTER*4 IH11
CHARACTER*4 IH12
CHARACTER*4 IH21
CHARACTER*4 IH22
CHARACTER*4 IH31
CHARACTER*4 IH32
CHARACTER*4 IH41
CHARACTER*4 IH42
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*4 IUSE1
CHARACTER*4 IUSE2
C
CHARACTER*4 IH
CHARACTER*4 IH2
CHARACTER*4 IHP
CHARACTER*4 IHP2
CHARACTER*4 IHOST1
CHARACTER*4 ISUBN0
CHARACTER*4 LOWLTY
CHARACTER*4 UPPLTY
C
CHARACTER*1 IBASLC
C
CHARACTER*60 CJUNK
CHARACTER*30 IDIST
CHARACTER*4 IWEIFL
C
CHARACTER*80 IFILE1
CHARACTER*12 ISTAT1
CHARACTER*12 IFORM1
CHARACTER*12 IACCE1
CHARACTER*12 IPROT1
CHARACTER*12 ICURS1
CHARACTER*4 IERRF1
CHARACTER*4 IENDF1
CHARACTER*4 IREWI1
C
CHARACTER*80 IFILE2
CHARACTER*12 ISTAT2
CHARACTER*12 IFORM2
CHARACTER*12 IACCE2
CHARACTER*12 IPROT2
CHARACTER*12 ICURS2
CHARACTER*4 IERRF2
CHARACTER*4 IENDF2
CHARACTER*4 IREWI2
C
LOGICAL MLGEV
C
DOUBLE PRECISION DSUM1
DOUBLE PRECISION DSUM2
DOUBLE PRECISION CCRIT
DOUBLE PRECISION DMEW
DOUBLE PRECISION DTHETA
DOUBLE PRECISION SEM
DOUBLE PRECISION SETH
DOUBLE PRECISION RNL
C
C---------------------------------------------------------------------
C
DIMENSION XTEMP1(*)
C
C-----COMMON----------------------------------------------------------
C
INCLUDE 'DPCOPA.INC'
INCLUDE 'DPCOHK.INC'
INCLUDE 'DPCOSU.INC'
INCLUDE 'DPCOST.INC'
INCLUDE 'DPCODA.INC'
INCLUDE 'DPCOF2.INC'
C
DIMENSION QP(MAXOBV)
DIMENSION XQPHAT(MAXOBV)
DIMENSION XQPLCL(MAXOBV)
DIMENSION XQPUCL(MAXOBV)
DIMENSION XQPLC2(MAXOBV)
DIMENSION XQPUC2(MAXOBV)
DIMENSION XQPHTZ(MAXOBV)
DIMENSION XQPLCZ(MAXOBV)
DIMENSION XQPUCZ(MAXOBV)
DIMENSION XQPSE(MAXOBV)
DIMENSION TEMP1(MAXOBV)
DIMENSION TEMP2(MAXOBV)
DIMENSION TEMP3(MAXOBV)
DIMENSION TEMP4(MAXOBV)
DIMENSION TEMP5(MAXOBV)
DIMENSION TEMP6(MAXOBV)
INTEGER ITEMP1(MAXOBV)
INTEGER ITEMP2(MAXOBV)
INTEGER ITEMP3(MAXOBV,3)
DOUBLE PRECISION DTEMP1(MAXOBV)
DOUBLE PRECISION DTEMP2(MAXOBV)
DOUBLE PRECISION DTEMP3(MAXOBV)
C
DOUBLE PRECISION PAR(3)
DOUBLE PRECISION VARCOV(6)
C
INCLUDE 'DPCOZ2.INC'
INCLUDE 'DPCOZD.INC'
INCLUDE 'DPCOZI.INC'
EQUIVALENCE (G2RBAG(IGAR11),TEMP1(1))
EQUIVALENCE (G2RBAG(IGAR12),TEMP2(1))
EQUIVALENCE (G2RBAG(IGAR13),TEMP3(1))
EQUIVALENCE (G2RBAG(IGAR14),TEMP4(1))
EQUIVALENCE (G2RBAG(IGAR15),QP(1))
EQUIVALENCE (G2RBAG(IGAR16),XQPHAT(1))
EQUIVALENCE (G2RBAG(IGAR17),XQPLCL(1))
EQUIVALENCE (G2RBAG(IGAR18),XQPUCL(1))
EQUIVALENCE (G2RBAG(IGAR19),XQPHTZ(1))
EQUIVALENCE (G2RBAG(IGAR20),XQPLCZ(1))
EQUIVALENCE (G2RBAG(IGAR21),XQPUCZ(1))
EQUIVALENCE (G2RBAG(IGAR22),XQPLC2(1))
EQUIVALENCE (G2RBAG(IGAR23),XQPUC2(1))
EQUIVALENCE (G2RBAG(IGAR24),XQPSE(1))
EQUIVALENCE (G2RBAG(IGAR25),TEMP5(1))
EQUIVALENCE (G2RBAG(IGAR26),TEMP6(1))
EQUIVALENCE (IGARBG(IIGAR1),ITEMP1(1))
EQUIVALENCE (IGARBG(IIGAR2),ITEMP2(1))
EQUIVALENCE (IGARBG(IIGAR3),ITEMP3(1,1))
EQUIVALENCE (DGARBG(IDGAR1),DTEMP1(1))
EQUIVALENCE (DGARBG(IDGAR2),DTEMP2(1))
EQUIVALENCE (DGARBG(IDGAR3),DTEMP3(1))
C
C-----COMMON VARIABLES (GENERAL)--------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='WE '
C
MAXCP1=MAXCOL+1
MAXCP2=MAXCOL+2
MAXCP3=MAXCOL+3
MAXCP4=MAXCOL+4
MAXCP5=MAXCOL+5
MAXCP6=MAXCOL+6
C
IFOUND='NO'
IERROR='NO'
C
N1=(-999)
N2=(-999)
C
NS1=(-999)
NS2=(-999)
C
IUSE1='-999'
IUSE2='-999'
C
ILOCV=(-999)
C
VALUE1=(-999.0)
VALUE2=(-999.0)
C
ICOL1=(-999)
ICOL2=(-999)
C
MINN2=1
C
IFOUND='YES'
C
NLEFT=0
C
ICASEQ='UNKN'
IWEIFL='WEIB'
IF(ICASAN.EQ.'IWML')IWEIFL='IWEI'
C
CJUNK='WEIBULL MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'GPDE')
1 CJUNK='GENERALIZED PARETO DEHAAN ESTIMATION'
IF(ICASAN.EQ.'GPME')
1 CJUNK='GENERALIZED PARETO CME ESTIMATION'
IF(ICASAN.EQ.'NOML')
1 CJUNK='NORMAL MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'LGML')
1 CJUNK='LOG-NORMAL MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'EXML')
1 CJUNK='EXPONENTIAL MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'EXMG')
1 CJUNK='EXPONENTIAL MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'PAML')
1 CJUNK='PARETO MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'BIML')
1 CJUNK='BINOMIAL MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'POML')
1 CJUNK='POISSON MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'IGML')
1 CJUNK='INVERSE GAUSSIAN MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'DEML')
1 CJUNK='DOUBLE EXPONENTIAL MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'PWML')
1 CJUNK='POWER MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'GUML')
1 CJUNK='GUMBEL MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'FRML')
1 CJUNK='FRECHET MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'GEML')
1 CJUNK='GENERALIZED EXTREME VALUE MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'TSML')
1 CJUNK='TWO-SIDED POWER'
IF(ICASAN.EQ.'JOSB')
1 CJUNK='JOHNSON SB METHOD OF MOMENT ESTIMATION'
IF(ICASAN.EQ.'JOSU')
1 CJUNK='JOHNSON SU METHOD OF MOMENT ESTIMATION'
IF(ICASAN.EQ.'LOML')
1 CJUNK='LOGISTIC MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'CAML')
1 CJUNK='CAUCHY MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'UNIF')
1 CJUNK='UNIFORM MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'BETA')
1 CJUNK='BETA MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'GPML')
1 CJUNK='GENERALIZED PARETO MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'DLML')
1 CJUNK='LOGARITHMIC SERIES MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'NBML')
1 CJUNK='NEGATIVE BINOMIAL MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'GMML')
1 CJUNK='GEOMETRIC MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'FLML')
1 CJUNK='FATIGUE LIFE MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'GXML')
1 CJUNK=
1 'GEOMETRIC EXTREME EXPONENTIAL MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'FNML')
1 CJUNK=
1 'FOLDED NORMAL MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'BBML')
1 CJUNK=
1 'BETA-BINOMIAL MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'PZML')
1 CJUNK=
1 'POLYA MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'HYML')
1 CJUNK=
1 'HYPERGEOMETRIC MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'HEML')
1 CJUNK=
1 'HERMITE MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'YUML')
1 CJUNK=
1 'YULE MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'WAML')
1 CJUNK=
1 'WARING MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'JOHN')
1 CJUNK='JOHNSON SU/SB PERCENTILE ESTIMATION'
IF(ICASAN.EQ.'RAYL')
1 CJUNK='RAYLEIGH MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'MAXW')
1 CJUNK='MAXWELL MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'ADML')
1 CJUNK='ASYMMETRIC LAPLACE MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'NMML')
1 CJUNK='NORMAL MIXTURE MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'IWML')
1 CJUNK='INVERSE WEIBULL MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'GLML')
1 CJUNK='GENERALIZED LOGISTIC L-MOMENT ESTIMATION'
IF(ICASAN.EQ.'BTML')
1 CJUNK='BOREL-TANNER'
IF(ICASAN.EQ.'LPML')
1 CJUNK='LAGRANGE-POISSON'
IF(ICASAN.EQ.'BGML')
1 CJUNK='BETA-GEOMETRIC'
IF(ICASAN.EQ.'ZEML')
1 CJUNK='ZETA MAXIMUM LIKELIHOOD ESTIMATION'
IF(ICASAN.EQ.'AEML')
1 CJUNK='POLYA-AEPPLI'
IF(ICASAN.EQ.'LSML')
1 CJUNK='LOST GAMES'
IF(ICASAN.EQ.'GSML')
1 CJUNK='GENERALIZED LOGARITHMIC SERIES'
IF(ICASAN.EQ.'GNBM')
1 CJUNK='GENERALIZED NEGATIVE BINOMIAL'
IF(ICASAN.EQ.'GTML')
1 CJUNK='GEETA'
IF(ICASAN.EQ.'QBML')
1 CJUNK='QUASI BINOMIAL TYPE I'
IF(ICASAN.EQ.'CNML')
1 CJUNK='CONSUL (GENERALIZED GEOMETRIC)'
IF(ICASAN.EQ.'LKML')
1 CJUNK='LAGRANGE KATZ'
IF(ICASAN.EQ.'PLML')
1 CJUNK='POWER LAW'
IF(ICASAN.EQ.'GGML')
1 CJUNK='GENERALIZED LOST GAMES'
C
C *************************************************
C ** TREAT THE WEIBULL MAXIMUM LIKELIHOOD CASE **
C *************************************************
C
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MLWE')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,51)
51 FORMAT('***** AT THE BEGINNING OF DPMLWE--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,52)IBUGA2,IBUGA3,IBUGQ
52 FORMAT('IBUGA2,IBUGA3,IBUGQ = ',A4,2X,A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,55)ICASAN,MAXNXT
55 FORMAT('ICASAN,MAXNXT = ',A4,2X,I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,56)ICENTY
56 FORMAT('ICENTY = ',A4)
CALL DPWRST('XXX','BUG ')
ENDIF
C
C *******************************************************
C ** STEP 2-- **
C ** CHECK FOR THE PROPER NUMBER OF INPUT ARGUMENTS. **
C *******************************************************
C
ISTEPN='2'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MLWE')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
MINNA=1
MAXNA=100
CALL CHECKA(NUMARG,MINNA,MAXNA,IANS,IWIDTH,ISUBN1,ISUBN2,
1IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ****************************************
C ** STEP 11-- **
C ** CHECK THE VALIDITY OF ARGUMENT 1 **
C ** (THIS SHULD BE A VARIABLE.) **
C ** FOR HYPERGEOMETRIC, IT MAY BE A **
C ** PARAMETER. **
C ****************************************
C
ISTEPN='11'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MLWE')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IH11=IHARG(1)
IH12=IHARG2(1)
IHWUSE='V'
MESSAG='NO'
IF(ICASAN.EQ.'HYML')MESSAG='NO'
CALL CHECKN(IH11,IH12,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
C
IF(IERROR.EQ.'YES' .AND. ICASAN.EQ.'HYML')THEN
N1=-1
NUMV=1
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IH11,IH12,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
IF(IERROR.EQ.'NO')THEN
IUSE1=IUSE(ILOCV)
NUMDEF=VALUE(ILOCV)+0.5
ENDIF
ENDIF
C
IF(IERROR.EQ.'YES')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1141)
1141 FORMAT('***** ERROR IN MAXIMUM LIKELIHOOD ESTIMATION--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1142)CJUNK
1142 FORMAT(' FOR THE ',A60)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1145)
1145 FORMAT(' THE ARGUMENT MUST BE A VARIABLE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1146)
1146 FORMAT(' (AS OPPOSED TO A PARAMETER OR FUNCTION).')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1147)
1147 FORMAT(' ARGUMENT 1 WAS NOT A VARIABLE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1148)
1148 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)THEN
WRITE(ICOUT,1150)(IANS(I),I=1,MIN(IWIDTH,80))
1150 FORMAT(80A1)
CALL DPWRST('XXX','BUG ')
ENDIF
IERROR='YES'
GOTO9000
ENDIF
C
IUSE1=IUSE(ILOCV)
ICOL1=IVALUE(ILOCV)
N1=IN(ILOCV)
NUMV=1
1190 CONTINUE
C
C *******************************************************
C ** STEP 12-- **
C ** IF ARGUMENT 1 IS A VARIABLE, **
C ** CHECK THAT THE INPUT NUMBER OF OBSERVATIONS (N1) **
C ** FOR ARGUMENT 1 IS 2 OR MORE. **
C *******************************************************
C
ISTEPN='12'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MLWE')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IUSE1.EQ.'V'.AND.N1.LT.MINN2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1211)
1211 FORMAT('***** ERROR IN MAXIMUM LIKELIHOOD ESTIMATION--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1212)
1212 FORMAT(' THE INPUT NUMBER OF OBSERVATIONS FOR WHICH THE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1213)CJUNK
1213 FORMAT(' ',A60,' WAS TO HAVE BEEN')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1215)MINN2
1215 FORMAT(' PERFORMED MUST BE ',I8,' OR LARGER; SUCH WAS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1217)IH11,IH12
1217 FORMAT(' NOT THE CASE FOR VARIABLE ',A4,A4,' WHICH HAD')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1218)N1
1218 FORMAT(' NUMBER OF OBSERVATIONS = ',I8,';')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1219)
1219 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)THEN
WRITE(ICOUT,1220)(IANS(I),I=1,MIN(80,IWIDTH))
1220 FORMAT(80A1)
CALL DPWRST('XXX','BUG ')
ENDIF
IERROR='YES'
GOTO9000
ENDIF
C
C ********************************************
C ** STEP 13-- **
C ** CHECK THE VALIDITY OF ARGUMENT 2 **
C ** (THIS WILL BE THE TAG VARIABLE) **
C ********************************************
C
ISTEPN='13'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MLWE')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
NUMV=2
IF(NUMARG.LT.2)THEN
NUMV=1
ICOL2=-1
N2=-1
GOTO1399
ENDIF
IH21=IHARG(2)
IH22=IHARG2(2)
IHWUSE='V'
MESSAG='NO'
CALL CHECKN(IH21,IH22,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
C
C NOTE: BETA-BINOMIAL/POLYA CAN HAVE EITHER VARIABLE OR PARAMETER
C FOR SECOND ARGUMENT.
C
C NOTE: HYPERGEOMETRIC CAN HAVE EITHER VARIABLE OR PARAMETER
C FOR SECOND ARGUMENT.
C
NTRIAL=0
NSAMP=0
IF(IERROR.EQ.'YES')THEN
NUMV=1
ICOL2=-1
N2=-1
IF(ICASAN.EQ.'BBML' .OR. ICASAN.EQ.'PZML' .OR.
1 ICASAN.EQ.'HYML')THEN
IH21=IHARG(2)
IH22=IHARG2(2)
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IH21,IH22,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,
1 NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
IF(IERROR.EQ.'NO')THEN
IF(ICASAN.EQ.'BBML' .OR. ICASAN.EQ.'PZML')THEN
NTRIAL=VALUE(ILOCV)+0.5
ELSEIF(ICASAN.EQ.'HYML')THEN
NSAMP=VALUE(ILOCV)+0.5
ENDIF
ENDIF
ENDIF
ELSE
NUMV=2
ICOL2=IVALUE(ILOCV)
N2=IN(ILOCV)
ENDIF
1399 CONTINUE
C
C ******************************************************
C ** STEP 14-- **
C ** CHECK THAT THE INPUT NUMBER OF OBSERVATIONS **
C ** FOR THE TAG VARIABLE (NRIGHT) IS THE SAME AS **
C ** THE NUMBER OF OBSERVATIONS FOR THE RESPONSE **
C ** VARIABLE. **
C ******************************************************
C
ISTEPN='13'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MLWE')THEN
CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
WRITE(ICOUT,1307)
1307 FORMAT('NUMV = ',I4)
CALL DPWRST('XXX','BUG ')
ENDIF
C
IF(NUMV.LT.2.OR.N1.EQ.N2.OR.N2.LT.0)GOTO1390
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1311)
1311 FORMAT('***** ERROR IN MAXIMUM LIKELIHOOD ESTIMATION--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1312)CJUNK
1312 FORMAT(' IF TWO VARIABLES ARE SPECIFED FOR THE ',A40)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1313)
1313 FORMAT(' THEY MUST HAVE THE SAME NUMBER OF ',
1 'OBSERVATIONS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1314)
1314 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1315)IH11,IH12,N1
1315 FORMAT(' ',A4,A4,' HAS ',I8,' OBSERVATIONS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1316)IH21,IH22,N2
1316 FORMAT(' ',A4,A4,' HAS ',I8,' OBSERVATIONS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1317)
1317 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)THEN
WRITE(ICOUT,1318)(IANS(I),I=1,MIN(IWIDTH,80))
1318 FORMAT(' ',80A1)
CALL DPWRST('XXX','BUG ')
ENDIF
IERROR='YES'
GOTO9000
1390 CONTINUE
C
C ************************************************
C ** STEP 14B-- **
C ** CHECK THE VALIDITY OF ARGUMENT 3 **
C ** (CURRENTLY, ONLY USED BY HYPERGEOMETRIC) **
C ** OCTOBER 2004: USE FOR GROUPED DATA WHEN **
C ** GROUPS CONSIST OF LOWER AND UPPER **
C ** BOUNDARIES (USEFUL FOR UNEQUAL BIN SIZES) **
C ** OCTOBER 2006: USE FOR POWER LAW **
C ** Y = REPAIR TIMES **
C ** X = SYSTEM ID VARIABLE **
C ** C = CENSORING VARIABLE **
C ************************************************
C
ISTEPN='13'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MLWE')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMARG.LT.3)THEN
ICOL3=-1
N3=-1
GOTO1499
ENDIF
IH31=IHARG(3)
IH32=IHARG2(3)
IHWUSE='V'
MESSAG='NO'
CALL CHECKN(IH31,IH32,IHWUSE,
1IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
C
NPOP=0
NK=0
IF(IERROR.EQ.'YES')THEN
ICOL3=-1
N3=-1
IF(ICASAN.EQ.'HYML')THEN
IH31=IHARG(3)
IH32=IHARG2(3)
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IH31,IH32,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,
1 NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
IF(IERROR.EQ.'NO')THEN
IF(IHYPTY.EQ.'ACCE')THEN
NPOP=VALUE(ILOCV)+0.5
ELSE
NK=VALUE(ILOCV)+0.5
ENDIF
ENDIF
ENDIF
ELSE
NUMV=3
ICOL3=IVALUE(ILOCV)
N3=IN(ILOCV)
ENDIF
1499 CONTINUE
C
C ******************************************************
C ** STEP 14-- **
C ** CHECK THAT THE INPUT NUMBER OF OBSERVATIONS **
C ** FOR THE TAG VARIABLE (NRIGHT) IS THE SAME AS **
C ** THE NUMBER OF OBSERVATIONS FOR THE RESPONSE **
C ** VARIABLE. **
C ******************************************************
C
ISTEPN='14'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MLWE')THEN
CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
WRITE(ICOUT,1407)
1407 FORMAT('NUMV = ',I4)
CALL DPWRST('XXX','BUG ')
ENDIF
C
IF(NUMV.LT.3.OR.N1.EQ.N3.OR.N3.LT.0)GOTO1490
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1411)
1411 FORMAT('***** ERROR IN MAXIMUM LIKELIHOOD ESTIMATION--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1412)CJUNK
1412 FORMAT(' IF THREE VARIABLES ARE SPECIFED FOR THE ',A40)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1413)
1413 FORMAT(' THEY MUST HAVE THE SAME NUMBER OF ',
1 'OBSERVATIONS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1414)
1414 FORMAT(' SUCH WAS NOT THE CASE HERE.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1415)IH11,IH12,N1
1415 FORMAT(' ',A4,A4,' HAS ',I8,' OBSERVATIONS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1416)IH21,IH22,N2
1416 FORMAT(' ',A4,A4,' HAS ',I8,' OBSERVATIONS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1417)
1417 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)THEN
WRITE(ICOUT,1418)(IANS(I),I=1,MIN(IWIDTH,80))
1418 FORMAT(' ',80A1)
CALL DPWRST('XXX','BUG ')
ENDIF
IERROR='YES'
GOTO9000
1490 CONTINUE
C
C ******************************************************
C ** STEP 15-- **
C ** CHECK TO SEE IF A "PERCENTILES" VARIABLE HAS **
C ** BEEN SPECIFIED (VIA THE SET MAXIMIM LIKELIHOOD **
C ** PERCENTILES COMMAND). IF SO, EXTRACT THE NAME. **
C ******************************************************
C
ISTEPN='15'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MLWE')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IQUAVR.EQ.'NONE')THEN
NPERC=0
ELSEIF(IQUAVR.EQ.'DEFAULT')THEN
QP(1)=0.5
QP(2)=1.0
QP(3)=5.0
QP(4)=10.0
QP(5)=20.0
QP(6)=30.0
QP(7)=40.0
QP(8)=50.0
QP(9)=60.0
QP(10)=70.0
QP(11)=80.0
QP(12)=90.0
QP(13)=95.0
QP(14)=97.5
QP(15)=99.0
QP(16)=99.5
NPERC=16
ELSE
IH41=IQUAVR(1:4)
IH42=IQUAVR(5:8)
IHWUSE='V'
MESSAG='NO'
CALL CHECKN(IH41,IH42,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCV,IERROR)
C
IF(IERROR.EQ.'YES')THEN
NPERC=0
ELSE
ICOLQP=IVALUE(ILOCV)
NPERC=IN(ILOCV)
ICNT=0
DO4180I=1,NPERC
IJ=MAXN*(ICOLQP-1)+I
ICNT=ICNT+1
IF(ICOLQP.LE.MAXCOL)QP(ICNT)=V(IJ)
IF(ICOLQP.EQ.MAXCP1)QP(ICNT)=PRED(I)
IF(ICOLQP.EQ.MAXCP2)QP(ICNT)=RES(I)
IF(ICOLQP.EQ.MAXCP3)QP(ICNT)=YPLOT(I)
IF(ICOLQP.EQ.MAXCP4)QP(ICNT)=XPLOT(I)
IF(ICOLQP.EQ.MAXCP5)QP(ICNT)=X2PLOT(I)
IF(ICOLQP.EQ.MAXCP6)QP(ICNT)=TAGPLO(I)
IF(QP(ICNT).LE.0.0 .OR. QP(ICNT).GE.100.0)THEN
ICNT=ICNT-1
ENDIF
4180 CONTINUE
NPERC=ICNT
C
ENDIF
ENDIF
C
C
C *****************************************
C ** STEP 40-- **
C ** CHECK TO SEE THE TYPE CASE-- **
C ** 1) UNQUALIFIED (THAT IS, FULL); **
C ** 2) SUBSET/EXCEPT; OR **
C ** 3) FOR. **
C *****************************************
C
ISTEPN='40'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MLWE')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ICASEQ='FULL'
ILOCQ=NUMARG+1
IF(NUMARG.LT.1)GOTO4090
DO4000J=1,NUMARG
J1=J
IF(IHARG(J).EQ.'SUBS'.AND.IHARG2(J).EQ.'ET ') GOTO4010
IF(IHARG(J).EQ.'EXCE'.AND.IHARG2(J).EQ.'PT ') GOTO4010
IF(IHARG(J).EQ.'FOR '.AND.IHARG2(J).EQ.' ') GOTO4020
4000 CONTINUE
GOTO4090
4010 CONTINUE
ICASEQ='SUBS'
ILOCQ=J1
GOTO4090
4020 CONTINUE
ICASEQ='FOR'
ILOCQ=J1
GOTO4090
4090 CONTINUE
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MLWE')THEN
WRITE(ICOUT,4091)NUMARG,ILOCQ
4091 FORMAT('NUMARG,ILOCQ = ',2I8)
CALL DPWRST('XXX','BUG ')
ENDIF
C
C ***********************************************
C ** STEP 41-- **
C ** TEMPORARILY FORM THE VARIABLE Y(.) **
C ** WHICH WILL HOLD THE DATA FROM SAMPLE 1. **
C ** FORM THIS VARIABLE BY **
C ** BRANCHING TO THE APPROPRIATE SUBCASE **
C ** (FULL, SUBSET, OR FOR). **
C ***********************************************
C
IF(IUSE1.NE.'V')GOTO4190
C
ISTEPN='41'
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MLWE')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(ICASEQ.EQ.'FULL')GOTO4110
IF(ICASEQ.EQ.'SUBS')GOTO4120
IF(ICASEQ.EQ.'FOR')GOTO4130
C
4110 CONTINUE
DO4115I=1,N1
ISUB(I)=1
4115 CONTINUE
NQ=N1
GOTO4150
C
4120 CONTINUE
NIOLD=N1
CALL DPSUBS(NIOLD,ILOCS,NS,IBUGQ,IERROR)
NQ=NIOLD
GOTO4150
C
4130 CONTINUE
NIOLD=N1
CALL DPFOR(NIOLD,NFOR,IROW1,IROWN,
1NLOCAL,ILOCS,NS,IBUGQ,IERROR)
NQ=NFOR
GOTO4150
C
4150 CONTINUE
IF(NQ.LT.MINN2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4151)
4151 FORMAT('***** ERROR IN MAXIMUM LIKELIHOOD ESTIMATION--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4152)
4152 FORMAT(' AFTER THE APPROPRIATE SUBSET HAS BEEN ',
1 'EXTRACTED,')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4153)IH11,IH12
4153 FORMAT(' THE NUMBER OF OBSERVATIONS REMAINING',
1 'FROM VARIABLE ',A4,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4154)CJUNK
4154 FORMAT(' FOR WHICH THE ',A60)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4156)MINN2
4156 FORMAT(' IS TO BE PERFORMED MUST BE ',I8,' OR LARGER;')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4157)NQ
4157 FORMAT(' SUCH WAS NOT THE CASE HERE. (N = ',I8,')')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4158)
4158 FORMAT(' THE ENTERED COMMAND LINE WAS AS FOLLOWS--')
CALL DPWRST('XXX','BUG ')
IF(IWIDTH.GE.1)THEN
WRITE(ICOUT,4159)(IANS(I),I=1,MIN(80,IWIDTH))
4159 FORMAT(' ',80A1)
CALL DPWRST('XXX','BUG ')
ENDIF
IERROR='YES'
GOTO9000
ENDIF
C
J=0
IMAX=MAX(N1,N2,N3)
IF(NQ.LT.IMAX)IMAX=NQ
IF(IMAX.LT.1)GOTO4190
DO4170I=1,IMAX
IF(ISUB(I).EQ.0)GOTO4170
J=J+1
C
IF(ICASAN.EQ.'HYML' .AND. N1.LT.0)THEN
Y(J)=REAL(NUMDEF)
ELSE
IJ=MAXN*(ICOL1-1)+I
IF(ICOL1.LE.MAXCOL)Y(J)=V(IJ)
IF(ICOL1.EQ.MAXCP1)Y(J)=PRED(I)
IF(ICOL1.EQ.MAXCP2)Y(J)=RES(I)
IF(ICOL1.EQ.MAXCP3)Y(J)=YPLOT(I)
IF(ICOL1.EQ.MAXCP4)Y(J)=XPLOT(I)
IF(ICOL1.EQ.MAXCP5)Y(J)=X2PLOT(I)
IF(ICOL1.EQ.MAXCP6)Y(J)=TAGPLO(I)
ENDIF
C
IF(ICASAN.EQ.'HYML' .AND. N2.LT.0)THEN
ITEMP2(J)=NSAMP
ELSE
IF(NUMV.LE.1)GOTO4170
C
IF(ICASAN.EQ.'BBML' .OR. ICASAN.EQ.'PZML' .OR.
1 ICASAN.EQ.'HYML')THEN
IJ=MAXN*(ICOL2-1)+I
IF(ICOL2.LE.MAXCOL)ITEMP2(J)=INT(V(IJ)+0.5)
IF(ICOL2.EQ.MAXCP1)ITEMP2(J)=INT(PRED(I)+0.5)
IF(ICOL2.EQ.MAXCP2)ITEMP2(J)=INT(RES(I)+0.5)
IF(ICOL2.EQ.MAXCP3)ITEMP2(J)=INT(YPLOT(I)+0.5)
IF(ICOL2.EQ.MAXCP4)ITEMP2(J)=INT(XPLOT(I)+0.5)
IF(ICOL2.EQ.MAXCP5)ITEMP2(J)=INT(X2PLOT(I)+0.5)
IF(ICOL2.EQ.MAXCP6)ITEMP2(J)=INT(TAGPLO(I)+0.5)
ELSE
IJ=MAXN*(ICOL2-1)+I
IF(ICOL2.LE.MAXCOL)TEMP4(J)=V(IJ)
IF(ICOL2.EQ.MAXCP1)TEMP4(J)=PRED(I)
IF(ICOL2.EQ.MAXCP2)TEMP4(J)=RES(I)
IF(ICOL2.EQ.MAXCP3)TEMP4(J)=YPLOT(I)
IF(ICOL2.EQ.MAXCP4)TEMP4(J)=XPLOT(I)
IF(ICOL2.EQ.MAXCP5)TEMP4(J)=X2PLOT(I)
IF(ICOL2.EQ.MAXCP6)TEMP4(J)=TAGPLO(I)
ENDIF
ENDIF
C
IF(ICASAN.EQ.'HYML' .AND. N3.LT.0)THEN
IF(IHYPTY.EQ.'ACCE')THEN
ITEMP1(J)=NPOP
ELSE
ITEMP1(J)=NK
ENDIF
ELSE
IF(NUMV.LE.2)GOTO4170
C
IF(ICASAN.EQ.'HYML')THEN
IJ=MAXN*(ICOL3-1)+I
IF(ICOL3.LE.MAXCOL)ITEMP1(J)=INT(V(IJ)+0.5)
IF(ICOL3.EQ.MAXCP1)ITEMP1(J)=INT(PRED(I)+0.5)
IF(ICOL3.EQ.MAXCP2)ITEMP1(J)=INT(RES(I)+0.5)
IF(ICOL3.EQ.MAXCP3)ITEMP1(J)=INT(YPLOT(I)+0.5)
IF(ICOL3.EQ.MAXCP4)ITEMP1(J)=INT(XPLOT(I)+0.5)
IF(ICOL3.EQ.MAXCP5)ITEMP1(J)=INT(X2PLOT(I)+0.5)
IF(ICOL3.EQ.MAXCP6)ITEMP1(J)=INT(TAGPLO(I)+0.5)
ELSE
IJ=MAXN*(ICOL3-1)+I
IF(ICOL3.LE.MAXCOL)TEMP5(J)=V(IJ)
IF(ICOL3.EQ.MAXCP1)TEMP5(J)=PRED(I)
IF(ICOL3.EQ.MAXCP2)TEMP5(J)=RES(I)
IF(ICOL3.EQ.MAXCP3)TEMP5(J)=YPLOT(I)
IF(ICOL3.EQ.MAXCP4)TEMP5(J)=XPLOT(I)
IF(ICOL3.EQ.MAXCP5)TEMP5(J)=X2PLOT(I)
IF(ICOL3.EQ.MAXCP6)TEMP5(J)=TAGPLO(I)
ENDIF
ENDIF
C
4170 CONTINUE
NS1=J
C
4190 CONTINUE
IF(ICASAN.EQ.'HYML' .AND. IMAX.LT.0)THEN
Y(1)=REAL(NUMDEF)
ITEMP2(1)=NSAMP
IF(IHYPTY.EQ.'ACCE')THEN
ITEMP1(1)=NPOP
ELSE
ITEMP1(1)=NK
ENDIF
NS1=1
ENDIF
C
C ***********************************
C ** STEP 52-- **
C ** DO THE MLE ESTIMATION **
C ***********************************
C
ISTEPN='52'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IBUGA2.EQ.'OFF')GOTO5290
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5211)
5211 FORMAT('***** FROM DPMLWE, AS WE ARE ABOUT TO CALL DPMLW1--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,5212)N1,N2,NS1,NS2,MAXN
5212 FORMAT('N1,N2,NS1,NS2,MAXN = ',5I8)
CALL DPWRST('XXX','BUG ')
DO5215I=1,NS1
WRITE(ICOUT,5216)I,Y(I)
5216 FORMAT('I,Y(I) = ',I8,2E15.7)
CALL DPWRST('XXX','BUG ')
5215 CONTINUE
WRITE(ICOUT,5231)IBUGA3
5231 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','BUG ')
5290 CONTINUE
C
C MARCH 1999. USE ROUTINE THAT GENERATES CONFIDENCE INTERVAL
C AND ALSO GENERATES CONFIDENCE INTERVALS FOR CENSORED
C DATA.
C AUGUST 2005. INVERTED WEIBULL DISTRIBUTION CAN BE ESTIMATED
C WITH THE SAME ROUTINES AS THE REGULAR WEIBULL.
C
IF(ICASAN.EQ.'WEML' .OR. ICASAN.EQ.'IWML')THEN
CCCCC IF(ICENTY.EQ.'NONE')THEN
CCCCC CALL DPMLW2(Y,NS1,
CCCCC1 XTEMP1,MAXNXT,
CCCCC1 GAMMA,ALPHA,
CCCCC1 ISUBRO,IBUGA3,IERROR)
CCCCC ELSEIF(ICENTY.EQ.'1 '.OR.ICENTY.EQ.'2 ')THEN
CCCCC IHP='TEND'
CCCCC IHP2=' '
CCCCC IHWUSE='P'
CCCCC MESSAG='NO'
CCCCC CALL CHECKN(IHP,IHP2,IHWUSE,
CCCCC1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
CCCCC1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
CCCCC TEND=0.0
CCCCC IF(IERROR.EQ.'NO')TEND=VALUE(ILOCP)
C
CCCCC CALL DPMLWC(Y,TEMP4,NS1,
CCCCC1 XTEMP1,MAXNXT,
CCCCC1 GAMMA,ALPHA,NUMV,ICENTY,TEND,
CCCCC1 ISUBRO,IBUGA3,IERROR)
CCCCC ENDIF
C
IOUNI1=IST1NU
IFILE1=IST1NA
ISTAT1=IST1ST
IFORM1=IST1FO
IACCE1=IST1AC
IPROT1=IST1PR
ICURS1=IST1CS
ISUBN0='MLWE'
IERRF1='NO'
C
IREWI1='ON'
CALL DPOPFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IOUNI2=IST2NU
IFILE2=IST2NA
ISTAT2=IST2ST
IFORM2=IST2FO
IACCE2=IST2AC
IPROT2=IST2PR
ICURS2=IST2CS
ISUBN0='MLWE'
IERRF2='NO'
C
IREWI2='ON'
CALL DPOPFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALPHA=0.05
IF(IERROR.EQ.'NO')ALPHA=VALUE(ILOCP)
IF(ALPHA.LE.0.0 .OR. ALPHA.GE.1.0)THEN
ALPHA=0.05
ELSEIF(ALPHA.GT.0.50)THEN
ALPHA=1.0-ALPHA
ENDIF
C
IF(IBUGA2.EQ.'ON'.OR.ISUBRO.EQ.'MLWE')THEN
WRITE(ICOUT,5331)ICENTY,IWBCAS,NUMV
5331 FORMAT('ICENTY,IWBCAS,NUMV = ',A4,I5,I5)
CALL DPWRST('XXX','BUG ')
ENDIF
IF(NUMV.EQ.1)THEN
CALL DPMLW1(Y,TEMP4,NS1,
1 XTEMP1,DTEMP1,MAXNXT,
1 SCALE,SCALSE,GAMMA,GAMMSE,GAMMBC,GABCSE,
1 COVSE,COBCSE,
1 NUMV,ICENTY,TEND,
1 ICAPSW,ICAPTY,IWEIBC,IWEIFL,
1 QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1 IOUNI1,IOUNI2,ALPHA,
1 ISUBRO,IBUGA3,IERROR)
ELSEIF(NUMV.EQ.2 .AND. ICENTY.NE.'2')THEN
CALL DPMLW2(Y,TEMP4,NS1,
1 XTEMP1,DTEMP1,MAXNXT,
1 SCALE,SCALSE,GAMMA,GAMMSE,GAMMBC,GABCSE,
1 COVSE,COBCSE,
1 NUMV,ICENTY,TEND,
1 ICAPSW,ICAPTY,IWEIBC,IWEIFL,
1 QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1 IOUNI1,IOUNI2,ALPHA,
1 ISUBRO,IBUGA3,IERROR)
ELSE
IF(NUMV.EQ.1)THEN
IWBCAS=3
ELSEIF(NUMV.EQ.2)THEN
IWBCAS=2
IF(ICENTY.EQ.'3')IWBCAS=1
ELSE
IWBCAS=3
ENDIF
DO810I=1,NS1
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,813)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
DTEMP1(I)=DBLE(Y(I))
IF(IWBCAS.EQ.3)THEN
ITEMP1(I)=1
ELSE
ITEMP1(I)=INT(TEMP4(I)+0.5)
ENDIF
IF(ITEMP1(I).LE.0)ITEMP1(I)=0
IF(ITEMP1(I).GE.1)ITEMP1(I)=1
810 CONTINUE
IERROR='NO'
813 FORMAT('***** ERROR FOR WEIBULL MLE. NEGATIVE NUMBER ',
1 'ENCOUNTERED.')
CALL WEICEN(DTEMP1,ITEMP1,DTEMP2,DTEMP3,IWBCAS,NS1,
1 GAMMA,SCALE,
1 ICAPSW,ICAPTY,
1 IERROR)
ENDIF
IF(IERROR.EQ.'YES')GOTO9000
IENDF1='OFF'
IREWI1='ON'
CALL DPCLFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IENDF1,IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IENDF2='OFF'
IREWI2='ON'
CALL DPCLFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IENDF2,IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='GAMM'
IH2='AML '
VALUE0=GAMMA
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='GAMM'
IH2='ASE '
VALUE0=GAMMSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='AML '
VALUE0=SCALE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='ASE '
VALUE0=SCALSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IF(NUMV.LE.1)THEN
IH='GAMM'
IH2='ABC '
VALUE0=GAMMBC
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='GAMM'
IH2='BCSE'
VALUE0=GABCSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='COVS'
IH2='E '
VALUE0=COVSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='COVB'
IH2='CSE '
VALUE0=COBCSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ENDIF
ELSEIF(ICASAN.EQ.'FRML')THEN
C
IOUNI1=IST1NU
IFILE1=IST1NA
ISTAT1=IST1ST
IFORM1=IST1FO
IACCE1=IST1AC
IPROT1=IST1PR
ICURS1=IST1CS
ISUBN0='MLWE'
IERRF1='NO'
C
IREWI1='ON'
CALL DPOPFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IOUNI2=IST2NU
IFILE2=IST2NA
ISTAT2=IST2ST
IFORM2=IST2FO
IACCE2=IST2AC
IPROT2=IST2PR
ICURS2=IST2CS
ISUBN0='MLWE'
IERRF2='NO'
C
IREWI2='ON'
CALL DPOPFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALPHA=0.05
IF(IERROR.EQ.'NO')ALPHA=VALUE(ILOCP)
IF(ALPHA.LE.0.0 .OR. ALPHA.GE.1.0)THEN
ALPHA=0.05
ELSEIF(ALPHA.GT.0.50)THEN
ALPHA=1.0-ALPHA
ENDIF
C
IF(NUMV.EQ.1)THEN
CALL DPMLFR(Y,TEMP4,NS1,
1 XTEMP1,DTEMP1,MAXNXT,
1 SCALE,SCALSE,GAMMA,GAMMSE,GAMMBC,GABCSE,
1 COVSE,COBCSE,
1 NUMV,ICENTY,TEND,
1 ICAPSW,ICAPTY,IFREBC,
1 QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1 IOUNI1,IOUNI2,ALPHA,
1 ISUBRO,IBUGA3,IERROR)
ELSEIF(NUMV.EQ.2 .AND. ICENTY.NE.'2')THEN
C
C CENSORED CASE NOT CURRENTLY SUPPORTED.
C
ENDIF
IF(IERROR.EQ.'YES')GOTO9000
IENDF1='OFF'
IREWI1='ON'
CALL DPCLFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IENDF1,IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IENDF2='OFF'
IREWI2='ON'
CALL DPCLFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IENDF2,IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='GAMM'
IH2='AML '
VALUE0=GAMMA
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='GAMM'
IH2='ASE '
VALUE0=GAMMSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='AML '
VALUE0=SCALE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='ASE '
VALUE0=SCALSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IF(NUMV.LE.1)THEN
IH='GAMM'
IH2='ABC '
VALUE0=GAMMBC
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='GAMM'
IH2='BCSE'
VALUE0=GABCSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='COVS'
IH2='E '
VALUE0=COVSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='COVB'
IH2='CSE '
VALUE0=COBCSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ENDIF
ELSEIF(ICASAN.EQ.'NOML')THEN
C
IOUNI1=IST1NU
IFILE1=IST1NA
ISTAT1=IST1ST
IFORM1=IST1FO
IACCE1=IST1AC
IPROT1=IST1PR
ICURS1=IST1CS
ISUBN0='MLWE'
IERRF1='NO'
C
IREWI1='ON'
CALL DPOPFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IF(NUMV.GT.1)THEN
IOUNI2=IST2NU
IFILE2=IST2NA
ISTAT2=IST2ST
IFORM2=IST2FO
IACCE2=IST2AC
IPROT2=IST2PR
ICURS2=IST2CS
ISUBN0='MLWE'
IERRF2='NO'
C
IREWI2='ON'
CALL DPOPFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
ENDIF
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALPHA=0.05
IF(IERROR.EQ.'NO')ALPHA=VALUE(ILOCP)
IF(ALPHA.LE.0.0 .OR. ALPHA.GE.1.0)THEN
ALPHA=0.05
ELSEIF(ALPHA.GT.0.50)THEN
ALPHA=1.0-ALPHA
ENDIF
C
CALL DPMLNO(Y,TEMP4,NS1,
1 XTEMP1,DTEMP1,MAXNXT,
1 QP,XQPHAT,XQPLCL,XQPUCL,NPERC,
1 XMEAN,XSD,
1 ICAPSW,ICAPTY,NUMV,
1 IOUNI1,IOUNI2,ALPHA,
1 ISUBRO,IBUGA3,IERROR)
C
IENDF1='OFF'
IREWI1='ON'
CALL DPCLFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IENDF1,IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
IF(NUMV.GT.1)THEN
IENDF2='OFF'
IREWI2='ON'
CALL DPCLFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IENDF2,IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
ENDIF
C
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='XMEA'
IH2='N '
VALUE0=XMEAN
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='XSD '
IH2=' '
VALUE0=XSD
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'NMML')THEN
C
IHP='NCOM'
IHP2='P '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
NCOMP=2
IF(IERROR.EQ.'NO')NCOMP=INT(VALUE(ILOCP)+0.5)
C
IF(NCOMP.LT.2)NCOMP=2
CALL DPMLNM(Y,TEMP4,NS1,NUMV,TEMP1,TEMP2,N2,
1 TEMP3,XTEMP1,TEMP4,ITEMP1,MAXNXT,
1 CLLIMI,CLWIDT,NCOMP,
1 TEMP5,IHSTCW,MAXOBV,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
ELSEIF(ICASAN.EQ.'BTML')THEN
C
CALL DPMLBT(Y,TEMP4,NS1,NUMV,
1 TEMP3,XTEMP1,
1 AKHAT,ALAMML,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
IH='KML '
IH2=' '
VALUE0=AKHAT
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LAMB'
IH2='DAML'
VALUE0=ALAMML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'LPML')THEN
C
CALL DPMLLP(Y,TEMP4,NS1,NUMV,
1 TEMP3,XTEMP1,TEMP5,DTEMP1,
1 THETMO,ALAMMO,THETVM,ALAMVM,COVMOM,
1 THETFR,ALAMFR,THETVF,ALAMVF,COVFR,
1 THETWD,ALAMWD,
1 THETML,ALAMML,THETVL,ALAMVL,COVML,
1 ICAPSW,ICAPTY,MAXNXT,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
IH='THET'
IH2='AMOM'
VALUE0=THETMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LAMB'
IH2='DAMO'
VALUE0=ALAMMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='MOMV'
VALUE0=THETVM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LAMB'
IH2='MOMV'
VALUE0=ALAMVM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='COVM'
IH2='OM '
VALUE0=COVMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='AFR '
VALUE0=THETFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LAMB'
IH2='DAFR'
VALUE0=ALAMFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='FREV'
VALUE0=THETVF
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LAMB'
IH2='FREV'
VALUE0=ALAMVF
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='COVF'
IH2='REQ '
VALUE0=COVFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='AWD '
VALUE0=THETWD
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LAMB'
IH2='DAWD'
VALUE0=ALAMWD
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='AML '
VALUE0=THETML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LAMB'
IH2='DAML'
VALUE0=ALAMML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='MLV '
VALUE0=THETVL
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LAMB'
IH2='MLV '
VALUE0=ALAMVL
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='COVM'
IH2='L '
VALUE0=COVML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'GSML')THEN
C
CALL DPMLGS(Y,TEMP4,NS1,NUMV,
1 TEMP3,XTEMP1,TEMP5,DTEMP1,
1 THETMO,BETAMO,THETFR,BETAFR,THETML,BETAML,
1 ICAPSW,ICAPTY,MAXNXT,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
IH='THET'
IH2='AMOM'
VALUE0=THETMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='MOM '
VALUE0=BETAMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='AFR '
VALUE0=THETFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='FR '
VALUE0=BETAFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='AML '
VALUE0=THETML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='ML '
VALUE0=BETAML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'GTML')THEN
C
CALL DPMGET(Y,TEMP4,NS1,NUMV,
1 TEMP3,XTEMP1,TEMP5,DTEMP1,
1 AMUMOM,BETAMO,AMUFR,BETAFR,AMUML,BETAML,
1 ICAPSW,ICAPTY,MAXNXT,
1 IGETDF,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
IH='MUMO'
IH2='M '
VALUE0=AMUMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='MOM '
VALUE0=BETAMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='MUFR'
IH2=' '
VALUE0=AMUFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='FR '
VALUE0=BETAFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='MUML'
IH2=' '
VALUE0=AMUML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='ML '
VALUE0=BETAML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'CNML')THEN
C
CALL DPMLCN(Y,TEMP4,NS1,NUMV,
1 TEMP3,XTEMP1,TEMP5,DTEMP1,
1 AMUMOM,AMMO,AMUFR,AMFR,AMUML,AMML,
1 ICAPSW,ICAPTY,MAXNXT,
1 ICONDF,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
IH='MUMO'
IH2='M '
VALUE0=AMUMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='MMOM'
IH2=' '
VALUE0=AMMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='MUFR'
IH2=' '
VALUE0=AMUFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='MFR '
IH2=' '
VALUE0=AMFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='MUML'
IH2=' '
VALUE0=AMUML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='MML '
IH2=' '
VALUE0=AMML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'GNBM')THEN
C
CALL DPMGNB(Y,TEMP4,NS1,NUMV,
1 TEMP3,XTEMP1,TEMP5,DTEMP1,
1 THETMO,BETAMO,AMMOM,
1 THETFR,BETAFR,AMFR,
1 THETF2,BETAF2,AMF2,
1 THETML,BETAML,AMML,
1 ICAPSW,ICAPTY,MAXNXT,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
IH='THET'
IH2='AMOM'
VALUE0=THETMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='MOM '
VALUE0=BETAMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='MMOM'
IH2=' '
VALUE0=AMMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='AFR '
VALUE0=THETFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='FR '
VALUE0=BETAFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='MFR '
IH2=' '
VALUE0=AMFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='AZF '
VALUE0=THETF2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='ZF '
VALUE0=BETAF2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='MZF '
IH2=' '
VALUE0=AMZF
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='AML '
VALUE0=THETML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='ML '
VALUE0=BETAML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='MML '
IH2=' '
VALUE0=AMML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'LKML')THEN
C
CALL DPMLLK(Y,TEMP4,NS1,NUMV,
1 TEMP3,XTEMP1,TEMP5,DTEMP1,
1 AMOM,BETAMO,BMOM,
1 AFR,BETAFR,BFR,
1 AML,BETAML,BML,
1 ICAPSW,ICAPTY,MAXNXT,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
IH='AMOM'
IH2=' '
VALUE0=AMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='MOM '
VALUE0=BETAMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BMOM'
IH2=' '
VALUE0=BMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='AFR '
IH2=' '
VALUE0=AFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='FR '
VALUE0=BETAFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BFR '
IH2=' '
VALUE0=BFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='AML '
IH2=' '
VALUE0=AML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='ML '
VALUE0=BETAML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BML '
IH2=' '
VALUE0=BML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'QBML')THEN
C
IHP='M '
IHP2=' '
IHWUSE='P'
MESSAG='YES'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
AM=VALUE(ILOCP)
C
IHP='PSTA'
IHP2='RT '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
PSTART=-1.0
ELSE
PSTART=VALUE(ILOCP)
ENDIF
C
IHP='PHIS'
IHP2='TART'
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
PHISTR=-1.0
ELSE
PHISTR=VALUE(ILOCP)
ENDIF
C
CALL DPMLQB(Y,TEMP4,NS1,NUMV,
1 TEMP3,XTEMP1,TEMP5,DTEMP1,
1 TEMP6,ITEMP1,
1 PSTART,PHISTR,
1 PML,PHIML,AM,PVAR,PHIVAR,PPHCOV,
1 ICAPSW,ICAPTY,MAXNXT,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
IH='PML '
IH2=' '
VALUE0=PML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PHIM'
IH2='L '
VALUE0=PHIML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PVAR'
IH2=' '
VALUE0=PVAR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PHIV'
IH2='AR '
VALUE0=PHIVAR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PPHI'
IH2='COV '
VALUE0=PPHCOV
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'LSML')THEN
C
CALL DPMLLS(Y,TEMP4,NS1,NUMV,
1 TEMP3,XTEMP1,
1 RHAT,PHAT,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
IH='RML '
IH2=' '
VALUE0=RHAT
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PML '
IH2=' '
VALUE0=PHAT
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'GGML')THEN
C
CALL DPMLGG(Y,TEMP4,NS1,NUMV,
1 TEMP3,XTEMP1,TEMP5,DTEMP1,
1 PMOM,AMOM,PML,AML,PVARML,AVARML,COVML,
1 ICAPSW,ICAPTY,MAXNXT,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
IH='PML '
IH2=' '
VALUE0=PML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='AML '
IH2=' '
VALUE0=AML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PMOM'
IH2=' '
VALUE0=PMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='AMOM'
IH2=' '
VALUE0=AMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PVAR'
IH2='ML '
VALUE0=PVARML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='AVAR'
IH2='ML '
VALUE0=AVARML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='COVM'
IH2='L '
VALUE0=COVML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'AEML')THEN
C
CALL DPMLAE(Y,TEMP4,NS1,NUMV,
1 TEMP3,XTEMP1,TEMP5,DTEMP1,
1 THETMO,PMO,THETFR,PFR,THETF2,PF2,THETML,PML,
1 ICAPSW,ICAPTY,MAXNXT,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
IH='THET'
IH2='AMOM'
VALUE0=THETMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PMOM'
IH2=' '
VALUE0=PMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='AFR '
VALUE0=THETFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PFR '
IH2=' '
VALUE0=PFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='AF2 '
VALUE0=THETF2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PF2 '
IH2=' '
VALUE0=PF2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='AML '
VALUE0=THETML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PML '
IH2=' '
VALUE0=PML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'LGML')THEN
C
IOUNI1=IST1NU
IFILE1=IST1NA
ISTAT1=IST1ST
IFORM1=IST1FO
IACCE1=IST1AC
IPROT1=IST1PR
ICURS1=IST1CS
ISUBN0='MLWE'
IERRF1='NO'
C
IREWI1='ON'
CALL DPOPFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALPHA=0.05
IF(IERROR.EQ.'NO')ALPHA=VALUE(ILOCP)
IF(ALPHA.LE.0.0 .OR. ALPHA.GE.1.0)THEN
ALPHA=0.05
ELSEIF(ALPHA.GT.0.50)THEN
ALPHA=1.0-ALPHA
ENDIF
C
IF(NUMV.EQ.1)THEN
CALL DPMLL1(Y,TEMP4,NS1,
1 XTEMP1,DTEMP1,MAXNXT,
1 SIGMA,SIGMSE,SCALE,SCALSE,UHAT,UHATSE,
1 NUMV,ICENTY,TEND,
1 ICAPSW,ICAPTY,
1 QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1 IOUNI1,IOUNI2,ALPHA,
1 ISUBRO,IBUGA3,IERROR)
COVSE=0.0
IF(IERROR.EQ.'YES')GOTO9000
ELSEIF(NUMV.EQ.2)THEN
CALL DPMLL2(Y,TEMP4,NS1,
1 XTEMP1,DTEMP1,MAXNXT,
1 SIGMA,SIGMSE,SCALE,SCALSE,UHAT,UHATSE,COVSE,
1 NUMV,ICENTY,TEND,
1 ICAPSW,ICAPTY,
1 QP,XQPHAT,XQPLCL,XQPUCL,XQPLC2,XQPUC2,XQPSE,NPERC,
1 IOUNI1,IOUNI2,ALPHA,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ENDIF
C
IENDF1='OFF'
IREWI1='ON'
CALL DPCLFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IENDF1,IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='SIGM'
IH2='AML '
VALUE0=SIGMA
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SIGM'
IH2='ASE '
VALUE0=SIGMSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EML '
VALUE0=SCALE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='ESE '
VALUE0=SCALSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='UHAT'
IH2='ML '
VALUE0=UHAT
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='UHAT'
IH2='SE '
VALUE0=UHATSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='COVS'
IH2='E '
VALUE0=COVSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
CCCCC CALL DPMLLN(Y,NS1,
CCCCC1 XTEMP1,MAXNXT,
CCCCC1 XSD,XSCALE,
CCCCC1 ICAPSW,ICAPTY,
CCCCC1 ISUBRO,IBUGA3,IERROR)
CCCCC IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
CCCCC ISTEPN='61'
CCCCC IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
CCCCC ISUBN0='DPML'
C
CCCCC IH='XSCA'
CCCCC IH2='LE '
CCCCC VALUE0=XSCALE
CCCCC CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
CCCCC1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
CCCCC1 IANS,IWIDTH,IBUGA3,IERROR)
C
CCCCC IH='XSD '
CCCCC IH2=' '
CCCCC VALUE0=XSD
CCCCC CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
CCCCC1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
CCCCC1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'EXML' .OR. ICASAN.EQ.'EXMG')THEN
C
IOUNI1=IST1NU
IFILE1=IST1NA
ISTAT1=IST1ST
IFORM1=IST1FO
IACCE1=IST1AC
IPROT1=IST1PR
ICURS1=IST1CS
ISUBN0='MLWE'
IERRF1='NO'
C
IREWI1='ON'
CALL DPOPFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IOUNI2=IST2NU
IFILE2=IST2NA
ISTAT2=IST2ST
IFORM2=IST2FO
IACCE2=IST2AC
IPROT2=IST2PR
ICURS2=IST2CS
ISUBN0='MLWE'
IERRF2='NO'
C
IREWI2='ON'
CALL DPOPFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALPHA=0.05
IF(IERROR.EQ.'NO')ALPHA=VALUE(ILOCP)
IF(ALPHA.LE.0.0 .OR. ALPHA.GE.1.0)THEN
ALPHA=0.05
ELSEIF(ALPHA.GT.0.50)THEN
ALPHA=1.0-ALPHA
ENDIF
C
IHP='TEND'
IHP2=' '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
TEND=0.0
IF(IERROR.EQ.'NO')TEND=VALUE(ILOCP)
C
CCCCC FULL SAMPLE CASE
C
IF(NUMV.LE.1 .AND. ICASAN.EQ.'EXML')THEN
CALL DPMLE1(Y,TEMP4,NS1,
1 XTEMP1,MAXNXT,
1 U,B1,B2,NUMV,ICENTY,TEND,
1 ICAPSW,ICAPTY,IEXPBC,
1 QP,XQPHAT,XQPLCL,XQPUCL,NPERC,
1 XQPHTZ,XQPLCZ,XQPUCZ,
1 IOUNI1,IOUNI2,ALPHA,
1 ISUBRO,IBUGA3,IERROR)
C
CCCCC TIME CENSORED CASE
C
ELSEIF(NUMV.EQ.2 .AND. ICENTY.EQ.'1'.AND.ICASAN.EQ.'EXML')THEN
CALL DPMLE2(Y,TEMP4,NS1,
1 XTEMP1,MAXNXT,
1 U,B1,B2,NUMV,ICENTY,TEND,
1 ICAPSW,ICAPTY,
1 QP,XQPHAT,XQPLCL,XQPUCL,NPERC,
1 XQPHTZ,XQPLCZ,XQPUCZ,
1 IOUNI1,IOUNI2,ALPHA,
1 ISUBRO,IBUGA3,IERROR)
C
CCCCC NUMBER OF FAILURES CENSORED CASE
C
ELSEIF(NUMV.EQ.2 .AND. ICENTY.EQ.'2'.AND.ICASAN.EQ.'EXML')THEN
CALL DPMLE3(Y,TEMP4,NS1,
1 XTEMP1,MAXNXT,
1 U,B1,B2,NUMV,ICENTY,TEND,
1 ICAPSW,ICAPTY,
1 QP,XQPHAT,XQPLCL,XQPUCL,NPERC,
1 XQPHTZ,XQPLCZ,XQPUCZ,
1 IOUNI1,IOUNI2,ALPHA,
1 ISUBRO,IBUGA3,IERROR)
C
CCCCC GROUPED DATA CASE
C
ELSEIF(NUMV.GE.2 .AND. ICASAN.EQ.'EXMG')THEN
NPERC=0
CALL DPMLE4(Y,TEMP4,TEMP5,NS1,
1 XTEMP1,MAXNXT,
1 U,B1,B2,NUMV,ICENTY,TEND,
1 ICAPSW,ICAPTY,
1 QP,XQPHAT,XQPLCL,XQPUCL,NPERC,
1 XQPHTZ,XQPLCZ,XQPUCZ,
1 IOUNI1,IOUNI2,ALPHA,
1 ISUBRO,IBUGA3,IERROR)
CCCCC ELSE
CCCCC CALL DPMLEX(Y,TEMP4,NS1,
CCCCC1 XTEMP1,MAXNXT,
CCCCC1 U,B1,B2,NUMV,ICENTY,TEND,
CCCCC1 ICAPSW,ICAPTY,
CCCCC1 QP,XQPHAT,XQPLCL,XQPUCL,NPERC,
CCCCC1 IOUNI1,IOUNI2,ALPHA,
CCCCC1 ISUBRO,IBUGA3,IERROR)
ENDIF
C
IENDF1='OFF'
IREWI1='ON'
CALL DPCLFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IENDF1,IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
IENDF2='OFF'
IREWI2='ON'
CALL DPCLFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IENDF2,IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='B1 '
IH2=' '
VALUE0=B1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='B2 '
IH2=' '
VALUE0=B2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='U1 '
IH2=' '
VALUE0=U
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='U2 '
IH2=' '
VALUE0=U
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'DEML')THEN
C
CALL DPMLDE(Y,NS1,
1 XTEMP1,MAXNXT,
1 ALOC,SCALE,ALOCSE,SCALESE,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='SCAL'
IH2='EML '
VALUE0=SCALE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCM'
IH2='L '
VALUE0=ALOC
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCS'
IH2='E '
VALUE0=ALOCSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='ESE '
VALUE0=SCALSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'PLML')THEN
C
IOUNI1=IST1NU
IFILE1=IST1NA
ISTAT1=IST1ST
IFORM1=IST1FO
IACCE1=IST1AC
IPROT1=IST1PR
ICURS1=IST1CS
ISUBN0='MLWE'
IERRF1='NO'
C
IREWI1='ON'
CALL DPOPFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IOUNI2=IST2NU
IFILE2=IST2NA
ISTAT2=IST2ST
IFORM2=IST2FO
IACCE2=IST2AC
IPROT2=IST2PR
ICURS2=IST2CS
ISUBN0='MLWE'
IERRF2='NO'
C
IREWI2='ON'
CALL DPOPFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALPHA=0.05
IF(IERROR.EQ.'NO')ALPHA=VALUE(ILOCP)
IF(ALPHA.LE.0.0 .OR. ALPHA.GE.1.0)THEN
ALPHA=0.05
ELSEIF(ALPHA.GT.0.50)THEN
ALPHA=1.0-ALPHA
ENDIF
C
IHP='TEND'
IHP2=' '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
TEND=0.0
IF(IERROR.EQ.'NO')TEND=VALUE(ILOCP)
C
NGROUP=0
NCENS=0
IF(NUMV.GE.2)NGROUP=NS1
IF(NUMV.GE.3)NCENS=NS1
CALL DPMLPL(Y,NS1,TEMP4,NGROUP,TEMP5,NCENS,NUMV,
1 TEMP1,TEMP2,TEMP3,TEMP6,QP,XQPHAT,XQPLCL,XQPSE,
1 MAXNXT,
1 TEND,
1 ICAPSW,ICAPTY,
1 IOUNI1,IOUNI2,ALPHAP,
1 AHAT,BHAT,AMTBF,
1 ISUBRO,IBUGA3,IERROR)
C
IENDF1='OFF'
IREWI1='ON'
CALL DPCLFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IENDF1,IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
IENDF2='OFF'
IREWI2='ON'
CALL DPCLFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IENDF2,IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='AHAT'
IH2=' '
VALUE0=AHAT
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BHAT'
IH2=' '
VALUE0=BHAT
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='MTBF'
IH2='HAT '
VALUE0=AMTBF
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'ADML')THEN
C
CALL DPMLAD(Y,NS1,
1 XTEMP1,MAXNXT,DTEMP1,DTEMP2,DTEMP3,ITEMP1,
1 AKML,ALOCML,SCALEML,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
C
C UPDATE PARAMETERS EVEN IF ERROR. ML DOES NOT EXIST FOR
C SOME DATA SETS, DPMLAD WILL SET SHAPE PARAMETER TO -999
C IF THIS DETECTED. SETTING PARAMETER WILL ALLOW USER
C EXPLICITLY CHECK (USEFUL FOR AUTOMATING IN BATCH JOBS).
C
CCCCC IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='SCAL'
IH2='EML '
VALUE0=SCALEML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCM'
IH2='L '
VALUE0=ALOCML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='KML '
IH2=' '
VALUE0=AKML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'IGML')THEN
C
CALL DPMLIG(Y,NS1,
1 XTEMP1,MAXNXT,
1 GAMMA,XSCALE,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='GAMM'
IH2='AML '
VALUE0=GAMMA
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='MUML'
IH2=' '
VALUE0=XSCALE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'GUML')THEN
C
CCCCC CALL DPMLGU(Y,NS1,
CCCCC1 XTEMP1,MAXNXT,
CCCCC1 ALOC,SCALE,ALOC2,SCALE2,
CCCCC1 MINMAX,
CCCCC1 ICAPSW,ICAPTY,
CCCCC1 ISUBRO,IBUGA3,IERROR)
C
IOUNI1=IST1NU
IFILE1=IST1NA
ISTAT1=IST1ST
IFORM1=IST1FO
IACCE1=IST1AC
IPROT1=IST1PR
ICURS1=IST1CS
ISUBN0='MLGA'
IERRF1='NO'
C
IREWI1='ON'
CALL DPOPFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IOUNI2=IST2NU
IFILE2=IST2NA
ISTAT2=IST2ST
IFORM2=IST2FO
IACCE2=IST2AC
IPROT2=IST2PR
ICURS2=IST2CS
ISUBN0='MLWE'
IERRF2='NO'
C
IREWI2='ON'
CALL DPOPFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALPHA=0.05
IF(IERROR.EQ.'NO')ALPHA=VALUE(ILOCP)
IF(ALPHA.LE.0.0 .OR. ALPHA.GE.1.0)THEN
ALPHA=0.05
ELSEIF(ALPHA.GT.0.50)THEN
ALPHA=1.0-ALPHA
ENDIF
C
IF(NUMV.EQ.1)THEN
CALL DPMGU1(Y,TEMP4,NS1,
1 XTEMP1,DTEMP1,MAXNXT,
1 SCALML,SCA2ML,SCALSE,SCALMO,SCMOSE,
1 UHATML,UHATSE,UHATMO,UMOMSE,COVSE,
1 NUMV,ICENTY,TEND,
1 ICAPSW,ICAPTY,IGUMBC,MINMAX,
1 QP,XQPHAT,XQPSE,XQPLCL,XQPUCL,NPERC,
1 XQPHTZ,XQPLCZ,XQPUCZ,
1 IOUNI1,IOUNI2,ALPHA,
1 ISUBRO,IBUGA3,IERROR)
ELSEIF(NUMV.EQ.2)THEN
CCCCC CALL DPMGU2(Y,TEMP4,N,
CCCCC1 XTEMP1,DTEMP1,MAXNXT,
CCCCC1 SCALML,SCA2ML,SCALSE,SCALMO,UHAT,UHATSE,UHATMO,
CCCCC1 NUMV,ICENTY,TEND,
CCCCC1 ICAPSW,ICAPTY,IGUMBC,MINMAX,
CCCCC1 QP,XQPHAT,XQPLCL,XQPUCL,NPERC,
CCCCC1 XQPHTZ,XQPLCZ,XQPUCZ,
CCCCC1 IOUNI1,IOUNI2,ALPHAP,
CCCCC1 ISUBRO,IBUGA3,IERROR)
ENDIF
IF(IERROR.EQ.'YES')GOTO9000
IENDF1='OFF'
IREWI1='ON'
CALL DPCLFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IENDF1,IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IENDF2='OFF'
IREWI2='ON'
CALL DPCLFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IENDF2,IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='SCAL'
IH2='EML '
VALUE0=SCALML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='ESE '
VALUE0=SCALSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='MLBC'
VALUE0=SCA2ML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EMOM'
VALUE0=SCALMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EMOM'
VALUE0=SCALMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAM'
IH2='OMSE'
VALUE0=SCMOSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='COVS'
IH2='E '
VALUE0=COVSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='UHAT'
IH2='ML '
VALUE0=UHATML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='UHAT'
IH2='SE '
VALUE0=UHATSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='UHAT'
IH2='MOM '
VALUE0=UHATMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='UMOM'
IH2='SE '
VALUE0=UMOMSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='COVS'
IH2='E '
VALUE0=COVSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'LOML')THEN
C
CALL DPMLLO(Y,NS1,
1 XTEMP1,MAXNXT,
1 ALOC,SCALE,
1 ICAPSW,ICAPTY,DTEMP1,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='LOCM'
IH2='L '
VALUE0=ALOC
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EML '
VALUE0=SCALE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'CAML')THEN
C
CALL DPMLCA(Y,NS1,
1 XTEMP1,TEMP1,MAXNXT,
1 ALOC,SCALE,ALOCOS,ASCLOS,ALOWOS,SCAWOS,
1 ICAPSW,ICAPTY,DTEMP1,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='LOCM'
IH2='L '
VALUE0=ALOC
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EML '
VALUE0=SCALE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCO'
IH2='S '
VALUE0=ALOCOS
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EOS '
VALUE0=ASCLOS
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCW'
IH2='OS '
VALUE0=ALOWOS
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EWOS'
VALUE0=SCAWOS
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'BBML' .OR. ICASAN.EQ.'PZML')THEN
C
IWRITE='OFF'
CALL MEAN(Y,NS1,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,NS1,IWRITE,XSD,IBUGA3,IERROR)
CALL MINIM(Y,NS1,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,NS1,IWRITE,XMAX,IBUGA3,IERROR)
C
DO4410J=1,NS1
ITEMP1(J)=DBLE(Y(J))
DTEMP1(J)=0.0D0
DTEMP2(J)=0.0D0
4410 CONTINUE
C
IF(NTRIAL.GT.0)THEN
DO4420J=1,NS1
ITEMP2(J)=NTRIAL
4420 CONTINUE
ENDIF
C
DO4430I=1,N
IF(ITEMP1(I).GT.ITEMP2(I))THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(ICASAN.EQ.'BBML')THEN
WRITE(ICOUT,4421)
4421 FORMAT(
1'***** ERROR: FOR BETA-BINOMIAL MAXIMUM LIKEHOOD ESTIMATION,')
ELSE
WRITE(ICOUT,4422)
4422 FORMAT(
1'***** ERROR: FOR POLYA MAXIMUM LIKEHOOD ESTIMATION,')
ENDIF
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4423)I,ITEMP1(I)
4423 FORMAT(
1' FOR ROW ',I8,', THE NUMBER OF SUCCESSES (',I8,') IS')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4425)ITEMP2(I)
4425 FORMAT(
1' GREATER THAN THE NUMBER OF TRIALS (',I8,')')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ELSEIF(ITEMP1(I).LT.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(ICASAN.EQ.'BBML')THEN
WRITE(ICOUT,4431)
4431 FORMAT(
1'***** ERROR: FOR BETA-BINOMIAL MAXIMUM LIKEHOOD ESTIMATION,')
ELSE
WRITE(ICOUT,4432)
4432 FORMAT(
1'***** ERROR: FOR POLYA MAXIMUM LIKEHOOD ESTIMATION,')
ENDIF
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4433)I,ITEMP1(I)
4433 FORMAT(
1' FOR ROW ',I8,', THE NUMBER OF SUCCESSES IS NEGATIVE.')
CALL DPWRST('XXX','BUG ')
ELSEIF(ITEMP2(I).LE.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(ICASAN.EQ.'BBML')THEN
WRITE(ICOUT,4436)
4436 FORMAT(
1'***** ERROR: FOR BETA-BINOMIAL MAXIMUM LIKEHOOD ESTIMATION,')
ELSE
WRITE(ICOUT,4437)
4437 FORMAT(
1'***** ERROR: FOR POLYA MAXIMUM LIKEHOOD ESTIMATION,')
ENDIF
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4438)I,ITEMP1(I)
4438 FORMAT(
1' FOR ROW ',I8,', THE NUMBER OF TRIALS IS NON-POSITIVE.')
CALL DPWRST('XXX','BUG ')
ENDIF
4430 CONTINUE
C
MRL=MAXOBV
ITER=1000
CCRIT=1.0D-4
DMEW=0.0D0
DTHETA=0.0D0
SEM=0.0D0
SETH=0.0D0
RNL=0.0D0
IFAULT=0
C
CALL BBNML(NS1,ITEMP1,ITEMP2,DTEMP1,DTEMP2,ITEMP3,MRL,
1 ITER,CCRIT,DMEW,DTHETA,SEM,SETH,RNL,IFAULT)
IF(ICASAN.EQ.'PZML')THEN
ALPHA=DMEW/DTHETA
BETA=(1.0D0 - DMEW)/DTHETA
ELSE
BETA=DMEW/DTHETA
ALPHA=(1.0D0 - DMEW)/DTHETA
ENDIF
C
IF(IFAULT.EQ.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(ICASAN.EQ.'BBML')THEN
WRITE(ICOUT,1111)
1111 FORMAT(
1'***** ERROR: BETA-BINOMIAL MAXIMUM LIKEHOOD ESTIMATION--')
ELSE
WRITE(ICOUT,1112)
1112 FORMAT(
1'***** ERROR: POLYA MAXIMUM LIKEHOOD ESTIMATION--')
ENDIF
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1113)
1113 FORMAT(
1' THE NUMBER OF OBSERVATIONS IS <= 1.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ELSEIF(IFAULT.EQ.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1111)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1123)
1123 FORMAT(
1' THE NUMBER OF SUCCESSES IS ZERO FOR ALL OBSERVATIONS.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ELSEIF(IFAULT.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1111)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1133)
1133 FORMAT(
1' THE NUMBER OF SUCCESSES IS EQUAL TO THE NUMBER OF ')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1135)
1135 FORMAT(
1' TRIALS FOR ALL OBSERVATIONS.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ELSEIF(IFAULT.EQ.4)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1111)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1143)MAXOBV
1143 FORMAT(
1' THE NUMBER OF SUCCESSES IS GREATER THAN ',I8)
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ELSEIF(IFAULT.EQ.5)THEN
IERROR='YES'
GOTO9000
ELSEIF(IFAULT.EQ.6)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1111)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1163)MAXOBV
1163 FORMAT(
1' NUMERICAL DIFFICULTIES ENCOUNTERED.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ELSEIF(IFAULT.EQ.7)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1111)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1173)ITER
1173 FORMAT(
1' MAXIMUM NUMBER OF ITERATIONS, ',I8,', EXCEEDED.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ELSEIF(IFAULT.EQ.8)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1111)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,1183)
1183 FORMAT(
1' NUMERICAL DIFFICULTIES ENCOUTERED.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5601 FORMAT('')
5611 FORMAT('')
5613 FORMAT('')
5615 FORMAT(' ')
5617 FORMAT(' Beta-Binomial Maximum Likelihood ',
1 'Estimation')
5618 FORMAT(' Polya Maximum Likelihood ',
1 'Estimation')
5619 FORMAT(' ')
WRITE(ICOUT,5601)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5611)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5613)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5615)
CALL DPWRST('XXX','WRIT')
IF(ICASAN.EQ.'BBML')THEN
WRITE(ICOUT,5617)
ELSE
WRITE(ICOUT,5618)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5619)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5641 FORMAT(' ')
5643 FORMAT(' | ')
5647 FORMAT(' | ')
5649 FORMAT(' ')
5651 FORMAT(' ',G15.7)
5653 FORMAT(' ',I8)
5655 FORMAT(' ')
5659 FORMAT(' | ')
5660 FORMAT(' Summary Statistics:')
5661 FORMAT(' Number of Observations:')
5662 FORMAT(' Sample Mean:')
5663 FORMAT(' Sample Standard Deviation:')
5668 FORMAT(' Sample Minimum:')
5669 FORMAT(' Sample Maximum:')
5670 FORMAT(' Maximum Likelihood Estimates:')
5664 FORMAT(' Estimate of MU:')
5665 FORMAT(' Estimate of THETA:')
5666 FORMAT(' Estimate of ALPHA:')
5667 FORMAT(' Estimate of BETA:')
C
WRITE(ICOUT,5641)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5660)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5649)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5655)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5659)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5641)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5661)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5649)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5653)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5659)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5641)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5662)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5649)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5651)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5659)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5641)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5663)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5649)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5651)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5659)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5641)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5668)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5649)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5651)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5659)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5641)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5669)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5649)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5651)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5659)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5641)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5655)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5649)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5655)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5659)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5641)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5670)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5649)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5655)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5659)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5641)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5664)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5649)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5651)REAL(DMEW)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5659)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5641)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5665)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5649)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5651)REAL(DTHETA)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5659)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5641)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5666)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5649)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5651)ALPHA
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5659)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5641)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5643)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5667)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5649)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5651)BETA
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5647)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5659)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5691 FORMAT(' ')
5693 FORMAT(' ')
5699 FORMAT('')
WRITE(ICOUT,5691)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5693)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5699)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8601 FORMAT(A1,'end{verbatim}')
8603 FORMAT(A1,'begin{table}')
8607 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8609 FORMAT(A1,'begin{center}')
8611 FORMAT(5X,'{',A1,'bf Beta-Binomail Maximum Likelihood ',
1 'Estimate}')
8612 FORMAT(5X,'{',A1,'bf Polya Maximum Likelihood ',
1 'Estimate}')
8613 FORMAT(A1,'end{center}')
8615 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8601)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8603)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8609)IBASLC
CALL DPWRST('XXX','WRIT')
IF(ICASAN.EQ.'BBML')THEN
WRITE(ICOUT,8611)IBASLC
ELSE
WRITE(ICOUT,8612)IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8607)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8607)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8613)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8620 FORMAT(5X,A1,'begin{tabular} {lr}')
8636 FORMAT(5X,'Summary Statistics: & ',2X,A1,A1)
8621 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8622 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8623 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8631 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8632 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8633 FORMAT(5X,' & ',2X,A1,A1)
8634 FORMAT(5X,'Maximum Likelihood Estimates: & ',2X,A1,A1)
8624 FORMAT(5X,'Estimate of $',A1,'mu$: & ',
1 G15.7,2X,A1,A1)
8625 FORMAT(5X,'Estimate of $',A1,'theta$: & ',
1 G15.7,2X,A1,A1)
8626 FORMAT(5X,'Estimate of $',A1,'alpha$: & ',
1 G15.7,2X,A1,A1)
8627 FORMAT(5X,'Estimate of $',A1,'beta$: & ',
1 G15.7,2X,A1,A1)
8640 FORMAT(5X,A1,'hline')
8649 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8609)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8620)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8636)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8621)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8622)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8623)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8631)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8632)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8633)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8634)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8624)IBASLC,REAL(DMEW),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8625)IBASLC,REAL(DTHETA),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8626)IBASLC,ALPHA,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8627)IBASLC,BETA,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8649)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8691 FORMAT(A1,'end{center}')
8693 FORMAT(A1,'end{table}')
8699 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8691)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8693)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8699)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4711)
4711 FORMAT(12X,'BETA-BINOMIAL PARAMETER ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4721)
4721 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4722)NS1
4722 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4723)XMEAN
4723 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4724)XSD
4724 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4725)XMIN
4725 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4726)XMAX
4726 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4730)
4730 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4731)REAL(DMEW)
4731 FORMAT('ESTIMATE OF MU = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4733)REAL(DTHETA)
4733 FORMAT('ESTIMATE OF THETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4737)ALPHA
4737 FORMAT('ESTIMATE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4739)BETA
4739 FORMAT('ESTIMATE OF BETA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4749)
4749 FORMAT('ALPHAML, BETAML, MUML, AND THETAML WILL BE SAVED ',
1 'AS INTERNAL PARAMETERS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
C
ISUBN0='DPML'
C
IH='ALPH'
IH2='AML '
VALUE0=ALPHA
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='ML '
VALUE0=BETA
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='MUML'
IH2=' '
VALUE0=REAL(DMEW)
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='AML '
VALUE0=REAL(THETA)
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'PAML')THEN
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALPHA=0.05
IF(IERROR.EQ.'NO')ALPHA=VALUE(ILOCP)
IF(ALPHA.LE.0.0 .OR. ALPHA.GE.1.0)THEN
ALPHA=0.05
ELSEIF(ALPHA.GT.0.50)THEN
ALPHA=1.0-ALPHA
ENDIF
C
CALL DPMLPA(Y,NS1,
1 XTEMP1,MAXNXT,
1 GAMMML,AML,GAMMSE,AMLSE,
1 QP,XQPHAT,XQPLCL,XQPUCL,NPERC,ALPHA,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='GAMM'
IH2='AML '
VALUE0=GAMMML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='GAMM'
IH2='ASE '
VALUE0=GAMMSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='AML '
IH2=' '
VALUE0=AML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='AMLS'
IH2='E '
VALUE0=AMLSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'UNIF')THEN
CALL DPMLUN(Y,NS1,
1 XTEMP1,MAXNXT,
1 ALOWLI,AUPPLI,ALOCML,ASCAML,AHAT,HHAT,
1 ALOWL2,AUPPL2,ALOCMO,ASCAMO,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='LOWL'
IH2='IMIT'
VALUE0=ALOWLI
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='UPPL'
IH2='IMIT'
VALUE0=AUPPLI
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOWL'
IH2='IMI2'
VALUE0=ALOWL2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='UPPL'
IH2='IMI2'
VALUE0=AUPPL2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='AHAT'
IH2=' '
VALUE0=AHAT
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='HHAT'
IH2=' '
VALUE0=HHAT
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCM'
IH2='L '
VALUE0=ALOCML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EML '
VALUE0=ASCAML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCM'
IH2='OM '
VALUE0=ALOCMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EMOM'
VALUE0=ASCAMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'BEML')THEN
C
IHP='BETA'
IHP2='LL '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
AUSER=CPUMIN
IF(IERROR.EQ.'NO')AUSER=VALUE(ILOCP)
C
IHP='BETA'
IHP2='UL '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
BUSER=CPUMIN
IF(IERROR.EQ.'NO')BUSER=VALUE(ILOCP)
C
IOUNI1=IST1NU
IFILE1=IST1NA
ISTAT1=IST1ST
IFORM1=IST1FO
IACCE1=IST1AC
IPROT1=IST1PR
ICURS1=IST1CS
ISUBN0='MLBE'
IERRF1='NO'
C
IREWI1='ON'
CALL DPOPFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IOUNI2=IST2NU
IFILE2=IST2NA
ISTAT2=IST2ST
IFORM2=IST2FO
IACCE2=IST2AC
IPROT2=IST2PR
ICURS2=IST2CS
ISUBN0='MLWE'
IERRF2='NO'
C
IREWI2='ON'
CALL DPOPFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALPHAP=0.05
IF(IERROR.EQ.'NO')ALPHAP=VALUE(ILOCP)
IF(ALPHAP.LE.0.0 .OR. ALPHAP.GE.1.0)THEN
ALPHAP=0.05
ELSEIF(ALPHAP.GT.0.50)THEN
ALPHAP=1.0-ALPHAP
ENDIF
C
CALL DPMLBE(Y,NS1,
1 XTEMP1,MAXNXT,AUSER,BUSER,
1 A,B,ALPHA,BETA,ALPHAM,BETAM,
1 ALPHSE,BETASE,COVSE,
1 QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1 IOUNI1,IOUNI2,ALPHAP,
1 ICAPSW,ICAPTY,DTEMP1,
1 ISUBRO,IBUGA3,IERROR)
IENDF1='OFF'
IREWI1='ON'
CALL DPCLFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IENDF1,IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IENDF2='OFF'
IREWI2='ON'
CALL DPCLFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IENDF2,IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='LOWL'
IH2='IMIT'
VALUE0=A
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='UPPL'
IH2='IMIT'
VALUE0=B
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='AML '
VALUE0=ALPHA
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='ASE '
VALUE0=ALPHSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='ML '
VALUE0=BETA
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='SE '
VALUE0=BETASE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='COVS'
IH2='E '
VALUE0=COVSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='AMOM'
VALUE0=ALPHAM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='MOM '
VALUE0=BETAM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'PWML')THEN
C
CALL DPMLPW(Y,NS1,
1 XTEMP1,MAXNXT,
1 C,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='CML '
IH2=' '
VALUE0=C
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'GAML')THEN
C
CCCCC CALL DPMLGA(Y,NS1,
CCCCC1 XTEMP1,MAXNXT,
CCCCC1 GAMMA,ALPHA,GAMMA2,ALPHA2,
CCCCC1 ICAPSW,ICAPTY,
CCCCC1 ISUBRO,IBUGA3,IERROR)
IOUNI1=IST1NU
IFILE1=IST1NA
ISTAT1=IST1ST
IFORM1=IST1FO
IACCE1=IST1AC
IPROT1=IST1PR
ICURS1=IST1CS
ISUBN0='MLGA'
IERRF1='NO'
C
IREWI1='ON'
CALL DPOPFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IOUNI2=IST2NU
IFILE2=IST2NA
ISTAT2=IST2ST
IFORM2=IST2FO
IACCE2=IST2AC
IPROT2=IST2PR
ICURS2=IST2CS
ISUBN0='MLWE'
IERRF2='NO'
C
IREWI2='ON'
CALL DPOPFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALPHA=0.05
IF(IERROR.EQ.'NO')ALPHA=VALUE(ILOCP)
IF(ALPHA.LE.0.0 .OR. ALPHA.GE.1.0)THEN
ALPHA=0.05
ELSEIF(ALPHA.GT.0.50)THEN
ALPHA=1.0-ALPHA
ENDIF
C
IF(NUMV.EQ.1)THEN
CALL DPMLG1(Y,TEMP4,NS1,
1 XTEMP1,DTEMP1,MAXNXT,
1 SCALMO,GAMMMO,SCALML,SCALSE,GAMMML,GAMMSE,COVSE,
1 NUMV,ICENTY,TEND,
1 ICAPSW,ICAPTY,
1 QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1 IOUNI1,IOUNI2,ALPHA,
1 ISUBRO,IBUGA3,IERROR)
ELSEIF(NUMV.EQ.2)THEN
CALL DPMLG2(Y,TEMP4,NS1,
1 XTEMP1,DTEMP1,MAXNXT,
1 SCALMO,GAMMMO,SCALML,SCALSE,GAMMML,GAMMSE,COVSE,
1 NUMV,ICENTY,TEND,
1 ICAPSW,ICAPTY,
1 QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1 IOUNI1,IOUNI2,ALPHA,
1 ISUBRO,IBUGA3,IERROR)
ENDIF
IF(IERROR.EQ.'YES')GOTO9000
IENDF1='OFF'
IREWI1='ON'
CALL DPCLFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IENDF1,IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IENDF2='OFF'
IREWI2='ON'
CALL DPCLFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,
1 ICURS2,
1 IENDF2,IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='GAMM'
IH2='AML '
VALUE0=GAMMML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='GAMM'
IH2='ASE '
VALUE0=GAMMSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EML '
VALUE0=SCALML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='ESE '
VALUE0=SCALSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='COVS'
IH2='E '
VALUE0=COVSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IF(NUMV.EQ.1)THEN
IH='GAMM'
IH2='AMOM'
VALUE0=GAMMMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EMOM'
VALUE0=SCALMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
ENDIF
C
ELSEIF(ICASAN.EQ.'TSML')THEN
C
IHP='A '
IHP2=' '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
A=0.0
IF(IERROR.EQ.'NO')A=VALUE(ILOCP)
C
IHP='B '
IHP2=' '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
B=1.0
IF(IERROR.EQ.'NO')B=VALUE(ILOCP)
C
IF(B.LT.A)THEN
ATEMP=B
B=A
A=ATEMP
ENDIF
C
CALL DPMLTS(Y,NS1,A,B,
1 XTEMP1,TEMP1,TEMP2,TEMP3,MAXNXT,
1 THETA,AN,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='THET'
IH2='AML '
VALUE0=THETA
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='NML '
IH2=' '
VALUE0=AN
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'BIML')THEN
C
IH='N '
IH2=' '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IH,IH2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
NTRIAL=1
ELSE
NTRIAL=VALUE(ILOCP)+0.5
IF(NTRIAL.LT.0)NTRIAL=1
ENDIF
C
CALL DPMLBI(Y,NS1,NTRIAL,
1 XTEMP1,MAXNXT,
1 TEMP1,P,PLCL,PUCL,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='PML '
IH2=' '
VALUE0=P
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PLCL'
IH2=' '
VALUE0=PLCL
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PUCL'
IH2=' '
VALUE0=PUCL
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'GPML')THEN
C
IOUNI1=IST1NU
IFILE1=IST1NA
ISTAT1=IST1ST
IFORM1=IST1FO
IACCE1=IST1AC
IPROT1=IST1PR
ICURS1=IST1CS
ISUBN0='FIT3'
IERRF1='NO'
C
IREWI1='ON'
CALL DPOPFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IOUNI2=IST2NU
IFILE2=IST2NA
ISTAT2=IST2ST
IFORM2=IST2FO
IACCE2=IST2AC
IPROT2=IST2PR
ICURS2=IST2CS
ISUBN0='MLWE'
IERRF2='NO'
C
IREWI2='ON'
CALL DPOPFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,ICURS2,
1 IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALPHA=0.05
IF(IERROR.EQ.'NO')ALPHA=VALUE(ILOCP)
IF(ALPHA.LE.0.0 .OR. ALPHA.GE.1.0)THEN
ALPHA=0.05
ELSEIF(ALPHA.GT.0.50)THEN
ALPHA=1.0-ALPHA
ENDIF
C
IHP='THRE'
IHP2='SHOL'
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
THRESH=0.0
ELSE
THRESH=VALUE(ILOCP)
ENDIF
C
IF(IGEPSV.EQ.'USER')THEN
IHP='GAMM'
IHP2='ASV '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
GAMMSV=0.0
ELSE
GAMMSV=VALUE(ILOCP)
ENDIF
C
IHP='SCAL'
IHP2='ESV '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
SCALSV=1.0
ELSE
SCALSV=VALUE(ILOCP)
ENDIF
IF(SCALSV.LE.0.0)SCALSV=1.0
ELSE
GAMMSV=0.0
SCALSV=1.0
ENDIF
C
CALL DPMLGP(Y,NS1,
1 XTEMP1,TEMP2,TEMP3,TEMP4,TEMP5,TEMP6,
1 MAXNXT,THRESH,
1 QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1 GAMMA1,SCALE1,ALOC1,GAMMA2,SCALE2,ALOC2,
1 ASHALM,ASCALM,ALOCLM,
1 GAMMA3,SCALE3,ALOC3,
1 ICAPSW,ICAPTY,DTEMP1,DTEMP2,
1 IGEPDF,IOUNI1,IOUNI2,ISEED,ALPHA,
1 IGEPSV,GAMMSV,SCALSV,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='GAMM'
IH2='AML '
VALUE0=GAMMA2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EML '
VALUE0=SCALE2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCM'
IH2='L '
VALUE0=ALOC2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='GAMM'
IH2='AMOM'
VALUE0=GAMMA1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EMOM'
VALUE0=SCALE1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCM'
IH2='OM '
VALUE0=ALOC1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='GAMM'
IH2='ALMO'
VALUE0=ASHALM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='ELMO'
VALUE0=ASCALM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCL'
IH2='MOM '
VALUE0=ALOCLM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='GAMM'
IH2='AEPM'
VALUE0=GAMMA3
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EEPM'
VALUE0=SCALE3
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCE'
IH2='PM '
VALUE0=ALOC3
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IENDF1='OFF'
IREWI1='ON'
CALL DPCLFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IENDF1,IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IENDF2='OFF'
IREWI2='ON'
CALL DPCLFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,ICURS2,
1 IENDF2,IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
ELSEIF(ICASAN.EQ.'BGML')THEN
C
IOUNI1=IST1NU
IFILE1=IST1NA
ISTAT1=IST1ST
IFORM1=IST1FO
IACCE1=IST1AC
IPROT1=IST1PR
ICURS1=IST1CS
ISUBN0='FIT3'
IERRF1='NO'
C
IREWI1='ON'
CALL DPOPFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IOUNI2=IST2NU
IFILE2=IST2NA
ISTAT2=IST2ST
IFORM2=IST2FO
IACCE2=IST2AC
IPROT2=IST2PR
ICURS2=IST2CS
ISUBN0='MLWE'
IERRF2='NO'
C
IREWI2='ON'
CALL DPOPFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,ICURS2,
1 IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALPHA=0.05
IF(IERROR.EQ.'NO')ALPHA=VALUE(ILOCP)
IF(ALPHA.LE.0.0 .OR. ALPHA.GE.1.0)THEN
ALPHA=0.05
ELSEIF(ALPHA.GT.0.50)THEN
ALPHA=1.0-ALPHA
ENDIF
C
CALL DPMLBG(Y,TEMP4,NS1,NUMV,
1 XTEMP1,TEMP2,TEMP3,TEMP5,TEMP6,
1 MAXNXT,
1 THETML,PIML,ALPHML,BETAML,
1 THETFR,PIFR,ALPHFR,BETAFR,
1 ICAPSW,ICAPTY,DTEMP1,
1 IBGEDF,IOUNI1,IOUNI2,ISEED,ALPHA,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='THET'
IH2='AML '
VALUE0=THETML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PIML'
IH2=' '
VALUE0=PIML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='AML '
VALUE0=ALPHML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='ML '
VALUE0=BETAML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='AFR '
VALUE0=THETFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PIFR'
IH2=' '
VALUE0=PIFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='AFR '
VALUE0=ALPHFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='FR '
VALUE0=BETAFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IENDF1='OFF'
IREWI1='ON'
CALL DPCLFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IENDF1,IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IENDF2='OFF'
IREWI2='ON'
CALL DPCLFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,ICURS2,
1 IENDF2,IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
ELSEIF(ICASAN.EQ.'GEML')THEN
C
IOUNI1=IST1NU
IFILE1=IST1NA
ISTAT1=IST1ST
IFORM1=IST1FO
IACCE1=IST1AC
IPROT1=IST1PR
ICURS1=IST1CS
ISUBN0='FIT3'
IERRF1='NO'
C
IREWI1='ON'
CALL DPOPFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IOUNI2=IST2NU
IFILE2=IST2NA
ISTAT2=IST2ST
IFORM2=IST2FO
IACCE2=IST2AC
IPROT2=IST2PR
ICURS2=IST2CS
ISUBN0='MLWE'
IERRF2='NO'
C
IREWI2='ON'
CALL DPOPFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,ICURS2,
1 IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
IHP='ALPH'
IHP2='A '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
ALPHA=0.05
IF(IERROR.EQ.'NO')ALPHA=VALUE(ILOCP)
IF(ALPHA.LE.0.0 .OR. ALPHA.GE.1.0)THEN
ALPHA=0.05
ELSEIF(ALPHA.GT.0.50)THEN
ALPHA=1.0-ALPHA
ENDIF
C
CCCCC GEV MAXIMUM LIKELIHOOD NOT WORKING AS EXPECTED. SET
CCCCC MLGEV TO FALSE TO SUPPRESS ML ESTIMATION.
C
MLGEV=.FALSE.
CALL DPMLGV(Y,NS1,
1 XTEMP1,TEMP2,TEMP3,TEMP4,TEMP5,TEMP6,MAXNXT,
1 QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1 GAMMA1,SCALE1,ALOC1,GAMMA2,SCALE2,ALOC2,
1 ASHALM,ASCALM,ALOCLM,
1 ICAPSW,ICAPTY,DTEMP1,DTEMP2,
1 IMINMAX,IOUNI1,IOUNI2,ISEED,ALPHA,
1 MLGEV,ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IF(MLGEV)THEN
IH='GAMM'
IH2='AML '
VALUE0=GAMMA1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EML '
VALUE0=SCALE1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCM'
IH2='L '
VALUE0=ALOC1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
ENDIF
C
IH='GAMM'
IH2='ALMO'
VALUE0=ASHALM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='ELMO'
VALUE0=ASCALM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCL'
IH2='MOM '
VALUE0=ALOCLM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='GAMM'
IH2='AEPM'
VALUE0=GAMMA2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EEPM'
VALUE0=SCALE2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCE'
IH2='PM '
VALUE0=ALOC2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IENDF1='OFF'
IREWI1='ON'
CALL DPCLFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IENDF1,IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IENDF2='OFF'
IREWI2='ON'
CALL DPCLFI(IOUNI2,IFILE2,ISTAT2,IFORM2,IACCE2,IPROT2,ICURS2,
1 IENDF2,IREWI2,ISUBN0,IERRF2,IBUGA3,ISUBRO,IERROR)
IF(IERRF2.EQ.'YES')GOTO9000
C
ELSEIF(ICASAN.EQ.'FLML')THEN
C
CALL DPMLFL(Y,NS1,
1 XTEMP1,MAXNXT,
1 GAMMA1,SCALE1,GAMMA2,SCALE2,
1 ICAPSW,ICAPTY,DTEMP1,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='GAMM'
IH2='AML '
VALUE0=GAMMA2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EML '
VALUE0=SCALE2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='GAMM'
IH2='AMOM'
VALUE0=GAMMA1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EMOM'
VALUE0=SCALE1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'GXML')THEN
C
CALL DPMLGX(Y,NS1,
1 XTEMP1,MAXNXT,
1 GAMMA1,SCALE1,
1 ICAPSW,ICAPTY,DTEMP1,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='GAMM'
IH2='AML '
VALUE0=GAMMA1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EML '
VALUE0=SCALE1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'FNML')THEN
C
CALL DPMLFN(Y,NS1,
1 XTEMP1,MAXNXT,
1 ALOC,SCALE,
1 ICAPSW,ICAPTY,DTEMP1,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='MUML'
IH2=' '
VALUE0=ALOC
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SIGM'
IH2='AML '
VALUE0=SCALE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
ELSEIF(ICASAN.EQ.'POML')THEN
C
CALL DPMLPO(Y,NS1,
1 XTEMP1,MAXNXT,
1 ALAMB,ALMBSE,XMIN,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='LAMB'
IH2='DAML'
VALUE0=ALAMB
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LAMB'
IH2='DASE'
VALUE0=ALMBSE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'RAYL')THEN
C
IHP='RAYL'
IHP2='OC '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
RAYMIN=CPUMIN
IF(IERROR.EQ.'NO')RAYMIN=VALUE(ILOCP)
C
CALL DPMLRA(Y,NS1,RAYMIN,
1 XTEMP1,MAXNXT,
1 ALOCML,SCALML,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='LOCM'
IH2='L '
VALUE0=ALOCML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EML '
VALUE0=SCALML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'MAXW')THEN
C
IHP='MAXW'
IHP2='LOC '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
AMXMIN=CPUMIN
IF(IERROR.EQ.'NO')AMXMIN=VALUE(ILOCP)
C
CALL DPMLMX(Y,NS1,AMXMIN,
1 XTEMP1,MAXNXT,
1 ALOCML,SCALEML,ALOCM2,SCALEM2,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='LOCM'
IH2='L '
VALUE0=ALOCML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EML '
VALUE0=SCALEML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCM'
IH2='2 '
VALUE0=ALOCM2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EM2 '
VALUE0=SCALEM2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'GPDE')THEN
C
IHP='THRE'
IHP2='SHOL'
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
THRESH=0.0
ELSE
THRESH=VALUE(ILOCP)
ENDIF
CALL DPDEGP(Y,NS1,
1 XTEMP1,MAXNXT,
1 GAMMA,A,ASD,THRESH,
1 GAMMA2,ALOC,SCALE,
1 IGEPDF,ICAPSW,ICAPTY,
1 PPOTTO,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='GAMM'
IH2='A '
VALUE0=GAMMA
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SDGA'
IH2='MMA '
VALUE0=ASD
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='A '
IH2=' '
VALUE0=A
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
IF(GAMMA.LE.0.0)THEN
C
IH='LOC '
IH2=' '
VALUE0=ALOC
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='E '
VALUE0=SCALE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ENDIF
IF(GAMMA.LT.0.0)THEN
C
IH='GAMM'
IH2='A2 '
VALUE0=GAMMA2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ENDIF
C
ELSEIF(ICASAN.EQ.'GPCM')THEN
C
IHP='THRE'
IHP2='SHOL'
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
IF(IERROR.EQ.'YES')THEN
THRESH=0.0
ELSE
THRESH=VALUE(ILOCP)
ENDIF
CALL DPCMGP(Y,NS1,
1 XTEMP1,MAXNXT,
1 GAMMA,A,ASD,THRESH,
1 TEMP1,TEMP2,TEMP3,ITEMP1,
1 IGEPDF,ICAPSW,ICAPTY,
1 PPOTTO,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='GAMM'
IH2='A '
VALUE0=GAMMA
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='A '
IH2=' '
VALUE0=A
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'DLML')THEN
C
CALL DPMLDL(Y,NS1,
1 XTEMP1,MAXNXT,
1 THETA,ASYMVA,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='THET'
IH2='AML '
VALUE0=THETA
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='THET'
IH2='AVA '
VALUE0=ASYMVA
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'GMML')THEN
C
CALL DPMLGM(Y,NS1,
1 XTEMP1,MAXNXT,
1 PML,PMLVAR,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='PML '
IH2=' '
VALUE0=PML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PMLV'
IH2='AR '
VALUE0=PMLVAR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'NBML')THEN
C
IDIST='NEGATIVE BINOMIAL'
IH='K '
IH2=' '
ALOWLM=0.0
AUPPLM=CPUMAX
LOWLTY='> '
UPPLTY='<= '
CALL PARCHR(IH,IH2,IDIST,AK,ALOWLM,AUPPLM,LOWLTY,UPPLTY,
1 ISUBN1,ISUBN2,IERROR)
IF(IERROR.EQ.'YES')THEN
AK=-1.0
ENDIF
C
CALL DPMLNB(Y,NS1,AK,
1 XTEMP1,DTEMP1,MAXNXT,
1 PMOM,AKMOM,PML,PMLBC,PMLBCV,AKML2,PML2,PML2BC,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='PMOM'
IH2=' '
VALUE0=PMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PML '
IH2=' '
VALUE0=PML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='KMOM'
IH2=' '
VALUE0=AKMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PMLB'
IH2='C '
VALUE0=PMLBC
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PMLV'
IH2='AR '
VALUE0=PMLBCV
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='KML2'
IH2=' '
VALUE0=AKML2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PML2'
IH2=' '
VALUE0=PML2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PML2'
IH2='BC '
VALUE0=PML2BC
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'HYML')THEN
C
IOUNI1=IST1NU
IFILE1=IST1NA
ISTAT1=IST1ST
IFORM1=IST1FO
IACCE1=IST1AC
IPROT1=IST1PR
ICURS1=IST1CS
ISUBN0='FIT3'
IERRF1='NO'
C
IREWI1='ON'
CALL DPOPFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
C
IDIST='HYPERGEOMETRIC'
CALL DPMLHY(Y,NS1,ITEMP2,ITEMP1,
1 XTEMP1,MAXNXT,
1 ICAPSW,ICAPTY,IHYPTY,IOUNI1,
1 ISUBRO,IBUGA3,IERROR)
C
IENDF1='OFF'
IREWI1='ON'
CALL DPCLFI(IOUNI1,IFILE1,ISTAT1,IFORM1,IACCE1,IPROT1,ICURS1,
1 IENDF1,IREWI1,ISUBN0,IERRF1,IBUGA3,ISUBRO,IERROR)
IF(IERRF1.EQ.'YES')GOTO9000
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ELSEIF(ICASAN.EQ.'JOHN')THEN
C
IDIST='JOHNSON'
ALPHA1=0.0
ALPHA2=0.0
ALOC=0.0
SCALE=0.0
C
IHP='Z '
IHP2=' '
IHWUSE='P'
MESSAG='NO'
CALL CHECKN(IHP,IHP2,IHWUSE,
1 IHNAME,IHNAM2,IUSE,IN,IVALUE,VALUE,NUMNAM,MAXNAM,
1 ISUBN1,ISUBN2,MESSAG,IANS,IWIDTH,ILOCP,IERROR)
Z=0.524
IF(IERROR.EQ.'NO')Z=VALUE(ILOCP)
C
IF(Z.LT.0.1)Z=0.1
IF(Z.GT.1.0)Z=1.0
C
CALL DPMLJO(Y,NS1,
1 XTEMP1,MAXNXT,
1 ALPHA1,ALPHA2,ALOC,SCALE,
1 Z,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IH='ALPH'
IH2='A1PE'
VALUE0=ALPHA1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='A2PE'
VALUE0=ALPHA2
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCP'
IH2='ERC '
VALUE0=ALOC
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='EPER'
VALUE0=SCALE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'HEML')THEN
C
IDIST='HERMITE'
ALPHAM=0.0
BETAMO=0.0
ALPHML=0.0
BETAML=0.0
CALL DPMLHE(Y,NS1,
1 TEMP1,TEMP2,TEMP3,TEMP4,ITEMP1,MAXNXT,
1 ALPHAM,BETAMO,ALPHML,BETAML,
1 ALPHEP,BETAEP,ALPHZF,BETAZF,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IH='ALPH'
IH2='AMOM'
VALUE0=ALPHAM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='MOM '
VALUE0=BETAMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='AML '
VALUE0=ALPHML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='ML '
VALUE0=BETAML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='AEP '
VALUE0=ALPHEP
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='EP '
VALUE0=BETAEP
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='AZF '
VALUE0=ALPHZF
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='BETA'
IH2='ZF '
VALUE0=BETAZF
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'YUML')THEN
C
IDIST='YULE'
PMOM=0.0
PML=0.0
CALL DPMLYU(Y,NS1,
1 TEMP1,TEMP2,TEMP3,MAXNXT,
1 PMOM,PFREQ,PML,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IH='PMOM'
IH2=' '
VALUE0=PMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PFRE'
IH2='Q '
VALUE0=PFREQ
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='PML '
IH2=' '
VALUE0=PML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'ZEML')THEN
C
IDIST='ZETA'
ALPHMO=0.0
ALPHML=0.0
ALPHFR=0.0
CALL DPMLZE(Y,TEMP4,NS1,NUMV,
1 TEMP1,TEMP2,
1 ALPHML,ALPHFR,ALPHMO,AFRVAR,AMLVAR,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IH='ALPH'
IH2='AMOM'
VALUE0=ALPHMO
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='AFR '
VALUE0=ALPHFR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='AFRE'
IH2='QVAR'
VALUE0=AFRVAR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='AML '
VALUE0=ALPHML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='AMLV'
IH2='AR '
VALUE0=AMLVAR
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'WAML')THEN
C
IDIST='WARING'
AMOM=0.0
AML=0.0
CMOM=0.0
CML=0.0
CALL DPMLWA(Y,NS1,
1 DTEMP1,TEMP1,TEMP2,TEMP3,MAXNXT,
1 AMOM,AFREQ,AML,CMOM,CFREQ,CML,
1 ICAPSW,ICAPTY,
1 ISUBRO,IBUGA3,IERROR)
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IH='AMOM'
IH2=' '
VALUE0=AMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='AFRE'
IH2='Q '
VALUE0=AFREQ
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='AML '
IH2=' '
VALUE0=AML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='CMOM'
IH2=' '
VALUE0=CMOM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='CFRE'
IH2='Q '
VALUE0=CFREQ
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='CML '
IH2=' '
VALUE0=CML
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'JOSB')THEN
C
C JULY 2003: JOHNSON SU/SB MOMENT ESTIMATES
IWRITE='OFF'
CALL MEAN(Y,NS1,IWRITE,YMEAN,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
CALL SD(Y,NS1,IWRITE,YSD,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
CALL STMOM3(Y,NS1,IWRITE,YSKEW,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
CALL STMOM4(Y,NS1,IWRITE,YKURT,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ITYPE=3
CALL JNSN(YMEAN,YSD,YSKEW,YKURT,ITYPE,ALPHA1,ALPHA2,
1 SCALE,ALOC,IFAULT)
IF(IFAULT.EQ.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4201)
4201 FORMAT('***** FATAL ERROR FOR JOHNSON SB METHOD OF ',
1 'MOMENTS.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4203)
4203 FORMAT(' COMPUTED STANDARD DEVIATION LESS THAN ZERO.')
CALL DPWRST('XXX','WRIT')
GOTO9000
ELSEIF(IFAULT.EQ.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4205)
4205 FORMAT('***** FATAL ERROR FOR JOHNSON SB METHOD OF ',
1 'MOMENTS.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4206)
4206 FORMAT(' KURTOSIS < SKEWNESS**2 + 1')
CALL DPWRST('XXX','WRIT')
GOTO9000
ELSEIF(IFAULT.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4207)
4207 FORMAT('***** FATAL ERROR FOR JOHNSON SB METHOD OF ',
1 'MOMENTS.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4208)
4208 FORMAT(' SB FITTING FAILED TO CONVERGE.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4209)
4209 FORMAT(' AN SL OR ST FIT MADE INSTEAD.')
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5101 FORMAT('')
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Johnson SB Method of Moments ',
1 'Estimation')
5119 FORMAT(' ')
WRITE(ICOUT,5101)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' ')
5143 FORMAT(' | ')
5147 FORMAT(' | ')
5149 FORMAT(' ')
5151 FORMAT(' ',G15.7)
5153 FORMAT(' ',I8)
5155 FORMAT(' ')
5159 FORMAT(' | ')
5161 FORMAT(' Number of Observations:')
5162 FORMAT(' Sample Mean:')
5163 FORMAT(' Sample Standard Deviation:')
5164 FORMAT(' Sample Skewness:')
5165 FORMAT(' Sample Kurtosis:')
5166 FORMAT(' Method of Moments Estimates:')
5167 FORMAT(' Shape Parameter ALPHA1:')
5168 FORMAT(' Shape Parameter ALPHA2:')
5169 FORMAT(' Location Parameter:')
5170 FORMAT(' Scale Parameter:')
C
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5143)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5153)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5143)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)YMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5143)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5163)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)YSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5143)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5164)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)YSKEW
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5143)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5165)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)YKURT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5143)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5166)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5155)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5143)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5167)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALPHA1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5143)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5168)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALPHA2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5143)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5169)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5143)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5170)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)SCALE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
5199 FORMAT('')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5199)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8101 FORMAT(A1,'end{verbatim}')
8103 FORMAT(A1,'begin{table}')
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Johnson SB Method of Moments Estimate}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8101)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8103)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8111)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {lr}')
8121 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8122 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8123 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8124 FORMAT(5X,'Sample Skewness: & ',G15.7,2X,A1,A1)
8125 FORMAT(5X,'Sample Kurtosis: & ',G15.7,2X,A1,A1)
8126 FORMAT(5X,'{',A1,'bf Method of Moments Estimates:} & ',
1 2X,A1,A1)
8127 FORMAT(5X,'Shape Parameter $',A1,'alpha_1$: & ',
1 G15.7,2X,A1,A1)
8128 FORMAT(5X,'Shape Parameter $',A1,'alpha_2$: & ',
1 G15.7,2X,A1,A1)
8129 FORMAT(5X,'Location Parameter: & ',G15.7,2X,A1,A1)
8130 FORMAT(5X,'Scale Parameter: & ',G15.7,2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)YMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8123)YSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8124)YSKEW,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8125)YKURT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8127)IBASLC,ALPHA1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8128)IBASLC,ALPHA2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8129)ALOC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8130)SCALE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8191 FORMAT(A1,'end{center}')
8193 FORMAT(A1,'end{table}')
8199 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8191)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8199)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4211)
4211 FORMAT('JOHNSON SB METHOD OF MOMENTS ESTIMATE:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4222)N
4222 FORMAT(6X,'NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)YMEAN
4223 FORMAT(6X,'MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4224)YSD
4224 FORMAT(6X,'STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)YSKEW
4225 FORMAT(6X,'SKEWNESS = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4226)YKURT
4226 FORMAT(6X,'KURTOSIS = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4241)ALPHA1
4241 FORMAT(6X,'SHAPE PARAMETER ALPHA1 = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4241)ALPHA2
4243 FORMAT(6X,'SHAPE PARAMETER ALPHA2 = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)ALOC
4245 FORMAT(6X,'LOCATION PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4247)SCALE
4247 FORMAT(6X,'SCALE PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4249)
4249 FORMAT('ALPHA1, ALPHA2, LOC, AND SCALE WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='ALPH'
IH2='A1 '
VALUE0=ALPHA1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='A2 '
VALUE0=ALPHA1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='E '
VALUE0=SCALE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOC '
IH2=' '
VALUE0=ALOC
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'JOSU')THEN
C
C JULY 2003: JOHNSON SU/SB MOMENT ESTIMATES
IWRITE='OFF'
CALL MEAN(Y,NS1,IWRITE,YMEAN,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
CALL SD(Y,NS1,IWRITE,YSD,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
CALL STMOM3(Y,NS1,IWRITE,YSKEW,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
CALL STMOM4(Y,NS1,IWRITE,YKURT,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
ITYPE=2
CALL JNSN(YMEAN,YSD,YSKEW,YKURT,ITYPE,ALPHA1,ALPHA2,
1 SCALE,ALOC,IFAULT)
C
IF(IFAULT.EQ.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4301)
4301 FORMAT('***** FATAL ERROR FOR JOHNSON SU METHOD OF ',
1 'MOMENTS.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4303)
4303 FORMAT(' COMPUTED STANDARD DEVIATION LESS THAN ZERO.')
CALL DPWRST('XXX','WRIT')
GOTO9000
ELSEIF(IFAULT.EQ.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4305)
4305 FORMAT('***** FATAL ERROR FOR JOHNSON SU METHOD OF ',
1 'MOMENTS.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4306)
4306 FORMAT(' KURTOSIS < SKEWNESS**2 + 1')
CALL DPWRST('XXX','WRIT')
GOTO9000
ELSEIF(IFAULT.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4307)
4307 FORMAT('***** FATAL ERROR FOR JOHNSON SU METHOD OF ',
1 'MOMENTS.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4308)
4308 FORMAT(' SB FITTING FAILED TO CONVERGE.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4309)
4309 FORMAT(' AN SL OR ST FIT MADE INSTEAD.')
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Johnson SU Method of Moments ',
1 'Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Sample Skewness:')
5065 FORMAT(' Sample Kurtosis:')
5066 FORMAT(' Method of Moments Estimates:')
5067 FORMAT(' Shape Parameter ALPHA1:')
5068 FORMAT(' Shape Parameter ALPHA2:')
5069 FORMAT(' Location Parameter:')
5070 FORMAT(' Scale Parameter:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)YMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)YSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)YSKEW
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)YKURT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALPHA1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALPHA2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALOC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5070)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Johnson SU Method of Moments Estimate}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Skewness: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Kurtosis: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'{',A1,'bf Method of Moments Estimates:} & ',
1 2X,A1,A1)
8027 FORMAT(5X,'Shape Parameter $',A1,'alpha_1$: & ',
1 G15.7,2X,A1,A1)
8028 FORMAT(5X,'Shape Parameter $',A1,'alpha_2$: & ',
1 G15.7,2X,A1,A1)
8029 FORMAT(5X,'Location Parameter: & ',G15.7,2X,A1,A1)
8030 FORMAT(5X,'Scale Parameter: & ',G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)YMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)YSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)YSKEW,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)YKURT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,ALPHA1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,ALPHA2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)ALOC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)SCALE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4311)
4311 FORMAT('JOHNSON SU METHOD OF MOMENTS ESTIMATE:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4322)N
4322 FORMAT(6X,'NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4323)YMEAN
4323 FORMAT(6X,'MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4324)YSD
4324 FORMAT(6X,'STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4325)YSKEW
4325 FORMAT(6X,'SKEWNESS = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4326)YKURT
4326 FORMAT(6X,'KURTOSIS = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4341)ALPHA1
4341 FORMAT(6X,'SHAPE PARAMETER ALPHA1 = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4341)ALPHA2
4343 FORMAT(6X,'SHAPE PARAMETER ALPHA2 = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4345)ALOC
4345 FORMAT(6X,'LOCATION PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4347)SCALE
4347 FORMAT(6X,'SCALE PARAMETER = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4349)
4349 FORMAT('ALPHA1, ALPHA2, LOC, AND SCALE WILL BE SAVED AS ',
1 'INTERNAL PARAMETERS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
C
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='ALPH'
IH2='A1 '
VALUE0=ALPHA1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='ALPH'
IH2='A2 '
VALUE0=ALPHA1
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='E '
VALUE0=SCALE
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOC '
IH2=' '
VALUE0=ALOC
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ELSEIF(ICASAN.EQ.'GLML')THEN
C
CALL DPMLGL(Y,NS1,
1 XTEMP1,TEMP2,TEMP3,TEMP4,TEMP5,TEMP6,
1 MAXNXT,
1 ASHALM,ASCALM,ALOCLM,
1 ICAPSW,ICAPTY,DTEMP1,DTEMP2,
1 ALPHA,
1 ISUBRO,IBUGA3,IERROR)
IF(IERROR.EQ.'YES')GOTO9000
C
C ***************************************
C ** STEP 61-- **
C ** UPDATE INTERNAL DATAPLOT TABLES **
C ***************************************
C
ISTEPN='61'
IF(IBUGA2.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
ISUBN0='DPML'
C
IH='GAMM'
IH2='ALMO'
VALUE0=ASHALM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='SCAL'
IH2='ELMO'
VALUE0=ASCALM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
IH='LOCL'
IH2='MOM '
VALUE0=ALOCLM
CALL DPADDP(IH,IH2,VALUE0,IHOST1,ISUBN0,
1 IHNAME,IHNAM2,IUSE,VALUE,IVALUE,NUMNAM,MAXNAM,
1 IANS,IWIDTH,IBUGA3,IERROR)
C
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA2.EQ.'OFF'.AND.ISUBRO.NE.'MLWE')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLWE--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9012)IBUGA2,IBUGA3
9012 FORMAT('IBUGA2,IBUGA3 = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9013)IBUGQ
9013 FORMAT('IBUGQ = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9014)NLEFT,NS
9014 FORMAT('NLEFT,NS = ',2I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9015)ICASEQ
9015 FORMAT('ICASEQ = ',A4)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,9016)IFOUND,IERROR
9016 FORMAT('IFOUND,IERROR = ',A4,2X,A4)
CALL DPWRST('XXX','BUG ')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMLW1(Y,TAG,N,
1XTEMP,DTEMP,MAXNXT,
1SCALE,SCALSE,GAMMA,GAMMSE,GAMMBC,GABCSE,COVSE,COBCSE,
1NUMV,ICENTY,TEND,
1ICAPSW,ICAPTY,IWEIBC,IWEIFL,
1QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1IOUNI1,IOUNI2,ALPHAP,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR WEIBULL DISTRIBUTION
C FOR THE FULL SAMPLE CASE.
C EXAMPLE--WEIBULL MAXIMUM LIKELIHOOD Y
C REFERENCE--KARL BURY, "STATISTICAL DISTRIBUTIONS IN
C ENGINEERING", CAMBRIDGE UNIVERSITY PRESS,
C 1999, CHAPTER 17.
C --JOHNSON, KOTZ, AND BALAKRISNAN, "CONTINUOUS
C UNIVARIATE DISTRIBUTIONS--VOLUME 1", SECOND EDITION,
C WILEY, 1994, CHAPTER xx.
C --KEATS, LAWRENCE, AND WANG, "WEIBULL MAXIMUM
C LIKELIHOOD PARAMETER ESTIMATES WITH CENSORED
C DATA", JOURNAL OF QUALITY TECHNOLOGY, 29,
C PP. 105-110.
C --MURTHY, XIE, AND JIANG, "WEIBULL MODELS", WILEY,
C 2004, PP. 114-118 (FOR INVERTED WEIBULL).
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/11
C ORIGINAL VERSION--NOVEMBER 2004. NOTE: THIS REPLACES SOME
C EARLIER IMPLEMENTATIONS.
C UPDATED --AUGUST 2005. UPDATED TO HANDLE THE
C INVERTED WEIBULL DISTRIBUTION
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICENTY
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 IWEIBC
CHARACTER*4 IWEIFL
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*16 IDIST
C
C---------------------------------------------------------------------
C
PARAMETER (NUMALP=6)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWSC(NUMALP)
DIMENSION AUPPSC(NUMALP)
DIMENSION ALOWGA(NUMALP)
DIMENSION AUPPGA(NUMALP)
DIMENSION ALOWS2(NUMALP)
DIMENSION AUPPS2(NUMALP)
DIMENSION ALOWG2(NUMALP)
DIMENSION AUPPG2(NUMALP)
C
DIMENSION Y(*)
DIMENSION TAG(*)
DIMENSION XTEMP(*)
DIMENSION QP(*)
DIMENSION XQPHAT(*)
DIMENSION XQPSE(*)
DIMENSION XQPLCL(*)
DIMENSION XQPUCL(*)
DOUBLE PRECISION DTEMP(*)
C
DOUBLE PRECISION WEIFUN
DOUBLE PRECISION WEIFU2
DOUBLE PRECISION WEIFU3
EXTERNAL SUM
EXTERNAL WEIFUN
EXTERNAL WEIFU2
EXTERNAL WEIFU3
C
INTEGER IN
DOUBLE PRECISION DWEISM
COMMON/WEICOM/DWEISM,IN
C
INTEGER IN2
DOUBLE PRECISION DK
DOUBLE PRECISION DTERM1
DOUBLE PRECISION DTERM2
COMMON/WEICO2/DK,DTERM1,DTERM2,IN2
INTEGER IN3
DOUBLE PRECISION DK2
DOUBLE PRECISION DTERM6
DOUBLE PRECISION DTERM7
DOUBLE PRECISION DGAMMA
COMMON/WEICO3/DK2,DTERM6,DTERM7,DGAMMA,IN3
C
DOUBLE PRECISION DN
DOUBLE PRECISION DAE
DOUBLE PRECISION DRE
DOUBLE PRECISION DG
DOUBLE PRECISION DS
DOUBLE PRECISION DT1
DOUBLE PRECISION DSUM1
DOUBLE PRECISION DSUM2
DOUBLE PRECISION DXSTRT
DOUBLE PRECISION DXLOW
DOUBLE PRECISION DXUP
DOUBLE PRECISION XLOWSV
DOUBLE PRECISION XUPSV
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01, 0.001/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='W1 '
C
IDIST='WEIBULL'
IF(IWEIFL.EQ.'IWEI')IDIST='INVERTED WEIBULL'
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLW1')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLW1--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NUMV
55 FORMAT('N,NUMV,NPERC = ',3I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I),TAG(I)
57 FORMAT('I,Y(I),TAG(I) = ',I8,2E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
WRITE(ICOUT,59)ICENTY,IWEIBC
59 FORMAT('ICENTY,IWEIBC = ',2A4)
CALL DPWRST('XXX','WRIT')
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLW1')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)IDIST
1111 FORMAT('***** ERROR IN ',A16,' MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)
1112 FORMAT(' THE NUMBER OF OBSERVATIONS FOR VARIABLE 1 ',
1 'IS <= 1')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)N
1113 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
C COMPUTE THE SUMMARY STATISTICS BEFORE TRANSFORMING THE
C DATA FOR THE INVERTED WEIBULL
C
IERROR='NO'
IWRITE='OFF'
C
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
IF(IWEIFL.EQ.'IWEI')THEN
DO1118I=1,N
Y(I)=1.0/Y(I)
1118 CONTINUE
ENDIF
C
DO1125I=1,N
IF(Y(I).LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1121)IDIST
1121 FORMAT('***** ERROR FROM ',A16,' MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1132)I,Y(I)
1122 FORMAT(' ROW ',I8,' HAS THE VALUE = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ELSE
XTEMP(I)=LOG(Y(I))
ENDIF
1125 CONTINUE
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)IDIST
1131 FORMAT('***** WARNING FROM WEIBULL ',A16,' LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1132)HOLD
1132 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
IF(NPERC.GT.0)THEN
DO1145I=1,NPERC
IF(QP(I).LE.0.0 .OR. QP(I).GE.100.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1141)IDIST
1141 FORMAT('***** WARNING IN ',A16,' MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1143)QP(I)
1143 FORMAT(' REQUESTED PERCENTILE (',G15.7,') IS ',
1 'OUTSIDE THE (0,100) INTERVAL')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1144)
1144 FORMAT(' NO PERCENTILE CONFIDENCE LIMITS WILL BE ',
1 'COMPUTED.')
CALL DPWRST('XXX','WRIT')
NPERC=0
ENDIF
1145 CONTINUE
ENDIF
C
C **********************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR WEIBULL MLE **
C ** ESTIMATE (FULL SAMPLE CASE) **
C **********************************
C
C NOTE AUGUST 2005: CODE UPGRADED TO HANDLE INVERTED WEIBULL CASE.
C FOR THE INVERTED WEIBULL CASE, WE TAKE (1/X)
C AND WE ALSO TAKE (1/ALPHA) AS THE SCALE ESTIMATE.
C
2100 CONTINUE
C
C FOR THE SHAPE PARAMETER, SOLVE THE EQUATION:
C
C (1/GHAT) -
C SUM[i=1 to n][Y(I)**GHAT*LN(Y(I))]/SUM[i=1 to n][[Y(I)**GHAT] +
C (1/N)*SUM[i=1 to n][LN(Y(I))] = 0
C
C THEN
C
C SCALE = ((1/N)*SUM[i=1 to n][Y(I)**GHAT])
C
C FOR STARTING VALUE, USE
C
C GHAT = 1.28/(STD DEV OF LOG(Y))
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLW1')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
AN=REAL(N)
C
CALL SD(XTEMP,N,IWRITE,XLOGSD,IBUGA3,IERROR)
CALL SUM(XTEMP,N,IWRITE,XLOGSM,IBUGA3,IERROR)
C
C ESTIMATES FOR 2-PARAMETER MODEL. USE DFZER2 TO FIND ROOT OF
C THE EQUATION GIVEN ABOVE.
C
DO2103I=1,N
DTEMP(I)=DBLE(Y(I))
2103 CONTINUE
C
DWEISM=DBLE(XLOGSM/AN)
DXSTRT=1.28D0/DBLE(XLOGSD)
DAE=2.0*0.000001D0*DXSTRT
DRE=DAE
IN=N
IFLAG=0
DXLOW=DXSTRT/2.0D0
DXUP=2.0D0*DXSTRT
ITBRAC=0
2105 CONTINUE
XLOWSV=DXLOW
XUPSV=DXUP
CALL DFZER2(WEIFUN,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
C
IF(IFLAG.EQ.4 .AND. ITBRAC.LE.100)THEN
DXLOW=XLOWSV/2.0D0
DXUP=2.0D0*XUPSV
ITBRAC=ITBRAC+1
GOTO2105
ENDIF
C
IF(IFLAG.EQ.2)THEN
C
C NOTE: SUPPRESS THIS MESSAGE FOR NOW.
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,2111)
C2111 FORMAT('***** WARNING FROM WEIBULL MAXIMUM ',
CCCCC1 'LIKELIHOOD--')
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,2113)
C2113 FORMAT(' ESTIMATE OF SIGMA MAY NOT BE COMPUTED TO ',
CCCCC1 'DESIRED TOLERANCE.')
CCCCC CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2121)IDIST
2121 FORMAT('***** WARNING FROM ',A16,' MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2123)
2123 FORMAT(' ESTIMATE OF GAMMA MAY BE NEAR A SINGULAR POINT.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.4)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2131)IDIST
2131 FORMAT('***** ERROR FROM ',A16,' MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2133)
2133 FORMAT(' APPROPRIATE BRACKETING INTERVAL NOT FOUND.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.5)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2141)IDIST
2141 FORMAT('***** WARNING FROM ',A16,' MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2143)
2143 FORMAT(' MAXIMUM ITERATIONS EXCEEDED.')
CALL DPWRST('XXX','BUG ')
ENDIF
C
GAMMA=REAL(DXLOW)
DSUM=0.0D0
DO2210I=1,N
DSUM=DSUM + DBLE(Y(I)**GAMMA)
2210 CONTINUE
SCALE=REAL((DSUM/DBLE(N))**DBLE(1.0D0/DBLE(GAMMA)))
IF(IWEIFL.EQ.'IWEI')SCALE=1.0/SCALE
BN=1.0 + 2.2/AN**1.13
GAMMBC=GAMMA/BN
C
C COMPUTE STANDARD ERRORS (CAN BASE ON EITHER THE NORMAL BIASED
C ESTIMATORS OR THE BIAS CORRECTED ESTIMATORS)
C
SCALSE=1.05293*SCALE/(GAMMA*SQRT(AN))
GAMMSE=0.77970*GAMMA/SQRT(AN)
GABCSE=0.77970*GAMMA/(BN*SQRT(AN))
COVSE=0.50697*SQRT(SCALE/AN)
COBCSE=0.50697*SQRT(SCALE/(AN*BN))
C
C CONFIDENCE INTERVALS FOR PARAMETERS. CAN BASE ON EITHER NORMAL
C APPROXIMATION OR ON LIKELIHOOD RATIO APPROXIMATION.
C
C NORMAL APPROXIMATION FIRST.
C
DO2220I=1,NUMALP
ALP=ALPHA(I)
P=1.0-(ALP/2.0)
CALL NORPPF(P,PPF)
ALOWSC(I)=SCALE - PPF*SCALSE
AUPPSC(I)=SCALE + PPF*SCALSE
IF(IWEIBC.EQ.'ON')THEN
ALOWGA(I)=GAMMBC - PPF*GABCSE
AUPPGA(I)=GAMMBC + PPF*GABCSE
ELSE
ALOWGA(I)=GAMMA - PPF*GAMMSE
AUPPGA(I)=GAMMA + PPF*GAMMSE
ENDIF
2220 CONTINUE
C
C NOW DO LIKELIHOOD RATIO APPROXIMATION.
C LIKELIHOOD RATIO INTERVALS FOR INVERTED WEIBULL DO NOT SEEM
C CORRECT, SO JUST OMIT FOR NOW.
C
IF(IWEIFL.EQ.'IWEI')GOTO2369
IN2=N
IN3=N
DN=DBLE(N)
DAE=1.D-7
DRE=1.D-7
NUTEMP=1
C
DN=DBLE(N)
DG=DBLE(GAMMA)
DS=DBLE(SCALE)
DT1=DN*DLOG(DBLE(GAMMA)) - DN*DG*DLOG(DS)
DSUM1=0.0D0
DSUM2=0.0D0
DO2325I=1,N
DTEMP(I)=DBLE(Y(I))
DSUM1=DSUM1 + DLOG(DBLE(Y(I)))
DSUM2=DSUM2 + DBLE(Y(I))**DG
2325 CONTINUE
DTERM2=DSUM1
DTERM1=2.0D0*(DT1 + (DG-1.0D0)*DTERM2 - DS**(-DG)*DSUM2)
DTERM7=DTERM2
DTERM6=DTERM1
DGAMMA=DBLE(GAMMA)
C
DO2360I=1,NUMALP
ALP=ALPHA(I)
CALL CHSPPF(1.0-ALP,NUTEMP,APPF)
DK=DBLE(APPF)
DK2=DK
C
DXSTRT=DBLE(ALOWGA(I))
DXLOW=DXSTRT/5.0D0
DXUP=DBLE(GAMMA)
CALL DFZER2(WEIFU2,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
ALOWG2(I)=REAL(DXLOW)
C
DXSTRT=DBLE(AUPPGA(I))
DXUP=DXSTRT*5.0D0
DXLOW=DBLE(GAMMA)
CALL DFZER2(WEIFU2,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
AUPPG2(I)=REAL(DXLOW)
C
DXSTRT=DBLE(ALOWSC(I))
DXLOW=DXSTRT/5.0D0
DXUP=DBLE(SCALE)
CALL DFZER2(WEIFU3,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
ALOWS2(I)=REAL(DXLOW)
C
DXSTRT=DBLE(AUPPSC(I))
DXUP=DXSTRT*5.0D0
DXLOW=DBLE(SCALE)
CALL DFZER2(WEIFU3,DXLOW,DXUP,DXSTRT,DRE,DAE,IFLAG,DTEMP)
AUPPS2(I)=REAL(DXLOW)
2360 CONTINUE
2369 CONTINUE
C
C CONFIDENCE INTERVALS FOR SELECTED PERCENTILES.
C
C 1. STANDARD ERROR USES TECHNIQUE DEMONSTRATED IN EXAMPLE 17.4
C (P. 344) OF BURY. THIS IS BASED ON PROPOGATION OF ERROR.
C
C 2. CONFIDENCE INTERVAL IS THEN GENERATED USING NORMAL
C APPROXIMATION (EXAMPLE 17.7 OF BURY). BURY ALSO DEMONSTRATES
C A LIKELIHOOD RATIO APPROACH, BUT OMIT THIS FOR NOW.
C
IF(NPERC.GE.1)THEN
C
ALPHL=ALPHAP/2.0
ALPHU=1.0 - ALPHAP/2.0
CALL NORPPF(ALPHU,Z95)
MINMAX=1
C
IF(IWEIBC.EQ.'ON')THEN
G=GAMMBC
GSE=GABCSE
COV=COBCSE
ELSE
G=GAMMA
GSE=GAMMSE
COV=COVSE
ENDIF
C
WRITE(IOUNI1,2431)
WRITE(IOUNI1,2432)
DO2429I=1,NPERC
QPTEMP=QP(I)/100.0
CALL WEIPPF(QPTEMP,G,MINMAX,APPF)
XQPHAT(I)=SCALE*APPF
C
C=LOG(1.0/(1.0 - QPTEMP))
DA=C**(1.0/G)
DB=-(SCALE*C**(1.0/G)*LOG(C)/(G**2))
TERM1=(DA*SCALSE)**2
TERM2=(DB*GSE)**2
TERM3=2.0*DA*DB*COV*COV
SEXQP=SQRT(TERM1 + TERM2 + TERM3)
XQPSE(I)=SEXQP
XQPLCL(I)=XQPHAT(I) - Z95*SEXQP
XQPUCL(I)=XQPHAT(I) + Z95*SEXQP
WRITE(IOUNI1,'(5E15.7)')
1 QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),XQPUCL(I)
2429 CONTINUE
2431 FORMAT(15X,' POINT ',' LOWER ',
1 ' UPPER')
2432 FORMAT(' PERCENTILE ',' ESTIMATE ',
1 'CONFIDENCE LIMIT ','CONFIDENCE LIMIT')
ENDIF
C
C *************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR WEIBULL MLE ESTIMATE **
C *************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLW1')
1 CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5002 FORMAT('',A16,' PARAMETER ESTIMATION:')
5004 FORMAT(' FULL SAMPLE CASE')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5002)IDIST
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Two-Parameter Model (Location = 0)')
5019 FORMAT(' ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5060 FORMAT(' Summary Statistics:')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Minimum Value:')
5074 FORMAT(' Maximum Value:')
5075 FORMAT(' Maximum Likelihood Estimates:')
5065 FORMAT(' Estimate of Scale Parameter:')
5066 FORMAT(' Standard Error of Scale Parameter:')
5067 FORMAT(' Estimate of Shape Parameter:')
5068 FORMAT(' Standard Error of Shape Parameter:')
55067 FORMAT(' Estimate of Bias Corrected Shape Parameter:')
55068 FORMAT(' Standard Error of Bias Corrected Shape ',
1 'Parameter:')
5069 FORMAT(' Standard Error of Covariance of Scale and ',
1 'Shape Parameter:')
55069 FORMAT(' Standard Error of Bias Corrected Covariance ',
1 'of Scale and Shape Parameter:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5060)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5074)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5075)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMA
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMBC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GABCSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COVSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COBCSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the Shape ',
1 'Parameter ')
5118 FORMAT(' (Based on Biased Estimate)')
55118 FORMAT(' (Based on Bias Corrected Estimate)')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
IF(IWEIBC.EQ.'ON')THEN
WRITE(ICOUT,55118)
ELSE
WRITE(ICOUT,5118)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5136 FORMAT(' | ')
5137 FORMAT(' Normal Approximation')
5138 FORMAT(' Likelihood Ratio')
5139 FORMAT(' | ')
5161 FORMAT(' ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5138)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
C
IF(IWEIFL.NE.'IWEI')THEN
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWGA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPGA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
C
IF(IWEIFL.NE.'IWEI')THEN
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWG2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPG2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5217 FORMAT(' Confidence Limits for the Scale ',
1 'Parameter')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5217)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5138)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
C
IF(IWEIFL.NE.'IWEI')THEN
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
DO5240I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
C
IF(IWEIFL.NE.'IWEI')THEN
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWS2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPS2(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5240 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C START THE TABLE FOR PERCENTILE CONFIDENCE INTERVALS
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,999)
WRITE(ICOUT,5811)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5813)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5815)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5817)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5816)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5819)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5861)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5863)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5864)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5870)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5872)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
DO55880I=1,NPERC
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)QP(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPHAT(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPSE(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPLCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPUCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
55880 CONTINUE
C
C END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,5801)
CALL DPWRST('XXX','WRIT')
C
5801 FORMAT('')
5811 FORMAT('')
5813 FORMAT('')
5815 FORMAT(' ')
5816 FORMAT(' Alpha = ',F7.3,'')
5817 FORMAT(' Confidence Limits (Normal Approximation) ',
1 'for Selected ',
1 'Percentiles (No Bias Correction Estimates)')
5818 FORMAT(' Confidence Limits (Normal Approximation)',
1 ' for Selected ',
1 'Percentiles (Bias Corrected Estimates)')
5819 FORMAT(' ')
5841 FORMAT(' ')
5843 FORMAT(' | ')
5847 FORMAT(' | ')
5848 FORMAT(' ')
5849 FORMAT(' ')
5851 FORMAT(' ',G15.7)
5859 FORMAT(' | ')
5861 FORMAT(' Percentile')
5862 FORMAT(' Point Estimate')
55862 FORMAT(' Standard Error')
5863 FORMAT(' Lower Confidence Limit')
5864 FORMAT(' Upper Confidence Limit')
5870 FORMAT(' ')
5872 FORMAT(' ')
CCCCC WRITE OUTPUT IN LATEX FORMAT
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8004 FORMAT(A1,'end{table}')
8005 FORMAT('{',A1,'bf Weibull Parameter ',
1 'Estimation: Full Sample Case}')
8006 FORMAT('{',A1,'bf Inverted Weibull Parameter ',
1 'Estimation: Full Sample Case}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Two-Parameter Model ($',A1,
1 'mu$ = 0 Case)}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
IF(IWEIFL.EQ.'IWEI')THEN
WRITE(ICOUT,8006)IBASLC
ELSE
WRITE(ICOUT,8005)IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Summary Statistics: & ',2X,A1,A1)
8022 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8023 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Minimum Value: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Maximum Value: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,' & ',2X,A1,A1)
8028 FORMAT(5X,'Maximum Likelihood Estimates: & ',2X,A1,A1)
8029 FORMAT(5X,'Estimate of Scale Parameter: & ',G15.7,2X,A1,A1)
8030 FORMAT(5X,'Standard Error of Scale Parameter: & ',
1 G15.7,2X,A1,A1)
8031 FORMAT(5X,'Estimate of Shape Parameter: & ',G15.7,2X,A1,A1)
8032 FORMAT(5X,'Standard Error of Shape Parameter: & ',
1 G15.7,2X,A1,A1)
8033 FORMAT(5X,'Estimate of Bias Corrected Shape Parameter: & ',
1 G15.7,2X,A1,A1)
8034 FORMAT(5X,'Standard Error of Bias Corrected Shape ',
1 'Parameter: & ',G15.7,2X,A1,A1)
8035 FORMAT(5X,'Standard Error of Covariance of Scale and Shape ',
1 'Parameter: & ',G15.7,2X,A1,A1)
8036 FORMAT(5X,'Standard Error of Bias Corrected Covariance of ',
1 'Scale and Shape Parameter: & ',G15.7,2X,A1,A1)
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8029)SCALE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)SCALSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)GAMMA,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)GAMMSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8033)GAMMBC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8034)GABCSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8035)COVSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8036)COBCSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8093 FORMAT(A1,'end{center}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for Shape Parameter ',
1 '(Based on No Bias Correction Estimate)}')
8112 FORMAT(5X,'{',A1,'bf Confidence Limits for Shape Parameter ',
1 '(Based on Bias Corrected Estimate)}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
IF(IWEIBC.EQ.'ON')THEN
WRITE(ICOUT,8112)IBASLC
ELSE
WRITE(ICOUT,8111)IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper & Lower & Upper ',
1 2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit & Limit & Limit',
1 2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,' & ',G15.7,' & ',
1 G15.7,2X,A1,A1)
8126 FORMAT(5X,'& ',A1,'multicolumn{2}{c}{Normal Approximation}',
1 ' & ',A1,'multicolumn{2}{c}{Likelihood Ratio}',
1 2X,A1,A1)
8420 FORMAT(5X,A1,'begin{tabular} {ccc}')
8421 FORMAT(5X,'Confidence & Lower & Upper ',2X,A1,A1)
8422 FORMAT(5X,'Value (',A1,'%) & Limit & Limit ',2X,A1,A1)
8431 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,2X,A1,A1)
8426 FORMAT(5X,'& ',A1,'multicolumn{2}{c}{Normal Approximation}',
1 2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
IF(IWEIFL.EQ.'IWEI')THEN
WRITE(ICOUT,8420)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8426)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8421)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8422)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
IF(IWEIFL.EQ.'IWEI')THEN
WRITE(ICOUT,8431)ATEMP,ALOWGA(I),AUPPGA(I),IBASLC,IBASLC
ELSE
WRITE(ICOUT,8131)ATEMP,ALOWGA(I),AUPPGA(I),ALOWG2(I),
1 AUPPG2(I),IBASLC,IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8191 FORMAT(A1,'end{table}')
8193 FORMAT(A1,'end{center}')
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8211 FORMAT(5X,'{',A1,'bf Confidence Limits for Scale Parameter}')
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8211)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
IF(IWEIFL.EQ.'IWEI')THEN
WRITE(ICOUT,8420)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8426)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8421)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8422)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8230I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
IF(IWEIFL.EQ.'IWEI')THEN
WRITE(ICOUT,8431)ATEMP,ALOWSC(I),AUPPSC(I),IBASLC,IBASLC
ELSE
WRITE(ICOUT,8131)ATEMP,ALOWSC(I),AUPPSC(I),ALOWS2(I),
1 AUPPS2(I),IBASLC,IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
8230 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8191)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C WRITE SELECTED PERCENTILES (IF ANY)
C
IF(NPERC.GT.0)THEN
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8803)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8810)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IWEIBC.EQ.'ON')THEN
WRITE(ICOUT,88811)IBASLC
ELSE
WRITE(ICOUT,8811)IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8812)IBASLC,IBASLC,ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8813)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8820)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8821)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8822)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,
1 IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8840)IBASLC
CALL DPWRST('XXX','WRIT')
DO8830I=1,NPERC
WRITE(ICOUT,8823)QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),
1 XQPUCL(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8830 CONTINUE
WRITE(ICOUT,8849)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8891)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8893)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
8801 FORMAT(A1,'end{verbatim}')
8803 FORMAT(A1,'begin{table}')
8807 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8809 FORMAT(A1,'begin{center}')
8810 FORMAT(5X,'{',A1,'bf Confidence Limits (Normal Approximation)',
1 'for Selected Percentiles}')
8811 FORMAT(5X,'{',A1,'bf (Based on No Bias Correction Estimates:}')
88811 FORMAT(5X,'{',A1,'bf (Based on Bias Corrected Estimates:}')
8812 FORMAT(5X,'{',A1,'bf $',A1,'alpha$ = ',F7.3,'}')
8813 FORMAT(A1,'end{center}')
8815 FORMAT(5X,'} ',A1,A1)
8820 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8821 FORMAT(5X,' & {',A1,'bf Point} & {',A1,'bf Standard} & {',
1 A1,'bf Lower} & {',A1,'bf Upper}',2X,A1,A1)
8822 FORMAT(5X,'{',A1,'bf Percentile} & {',A1,'bf Estimate} & {',
1 A1,'bf Error} & {',A1,'bf Confidence Limit} & {',
1 A1,'bf Confidence Limit}',
1 2X,A1,A1)
8823 FORMAT(5X,G15.7,' & ',G15.7,' & ',G15.7,' & ',G15.7,
1 ' & ',G15.7,2X,A1,A1)
8840 FORMAT(5X,A1,'hline')
8849 FORMAT(A1,'end{tabular}')
8891 FORMAT(A1,'end{center}')
8893 FORMAT(A1,'end{table}')
C
8899 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8899)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
IF(IWEIFL.EQ.'IWEI')THEN
WRITE(ICOUT,4201)
4201 FORMAT(6X,'INVERTED WEIBULL PARAMETER ',
1 'ESTIMATION: FULL SAMPLE CASE')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4203)
4203 FORMAT(6X,'WEIBULL PARAMETER ESTIMATION: FULL SAMPLE CASE')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4209)
4209 FORMAT(12X,'TWO-PARAMETER MODEL (LOCATION = 0)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4211)
4211 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4213)N
4213 FORMAT('NUMBER OF OBSERVATIONS = ',
1 I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4215)XMEAN
4215 FORMAT('SAMPLE MEAN = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4217)XSD
4217 FORMAT('SAMPLE STANDARD DEVIATION = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4218)XMIN
4218 FORMAT('SAMPLE MINIMUM = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4219)XMAX
4219 FORMAT('SAMPLE MAXIMUM = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4221)
4221 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)SCALE
4223 FORMAT('ESTIMATE OF SCALE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)SCALSE
4225 FORMAT('STANDARD ERROR OF SCALE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)GAMMA
4227 FORMAT('ESTIMATE OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)GAMMSE
4231 FORMAT('STANDARD ERROR OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4229)GAMMBC
4229 FORMAT('BIAS CORRECTED ESTIMATE OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4232)GABCSE
4232 FORMAT('STANDARD ERROR OF BIAS CORRECTED SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)COVSE
4233 FORMAT('STANDARD ERROR OF SHAPE/SCALE COVARIANCE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4234)COBCSE
4234 FORMAT('STD ERR OF BIAS CORRECTED SHAPE/SCALE COVARIANCE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4240)
4240 FORMAT('CONFIDENCE INTERVAL FOR SCALE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
IF(IWEIFL.EQ.'IWEI')THEN
WRITE(ICOUT,4142)
4142 FORMAT(' NORMAL APPROXIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4143)
4143 FORMAT(' CONFIDENCE LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4145)
4145 FORMAT(' VALUE (%) LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4146)
4146 FORMAT('-------------------------------------------')
CALL DPWRST('XXX','WRIT')
DO4149I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWSC(I),AUPPSC(I)
4147 FORMAT(' ',F8.3,10X,2(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4149 CONTINUE
ELSE
WRITE(ICOUT,4242)
4242 FORMAT(' NORMAL APPROXIMATION',
1 ' LIKELIHOOD RATIO')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
4243 FORMAT(' CONFIDENCE LOWER UPPER',
1 ' LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
4245 FORMAT(' VALUE (%) LIMIT LIMIT',
1 ' LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
4246 FORMAT('------------------------------------------------',
1 '-----------------------')
CALL DPWRST('XXX','WRIT')
DO4249I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWSC(I),AUPPSC(I),ALOWS2(I),
1 AUPPS2(I)
4247 FORMAT(' ',F8.3,10X,4(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4249 CONTINUE
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4252)
4252 FORMAT('CONFIDENCE INTERVAL FOR SHAPE PARAMETER')
CALL DPWRST('XXX','WRIT')
IF(IWEIBC.EQ.'ON')THEN
WRITE(ICOUT,4254)
4254 FORMAT('(BASED ON BIAS CORRECTED ESTIMATES)')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4256)
4256 FORMAT('(BASED ON NO BIAS CORRECTION ESTIMATES)')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(IWEIFL.EQ.'IWEI')THEN
WRITE(ICOUT,4142)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4143)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4145)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4146)
CALL DPWRST('XXX','WRIT')
DO4159I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4147)ATEMP,ALOWGA(I),AUPPGA(I)
CALL DPWRST('XXX','WRIT')
4159 CONTINUE
ELSE
WRITE(ICOUT,4242)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
CALL DPWRST('XXX','WRIT')
DO4259I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,4247)ATEMP,ALOWGA(I),AUPPGA(I),ALOWG2(I),
1 AUPPG2(I)
CALL DPWRST('XXX','WRIT')
4259 CONTINUE
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4911)
CALL DPWRST('XXX','WRIT')
IF(IWEIBC.EQ.'ON')THEN
WRITE(ICOUT,4913)
ELSE
WRITE(ICOUT,4914)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4915)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4921)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4922)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4346)
CALL DPWRST('XXX','WRIT')
C
4911 FORMAT('CONFIDENCE LIMITS (NORMAL APPROXIMATION) FOR ',
1 'SELECTED PERCENTILES:')
4913 FORMAT('(BASED ON BIAS CORRECTED ESTIMATES)')
4914 FORMAT('(BASED ON NO BIAS CORRECTION ESTIMATES)')
4915 FORMAT('ALPHA = ',F7.4)
4921 FORMAT(10X,' POINT ',' STANDARD ',
1 ' LOWER ', ' UPPER')
4922 FORMAT('PERCENTILE',' ESTIMATE ',' ERROR ',
1 'CONFIDENCE LIMIT ',' CONFIDENCE LIMIT')
4346 FORMAT('-----------------------------------',
1 '-----------------------------------')
C
DO4981I=1,NPERC
WRITE(ICOUT,4932)QP(I),XQPHAT(I),XQPSE(I),
1 XQPLCL(I),XQPUCL(I)
4932 FORMAT(2X,F8.4,2G15.7,2X,G15.7,2X,G15.7)
CALL DPWRST('XXX','WRIT')
4981 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
IF(IFEEDB.EQ.'ON')THEN
WRITE(ICOUT,4291)
4291 FORMAT('THE FOLLOWING INTERNAL PARAMETERS ARE SAVED:')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4293)
4293 FORMAT(' ALPHAML, ALPHASE, GAMMAML, GAMMASE, ',
1 'CAMMABC, GAMMABCSE,COVSE,COVBCSE')
CALL DPWRST('XXX','BUG ')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(IFEEDB.EQ.'ON')THEN
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4943)
4943 FORMAT('PERCENTILE CONFIDENCE LIMITS WRITTEN TO ',
1 'FILE dpst1f.dat')
CALL DPWRST('XXX','BUG ')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
C
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLW1')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLW1--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLW2(Y,TAG,N,
1XTEMP,DTEMP,MAXNXT,
1SCALE,SCALSE,GAMMA,GAMMSE,GAMMBC,GABCSE,COVSE,COBCSE,
1NUMV,ICENTY,TEND,
1ICAPSW,ICAPTY,IWEIBC,IWEIFL,
1QP,XQPHAT,XQPLCL,XQPUCL,XQPSE,NPERC,
1IOUNI1,IOUNI2,ALPHAP,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR WEIBULL DISTRIBUTION
C FOR THE TIME CENSORED (SINGY OR MULTIPLY) CASE.
C EXAMPLE--WEIBULL MAXIMUM LIKELIHOOD Y X
C REFERENCE--KARL BURY, "STATISTICAL DISTRIBUTIONS IN
C ENGINEERING", CAMBRIDGE UNIVERSITY PRESS,
C 1999, CHAPTER 17.
C --JOHNSON, KOTZ, AND BALAKRISNAN, "CONTINUOUS
C UNIVARIATE DISTRIBUTIONS--VOLUME 1", SECOND EDITION,
C WILEY, 1994, CHAPTER xx.
C --KEATS, LAWRENCE, AND WANG, "WEIBULL MAXIMUM
C LIKELIHOOD PARAMETER ESTIMATES WITH CENSORED
C DATA", JOURNAL OF QUALITY TECHNOLOGY, 29,
C PP. 105-110.
C --MURTHY, XIE, AND JIANG, "WEIBULL MODELS", WILEY,
C 2004, PP. 114-118 (FOR INVERTED WEIBULL).
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/11
C ORIGINAL VERSION--NOVEMBER 2004. NOTE: THIS REPLACES SOME
C EARLIER IMPLEMENTATIONS.
C UPDATED --AUGUST 2005. UPDATED TO HANDLE THE
C INVERTED WEIBULL DISTRIBUTION.
C CURRENTLY, INVERTED WEIBULL WILL
C ONLY GENERATE POINT ESTIMATES
C SINCE COMPUTATION OF SCALE SE
C IS NOT RETURNING A REASONABLE
C VALUE.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICENTY
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 IWEIBC
CHARACTER*4 IWEIFL
CHARACTER*1 IBASLC
C
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 ICASE
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
CHARACTER*16 IDIST
C
C---------------------------------------------------------------------
C
PARAMETER (NUMALP=6)
DIMENSION ALPHA(NUMALP)
DIMENSION ALOWSC(NUMALP)
DIMENSION AUPPSC(NUMALP)
DIMENSION ALOWGA(NUMALP)
DIMENSION AUPPGA(NUMALP)
DIMENSION ALOWS2(NUMALP)
DIMENSION AUPPS2(NUMALP)
DIMENSION ALOWG2(NUMALP)
DIMENSION AUPPG2(NUMALP)
C
DIMENSION FISH(2,2)
DIMENSION COV(2,2)
DIMENSION D(2)
C
DIMENSION Y(*)
DIMENSION TAG(*)
DIMENSION XTEMP(*)
DIMENSION QP(*)
DIMENSION XQPHAT(*)
DIMENSION XQPSE(*)
DIMENSION XQPLCL(*)
DIMENSION XQPUCL(*)
DOUBLE PRECISION DTEMP(*)
DOUBLE PRECISION WEIFUN
C
EXTERNAL SUM
EXTERNAL WEIFUN
CCCCC EXTERNAL WEIFU5
CCCCC EXTERNAL WEIFU6
C
INTEGER IN
DOUBLE PRECISION DWEISM
COMMON/WEICOM/DWEISM,IN
C
INTEGER IN2
INTEGER IR2
DOUBLE PRECISION DK
DOUBLE PRECISION DTERM1
DOUBLE PRECISION DTERM2
COMMON/WEICO5/DK,DTERM1,DTERM2,IN2,IR2
INTEGER IN3
INTEGER IR3
DOUBLE PRECISION DK2
DOUBLE PRECISION DTERM6
DOUBLE PRECISION DTERM7
DOUBLE PRECISION DGAMMA
COMMON/WEICO6/DK2,DTERM6,DTERM7,DGAMMA,IN3,IR3
C
DOUBLE PRECISION DN
DOUBLE PRECISION AE
DOUBLE PRECISION RE
DOUBLE PRECISION DG
DOUBLE PRECISION DS
DOUBLE PRECISION DT1
DOUBLE PRECISION DSUM1
DOUBLE PRECISION DSUM2
DOUBLE PRECISION XSTART
DOUBLE PRECISION XLOW
DOUBLE PRECISION XUP
DOUBLE PRECISION DX
DOUBLE PRECISION DSCALE
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
DATA ALPHA /0.50, 0.25, 0.10, 0.05, 0.01, 0.001/
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='W2 '
C
IDIST='WEIBULL'
IF(IWEIFL.EQ.'IWEI')IDIST='INVERTED WEIBULL'
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLW2')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLW2--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3,ICENTY = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NUMV,NPERC
55 FORMAT('N,NUMV,NPERC = ',3I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I),TAG(I)
57 FORMAT('I,Y(I),TAG(I) = ',I8,2E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
WRITE(ICOUT,59)ICENTY,IWEIBC
59 FORMAT('ICENTY,IWEIBC = ',2A4)
CALL DPWRST('XXX','WRIT')
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLW2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)IDIST
1111 FORMAT('***** ERROR IN ',A16,' MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)
1112 FORMAT(' THE NUMBER OF OBSERVATIONS FOR VARIABLE 1 ',
1 'IS <= 1')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)N
1113 FORMAT(' SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
DO1125I=1,N
IF(Y(I).LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1121)IDIST
1121 FORMAT('***** ERROR FROM ',A16,' MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1132)I,Y(I)
1122 FORMAT(' ROW ',I8,' HAS THE VALUE = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1125 CONTINUE
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)IDIST
1131 FORMAT('***** WARNING FROM ',A16,' MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1132)HOLD
1132 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
IF(NPERC.GT.0)THEN
DO1145I=1,NPERC
IF(QP(I).LE.0.0 .OR. QP(I).GE.100.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1141)IDIST
1141 FORMAT('***** WARNING IN ',A6,' MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1143)QP(I)
1143 FORMAT(' REQUESTED PERCENTILE (',G15.7,') IS ',
1 'OUTSIDE THE (0,100) INTERVAL')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1144)
1144 FORMAT(' NO PERCENTILE CONFIDENCE LIMITS WILL BE ',
1 'COMPUTED.')
CALL DPWRST('XXX','WRIT')
NPERC=0
ENDIF
1145 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 21-- **
C ** CHECK THE CENSORING VARIABLE: SHOULD **
C ** BE AT MOST 2 DISTINCT VALUES, 1 **
C ** INDICATES FAILURE TIME, 0 INDICATES **
C ** CENSORING TIME. **
C ********************************************
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLW2')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
C
CCCCC AUGUST 2005: TRANSFORM DATA FOR INVERTED WEIBULL.
C
IF(IWEIFL.EQ.'IWEI')THEN
DO1118I=1,N
Y(I)=1.0/Y(I)
1118 CONTINUE
ENDIF
C
CCCCC NOVEMBER 2004. FOR CENSORED CASE, CHECK THAT SECOND VARIABLE
CCCCC CONTAINS TWO DISTINCT VALUES, SET TO 1 AND 0.
C
CALL DISTIN(TAG,N,IWRITE,XTEMP,NDIST,IBUGA3,IERROR)
IF(NDIST.EQ.1)THEN
DO2102I=1,N
TAG(I)=1.0
2102 CONTINUE
ELSEIF(NDIST.EQ.2)THEN
IF(XTEMP(1).EQ.1.0 .OR. XTEMP(2).EQ.1.0)THEN
DO2103I=1,N
IF(TAG(I).NE.1.0)TAG(I)=0.0
2103 CONTINUE
ELSE
ATEMP1=MIN(XTEMP(1),XTEMP(2))
ATEMP2=MAX(XTEMP(1),XTEMP(2))
DO2108I=1,N
IF(TAG(I).EQ.ATEMP1)TAG(I)=1.0
IF(TAG(I).EQ.ATEMP2)TAG(I)=0.0
2108 CONTINUE
ENDIF
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2104)
2104 FORMAT('***** ERROR IN WEIBULL MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2105)
2105 FORMAT(' FOR CENSORED DATA, THE CENSORING VARIABLE')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2106)
2106 FORMAT(' SHOULD CONTAIN AT MOST TWO DISTINCT VALUES.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,2107)NDIST
2107 FORMAT(' ',I8,' DISTINCT VALUES FOUND.')
CALL DPWRST('XXX','BUG ')
IERROR='YES'
GOTO9000
ENDIF
C
CALL SORTC(Y,TAG,N,Y,TAG)
IR=0
DO2120I=1,N
IF(TAG(I).EQ.1.0)IR=IR+1
2120 CONTINUE
IM=N-IR
IR1=IR
IR2=IR
IR3=IR
C
AR=REAL(IR)
DR=DBLE(IR)
AN=REAL(N)
AM=REAL(IM)
C
IF(IM.EQ.0)THEN
ICASE='NONE'
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2131)IDIST
2131 FORMAT('***** WARNING FROM ',A16,' MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2133)
2133 FORMAT(' NO CENSORING TIMES DETECTED. IT IS RECOMMENDED')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2135)
2135 FORMAT(' THAT THE FULL SAMPLE SYNTAX BE USED:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,2137)IDIST
2137 FORMAT(' ',A16,' MAXIMUM LIKELIHOOD Y')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ELSE
ICASE='SING'
AHOLD=Y(IR+1)
DO2140I=IR+1,N
IF(Y(I).NE.AHOLD)THEN
ICASE='MULT'
GOTO2149
ENDIF
2140 CONTINUE
2149 CONTINUE
ENDIF
C
C **********************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR WEIBULL MLE **
C ** ESTIMATE (FULL SAMPLE CASE) **
C **********************************
C
3100 CONTINUE
C
C FOR THE SHAPE PARAMETER, SOLVE THE EQUATION:
C
C (1/GHAT) -
C SUM[i=1 to n][Y(I)**GHAT*LN(Y(I))]/SUM[i=1 to n][[Y(I)**GHAT] +
C (1/N)*SUM[i=1 to n][LN(Y(I))] = 0
C
C THEN
C
C SCALE = ((1/N)*SUM[i=1 to n][Y(I)**GHAT])
C
C FOR STARTING VALUE, USE
C
C GHAT = 1.28/(STD DEV OF LOG(Y))
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLW2')THEN
WRITE(ICOUT,2191)IR,IM,ICASE
2191 FORMAT('IR,IM,ICASE = ',2I8,A4)
CALL DPWRST('XXX','BUG ')
CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
DO2199I=1,N
WRITE(ICOUT,2197)I,Y(I),TAG(I)
2197 FORMAT('I,Y(I),TAG(I) = ',I8,2G15.7)
CALL DPWRST('XXX','BUG ')
2199 CONTINUE
ENDIF
C
DO3010I=1,N
XTEMP(I)=LOG(Y(I))
3010 CONTINUE
C
CALL SD(XTEMP,N,IWRITE,XLOGSD,IBUGA3,IERROR)
C
C ESTIMATES FOR 2-PARAMETER MODEL. USE DFZER2 TO FIND ROOT OF
C THE EQUATION GIVEN ABOVE.
C
DSUM1=0.0D0
DO3101I=1,N
DTEMP(I)=DBLE(Y(I))
IF(TAG(I).EQ.1)DSUM1=DSUM1 + DLOG(DTEMP(I))
3101 CONTINUE
DWEISM=DSUM1/DBLE(AR)
XSTART=DBLE(1.28/XLOGSD)
AE=2.0*0.000001*XSTART
RE=AE
IN=N
IFLAG=0
XLOW=XSTART/2.0D0
XUP=2.0D0*XSTART
ITBRAC=0
3105 CONTINUE
XLOWSV=XLOW
XUPSV=XUP
CALL DFZER2(WEIFUN,XLOW,XUP,XSTART,RE,AE,IFLAG,DTEMP)
C
IF(IFLAG.EQ.4 .AND. ITBRAC.LE.100)THEN
XLOW=XLOWSV/2.0D0
XUP=2.0D0*XUPSV
ITBRAC=ITBRAC+1
GOTO3105
ENDIF
C
IF(IFLAG.EQ.2)THEN
C
C NOTE: SUPPRESS THIS MESSAGE FOR NOW.
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,3111)
C3111 FORMAT('***** WARNING FROM WEIBULL MAXIMUM ',
CCCCC1 'LIKELIHOOD--')
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,3113)
C3113 FORMAT(' ESTIMATE OF SIGMA MAY NOT BE COMPUTED TO ',
CCCCC1 'DESIRED TOLERANCE.')
CCCCC CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3121)IDIST
3121 FORMAT('***** WARNING FROM ',A16,' MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3123)
3123 FORMAT(' ESTIMATE OF GAMMA MAY BE NEAR A SINGULAR POINT.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.4)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3131)IDIST
3131 FORMAT('***** ERROR FROM ',A16,' MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3133)
3133 FORMAT(' APPROPRIATE BRACKETING INTERVAL NOT FOUND.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.5)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3141)IDIST
3141 FORMAT('***** WARNING FROM ',A16,' MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,3143)
3143 FORMAT(' MAXIMUM ITERATIONS EXCEEDED.')
CALL DPWRST('XXX','BUG ')
ENDIF
C
GAMMA=XLOW
DSUM1=0.0D0
DO3108I=1,N
DSUM1=DSUM1 + DBLE(Y(I)**GAMMA)
3108 CONTINUE
SCALE=REAL((DSUM1/DBLE(IR))**DBLE(1.0D0/DBLE(GAMMA)))
IF(IWEIFL.EQ.'IWEI')THEN
SCALE=1.0/SCALE
GOTO3499
ENDIF
C
BN=1.0 + 2.2/AR**1.13
GAMMBC=GAMMA/BN
C
C COMPUTE STANDARD ERRORS. DO FOR BOTH THE NO BIAS CORRECTION
C ESTIMATES AND THE BIAS CORRECTED ESTIMATES.
C
DSUM1=0.0D0
DSCALE=DBLE(SCALE)
DO3210I=1,N
DX=DBLE(Y(I))
DSUM1=DSUM1 + ((DX/DSCALE)**GAMMA)*(DLOG(DX/DSCALE))**2
3210 CONTINUE
DSUM2=0.0D0
DO3220I=1,N
IF(TAG(I).EQ.1.0)THEN
DX=DBLE(Y(I))
DSUM2=DSUM2 + DLOG(DX)
ENDIF
3220 CONTINUE
C
FISH(1,1)=AR*(GAMMA/SCALE)**2
FISH(2,2)=AR/(GAMMA**2) + REAL(DSUM1)
FISH(2,1)=(GAMMA/SCALE)*(AR*LOG(SCALE) - (AR/GAMMA) -
1 REAL(DSUM2))
FISH(1,2)=FISH(2,1)
C
NDIM=2
CALL SGECO(FISH,NDIM,NDIM,ITEMP,RCOND,XTEMP)
IJOB=1
CALL SGEDI(FISH,NDIM,NDIM,ITEMP,XTEMP,XTEMP(MAXNXT/2),IJOB)
DO3230J=1,NDIM
DO3240I=1,NDIM
COV(I,J)=FISH(I,J)
3240 CONTINUE
3230 CONTINUE
IF(COV(1,1).GE.0.0)THEN
SCALSE=SQRT(COV(1,1))
ELSE
SCALSE=0.0
ENDIF
IF(COV(2,2).GE.0.0)THEN
GAMMSE=SQRT(COV(2,2))
ELSE
GAMMSE=0.0
ENDIF
IF(COV(2,1).GE.0.0)THEN
COVSE=SQRT(COV(2,1))
ELSE
COVSE=0.0
ENDIF
C
GABCSE=GAMMSE/BN
COBCSE=COVSE/SQRT(BN)
C
C CONFIDENCE INTERVALS FOR PARAMETERS. CAN BASE ON EITHER NORMAL
C APPROXIMATION OR ON LIKELIHOOD RATIO APPROXIMATION.
C
C NORMAL APPROXIMATION FIRST.
C
DO3310I=1,NUMALP
ALP=ALPHA(I)
P=1.0-(ALP/2.0)
CALL NORPPF(P,PPF)
IF(IWEIBC.EQ.'ON')THEN
ALOWSC(I)=SCALE - PPF*SCALSE
AUPPSC(I)=SCALE + PPF*SCALSE
ALOWGA(I)=GAMMBC - PPF*GABCSE
AUPPGA(I)=GAMMBC + PPF*GABCSE
ELSE
ALOWSC(I)=SCALE - PPF*SCALSE
AUPPSC(I)=SCALE + PPF*SCALSE
ALOWGA(I)=GAMMA - PPF*GAMMSE
AUPPGA(I)=GAMMA + PPF*GAMMSE
ENDIF
3310 CONTINUE
C
C NOW DO LIKELIHOOD RATIO APPROXIMATION.
C
C THIS NEEDS A LITTLE MORE DEBUGGING.
C
CCCCC IN2=N
CCCCC IN3=N
CCCCC DN=DBLE(N)
CCCCC AE=1.D-7
CCCCC RE=1.D-7
CCCCC NUTEMP=1
C
CCCCC DN=DBLE(N)
CCCCC DR=DBLE(IR)
CCCCC DG=DBLE(GAMMA)
CCCCC DS=DBLE(SCALE)
CCCCC DT1=DN*DLOG(DBLE(GAMMA)) - DN*DG*DLOG(DS)
CCCCC DSUM1=0.0D0
CCCCC DSUM2=0.0D0
CCCCC DO3325I=1,N
CCCCC DTEMP(I)=DBLE(Y(I))
CCCCC IF(TAG(I).EQ.1.0)DSUM1=DSUM1 + DLOG(DBLE(Y(I)))
CCCCC DSUM2=DSUM2 + DBLE(Y(I))**DG
C3325 CONTINUE
CCCCC DTERM2=DSUM1
CCCCC DTERM1=2.0D0*(DT1 + (DG-1.0D0)*DTERM2 - DS**(-DG)*DSUM2)
CCCCC DTERM7=DTERM2
CCCCC DTERM6=DTERM1
CCCCC DGAMMA=DBLE(GAMMA)
C
CCCCC DO3340I=1,NUMALP
CCCCC ALP=ALPHA(I)
CCCCC CALL CHSPPF(1.0-ALP,NUTEMP,APPF)
CCCCC DK=DBLE(APPF)
CCCCC DK2=DK
C
CCCCC XSTART=DBLE(ALOWGA(I))
CCCCC XLOW=XSTART/5.0D0
CCCCC XUP=DBLE(GAMMA)
CCCCC CALL DFZER2(WEIFU5,XLOW,XUP,XSTART,RE,AE,IFLAG,DTEMP)
CCCCC ALOWG2(I)=REAL(XLOW)
C
CCCCC XSTART=DBLE(AUPPGA(I))
CCCCC XUP=XSTART*5.0D0
CCCCC XLOW=DBLE(GAMMA)
CCCCC CALL DFZER2(WEIFU5,XLOW,XUP,XSTART,RE,AE,IFLAG,DTEMP)
CCCCC AUPPG2(I)=REAL(XLOW)
C
CCCCC XSTART=DBLE(ALOWSC(I))
CCCCC XLOW=XSTART/5.0D0
CCCCC XUP=DBLE(SCALE)
CCCCC CALL DFZER2(WEIFU6,XLOW,XUP,XSTART,RE,AE,IFLAG,DTEMP)
CCCCC ALOWS2(I)=REAL(XLOW)
C
CCCCC XSTART=DBLE(AUPPSC(I))
CCCCC XUP=XSTART*5.0D0
CCCCC XLOW=DBLE(SCALE)
CCCCC CALL DFZER2(WEIFU6,XLOW,XUP,XSTART,RE,AE,IFLAG,DTEMP)
CCCCC AUPPS2(I)=REAL(XLOW)
C3340 CONTINUE
C
C CONFIDENCE INTERVALS FOR SELECTED PERCENTILES.
C
C 1. STANDARD ERROR USES TECHNIQUE DEMONSTRATED IN EXAMPLE 17.4
C (P. 344) OF BURY. THIS IS BASED ON PROPOGATION OF ERROR.
C
C 2. CONFIDENCE INTERVAL IS THEN GENERATED USING NORMAL
C APPROXIMATION (EXAMPLE 17.7 OF BURY). BURY ALSO DEMONSTRATES
C A LIKELIHOOD RATIO APPROACH, BUT OMIT THIS FOR NOW.
C
IF(NPERC.GE.1)THEN
C
ALPHL=ALPHAP/2.0
ALPHU=1.0 - ALPHAP/2.0
CALL NORPPF(ALPHU,Z95)
MINMAX=1
C
IF(IWEIBC.EQ.'ON')THEN
G=GAMMBC
GSE=GABCSE
COVZ=COBCSE
ELSE
G=GAMMA
GSE=GAMMSE
COVZ=COVSE
ENDIF
C
WRITE(IOUNI1,3431)
WRITE(IOUNI1,3432)
DO3429I=1,NPERC
QPTEMP=QP(I)/100.0
CALL WEIPPF(QPTEMP,G,MINMAX,APPF)
XQPHAT(I)=SCALE*APPF
C
C=LOG(1.0/(1.0 - QPTEMP))
DA=C**(1.0/G)
DB=-(SCALE*C**(1.0/G)*LOG(C)/(G**2))
TERM1=(DA*SCALSE)**2
TERM2=(DB*GSE)**2
TERM3=2.0*DA*DB*COVZ*COVZ
SEXQP=SQRT(TERM1 + TERM2 + TERM3)
XQPSE(I)=SEXQP
XQPLCL(I)=XQPHAT(I) - Z95*SEXQP
XQPUCL(I)=XQPHAT(I) + Z95*SEXQP
WRITE(IOUNI1,'(5E15.7)')
1 QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),XQPUCL(I)
3429 CONTINUE
3431 FORMAT(15X,' POINT ',' LOWER ',
1 ' UPPER')
3432 FORMAT(' PERCENTILE ',' ESTIMATE ',
1 'CONFIDENCE LIMIT ','CONFIDENCE LIMIT')
ENDIF
C
3499 CONTINUE
C
C *************************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR WEIBULL MLE ESTIMATE **
C *************************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLW2')
1 CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 1: END ASIS MODE AND WRITE A HEADER
C
5001 FORMAT('')
5002 FORMAT('WEIBULL PARAMETER ESTIMATION:')
5003 FORMAT('INVERTED WEIBULL PARAMETER ESTIMATION:')
5004 FORMAT(' TIME CENSORED CASE')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
IF(IWEIFL.EQ.'IWEI')THEN
WRITE(ICOUT,5003)
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,5002)
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,5004)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Two-Parameter Model (Location = 0)')
5018 FORMAT(' Time Censored Case')
5019 FORMAT(' ')
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5018)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5060 FORMAT(' Summary Statistics:')
55060 FORMAT(' Maximum Likelihood Estimates:')
5061 FORMAT(' Number of Observations:')
55061 FORMAT(' Number of Failures:')
5062 FORMAT(' Sample Minimum:')
55062 FORMAT(' Sample Maximum:')
5063 FORMAT(' Sample Mean:')
5064 FORMAT(' Sample Standard Deviation:')
5065 FORMAT(' Estimate of Scale Parameter:')
5066 FORMAT(' Standard Error of Scale Parameter:')
5067 FORMAT(' Estimate of Shape Parameter:')
5068 FORMAT(' Standard Error of Shape Parameter:')
55067 FORMAT(' Estimate of Bias Corrected Shape Parameter:')
55068 FORMAT(' Standard Error of Bias Corrected Shape ',
1 'Parameter:')
5069 FORMAT(' Standard Error of Covariance of Scale and ',
1 'Shape Parameter:')
55069 FORMAT(' Standard Error of Bias Corrected Covariance ',
1 'of Scale and Shape Parameter:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5060)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)IR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55060)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(IWEIFL.NE.'IWEI')THEN
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)SCALSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
ENDIF
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMA
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
IF(IWEIFL.NE.'IWEI')THEN
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GAMMBC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)GABCSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COVSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)COBCSE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
ENDIF
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(IWEIFL.EQ.'IWEI')GOTO5499
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5111 FORMAT('')
5113 FORMAT('')
5115 FORMAT(' ')
5117 FORMAT(' Confidence Limits for the Shape ',
1 'Parameter ')
5118 FORMAT(' (Based on Biased Estimate)')
55118 FORMAT(' (Based on Bias Corrected Estimate)')
5119 FORMAT(' ')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5117)
CALL DPWRST('XXX','WRIT')
IF(IWEIBC.EQ.'ON')THEN
WRITE(ICOUT,55118)
ELSE
WRITE(ICOUT,5118)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
5121 FORMAT(' ')
5123 FORMAT(' ')
5125 FORMAT(' Confidence Value (%)')
5127 FORMAT(' | ')
5129 FORMAT(' ')
5131 FORMAT(' Lower Limit')
5133 FORMAT(' Upper Limit')
5134 FORMAT(' ')
5136 FORMAT(' | ')
5137 FORMAT(' Normal Approximation')
5138 FORMAT(' Likelihood Ratio')
5139 FORMAT(' | ')
C5161 FORMAT(' ')
5161 FORMAT(' | ')
5162 FORMAT(' ')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5136)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5138)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5127)
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5129)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5131)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5127)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5129)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5133)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5127)
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5141 FORMAT(' | ')
5147 FORMAT(' ')
5149 FORMAT(' | ')
5151 FORMAT(' ',G15.7)
5159 FORMAT(' | ')
DO5140I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWGA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPGA(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5149)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5151)ALOWG2(I)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5147)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5149)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5151)AUPPG2(I)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5147)
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5140 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5191 FORMAT(' ')
5193 FORMAT(' ')
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5217 FORMAT(' Confidence Limits for the Scale ',
1 'Parameter')
WRITE(ICOUT,5111)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5113)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5115)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5217)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5119)
CALL DPWRST('XXX','WRIT')
C
C STEP 3: DEFINE HEADER ROW
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5134)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5136)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5137)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5136)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5138)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5127)
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5123)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5125)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5131)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5129)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5133)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5127)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5129)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5131)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5127)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5129)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5133)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5127)
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C FOLLOWING ADDS A RULE LINE BETWEEN HEADER AND DATA LINES
C
WRITE(ICOUT,5121)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5161)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5162)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5139)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
DO5240I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
WRITE(ICOUT,5141)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ATEMP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)ALOWSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5149)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5151)AUPPSC(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5147)
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5149)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5151)ALOWS2(I)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5147)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5149)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5151)AUPPS2(I)
CCCCC CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,5147)
CCCCC CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5159)
CALL DPWRST('XXX','WRIT')
5240 CONTINUE
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C START THE TABLE FOR PERCENTILE CONFIDENCE INTERVALS
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,999)
WRITE(ICOUT,5811)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5813)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5815)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5817)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5816)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5819)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5861)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55862)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5863)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5849)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5864)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5848)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5870)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5872)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
C
DO55880I=1,NPERC
WRITE(ICOUT,5841)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)QP(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPHAT(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPSE(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPLCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5843)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5851)XQPUCL(I)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5847)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5859)
CALL DPWRST('XXX','WRIT')
55880 CONTINUE
C
C END THE TABLE AND RESET ASIS MODE
C
WRITE(ICOUT,5191)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5193)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
C
5499 CONTINUE
C
WRITE(ICOUT,5801)
CALL DPWRST('XXX','WRIT')
C
5801 FORMAT('')
5811 FORMAT('')
5813 FORMAT('')
5815 FORMAT(' ')
5816 FORMAT(' Alpha = ',F7.3,'')
5817 FORMAT(' Confidence Limits (Normal Approximation) ',
1 'for Selected ',
1 'Percentiles (No Bias Correction Estimates)')
5818 FORMAT(' Confidence Limits (Normal Approximation)',
1 ' for Selected ',
1 'Percentiles (Bias Corrected Estimates)')
5819 FORMAT(' ')
5841 FORMAT(' ')
5843 FORMAT(' | ')
5847 FORMAT(' | ')
5848 FORMAT(' ')
5849 FORMAT(' ')
5851 FORMAT(' ',G15.7)
5859 FORMAT(' | ')
5861 FORMAT(' Percentile')
5862 FORMAT(' Point Estimate')
55862 FORMAT(' Standard Error')
5863 FORMAT(' Lower Confidence Limit')
5864 FORMAT(' Upper Confidence Limit')
5870 FORMAT(' ')
5872 FORMAT(' ')
CCCCC WRITE OUTPUT IN LATEX FORMAT
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER,
C AND WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8004 FORMAT(A1,'end{table}')
8005 FORMAT('{',A1,'bf Weibull Parameter ',
1 'Estimation: Time Censored Case}')
8006 FORMAT('{',A1,'bf Inverted Weibull Parameter ',
1 'Estimation: Time Censored Case}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Two-Parameter Model ($',A1,
1 'mu$ = 0 Case)}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
IF(IWEIFL.EQ.'IWEI')THEN
WRITE(ICOUT,8006)IBASLC
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,8005)IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Summary Statistics: & ',2X,A1,A1)
8022 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8023 FORMAT(5X,'Number of Failures: & ',I8,2X,A1,A1)
8024 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8028 FORMAT(5X,' & ',2X,A1,A1)
8029 FORMAT(5X,'Maximum Likelihood Estimates: & ',2X,A1,A1)
8030 FORMAT(5X,'Estimate of Scale Parameter: & ',G15.7,2X,A1,A1)
8031 FORMAT(5X,'Standard Error of Scale Parameter: & ',
1 G15.7,2X,A1,A1)
8032 FORMAT(5X,'Estimate of Shape Parameter: & ',G15.7,2X,A1,A1)
8033 FORMAT(5X,'Standard Error of Shape Parameter: & ',
1 G15.7,2X,A1,A1)
8034 FORMAT(5X,'Estimate of Bias Corrected Shape Parameter: & ',
1 G15.7,2X,A1,A1)
8035 FORMAT(5X,'Standard Error of Bias Corrected Shape ',
1 'Parameter: & ',G15.7,2X,A1,A1)
8036 FORMAT(5X,'Standard Error of Covariance of Scale and Shape ',
1 'Parameter: & ',G15.7,2X,A1,A1)
8037 FORMAT(5X,'Standard Error of Bias Corrected Covariance of ',
1 'Scale and Shape Parameter: & ',G15.7,2X,A1,A1)
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)IR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8029)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)SCALE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IWEIFL.NE.'IWEI')THEN
WRITE(ICOUT,8031)SCALSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8032)GAMMA,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IWEIFL.NE.'IWEI')THEN
WRITE(ICOUT,8033)GAMMSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8034)GAMMBC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)GABCSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8035)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8036)COVSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8037)COBCSE,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8093 FORMAT(A1,'end{center}')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8004)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(IWEIFL.EQ.'IWEI')GOTO8499
C
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8107 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8109 FORMAT(A1,'begin{center}')
8111 FORMAT(5X,'{',A1,'bf Confidence Limits for Shape Parameter ',
1 '(Based on No Bias Correction Estimate)}')
8112 FORMAT(5X,'{',A1,'bf Confidence Limits for Shape Parameter ',
1 '(Based on Bias Corrected Estimate)}')
8113 FORMAT(A1,'end{center}')
8115 FORMAT(5X,'} ',A1,A1)
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
IF(IWEIBC.EQ.'ON')THEN
WRITE(ICOUT,8112)IBASLC
ELSE
WRITE(ICOUT,8111)IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8120 FORMAT(5X,A1,'begin{tabular} {ccc}')
8121 FORMAT(5X,'Confidence & Lower & Upper ',2X,A1,A1)
8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit',2X,A1,A1)
8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,2X,A1,A1)
C8120 FORMAT(5X,A1,'begin{tabular} {ccccc}')
C8121 FORMAT(5X,'Confidence & Lower & Upper & Lower & Upper ',
CCCCC1 2X,A1,A1)
C8122 FORMAT(5X,'Value (',A1,'%) & Limit & Limit & Limit & Limit',
CCCCC1 2X,A1,A1)
C8131 FORMAT(5X,F8.3,' & ',G15.7,' & ',G15.7,' & ',G15.7,' & ',
CCCCC1 G15.7,2X,A1,A1)
8126 FORMAT(5X,'& ',A1,'multicolumn{2}{c}{Normal Approximation}',
CCCCC1 ' & ',A1,'multicolumn{2}{c}{Likelihood Ratio}',
1 2X,A1,A1)
8140 FORMAT(5X,A1,'hline')
8149 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8130I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
CCCCC WRITE(ICOUT,8131)ATEMP,ALOWGA(I),AUPPGA(I),ALOWG2(I),
CCCCC1 AUPPG2(I),IBASLC,IBASLC
WRITE(ICOUT,8131)ATEMP,ALOWGA(I),AUPPGA(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8130 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8191 FORMAT(A1,'end{table}')
8193 FORMAT(A1,'end{center}')
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8211 FORMAT(5X,'{',A1,'bf Confidence Limits for Scale Parameter}')
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8211)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8107)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8113)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
WRITE(ICOUT,8109)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8120)IBASLC
CALL DPWRST('XXX','WRIT')
CCCCC WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC,IBASLC
WRITE(ICOUT,8126)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8121)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8122)IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8140)IBASLC
CALL DPWRST('XXX','WRIT')
DO8230I=1,NUMALP
ATEMP=100.0*(1.0-ALPHA(I))
CCCCC WRITE(ICOUT,8131)ATEMP,ALOWSC(I),AUPPSC(I),ALOWS2(I),
CCCCC1 AUPPS2(I),IBASLC,IBASLC
WRITE(ICOUT,8131)ATEMP,ALOWSC(I),AUPPSC(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8230 CONTINUE
WRITE(ICOUT,8149)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
WRITE(ICOUT,8193)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8191)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C WRITE SELECTED PERCENTILES (IF ANY)
C
IF(NPERC.GT.0)THEN
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8803)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8810)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
IF(IWEIBC.EQ.'ON')THEN
WRITE(ICOUT,88811)IBASLC
ELSE
WRITE(ICOUT,8811)IBASLC
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8812)IBASLC,IBASLC,ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8807)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8813)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8809)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8820)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8821)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8822)IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,IBASLC,
1 IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8840)IBASLC
CALL DPWRST('XXX','WRIT')
DO8830I=1,NPERC
WRITE(ICOUT,8823)QP(I),XQPHAT(I),XQPSE(I),XQPLCL(I),
1 XQPUCL(I),IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
8830 CONTINUE
WRITE(ICOUT,8849)IBASLC
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,8891)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8893)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
8801 FORMAT(A1,'end{verbatim}')
8803 FORMAT(A1,'begin{table}')
8807 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8809 FORMAT(A1,'begin{center}')
8810 FORMAT(5X,'{',A1,'bf Confidence Limits (Normal Approximation)',
1 ' for Selected Percentiles}')
8811 FORMAT(5X,'{',A1,'bf (Based on No Bias Correction Estimates):}')
88811 FORMAT(5X,'{',A1,'bf (Based on Bias Corrected Estimates):}')
8812 FORMAT(5X,'{',A1,'bf $',A1,'alpha$ = ',F7.3,'}')
8813 FORMAT(A1,'end{center}')
8815 FORMAT(5X,'} ',A1,A1)
8820 FORMAT(5X,A1,'begin{tabular} {ccccc}')
8821 FORMAT(5X,' & {',A1,'bf Point} & {',A1,'bf Standard} & {',
1 A1,'bf Lower} & {',A1,'bf Upper}',2X,A1,A1)
8822 FORMAT(5X,'{',A1,'bf Percentile} & {',A1,'bf Estimate} & {',
1 A1,'bf Error} & {',A1,'bf Confidence Limit} & {',
1 A1,'bf Confidence Limit}',
1 2X,A1,A1)
8823 FORMAT(5X,G15.7,' & ',G15.7,' & ',G15.7,' & ',G15.7,
1 ' & ',G15.7,2X,A1,A1)
8840 FORMAT(5X,A1,'hline')
8849 FORMAT(A1,'end{tabular}')
8891 FORMAT(A1,'end{center}')
8893 FORMAT(A1,'end{table}')
C
8499 CONTINUE
C
8899 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8899)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
C
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
IF(IWEIFL.EQ.'IWEI')THEN
WRITE(ICOUT,4201)
4201 FORMAT(6X,'INVERTED WEIBULL PARAMETER ',
1 'ESTIMATION: CENSORED CASE')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4203)
4203 FORMAT(6X,'WEIBULL PARAMETER ESTIMATION: CENSORED CASE')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,4209)
4209 FORMAT(12X,'TWO-PARAMETER MODEL (LOCATION = 0)')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4211)
4211 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4213)N
4213 FORMAT('NUMBER OF OBSERVATIONS = ',
1 I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4215)XMEAN
4215 FORMAT('SAMPLE MEAN = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4217)XSD
4217 FORMAT('SAMPLE STANDARD DEVIATION = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4218)XMIN
4218 FORMAT('SAMPLE MINIMUM = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4219)XMAX
4219 FORMAT('SAMPLE MAXIMUM = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(IWEIFL.EQ.'IWEI')GOTO4400
C
WRITE(ICOUT,4221)
4221 FORMAT('MAXIMUM LIKELIHOOD ESTIMATES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)SCALE
4223 FORMAT('ESTIMATE OF SCALE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4225)SCALSE
4225 FORMAT('STANDARD ERROR OF SCALE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4227)GAMMA
4227 FORMAT('ESTIMATE OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4231)GAMMSE
4231 FORMAT('STANDARD ERROR OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4229)GAMMBC
4229 FORMAT('BIAS CORRECTED ESTIMATE OF SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4232)GABCSE
4232 FORMAT('STANDARD ERROR OF BIAS CORRECTED SHAPE PARAMETER = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4233)COVSE
4233 FORMAT('STANDARD ERROR OF SHAPE/SCALE COVARIANCE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4234)COBCSE
4234 FORMAT('STD ERR OF BIAS CORRECTED SHAPE/SCALE COVARIANCE = ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4240)
4240 FORMAT('CONFIDENCE INTERVAL FOR SCALE PARAMETER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4242)
C4242 FORMAT(' NORMAL APPROXIMATION',
CCCCC1 ' LIKELIHOOD RATIO')
4242 FORMAT(' NORMAL APPROXIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
C4243 FORMAT(' CONFIDENCE LOWER UPPER',
CCCCC1 ' LOWER UPPER')
4243 FORMAT(' CONFIDENCE LOWER UPPER')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
C4245 FORMAT(' VALUE (%) LIMIT LIMIT',
CCCCC1 ' LIMIT LIMIT')
4245 FORMAT(' VALUE (%) LIMIT LIMIT')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
C4246 FORMAT('---------------------------------------------------',
CCCCC1 '--------------------')
4246 FORMAT('---------------------------------------------')
CALL DPWRST('XXX','WRIT')
DO4249I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
CCCCC WRITE(ICOUT,4247)ATEMP,ALOWSC(I),AUPPSC(I),ALOWS2(I),
CCCCC1 AUPPS2(I)
WRITE(ICOUT,4247)ATEMP,ALOWSC(I),AUPPSC(I)
4247 FORMAT(' ',F8.3,10X,4(G12.6,2X))
CALL DPWRST('XXX','WRIT')
4249 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4252)
4252 FORMAT('CONFIDENCE INTERVAL FOR SHAPE PARAMETER')
CALL DPWRST('XXX','WRIT')
IF(IWEIBC.EQ.'ON')THEN
WRITE(ICOUT,4254)
4254 FORMAT('(BASED ON BIAS CORRECTED ESTIMATES)')
CALL DPWRST('XXX','WRIT')
ELSE
WRITE(ICOUT,4256)
4256 FORMAT('(BASED ON NO BIAS CORRECTION ESTIMATES)')
CALL DPWRST('XXX','WRIT')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4242)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4243)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4245)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4246)
CALL DPWRST('XXX','WRIT')
DO4259I=1,NUMALP
ATEMP=100.0*(1.0 - ALPHA(I))
CCCCC WRITE(ICOUT,4247)ATEMP,ALOWGA(I),AUPPGA(I),ALOWG2(I),
CCCCC1 AUPPG2(I)
WRITE(ICOUT,4247)ATEMP,ALOWGA(I),AUPPGA(I)
CALL DPWRST('XXX','WRIT')
4259 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4911)
CALL DPWRST('XXX','WRIT')
IF(IWEIBC.EQ.'ON')THEN
WRITE(ICOUT,4913)
ELSE
WRITE(ICOUT,4914)
ENDIF
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4915)ALPHAP
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4921)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4922)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4346)
CALL DPWRST('XXX','WRIT')
C
4911 FORMAT('CONFIDENCE LIMITS (NORMAL APPROXIMATION) FOR ',
1 'SELECTED PERCENTILES:')
4913 FORMAT('(BASED ON BIAS CORRECTED ESTIMATES)')
4914 FORMAT('(BASED ON NO BIAS CORRECTION ESTIMATES)')
4915 FORMAT('ALPHA = ',F7.4)
4921 FORMAT(10X,' POINT ',' STANDARD ',
1 ' LOWER ', ' UPPER')
4922 FORMAT('PERCENTILE',' ESTIMATE ',' ERROR ',
1 'CONFIDENCE LIMIT ',' CONFIDENCE LIMIT')
4346 FORMAT('-----------------------------------',
1 '-----------------------------------')
C
DO4981I=1,NPERC
WRITE(ICOUT,4932)QP(I),XQPHAT(I),XQPSE(I),
1 XQPLCL(I),XQPUCL(I)
4932 FORMAT(2X,F8.4,2G15.7,2X,G15.7,2X,G15.7)
CALL DPWRST('XXX','WRIT')
4981 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
ENDIF
GOTO4499
C
4400 CONTINUE
WRITE(ICOUT,4221)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4223)SCALE
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4227)GAMMA
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
4499 CONTINUE
C
IF(IFEEDB.EQ.'ON')THEN
WRITE(ICOUT,4291)
4291 FORMAT('THE FOLLOWING INTERNAL PARAMETERS ARE SAVED:')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,4293)
4293 FORMAT(' ALPHAML, ALPHASE, GAMMAML, GAMMASE, ',
1 'CAMMABC, GAMMABCSE,COVSE,COVBCSE')
CALL DPWRST('XXX','BUG ')
ENDIF
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
IF(IFEEDB.EQ.'ON')THEN
IF(NPERC.GT.0)THEN
WRITE(ICOUT,4943)
4943 FORMAT('PERCENTILE CONFIDENCE LIMITS WRITTEN TO ',
1 'FILE dpst1f.dat')
CALL DPWRST('XXX','BUG ')
ENDIF
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
ENDIF
C
ENDIF
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLW2')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLW2--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLWA(Y,N,
1DTEMP1,XTEMP2,YTEMP2,TEMP3,MAXNXT,
1AMOM,AFREQ,AML,CMOM,CFREQ,CML,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE METHOD OF MOMENTS
C ESTIMATE FOR WARING DISTRIBUTION. USE THE FORMULA
C U1 = 1/(P-1)
C WHICH GIVES
C P = (1+U1)/U1
C REPLACE POPULATION MEAN, U1, WITH SAMPLE ESTIMATE,
C XBAR. NOTE THAT MEAN IS UNDEFINED FOR P < 1.
C LARGE VALUES OF THE MEAN INDICATE A VALUE OF P
C LESS THAN 1, IN WHICH CASE ESTIMATE OF P IS NOT
C VALID.
C EXAMPLE--WARING MOMENTS Y
C REFERENCE--"UNIVARIATE DISCRETE DISTRIBUTIONS", SECOND EDITION,
C JOHNSON, KOTZ, AND KEMP, WILEY, PP. 276.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/4
C ORIGINAL VERSION--APRIL 2004.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 IRELAT
CHARACTER*4 IRHSTG
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
REAL Y(*)
REAL XTEMP2(*)
REAL YTEMP2(*)
REAL TEMP3(*)
DOUBLE PRECISION DTEMP1(*)
C
DOUBLE PRECISION FVEC(2)
DOUBLE PRECISION XPAR(2)
DOUBLE PRECISION TOL
C
EXTERNAL WARFU2
COMMON/WARCOM/NTOT
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='WA '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLWA')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLWA--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLWA')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN WARING PARAMETER ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** WARNING FROM WARING PARAMETER ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
C ******************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR WARING MLE ESTIMATE **
C ******************************
C
4100 CONTINUE
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLWA')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
DO4105I=1,N
ITEMP=INT(Y(I)+0.5)
Y(I)=REAL(ITEMP)
4105 CONTINUE
IERROR='NO'
IWRITE='OFF'
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
IF(XMIN.LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4111)
4111 FORMAT('***** ERROR FROM WARING PARAMETER ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4113)
4113 FORMAT(' NEGATIVE VALUE ENCOUNTERED.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
CALL VAR(Y,N,IWRITE,XVAR,IBUGA3,IERROR)
C
C COMPUTE MOMENT ESTIMATORS.
C FROM IRWIN, "MATHEMATICS IN MEDICAL AND BIOLOGICAL
C STATISTICS", JOURNAL OF THE ROYAL STATISTICAL SOCIETY, A,
C 1963, 126, PP. 1-44. THE FORMULAS ARE:
C
C CHAT = XBAR[XVAR + XBAR*(XBAR+1)]/[XVAR - XBAR*(XBAR+1)]
C AHAT = [XVAR*(XBAR+2) + (XBAR+1)*XBAR**2]/[XVAR-XBAR*(XBAR+1)]
C
TERM1=XMEAN*(XMEAN+1.0)
CMOM=XMEAN*(XVAR+TERM1)/(XVAR-TERM1)
TERM2=XVAR*(XMEAN+2.0) + (XMEAN+1.0)*XMEAN**2
AMOM=TERM2/(XVAR-TERM1)
C
C COMPUTE ESTIMATE BASED ON SAMPLE MEAN AND FIRST OBSERVED
C FREQUENCY. FROM IRWIN, "MATHEMATICS IN MEDICAL AND BIOLOGICAL
C STATISTICS", JOURNAL OF THE ROYAL STATISTICAL SOCIETY, A,
C 1963, 126, PP. 1-44. THE FORMULA IS:
C
C CHAT = 1/((1/Q1) - (1/XBAR) - 1)
C AHAT = (1Q1)/((1/Q1) - (1/XBAR) - 1)
C
C WITH f1 = FIRST OBSERVED FREQUENCY AND Q1=1-F1. CALL DPBINI TO
C CREATE f1 VALUES.
C
IRELAT='OFF'
IRHSTG='OFF'
XSTART=XMIN-0.5
XSTOP=XMAX+0.5
CLWID=1.0
CALL DPBINI(Y,N,IRELAT,CLWID,XSTART,XSTOP,IRHSTG,
1 YTEMP2,XTEMP2,N2,IBUGA3,IERROR)
ICNT=0
DO101I=1,N2
IF(YTEMP2(I).GT.0)THEN
ICNT=ICNT+1
YTEMP2(ICNT)=YTEMP2(I)
XTEMP2(ICNT)=XTEMP2(I)
ENDIF
101 CONTINUE
N2=ICNT
IF(IERROR.EQ.'YES')GOTO9000
F1=YTEMP2(1)/REAL(N)
Q1=1.0 - F1
TERM1=1.0/XMEAN
TERM2=1.0/Q1
CFREQ=1.0/(TERM2 - TERM1 - 1.0)
AFREQ=TERM2/(TERM2 - TERM1 - 1.0)
C
C NOW COMPUTE MAXIMUM LIKELIHOOD ESTIMATE
C
N22=2*N2
IF(N22.GT.MAXNXT)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,106)
106 FORMAT('***** WARNING FROM WARING MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,108)MAXNXT/2
108 FORMAT(' NUMBER OF FREQUENCY CLASSES EXCEEDED ',I8)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,109)
109 FORMAT(' MAXIMUM LIKELIHOOD ESTIMATION NOT PERFORMED.')
CALL DPWRST('XXX','BUG ')
CML=0.0
AML=0.0
ELSE
TEMP3(N22)=YTEMP2(N2)
IF(N2.GT.1)THEN
DO110I=N2-1,1,-1
TEMP3(N2+I)=YTEMP2(I)+TEMP3(N2+I+1)
110 CONTINUE
ENDIF
DO120I=1,N2
TEMP3(I)=XTEMP2(I)
120 CONTINUE
XPAR(1)=DBLE(CFREQ)
XPAR(2)=DBLE(AFREQ)
NTOT=N
NCLASS=N2
IOPT=2
TOL=1.0D-6
NVAR=2
NPRINT=-1
INFO=0
LWA=MAXNXT
CALL DNSQE(WARFU2,JAC,IOPT,NVAR,XPAR,FVEC,TOL,NPRINT,INFO,
1 DTEMP1,LWA,TEMP3,NCLASS)
C
CML=REAL(XPAR(1))
AML=REAL(XPAR(2))
C
ENDIF
C
C
C *********************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR WARING MLE ESTIMATE **
C *********************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLWA')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Waring Parameter Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Method of Moments Estimate of C ')
5065 FORMAT(' Method of Moments Estimate of A ')
5066 FORMAT(' Method of First Frequency Estimate of ',
1 'C ')
5067 FORMAT(' Method of First Frequency Estimate of ',
1 'A ')
5068 FORMAT(' Maximum Likelihood Estimate of C ')
5069 FORMAT(' Maximum Likelihood Estimate of A ')
5071 FORMAT(' Sample First Frequency:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)F1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)CMOM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMOM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)CFREQ
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AFREQ
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)CML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Yule Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Method of Moments Estimate of $C$: & ',
1 G15.7,2X,A1,A1)
8025 FORMAT(5X,'Method of Moments Estimate of $A$: & ',
1 G15.7,2X,A1,A1)
8026 FORMAT(5X,'Method of First Frequency Estimate of $C$: & ',
1 G15.7,2X,A1,A1)
8027 FORMAT(5X,'Method of First Frequency Estimate of $A$: & ',
1 G15.7,2X,A1,A1)
8028 FORMAT(5X,'Maximum Likelihood Estimate of $C$: & ',
1 G15.7,2X,A1,A1)
8029 FORMAT(5X,'Maximum Likelihood Estimate of $A$: & ',
1 G15.7,2X,A1,A1)
8031 FORMAT(5X,'Sample First Frequency: & ',G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)F1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)CMOM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)AMOM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)CFREQ,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)AFREQ,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)CML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)AML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4301)
4301 FORMAT('WARING PARAMETER ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4311)N
4311 FORMAT(6X,'NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4313)XMEAN
4313 FORMAT(6X,'SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4315)XSD
4315 FORMAT(6X,'SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4316)F1
4316 FORMAT(6X,'SAMPLE FIRST FREQUENCY = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4317)CMOM
4317 FORMAT(6X,'METHOD OF MOMENTS ESTIMATE OF C = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4318)AMOM
4318 FORMAT(6X,'METHOD OF MOMENTS ESTIMATE OF A = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4319)CFREQ
4319 FORMAT(6X,'METHOD OF FIRST FREQUENCY ESTIMATE OF C = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4320)AFREQ
4320 FORMAT(6X,'METHOD OF FIRST FREQUENCY ESTIMATE OF A = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4321)CML
4321 FORMAT(6X,'MAXIMUM LIKELIHOOD ESTIMATE OF C = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4322)AML
4322 FORMAT(6X,'MAXIMUM LIKELIHOOD ESTIMATE OF A = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4341)
4341 FORMAT('PMOM AND PFREQ WILL BE SAVED AS INTERNAL PARAMETERS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLWA')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLWA--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLWC(Y,TAG,N,
1XTEMP,MAXNXT,
1GAMMA,ALPHA,NUMV,ICENTY,TEND,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE MAXIMUM LIKELIHOOD
C ESTIMATES FOR CENSORED WEIBULL DISTRIBUTION
C IT ONLY SUPPORTS TYPE 2 CENSORING
C EXAMPLE--WEIBULL MAXIMUM LIKELIHOOD Y TAG
C REFERENCE--XX
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--98/6
C ORIGINAL VERSION--JUNE 1998.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICENTY
C
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION TAG(*)
DIMENSION XTEMP(*)
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='WC '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MLWC')GOTO90
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLWC--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I),TAG(I)
57 FORMAT('I,Y(I),TAG(I) = ',I8,2E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
WRITE(ICOUT,58)NUMV
58 FORMAT('NUMV = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,59)ICENTY
59 FORMAT('ICENTY = ',A4)
CALL DPWRST('XXX','WRIT')
90 CONTINUE
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.GE.1)GOTO1119
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN DPMLWC--THE NUMBER OF OBSERVATIONS ',
1'FOR VARIABLE 1 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1112)N
1112 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1119 CONTINUE
C
IF(N.EQ.1)GOTO1120
GOTO1129
1120 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1121)
1121 FORMAT('***** NOTE FROM DPMLWC--VARIABLE 1 ',
1'HAS ONLY 1 ELEMENT')
CALL DPWRST('XXX','WRIT')
GOTO9000
1129 CONTINUE
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)HOLD
1131 FORMAT('***** NOTE FROM DPMLWC--VARIABLE 1 ',
1'HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
1290 CONTINUE
C
C **********************************
C ** STEP 51-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR WEIBULL MLE **
C ** ESTIMATE (CENSORED CASE) **
C ** TYPE II CENSORING **
C **********************************
C
5100 CONTINUE
C
ISTEPN='43'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(NUMV.EQ.2.AND.(ICENTY.EQ.'2 '.OR.ICENTY.EQ.'1 '))THEN
IERROR='NO'
IWRITE='OFF'
C
CALL SORTC(Y,TAG,N,Y,TAG)
IR=0
DO5105I=1,N
IF(ABS(TAG(I)).GE.0.5)THEN
IR=IR+1
XTEMP(IR)=Y(I)
ENDIF
5105 CONTINUE
IF(IR.LT.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5109)
5109 FORMAT(
1 '****ERROR FROM DPMLWC: AFTER CENSORING, ONLY ',I3,
1 ' OBSERVATIONS REMAIN.')
IERROR='YES'
GOTO9000
ENDIF
AR=REAL(IR)
C
CALL WBLES2(XTEMP,N,IR,ALPHA,GAMMA,IERROR)
C
C *********************************
C ** STEP 52-- **
C ** WRITE OUT EVERYTHING **
C ** FOR WEIBULL MLE ESTIMATE **
C **********************************
C
ISTEPN='52'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'OFF')GOTO5290
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5211)
5211 FORMAT(
1'WEIBULL 2-PARAMETER MAXIMUM LIKELIHOOD ESTIMATE (CENSORED ',
1'CASE):')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5242)N
5242 FORMAT(6X,'NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5243)IR
5243 FORMAT(6X,'NUMBER OF UNCENSORED OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5244)GAMMA
5244 FORMAT(6X,'SHAPE PARAMETER GAMMA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5246)ALPHA
5246 FORMAT(6X,'SCALE PARAMETER ALPHA = ',G15.7)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5278)
5278 FORMAT(6X,'GAMMA AND ALPHA WILL BE SAVED AS INTERNAL ',
1 'PARAMETERS.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
5290 CONTINUE
GOTO9000
ENDIF
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'OFF'.AND.ISUBRO.NE.'MLWC')GOTO9090
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLWC--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
9090 CONTINUE
C
RETURN
END
SUBROUTINE DPMLYU(Y,N,
1XTEMP2,YTEMP2,VTEMP,MAXNXT,
1PMOM,PFREQ,PML,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES THE METHOD OF MOMENTS
C ESTIMATE FOR YULE DISTRIBUTION. USE THE FORMULA
C U1 = 1/(P-1)
C WHICH GIVES
C P = (1+U1)/U1
C REPLACE POPULATION MEAN, U1, WITH SAMPLE ESTIMATE,
C XBAR. NOTE THAT MEAN IS UNDEFINED FOR P < 1.
C LARGE VALUES OF THE MEAN INDICATE A VALUE OF P
C LESS THAN 1, IN WHICH CASE ESTIMATE OF P IS NOT
C VALID.
C EXAMPLE--YULE MOMENTS Y
C REFERENCE--"UNIVARIATE DISCRETE DISTRIBUTIONS", SECOND EDITION,
C JOHNSON, KOTZ, AND KEMP, WILEY, PP. 276.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2004/4
C ORIGINAL VERSION--APRIL 2004.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 IRELAT
CHARACTER*4 IRHSTG
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION XTEMP2(*)
DIMENSION YTEMP2(*)
DIMENSION VTEMP(*)
C
REAL YULFU2
EXTERNAL YULFU2
COMMON/YULCOM/NTOT,NCLASS
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='YU '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLYU')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLYU--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N
55 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,Y(I)
57 FORMAT('I,Y(I) = ',I8,E15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLYU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.1)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN YULE METHOD OF MOMENTS ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS NON-POSITIVE')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
1130 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** WARNING FROM YULE MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' VARIABLE 1 HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
GOTO9000
1139 CONTINUE
C
C ******************************
C ** STEP 41-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR YULE MLE ESTIMATE **
C ******************************
C
4100 CONTINUE
C
ISTEPN='41'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
DO4105I=1,N
ITEMP=INT(Y(I)+0.5)
Y(I)=REAL(ITEMP)
4105 CONTINUE
IERROR='NO'
IWRITE='OFF'
CALL MINIM(Y,N,IWRITE,XMIN,IBUGA3,IERROR)
CALL MAXIM(Y,N,IWRITE,XMAX,IBUGA3,IERROR)
IF(XMIN.LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4111)
4111 FORMAT('***** ERROR FROM YULE METHOD OF MOMENTS ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4113)
4113 FORMAT(' NEGATIVE VALUE ENCOUNTERED.')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
CALL MEAN(Y,N,IWRITE,XMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,XSD,IBUGA3,IERROR)
PMOM=(XMEAN+1.0)/XMEAN
C
C COMPUTE ESTIMATE BASED ON SAMPLE MEAN AND FIRST OBSERVED
C FREQUENCY. FROM IRWIN, "MATHEMATICS IN MEDICAL AND BIOLOGICAL
C STATISTICS", JOURNAL OF THE ROYAL STATISTICAL SOCIETY, A,
C 1963, 126, PP. 1-44. THE FORMULA IS:
C
C PHAT = (1/(1 - f1/N)/((1/(1-f1/N) - (1/XBAR) - 1)
C
C WITH f1 = FIRST OBSERVED FREQUENCY. CALL DPBINI TO CREATE f1
C VALUES.
C
IRELAT='OFF'
IRHSTG='OFF'
XSTART=XMIN-0.5
XSTOP=XMAX+0.5
CLWID=1.0
CALL DPBINI(Y,N,IRELAT,CLWID,XSTART,XSTOP,IRHSTG,
1 YTEMP2,XTEMP2,N2,IBUGA3,IERROR)
ICNT=0
DO101I=1,N2
IF(YTEMP2(I).GT.0)THEN
ICNT=ICNT+1
YTEMP2(ICNT)=YTEMP2(i)
XTEMP2(ICNT)=XTEMP2(i)
ENDIF
101 CONTINUE
N2=ICNT
IF(IERROR.EQ.'YES')GOTO9000
F1=YTEMP2(1)/REAL(N)
Q1=1.0 - F1
PFREQ=(1.0/Q1)/((1.0/Q1) - (1.0/XMEAN) - 1.0) - 1.0
C
C NOW COMPUTE MAXIMUM LIKELIHOOD ESTIMATE
C
VTEMP(N2)=YTEMP2(N2)
IF(N2.GT.1)THEN
DO110I=N2-1,1,-1
VTEMP(I)=YTEMP2(I)+VTEMP(I+1)
110 CONTINUE
ENDIF
NTOT=N
NCLASS=N2
AE=1.E-6
RE=1.E-6
IFLAG=0
XLOW=1.1
XUP=20.0
CALL FZEROY(YULFU2,XLOW,XUP,XUP,RE,AE,IFLAG,XTEMP2,VTEMP)
C
PML=XLOW - 1.0
C
IF(IFLAG.EQ.2)THEN
C
C NOTE: SUPPRESS THIS MESSAGE FOR NOW.
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,111)
CC111 FORMAT('***** WARNING FROM YULE MAXIMUM LIKELIHOOD--')
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,113)
CC113 FORMAT(' ESTIMATE OF P MAY NOT BE COMPUTED TO DESIRED ',
CCCCC1 'TOLERANCE.')
CCCCC CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,121)
121 FORMAT('***** WARNING FROM YULE MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,123)
123 FORMAT(' ESTIMATE OF P MAY BE NEAR A SINGULAR POINT.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.4)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,131)
131 FORMAT('***** ERROR FROM YULE MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,133)
133 FORMAT(' APPROPRIATE BRACKETING INTERVAL NOT FOUND.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.5)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,141)
141 FORMAT('***** WARNING FROM YULE MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,143)
143 FORMAT(' MAXIMUM ITERATIONS EXCEEDED.')
CALL DPWRST('XXX','BUG ')
ENDIF
C
C
C *********************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR YULE MLE ESTIMATE **
C **********************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLYU')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Yule Parameter Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Sample Minimum:')
5065 FORMAT(' Sample Maximum:')
5066 FORMAT(' Sample First Frequency:')
5067 FORMAT(' Method of Moments Estimate of P ')
5068 FORMAT(' Method of First Frequency Estimate of ',
1 'P ')
5069 FORMAT(' Maximum Likelihood Estimate of P ')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)N
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XSD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)XMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)F1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PMOM
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5068)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PFREQ
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5069)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)PML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Yule Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Sample First Frequency: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,' & ',2X,A1,A1)
8028 FORMAT(5X,'Method of Moments Estimate of $P$: & ',
1 G15.7,2X,A1,A1)
8029 FORMAT(5X,'Method of First Frequency Estimate of $P$: & ',
1 G15.7,2X,A1,A1)
8030 FORMAT(5X,'Maximum Likelihood Estimate of $P$: & ',
1 G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)N,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)XMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)XSD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)XMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)XMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)F1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)PMOM,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)PFREQ,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)PML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4301)
4301 FORMAT(12X,'YULE PARAMETER ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4310)
4310 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4311)N
4311 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4312)XMEAN
4312 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4313)XSD
4313 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4314)XMIN
4314 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4315)XMAX
4315 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4316)F1
4316 FORMAT('SAMPLE FIRST FREQUENCY = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4317)PMOM
4317 FORMAT('METHOD OF MOMENTS ESTIMATE OF P = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4319)PFREQ
4319 FORMAT('METHOD OF FIRST FREQUENCY ESTIMATE OF P = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4321)PML
4321 FORMAT('MAXIMUM LIKELIHOOD ESTIMATE OF P = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4341)
4341 FORMAT('PMOM, PFREQ, AND PML WILL BE SAVED AS INTERNAL ',
1 'PARAMETERS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLYU')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLYU--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
SUBROUTINE DPMLZE(Y,X,N,NVAR,
1TEMP1,TEMP2,
1ALPHML,ALPHFR,ALPHMO,AFRVAR,AMLVAR,
1ICAPSW,ICAPTY,
1ISUBRO,IBUGA3,IERROR)
C
C PURPOSE--THIS ROUTINE COMPUTES ESTIMATES FOR THE ZETA
C DISTRIBUTION USING THE FOLLOWING METHODS:
C
C 1) RATIO OF F1/F2 (THESE ARE THE FREQUENCIES
C OF THE FIRST AND SECOND GROUPS.
C
C ALPHAHAT = (LN(F1/F2)/LN(2))
C
C 2) A MOMENT BASED ESTIMATE - SOLVE THE EQUATION:
C
C XBAR - ZETA(ALPHAHAT-1)/ZETA(ALPHAHAT) = 0
C
C 3) MAXIMUM LIKELIHOOD - SOLVE THE EQUATION:
C
C SUM[i=1 to N][LN(X(i)] +
C ZETA'(ALPHAHAT)/ZETA(ALPHAHAT) = 0
C
C EXAMPLE--ZETA MLE Y
C REFERENCE--"UNIVARIATE DISCRETE DISTRIBUTIONS", SECOND EDITION,
C JOHNSON, KOTZ, AND KEMP, WILEY, PP. 465-469.
C WRITTEN BY--JAMES J. FILLIBEN
C STATISTICAL ENGINEERING DIVISION
C INFORMATION TECHNOLOGY LABORATORY
C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY
C GAITHERSBURG, MD 20899-8980
C PHONE--301-975-2855
C NOTE--DATAPLOT IS A REGISTERED TRADEMARK
C OF THE NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY.
C THIS SUBROUTINE MAY NOT BE COPIED, EXTRACTED,
C MODIFIED, OR OTHERWISE USED IN A CONTEXT
C OUTSIDE OF THE DATAPLOT LANGUAGE/SYSTEM.
C LANGUAGE--ANSI FORTRAN (1977)
C VERSION NUMBER--2006/5
C ORIGINAL VERSION--MAY 2006.
C
C-----CHARACTER STATEMENTS FOR NON-COMMON VARIABLES-------------------
C
CHARACTER*4 ICAPSW
CHARACTER*4 ICAPTY
CHARACTER*4 ISUBRO
CHARACTER*4 IBUGA3
CHARACTER*4 IERROR
C
CHARACTER*4 IWRITE
CHARACTER*4 IRELAT
CHARACTER*4 IRHSTG
C
CHARACTER*4 ISUBN1
CHARACTER*4 ISUBN2
CHARACTER*4 ISTEPN
CHARACTER*1 IBASLC
C
C---------------------------------------------------------------------
C
DIMENSION Y(*)
DIMENSION X(*)
DIMENSION TEMP1(*)
DIMENSION TEMP2(*)
C
DOUBLE PRECISION DSUM1
DOUBLE PRECISION DTERM1
C
REAL ZETFUN
EXTERNAL ZETFUN
REAL ZETFU2
EXTERNAL ZETFU2
COMMON/ZETCOM/XBAR,SUM1
C
C---------------------------------------------------------------------
C
CHARACTER*4 IFEEDB
CHARACTER*4 IPRINT
CHARACTER*240 ICOUT
C
COMMON /MACH/IRD,IPR,CPUMIN,CPUMAX,NUMBPC,NUMCPW,NUMBPW
COMMON /PRINT/IFEEDB,IPRINT
COMMON /TEXTOU/ICOUT,NCOUT,ILOUT
C
C-----START POINT-----------------------------------------------------
C
ISUBN1='DPML'
ISUBN2='ZE '
C
IERROR='NO'
C
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLZE')THEN
WRITE(ICOUT,999)
999 FORMAT(1X)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,51)
51 FORMAT('**** AT THE BEGINNING OF DPMLZE--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,52)IBUGA3
52 FORMAT('IBUGA3 = ',A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,55)N,NVAR
55 FORMAT('N,NVAR = ',2I8)
CALL DPWRST('XXX','WRIT')
DO56I=1,MIN(N,100)
WRITE(ICOUT,57)I,X(I),Y(I)
57 FORMAT('I,X(I),Y(I) = ',I8,2G15.7)
CALL DPWRST('XXX','WRIT')
56 CONTINUE
ENDIF
C
C ********************************************
C ** STEP 11-- **
C ** CHECK THE INPUT ARGUMENTS FOR ERRORS **
C ********************************************
C
ISTEPN='11'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLZE')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(N.LE.2)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1111)
1111 FORMAT('***** ERROR IN ZETA MAXIMUM LIKELIHOOD ESTIMATION--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1113)
1113 FORMAT(' THE NUMBER OF OBSERVATIONS ',
1 'FOR VARIABLE 1 IS LESS THAN 3')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1115)N
1115 FORMAT('SAMPLE SIZE = ',I8)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
C
IF(NVAR.EQ.1)THEN
HOLD=Y(1)
DO1135I=2,N
IF(Y(I).NE.HOLD)GOTO1139
1135 CONTINUE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1131)
1131 FORMAT('***** ERROR IN ZETA ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1133)HOLD
1133 FORMAT(' HAS ALL ELEMENTS = ',E15.7)
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
1139 CONTINUE
C
DO1145I=1,N
IF(Y(I).LE.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1147)
1147 FORMAT('***** ERROR IN ZETA MAXIMUM ',
1 'LIKELIHOOD ESTIMATION')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1148)I,Y(I)
1148 FORMAT(' ROW ',I8,' IS NON-POSITIVE (VALUE = ',
1 G15.7,')')
CALL DPWRST('XXX','WRIT')
IERROR='YES'
GOTO9000
ENDIF
1145 CONTINUE
C
CALL SORT(Y,N,TEMP2)
DO1160I=1,N
Y(I)=TEMP2(I)
1160 CONTINUE
C
IF(MOD(N,2).EQ.1)THEN
INDX=N/2
XMED=Y(INDX+1)
ELSE
INDX=N/2
XMED=(Y(INDX) + Y(INDX+1))/2.0
ENDIF
C
ELSEIF(NVAR.EQ.2)THEN
CALL SORTC(X,Y,N,TEMP1,TEMP2)
DO1210I=1,N
X(I)=TEMP1(I)
Y(I)=TEMP2(I)
1210 CONTINUE
C
DO1220I=1,N
IF(Y(I).LT.0.0)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1221)
1221 FORMAT('***** ERROR IN ZETA ',
1 'MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1223)
1223 FORMAT(' A NEGATIVE FREQUENCY WAS SPECIFIED.')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,1225)I,Y(I)
1225 FORMAT(' ROW ',I8,' (AFTER SORTING) HAS FREQUENCY ',
1 G15.7)
CALL DPWRST('XXX','WRIT')
ENDIF
1220 CONTINUE
ENDIF
C
C ******************************
C ** STEP 21-- **
C ** CARRY OUT CALCULATIONS **
C ** FOR ZETA MLE ESTIMATE **
C ******************************
C
2100 CONTINUE
C
ISTEPN='21'
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IERROR='NO'
IWRITE='OFF'
C
IF(NVAR.EQ.1)THEN
NTOT=N
DSUM1=0.0D0
DO2105I=1,N
ITEMP=INT(Y(I)+0.5)
Y(I)=REAL(ITEMP)
DSUM1=DSUM1 + DLOG(DBLE(Y(I)))
2105 CONTINUE
SUM1=REAL(DSUM1/DBLE(N))
C
CALL MEAN(Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL SD(Y,N,IWRITE,ASD,IBUGA3,IERROR)
AMIN=Y(1)
AMAX=Y(N)
IRELAT='OFF'
IRHSTG='OFF'
XSTART=AMIN-0.5
XSTOP=AMAX+0.5
CLWID=1.0
CALL DPBINI(Y,N,IRELAT,CLWID,XSTART,XSTOP,IRHSTG,
1 TEMP1,TEMP2,N2,IBUGA3,IERROR)
ICNT=0
DO2110I=1,N2
IF(TEMP2(I).GT.0)THEN
ICNT=ICNT+1
TEMP1(ICNT)=TEMP1(I)
TEMP2(ICNT)=TEMP2(I)
ENDIF
2110 CONTINUE
N2=ICNT
F1=TEMP1(1)/REAL(N)
F2=TEMP1(2)/REAL(N)
IF(F1.GT.0.0 .AND. F2.GT.0.0)THEN
ALPHFR=(LOG(F1/F2)/LOG(2.0))
CALL ZETA(DBLE(ALPHFR),DTERM1)
AFRVAR=REAL((1.0D0+2.0D0**ALPHFR)/
1 (DLOG(2.0D0)**2*(DTERM1+1.0D0)*DBLE(N)))
ELSE
ALPHFR=-1.0
ENDIF
C
ELSE
AMIN=X(1)
AMAX=X(N)
NTOT=0
DSUM1=0.0D0
DO2120I=1,N
NTOT=NTOT + Y(I)
DSUM1=DSUM1 + DBLE(Y(I))*DLOG(DBLE(X(I)))
2120 CONTINUE
SUM1=REAL(DSUM1/DBLE(NTOT))
C
CALL WEMEAN(X,Y,N,IWRITE,AMEAN,IBUGA3,IERROR)
CALL WESD(X,Y,N,IWRITE,ASD,IBUGA3,IERROR)
F1=Y(1)/REAL(NTOT)
F2=Y(2)/REAL(NTOT)
IF(F1.GT.0.0 .AND. F2.GT.0.0)THEN
ALPHFR=(LOG(F1/F2)/LOG(2.0)) - 1.0
AFRVAR=REAL((1.0D0+2.0D0**ALPHFR)/
1 (DLOG(2.0D0)**2*(DTERM1+1.0D0)*DBLE(NTOT)))
ELSE
ALPHFR=-1.0
ENDIF
ENDIF
C
C COMPUTE MOMENT TYPE ESTIMATE
C
C ZETA HAS INFINITE MEAN FOR ALPHA < 2. THE MOMENT METHOD
C REQUIRES THE ZETA FUNCTION FOR ALPHA - 1, SO THIS IMPOSES
C A LOWER BOUND OF 2 ON THE MOMENT ESTIMATE.
C
XBAR=AMEAN
AE=1.E-6
RE=1.E-6
IFLAG=0
XLOW=2.01
IF(ALPHFR.GT.2.01)THEN
XMID=ALPHFR
XUP=ALPHFR + 5.0
ELSE
XMID=3.0
XUP=10.0
ENDIF
CALL FZERO(ZETFU2,XLOW,XUP,XUP,RE,AE,IFLAG)
C
ALPHMO=XLOW
C
IF(IFLAG.EQ.2)THEN
C
C NOTE: SUPPRESS THIS MESSAGE FOR NOW.
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,111)
CC111 FORMAT('***** WARNING FROM ZETA MAXIMUM LIKELIHOOD--')
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,113)
CC113 FORMAT(' ESTIMATE OF ALPHA MAY NOT BE COMPUTED TO ',
CCCCC1 'DESIRED TOLERANCE.')
CCCCC CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,121)
121 FORMAT('***** WARNING FROM ZETA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,123)
123 FORMAT(' MOMENT ESTIMATE OF ALPHA MAY BE NEAR A ',
1 'SINGULAR POINT.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.4)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,131)
131 FORMAT('***** ERROR FROM ZETA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,133)
133 FORMAT(' APPROPRIATE BRACKETING INTERVAL FOR MOMENT ',
1 'ESTIMATE NOT FOUND.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.5)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,141)
141 FORMAT('***** WARNING FROM ZETA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,143)
143 FORMAT(' MAXIMUM ITERATIONS FOR MOMENT ESTIMATE ',
1 'EXCEEDED.')
CALL DPWRST('XXX','BUG ')
ENDIF
C
C COMPUTE MAXIMUM LIKELIHOOD ESTIMATE
C
XBAR=AMEAN
AE=1.E-6
RE=1.E-6
IFLAG=0
XLOW=1.01
IF(ALPHFR.GT.1.01)THEN
XMID=ALPHFR
XUP=ALPHFR + 5.0
ELSE
XMID=2.0
XUP=20.0
ENDIF
CALL FZERO(ZETFUN,XLOW,XUP,XUP,RE,AE,IFLAG)
C
ALPHML=XLOW
IF(ALPHML.LE.1.5)THEN
TERM1=3.860
ELSEIF(ALPHML.GT.1.5 .AND. ALPHML.LE.1.6)THEN
TERM1=2.638
ELSEIF(ALPHML.GT.1.6 .AND. ALPHML.LE.1.7)THEN
TERM1=1.909
ELSEIF(ALPHML.GT.1.7 .AND. ALPHML.LE.1.8)THEN
TERM1=1.436
ELSEIF(ALPHML.GT.1.8 .AND. ALPHML.LE.1.9)THEN
TERM1=1.114
ELSEIF(ALPHML.GT.1.9 .AND. ALPHML.LE.2.0)THEN
TERM1=0.904
ELSEIF(ALPHML.GT.2.0 .AND. ALPHML.LE.2.1)THEN
TERM1=0.716
ELSEIF(ALPHML.GT.2.1 .AND. ALPHML.LE.2.2)THEN
TERM1=0.588
ELSEIF(ALPHML.GT.2.2 .AND. ALPHML.LE.2.3)THEN
TERM1=0.490
ELSEIF(ALPHML.GT.2.3 .AND. ALPHML.LE.2.4)THEN
TERM1=0.412
ELSEIF(ALPHML.GT.2.4 .AND. ALPHML.LE.2.5)THEN
TERM1=0.354
ELSEIF(ALPHML.GT.2.5 .AND. ALPHML.LE.2.6)THEN
TERM1=0.300
ELSEIF(ALPHML.GT.2.6 .AND. ALPHML.LE.2.7)THEN
TERM1=0.258
ELSEIF(ALPHML.GT.2.7 .AND. ALPHML.LE.2.8)THEN
TERM1=0.225
ELSEIF(ALPHML.GT.2.8 .AND. ALPHML.LE.2.9)THEN
TERM1=0.196
ELSEIF(ALPHML.GT.2.9 .AND. ALPHML.LE.3.0)THEN
TERM1=0.172
ELSEIF(ALPHML.GT.3.0 .AND. ALPHML.LE.3.1)THEN
TERM1=0.152
ELSEIF(ALPHML.GT.3.1 .AND. ALPHML.LE.3.2)THEN
TERM1=0.134
ELSEIF(ALPHML.GT.3.2 .AND. ALPHML.LE.3.3)THEN
TERM1=0.119
ELSEIF(ALPHML.GT.3.3 .AND. ALPHML.LE.3.4)THEN
TERM1=0.106
ELSEIF(ALPHML.GT.3.4 .AND. ALPHML.LE.3.5)THEN
TERM1=0.095
ELSEIF(ALPHML.GT.3.5 .AND. ALPHML.LE.3.6)THEN
TERM1=0.085
ELSEIF(ALPHML.GT.3.6 .AND. ALPHML.LE.3.7)THEN
TERM1=0.076
ELSEIF(ALPHML.GT.3.7 .AND. ALPHML.LE.3.8)THEN
TERM1=0.069
ELSEIF(ALPHML.GT.3.8 .AND. ALPHML.LE.3.9)THEN
TERM1=0.062
ELSE
TERM1=0.056
ENDIF
AMLVAR=1.0/(REAL(NTOT)*TERM1)
C
IF(IFLAG.EQ.2)THEN
C
C NOTE: SUPPRESS THIS MESSAGE FOR NOW.
CCCCC WRITE(ICOUT,999)
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,211)
CC211 FORMAT('***** WARNING FROM ZETA MAXIMUM LIKELIHOOD--')
CCCCC CALL DPWRST('XXX','BUG ')
CCCCC WRITE(ICOUT,213)
CC213 FORMAT(' ESTIMATE OF P MAY NOT BE COMPUTED TO DESIRED ',
CCCCC1 'TOLERANCE.')
CCCCC CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.3)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,221)
221 FORMAT('***** WARNING FROM ZETA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,223)
223 FORMAT(' ESTIMATE OF P MAY BE NEAR A SINGULAR POINT.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.4)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,231)
231 FORMAT('***** ERROR FROM ZETA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,233)
233 FORMAT(' APPROPRIATE BRACKETING INTERVAL NOT FOUND.')
CALL DPWRST('XXX','BUG ')
ELSEIF(IFLAG.EQ.5)THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,241)
241 FORMAT('***** WARNING FROM ZETA MAXIMUM LIKELIHOOD--')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,243)
243 FORMAT(' MAXIMUM ITERATIONS EXCEEDED.')
CALL DPWRST('XXX','BUG ')
ENDIF
C
C
C *********************************
C ** STEP 42-- **
C ** WRITE OUT EVERYTHING **
C ** FOR ZETA MLE ESTIMATE **
C **********************************
C
ISTEPN='42'
IF(IBUGA3.EQ.'ON' .OR. ISUBRO.EQ.'MLZE')
1CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
IF(IBUGA3.EQ.'ON')CALL TRACE2(ISTEPN,ISUBN1,ISUBN2)
C
IF(IPRINT.EQ.'ON')THEN
IF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'HTML')THEN
C
C STEP 2: START TABLE AND DEFINE A CAPTION
C
5001 FORMAT('')
5011 FORMAT('')
5013 FORMAT('')
5015 FORMAT(' ')
5017 FORMAT(' Zeta Parameter Estimation')
5019 FORMAT(' ')
WRITE(ICOUT,5001)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
WRITE(ICOUT,5011)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5013)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5015)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5017)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5019)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: DEFINE DATA ROW
C
5041 FORMAT(' ')
5043 FORMAT(' | ')
5047 FORMAT(' | ')
5049 FORMAT(' ')
5051 FORMAT(' ',G15.7)
5053 FORMAT(' ',I8)
5055 FORMAT(' ')
5059 FORMAT(' | ')
5061 FORMAT(' Number of Observations:')
5062 FORMAT(' Sample Mean:')
5063 FORMAT(' Sample Standard Deviation:')
5064 FORMAT(' Sample Minimum:')
5065 FORMAT(' Sample Maximum:')
5066 FORMAT(' Sample First Frequency:')
5067 FORMAT(' Sample Second Frequency:')
5071 FORMAT(' Estimation by First Two Frequencies:')
5072 FORMAT(' Estimate of Alpha')
5073 FORMAT(' Approximate Variance')
5081 FORMAT(' Estimation by First Moment:')
5086 FORMAT(' Maximum Likelihood Estimation:')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5061)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5053)NTOT
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5062)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMEAN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5063)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ASD
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5064)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMIN
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5065)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMAX
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5066)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)F1
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5067)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)F2
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5071)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALPHFR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AFRVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5081)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALPHMO
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5086)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5055)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5072)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)ALPHML
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,5041)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5043)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5073)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5049)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5051)AMLVAR
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5047)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5059)
CALL DPWRST('XXX','WRIT')
C
C STEP 4: END THE TABLE AND RESET ASIS MODE
C
5091 FORMAT(' ')
5093 FORMAT(' ')
5099 FORMAT('')
WRITE(ICOUT,5091)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5093)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,5099)
CALL DPWRST('XXX','WRIT')
C
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'LATE')THEN
C
C STEP 1: END ASIS FORMAT, START TABLE ENVIRONMENT, WRITE A HEADER, AND
C WRITE A TABLE CAPTION
C
8001 FORMAT(A1,'end{verbatim}')
8003 FORMAT(A1,'begin{table}')
8007 FORMAT(5X,'$ ',A1,1X,A1,' $ ',A1,A1,' ')
8009 FORMAT(A1,'begin{center}')
8011 FORMAT(5X,'{',A1,'bf Zeta Parameter Estimation}')
8013 FORMAT(A1,'end{center}')
8015 FORMAT(5X,'} ',A1,A1)
C
CALL DPCONA(92,IBASLC)
C
WRITE(ICOUT,8001)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8003)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8011)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8007)IBASLC,IBASLC,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8013)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
C STEP 2: START TABULAR ENVIRONMENT, WRITE SUBSESQUENT ROWS, END
C TABULAR ENVIRONMENT
C
8020 FORMAT(5X,A1,'begin{tabular} {lr}')
8021 FORMAT(5X,'Number of Observations: & ',I8,2X,A1,A1)
8022 FORMAT(5X,'Sample Mean: & ',G15.7,2X,A1,A1)
8023 FORMAT(5X,'Sample Standard Deviation: & ',G15.7,2X,A1,A1)
8024 FORMAT(5X,'Sample Minimum: & ',G15.7,2X,A1,A1)
8025 FORMAT(5X,'Sample Maximum: & ',G15.7,2X,A1,A1)
8026 FORMAT(5X,'Sample First Frequency: & ',G15.7,2X,A1,A1)
8027 FORMAT(5X,'Sample Second Frequency: & ',G15.7,2X,A1,A1)
8028 FORMAT(5X,' & ',2X,A1,A1)
8029 FORMAT(5X,'Estimation by First Two Frequencies: & ',
1 2X,A1,A1)
8030 FORMAT(5X,'Estimation by First Moment: & ',
1 2X,A1,A1)
8031 FORMAT(5X,'Maximum Likelihood Estimation: & ',
1 2X,A1,A1)
8032 FORMAT(5X,'Estimate of $',A1,'alpha$: & ',
1 G15.7,2X,A1,A1)
8033 FORMAT(5X,'Approximate Variance: & ',
1 G15.7,2X,A1,A1)
8040 FORMAT(5X,A1,'hline')
8049 FORMAT(A1,'end{tabular}')
WRITE(ICOUT,8009)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8020)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8021)NTOT,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8022)AMEAN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8023)ASD,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8024)AMIN,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8025)AMAX,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8026)F1,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8027)F2,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8029)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC,ALPHFR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8033)AFRVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8030)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC,ALPHMO,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8031)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8032)IBASLC,ALPHML,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8033)AMLVAR,IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8028)IBASLC,IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8049)IBASLC
CALL DPWRST('XXX','WRIT')
C
C STEP 3: END TABLE ENVIRONMENT, RESET ASIS MODE
C
8091 FORMAT(A1,'end{center}')
8093 FORMAT(A1,'end{table}')
8099 FORMAT(A1,'begin{verbatim}')
WRITE(ICOUT,8091)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8093)IBASLC
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,8099)IBASLC
CALL DPWRST('XXX','WRIT')
ELSEIF(ICAPSW.EQ.'ON' .AND. ICAPTY.EQ.'RTF')THEN
ELSE
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4301)
4301 FORMAT(12X,'ZETA PARAMETER ESTIMATION:')
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4310)
4310 FORMAT('SUMMARY STATISTICS:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4311)NTOT
4311 FORMAT('NUMBER OF OBSERVATIONS = ',I8)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4312)AMEAN
4312 FORMAT('SAMPLE MEAN = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4313)ASD
4313 FORMAT('SAMPLE STANDARD DEVIATION = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4314)AMIN
4314 FORMAT('SAMPLE MINIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4315)AMAX
4315 FORMAT('SAMPLE MAXIMUM = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4316)F1
4316 FORMAT('SAMPLE FIRST FREQUENCY = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4318)F2
4318 FORMAT('SAMPLE SECOND FREQUENCY = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4321)
4321 FORMAT('ESTIMATION BY FIRST TWO FREQUENCIES:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4323)ALPHFR
4323 FORMAT('ESTIMATE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4325)AFRVAR
4325 FORMAT('APPROXIMATE VARIANCE = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4331)
4331 FORMAT('ESTIMATION BY FIRST MOMENT:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4333)ALPHMO
4333 FORMAT('ESTIMATE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4341)
4341 FORMAT('MAXIMUM LIKELIHOOD ESTIMATION:')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4343)ALPHML
4343 FORMAT('ESTIMATE OF ALPHA = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,4345)AMLVAR
4345 FORMAT('APPROXIMATE VARIANCE = ',G15.7)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
C
WRITE(ICOUT,4391)
4391 FORMAT('ALPHAFR, ALPHAMOM, AND ALPHAML WILL BE SAVED ',
1 'AS INTERNAL PARAMETERS.')
CALL DPWRST('XXX','BUG ')
WRITE(ICOUT,999)
CALL DPWRST('XXX','BUG ')
C
ENDIF
ENDIF
GOTO9000
C
C *****************
C ** STEP 90-- **
C ** EXIT **
C *****************
C
9000 CONTINUE
IF(IBUGA3.EQ.'ON'.OR.ISUBRO.EQ.'MLZE')THEN
WRITE(ICOUT,999)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9011)
9011 FORMAT('***** AT THE END OF DPMLZE--')
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9012)N,IBUGA3,IERROR
9012 FORMAT('N,IBUGA3,IERROR = ',I8,2X,A4,2X,A4)
CALL DPWRST('XXX','WRIT')
WRITE(ICOUT,9015)N
9015 FORMAT('N = ',I8)
CALL DPWRST('XXX','WRIT')
ENDIF
C
RETURN
END
| | | | | | | | |