C$CONTROL USLINIT
C$segment 'MAINSEG',CODE_OFFSETS ON,LIST ON
C $$$$ THE PRECEDING STATEMENT WAS A COMPILER COMMAND FOR THE HP/3000
C--------------------------------------------------------------------
C  Changes: 3/16/92 Increased dimensions to 50   
C           1/17/92 Fixed output file opening bug
C           9/20/91 Fixed bug in pooling routine (EE(1,K))            
C           8/27/90 Restricted between-period resight data to model A2
C           7/18/90 Added model B2 starting values (from D2)
C           6/11/90 Fixed bug in GOF test created by 1/12/90 bug fix
C           1/12/90 Added codes 3 & 4 to cap-history input routine
C           2/28/89 Fixed bug in pooling routine
C           8/10/88 Fixed bug in input routine (caphis(i)=2).
C           5/10/88 Modified model A2 GOF test pooling.
C           3/30/88 Modified model A2 to avoid div by zero errors.
C           1/19/88 Modified title line
C           12/1/87 Changed input routine format
C           7/28/87 Added menu driven input routine
C           1/14/87 converted to FORTRAN77.
C           5/1/86 fixed mean M,B in D2 & N in B2
C           9/22/86 Likelihood ratio test deletes values < 2.0
C                               JOLLYAGE
C                      WRITTEN BY JAMES E. HINES
C  "JOLLYAGE" IS USED TO COMPUTE SURVIVAL RATES AND POPULATION
C  SIZE FOR AN AGE-STRATIFIED DATA SET USING THE JOLLY-SEBER METHOD
C  DEVELOPED BY S. L. STOKES.
C
C  IF THERE ARE ANY QUESTIONS OR PROBLEMS WITH THIS PROGRAM CONTACT:
C                  JAMES E. HINES OR JAMES D. NICHOLS
C                   U. S. FISH AND WILDLIFE SERVICE
C                    PATUXENT WILDLIFE RESEARCH CENTER
C                     LAUREL, MARYLAND 20708
C
      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
      INTEGER*2 MNTH,DAY,YEAR,HOUR,MINUTE,SEC,CHOICE,PRNT1
      INTEGER*4 PRNT2
      CHARACTER*40 FNAME,FNAME2,FMT,TITLE*128,YESNO(2)*3
      CHARACTER*10 MDLS
      COMMON /BLK3/NYRS,FIMA,FIMD,FYMA,FYMD,EPSLON,MAXITR,PRNT2
      DATA CHIAP,CHI2,PRNT1/2*.0D0,2/
      DATA MODA,MODA1,MOD2,MODB,MODD/5*1/
      DATA MDLS/'A2,B2,D2  '/
      DATA YESNO/'YES','NO '/
      PRNT2=2
      CALL GETDAT(YEAR,MNTH,DAY)
      CALL GETTIM(HOUR,MINUTE,SEC,CHOICE)
      WRITE(TITLE,2)MNTH,DAY,YEAR-1900,HOUR,MINUTE
    2 FORMAT('JOLLYAGE (Ver 3/16/92)',90X,2(I2,'/'),I2,2X,I2,':',I2)
      FNAME='JLYAGE.INP '
      FNAME2='JLYAGE.OUT '
      MAXITR=100
      EPSLON=.1D-4
    1 CONTINUE
      WRITE(*,5)
    5 FORMAT(/////15X,'Program JOLLYAGE < 3/16/92>')
      WRITE(*,6)FNAME,FNAME2,MDLS,YESNO(PRNT1),YESNO(PRNT2)
    6 FORMAT(/15X,'1) Data filename:',A40/
     ,15X,'2) Name of print file:',A40/
     ,15X,'3) Models:',A10/15X,'4) Print definitions:',A3/
     ,15X,'5) Print Var-Cov of N:',A3/
     ,15X,'6) Run...'/15X,'7) Quit'//
     ,15X,'Choice(1...7)?')
      READ(*,*,ERR=900)CHOICE
      GO TO (50,80,30,40,45,90,800),CHOICE
    8 WRITE(*,*)'Please enter a number between 1 and 7!'
      WRITE(*,*)' ** Press <return> to continue...'
      READ(*,9,ERR=900)TMPCH
    9 FORMAT(A1)
      GO TO 1
   30 WRITE(*,*)'Enter desired models (eg A2,B2,D2):'
      READ(*,31,ERR=900)MDLS
   31 FORMAT(A10)
      GO TO 1
   40 PRNT1=3-PRNT1
      GO TO 1
   45 PRNT2=3-PRNT2
      GO TO 1
   50 WRITE(*,*)'Enter new filename:'
      READ(*,51,ERR=900)FNAME
   51 FORMAT(A40)
      OPEN(1,FILE=FNAME,ERR=950,STATUS='OLD')
      GO TO 1
   80 WRITE(*,*)'Name of print file?'
      READ(*,51,ERR=900)FNAME2
      GO TO 1
   90 CONTINUE
C                 CALL SELECTED Model SUBROUTINES
      OPEN(7,FILE=FNAME2)
      MODAX=0
      IF(INDEX(MDLS,'X')+INDEX(MDLS,'x').GT.0)MODAX=1
      CALL INPT(TITLE,MODAX)
      IF(PRNT1.EQ.1)CALL DEFINE(TITLE)
      CALL MODLA2(TITLE,CHIA,IDFA)
	IF(MODAX.NE.0)STOP
      IF(INDEX(MDLS,'D2').GT.0)CALL MODLD2(TITLE,IDCC)
      IF(INDEX(MDLS,'B2').GT.0)CALL MODLB2(TITLE,IBCC)
      CALL TESTS(TITLE,IDCC,IBCC,CHIA,IDFA)
  800 STOP
  900 WRITE(*,*)'Input error - press RETURN to continue:'
      READ(*,9)TMPCH
      GO TO 1
  950 WRITE(*,*)'Error: input file not found!'
      GO TO 900
      END
      FUNCTION INUM(STR)
      CHARACTER*80 STR
      I=1
      INUM=0
    5 IF(STR(I:I).LT.'0'.OR.STR(I:I).GT.'9')GO TO 10
        INUM=INUM*10+ICHAR(STR(I:I))-ICHAR('0')
        I=I+1
        GO TO 5
   10 RETURN
      END
