      SUBROUTINE SIMPLE(K,T,MATRIX,N,YRONE,HEADER)
C *** SIMPLE COMPUTES ESTIMATES OF THE CONSTANT SURVIVAL AND RECOVERY
C *** RATES USING THE ITERATIVE METHODS EMPLOYED IN MODEL 3.  SIMPLE
C *** IS USEFUL (AS AN OPTION--SEE MAIN) IF THE DATA ARE VERY POOR, E.G.
C *** NO BANDINGS IN SOME YEARS, NO RECOVERIES FROM SMALL BANDED
C *** SAMPLES, ETC.  NO TESTING IS DONE AND THE VARIANCES ARE USUALLY
C *** SUBSTANTIALLY UNDERESTIMATED.
      IMPLICIT DOUBLE PRECISION(A-G,O-Z)
      CHARACTER*80 HEADER
      DOUBLE PRECISION INFO,NEXT,HIP,HIL,LOWP,LOWL,INVERS,LAMBDA,N,
     1 MATRIX,LOWF,HIF
      DOUBLE PRECISION MLS,LOWMLS,HIMLS
      INTEGER YEAR,YRONE,BANDS,T,IMAT
      DIMENSION MATRIX(21,21),N(20)
      COMMON /SIMPCM/ R(20),A(20),PD(2),AHAT(20),CHISQS(21
     1,21),INVERS(2,2),INFO(2,2),NEXT(2),THCHI(100),EE(21,21),IMAT(20),
     2 EREC(20),ISAVE(20)
      DO 5 I=1,T
      R(I)=0.0
      DO 5 II=1,K
      R(I)=R(I)+MATRIX(I,II)
    5 CONTINUE
      ITER=0
      BIGN=0.0
      BIGT=0.0
      Q=0.0
      DO 10 I=1,T
      BIGT=BIGT+R(I)
      BIGN=BIGN+N(I)
      A(I)=N(I)
   10 CONTINUE
      DO 15 I=1,T
      DO 15 J=1,K
      Q=Q+(J-I)*MATRIX(I,J)
   15 CONTINUE
      LAMBDA=BIGT/BIGN
      PHI=Q/(BIGT+Q)
      NEXT(1)=LAMBDA
      NEXT(2)=PHI
      WRITE (6,20)
   20 FORMAT ('0','ANALYSIS ASSUMING CONSTANT SURVIVAL AND RECOVERY ',
     1'PROBABILITIES')
      WRITE (6,25)
   25 FORMAT (1X,'(A GENERALIZATION AND EXTENSION OF THE MODELS DEVELOP'
     1,'ED BY CHAPMAN AND ROBSON (1960. BIOMETRICS) AND ')
      WRITE (6,30)
   30 FORMAT (1X,' HALDANE (1955. PROC. XI INT. ORN. CONGR.) -- SEE BOT'
     1,'TOM OF PAGE 245 OF BOOK BY SEBER))'/)
      WRITE (6,35) HEADER
   35 FORMAT (/' ',20X,A//)
      WRITE (6,40)
   40 FORMAT (' ','YEAR NUMBER',35X,'RECOVERY MATRIX')
      WRITE (6,45)
   45 FORMAT (' ',5X,'BANDED')
      WRITE (6,50)
   50 FORMAT ('+','____ ______',35X,'_______________'/)
      YEAR=YRONE-1
      DO 65 I=1,T
      BANDS=A(I)
      YEAR=YEAR+1
      DO 55 JJ=1,K
      IMAT(JJ)=MATRIX(I,JJ)
   55 CONTINUE
      WRITE (6,60) YEAR,BANDS,(IMAT(JJ),JJ=1,K)
   60 FORMAT (' ',I4,1X,I5,2X,20(2X,I4))
   65 CONTINUE
      WRITE (6,70)
   70 FORMAT (/' ','INTERMEDIATE STATISTICS')
      WRITE (6,75) BIGN
   75 FORMAT (' ','N  = ',F6.0)
      WRITE (6,80) BIGT
   80 FORMAT (' ','T = ',F6.0)
      WRITE (6,85) Q
   85 FORMAT (' ','Q  = ',F6.0/)
   90 CONTINUE
      IF (NEXT(2).GT.1.0) GO TO 145
      IF (NEXT(2).LT.0.) GO TO 145
      IF (NEXT(1).LT.0.) GO TO 145
      ITER=ITER+1
      IF (ITER.GT.40) GO TO 145
      EREC(1)=(1.0-PHI)*LAMBDA
      DO 16 I=2,K
   16 EREC(I)=EREC(I-1)*PHI
      EXPT=0.
      EXPQ=0.
      DO 17 I=1,T
       DO 17 J=I,K
      EXPT=EXPT+A(I)*EREC(J-I+1)
   17  EXPQ=EXPQ+A(I)*(J-I)*EREC(J-I+1)
      SUM1=0.0
      SUM2=0.0
      SUM3=0.0
      SUM4=0.0
      SUM5=0.0
      DO 95 I=1,T
      SUM1=SUM1+(N(I)-R(I))/(1.-LAMBDA*(1.-PHI**(K-I+1)))
      SUM2=SUM2+(N(I)-R(I))*(K-I+1)*(PHI**(K-I))/(1.-LAMBDA*(1.-PHI**(K-
     1I+1)))
      SUM3=SUM3+(N(I)*(K-I+1)*PHI**(K-I))/(1.-LAMBDA*(1.-PHI**(K-I+1)))
      SUM4=SUM4+(N(I)/(1.-LAMBDA*(1.-PHI**(K-I+1))))
      SUM5=SUM5-LAMBDA*N(I)*(K-I+1)*(K-I)*(PHI**(K-I-1))
      AA=N(I)*LAMBDA*LAMBDA*(K-I+1)*(K-I+1)
      AA=AA*(PHI**(2.*(K-I)))
      AA=AA/(1.-LAMBDA*(1.-PHI**(K-I+1)))
      SUM5=SUM5+AA
   95 CONTINUE
      SUM3=-1*SUM3
      SUM4=SUM4-BIGN
      PD(1)=(BIGN/LAMBDA)-(1./LAMBDA)*SUM1
      PD(2)=((-1*BIGT)/(1.-PHI))+(Q/PHI)+(LAMBDA*SUM2)
      INFO(1,2)=SUM3
      INFO(2,1)=SUM3
      INFO(1,1)=((1./LAMBDA)**2)*SUM4
      INFO(2,2)=(EXPT/((1.-PHI)**2))+(EXPQ/PHI**2)+SUM5
C     COMPUTE THE INVERSE OF THE INFORMATION MATRIX
      DET=INFO(1,1)*INFO(2,2)-(INFO(2,1)*INFO(1,2))
      INVERS(1,1)=INFO(2,2)/DET
      INVERS(2,2)=INFO(1,1)/DET
      INVERS(2,1)=(-1.*INFO(2,1))/DET
      INVERS(1,2)=(-1.*INFO(1,2))/DET
C     THE INTERATION IS:
      NEXT(1)=LAMBDA+((INVERS(1,1)*PD(1))+(INVERS(1,2)*PD(2)))
      NEXT(2)=PHI+((INVERS(2,1)*PD(1))+(INVERS(2,2)*PD(2)))
      IF (DABS(NEXT(1)-LAMBDA).LT.0.00001.AND.DABS(NEXT(2)-PHI).LT.
     +0.00001) GO TO 100
      LAMBDA=NEXT(1)
      PHI=NEXT(2)
      GO TO 90
  100 NEXT(1)=NEXT(1)*100.
      NEXT(2)=NEXT(2)*100.
      IF (INVERS(2,2).GT.0.0) STDEVP=DSQRT(INVERS(2,2))*100.
      IF (INVERS(1,1).GT.0.0) STDEVL=DSQRT(INVERS(1,1))*100.
      CVP=STDEVP/NEXT(2)*100.
      CVL=STDEVL/NEXT(1)*100.
      LOWP=(NEXT(2)-(1.96*STDEVP))
      HIP=(NEXT(2)+(1.96*STDEVP))
      LOWL=(NEXT(1)-(1.96*STDEVL))
      HIL=(NEXT(1)+(1.96*STDEVL))
      F=(100.-NEXT(2))*(NEXT(1)/100.)
      F=F/100.
      COVAR=INVERS(2,1)
      AMORT=1.-(NEXT(2)/100.)
      VARF=(F/AMORT)**2*INVERS(2,2)-2.*F*COVAR+AMORT**2*INVERS(1,1)
      COVFS=(-1.*(F/AMORT))*INVERS(2,2)+COVAR*AMORT
      F=F*100.
      IF (VARF.GT.0.0) STDEVF=DSQRT(VARF)*100.
      LOWF=F-(1.96*STDEVF)
      HIF=F+(1.96*STDEVF)
      IF (VARF*INVERS(2,2).GT.0.0) CORRFS=COVFS/DSQRT(VARF*INVERS(2,2))
      CVF=(STDEVF/F)*100.
      WRITE (6,105)
  105 FORMAT (/' ',1X,'PARAMETER',31X,'ESTIMATE (%)',07X,'STD. DEV. (%)'
     1,06X,'COEF. VARIAT. (%)',05X,'90% CONFIDENCE INTERVAL')
      WRITE (6,110)
  110 FORMAT (' ',124('-'))
      WRITE (6,115) NEXT(2),STDEVP,CVP,LOWP,HIP
  115 FORMAT (/' ','SURVIVAL PROBABILITY  (S) ',18X,F5.2,13X,F5.2,15X,F5
     1.2,15X,F5.2,' -- ',F5.2/)
      WRITE (6,120) F,STDEVF,CVF,LOWF,HIF
  120 FORMAT (1X,'RECOVERY PROBABILITY (F)             ',7X,F5.2,13X,
     1 F5.2,15X,F5.2,15X,F5.2,' -- ',F5.2)
      WRITE (6,110)
      WRITE (6,125)
  125 FORMAT (1X,'THE STANDARD DEVIATIONS FOR S AND F ARE UNDERESTIMATE'
     1,'D BY A FACTOR OF PERHAPS 1.5 TO 5.0 ')
      CORR=(INVERS(2,1))/((STDEVP*STDEVL)/10000.)
      WRITE (6,130) CORRFS
  130 FORMAT (' ','CORRELATION(S,F) = ',F10.8)
      MLS=-1.0/DLOG(NEXT(2)/100.0)
      SDMLS=DSQRT((1.0/MLS**2)*(1.0/(DLOG(MLS)**4))*INVERS(2,2))
      LOWMLS=MLS-1.96*SDMLS
      HIMLS=MLS+1.96*SDMLS
      WRITE (6,135) MLS
  135 FORMAT (' ','MEAN LIFE SPAN AS AN ADULT = ',F7.2)
      WRITE (6,140) ITER
  140 FORMAT (' ',I5,'  ITERATIONS')
      RETURN
  145 WRITE (6,150)
  150 FORMAT (' ','ESTIMATION NOT POSSIBLE--CHECK THE DATA AND RESUBMIT'
     1)
      RETURN
      END
      SUBROUTINE CHI1(K,Z)
C *** CHI1 AND CHI2 COMPUTE THE PROBABILITY LEVEL OF A CHI SQUARE VALUE
C *** GIVEN ITS DEGREES OF FREEDOM
      IMPLICIT DOUBLE PRECISION(A-H,O-Z)
      IMPLICIT INTEGER(I-N)
      COMMON/BLOCK/P,LITE
      DATA PI/1.7724539D0/
C     K=DEGREES OF FREEDOM
C     Z=CHI-SQUARE VALUE
C     P=PROBABILITY INTEGRAL TRANSFORM
C     IT=0 IF THE SUBROUTINE FAILED
      IF (Z.GT.600.0) P=1.0
      IF (Z.GT.600.0) GO TO 35
      P=0.
      IT=0
      IF (Z.LE.0.) RETURN
      IF (K.LE.0) RETURN
      IF (K.GT.100) GO TO 25
      RK=K*.5
      Z2=Z*.5
C
      IRK=RK
      IT=1
      IF (IRK.NE.RK) GO TO 10
C
      Q=DEXP(-Z2)
      P=1.-Q
      IF (IRK.EQ.1) GO TO 35
      MAX=IRK-1
      DO 5 I=1,MAX
      X=I
      Q=Q*Z2/X
    5 P=P-Q
      GO TO 35
C
   10 P=1.
      IF (Z.GT.15.) GO TO 15
C
      CALL CHI2(Z2,P)
   15 IF (K.EQ.1) GO TO 35
C
      A=DSQRT(Z2)*2.*DEXP(-Z2)/PI
      P=P-A
      IF (K.EQ.3) GO TO 35
      I=IRK-2
   20 A=A*Z2/(RK-I-1)
      P=P-A
      I=I-1
      IF (I.LT.0) GO TO 35
      GO TO 20
C
   25 Y=DSQRT(2.*Z)-SQRT(2.*K)
      IT=1
      SIGN=-1.
      IF (Y.GE.0.) SIGN=+1.
      W=Y*Y
      Z2=W*.5
      P=1.
      IF (W.GT.15.) GO TO 30
      CALL CHI2(Z2,P)
   30 P=.5+SIGN*P*.5
      GO TO 35
C
   35 P=1.-P
      IF (IT.NE.0.AND.LITE.NE.1) WRITE (6,40) Z,P
   40 FORMAT (/' ','PROBABILITY OF A CHI-SQUARE VALUE LARGER THAN',F8.2,
     12X,'=',F13.8//)
      RETURN
      END
      SUBROUTINE CHI2(Z2,P)
      IMPLICIT DOUBLE PRECISION(A-H,O-Z)
      DATA PI/1.7724539D0/
      A=DSQRT(Z2)/PI
      I=0
      S=2.
      Q=0.
      FAC=1.
    5 I=I+1
      FAC=-FAC*Z2/I
      S=S+FAC/(I+.5)
      P=A*S
      IF (DABS(P-Q).LT..000000001) RETURN
      Q=P
      GO TO 5
      END
      SUBROUTINE TEST(N,MATRIX,A,THCHI)
C *** TEST IS A SIMPLE TEST OF THE NULL HYPOTHESIS THAT THE FIRST-YEAR
C *** RECOVERY RATES (UNDER MODELS 0 AND 1) ARE CONSTANT.
      IMPLICIT DOUBLE PRECISION(A-H,O-Z,M)
      INTEGER DF
      DIMENSION A(20)  ,TR(20),TC(20),MATRIX(21,21),THCHI(100),B(20,2)
      DO 5 I=1,N
      B(I,1)=MATRIX(I,I)
      B(I,2)=A(I)-MATRIX(I,I)
    5 CONTINUE
      CS=0.0
      DF=N-1
C     ROW TOTALS
      DO 10 I=1,N
      TR(I)=0.0
      DO 10 J=1,2
      TR(I)=TR(I)+B(I,J)
   10 CONTINUE
C     COLUMN TOTALS
      DO 15 J=1,2
      TC(J)=0.0
      DO 15 I=1,N
      TC(J)=TC(J)+B(I,J)
   15 CONTINUE
      GT=0.0
      DO 20 I=1,N
   20 GT=GT+TR(I)
      DO 25 J=1,2
      DO 25 I=1,N
      E=TR(I)*TC(J)/GT
   25 CS=CS+(((B(I,J)-E)**2)/E)
      WRITE (6,30)
   30 FORMAT (///1X,'TEST OF THE NULL HYPOTHESIS THAT THE FIRST-YEAR (D'
     1,'IRECT) RECOVERY RATES ARE CONSTANT EACH YEAR:'/)
      WRITE (6,35) CS
   35 FORMAT (' ','   CHI-SQUARED (SAMPLE) = ',F8.2)
      WRITE (6,40) THCHI(DF)
   40 FORMAT (' ','   THEORETICAL CHI-SQUARE VALUE AT THE 5% LEVEL =',F8
     1.2)
      WRITE (6,45) DF
   45 FORMAT (' ','   DEGREES OF FREEDOM = ',I6)
      CALL CHI1(DF,CS)
      RETURN
      END
      SUBROUTINE FANDFP(S,KK,R,C,T,MATRIX,A,YRONE)
C *** FANDFP IS A CONTINGENCY TABLE TEST OF MODEL 0 VS. MODEL 1
      DOUBLE PRECISION MATRIX,R,C,T,OBS,EXPECT,RTOT,CTOT,A,DRATE,AHAT,
     1SIGN,PART,SUM,NORMAL,P
      DOUBLE PRECISION SUMTHR,SUMTWO
      INTEGER S,SM1 ,YRONE
      COMMON/BLOCK/P,LITE
      DIMENSION MATRIX(21,21),OBS(2,2),EXPECT(2,2),RTOT(2),CTOT(2)
      DIMENSION A(20),DRATE(20),AHAT(20),SIGN(20),PART(20)
      DIMENSION R(20),C(20),T(20)
      SUM=0.0
      LITE=1
      MDIFF=KK-S
      IF (MDIFF.EQ.0) SM1=S-1
      IF (MDIFF.GT.0) SM1=S
      IYEAR=YRONE
      PART(1)=0.0
      CHISUM=0.0
      SUMTWO=0.0
C
      DO 5 I=2,SM1
      SIGN(I)=-1.0

      DRATE(I)=MATRIX(I,I)/A(I)
      AHAT(I)=((C(I)-MATRIX(I,I))*(R(I)-MATRIX(I,I)))/(A(I)*(T(I)-R(I)-C
     1(I)+MATRIX(I,I)))
      IF (DRATE(I).GT.AHAT(I)) SIGN(I)=1.0
    5 CONTINUE
      WRITE (6,10)
   10 FORMAT (///1X,'TEST OF THE NULL HYPOTHESIS THAT THE FIRST-YEAR RE'
     1,'COVERY RATES AND/OR SURVIVAL RATES ARE THE SAME AS THOSE FROM')
      WRITE (6,15)
   15 FORMAT (' ','COHORTS BANDED IN PREVIOUS YEARS'/)
      WRITE (6,20)
   20 FORMAT (1X,'THIS IS A TEST OF MODEL 1 (THE NULL HYPOTHESIS) VS. M'
     1,'ODEL 0 (AN ALTERNATIVE HYPOTHESIS)'/)
C
      WRITE (6,25)
   25 FORMAT (' ','       I      CHI-SQUARE      NORMAL(0,1) ')
      DO 40 I=2,SM1
      CHISUM=0.0
      OBS(1,1)=C(I)-MATRIX(I,I)
      OBS(1,2)=T(I)-C(I)-R(I)+MATRIX(I,I)
      OBS(2,1)=MATRIX(I,I)
      OBS(2,2)=R(I)-MATRIX(I,I)
C
      RTOT(1)=OBS(1,1)+OBS(1,2)
      RTOT(2)=OBS(2,1)+OBS(2,2)
      CTOT(1)=OBS(1,1)+OBS(2,1)
      CTOT(2)=OBS(1,2)+OBS(2,2)
      GRAND=RTOT(1)+RTOT(2)
C
      EXPECT(1,1)=RTOT(1)*CTOT(1)/GRAND
      EXPECT(1,2)=RTOT(1)*CTOT(2)/GRAND
      EXPECT(2,1)=RTOT(2)*CTOT(1)/GRAND
      EXPECT(2,2)=RTOT(2)*CTOT(2)/GRAND
C
      DO 30 II=1,2
      DO 30 JJ=1,2
      CHI=((OBS(II,JJ)-EXPECT(II,JJ))**2)/EXPECT(II,JJ)
      CHISUM=CHISUM+CHI
   30 CONTINUE
      SUMTWO=CHISUM+SUMTWO
      PART(I)=SQRT(CHISUM)*SIGN(I)
      IYEAR=IYEAR+1
      WRITE (6,35) IYEAR,CHISUM,PART(I)
   35 FORMAT (' ',4X,I4,5X,F8.2,9X,F8.2)
      SUM=SUM+PART(I)
   40 CONTINUE
C
      WRITE (6,45) SUMTWO,SUM
   45 FORMAT (' ',4X,'TOTAL',4X,F8.2,9X,F8.2/)
      SM1=SM1-1
      NORMAL=SUM**2/SM1
      CALL CHI1(1,NORMAL)
      SIGN1=1.0
      IF (SUM.LT.0.) SIGN1=-1.0
      PROB=(1.0+SIGN1*(1.-P))/2.0
      PROB=1.-PROB
      WRITE (6,50) SUM,PROB
   50 FORMAT (' ','PROBABILITY OF OBSERVING A VALUE LARGER THAN',F8.2,'
     1   IS ',F13.8)
      LITE=0
      SUMTHR=SUMTWO
      CALL CHI1(SM1,SUMTHR)
      RETURN
      END
