      SUBROUTINE INPT(TITLE,MODAX)
C
C       - SUMMARIZE CAPTURE RECORDS BY
C            1) # MARKED ADULTS - M(I)
C            2) # CAUGHT                        - N(I),NY(I)
C            3) # CAUGHT IN PERIOD I, & CAUGHT LATER - R(I),RY(I)
C            4) # CAUGHT BEFORE & AFTER BUT NOT IN PERIOD I- B(I)
C
      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
      INTEGER IDIM
      PARAMETER (IDIM=50,IDIM2=IDIM*2)
      INTEGER S,CAP(IDIM2),AGE,FRST,OLDNEW,YR,FLAGAX
      CHARACTER*4 KEYWD(20),ACODE*1,YCODE*1,CAGE*1
      CHARACTER*80 FMT,LINE,TITLE*128
      CHARACTER*16 CTYPE(3)
      DOUBLE PRECISION M,N,NS
      COMMON /BLK1/M(IDIM),N(IDIM,2),B(IDIM),R(IDIM,2),NS(IDIM,2),
     , YR(IDIM)
      COMMON /BLK2/CA(IDIM,2,2),CM(IDIM,2,2),CN(IDIM,2,2),Z(IDIM,2,2)
      COMMON /BLK3/LAST,FIMA,FIMD,FYMA,FYMD,EPSLON,MAXITR,IPRNT
      DATA NREAD,NUSED/0,0/
      DATA KEYWD/'titl','TITL','FORM','form','PERI','peri','TYPE',
     ,'type','ADUL','adul','youn','YOUN','FIRS','firs','ITER',
     ,'iter','conv','CONV','comm','COMM'/
      DATA ACODE,YCODE/'A','Y'/
      DATA CTYPE/'CAPTURE-HISTORY','CAP/REL-HISTORY','SUMMARY'/
C
	FLAGAX=0
      IYR1=1
      INFMT=1
      DO 40 I=1,IDIM
         CAP(I)=0
         M(I)=.0D0
         B(I)=.0D0
         DO 40 J=1,2
           N(I,J)=.0D0
           R(I,J)=.0D0
           NS(I,J)=.0D0
           DO 40 K=1,2
             CA(I,J,K)=.0D0
             CM(I,J,K)=.0D0
             CN(I,J,K)=.0D0
   40        Z(I,J,K)=.0D0
C
   42 READ(1,41)LINE
   41 FORMAT(A80)
      WRITE(7,43)LINE
   43 FORMAT(' INPUT==>',A80)
      KW=0
      DO 45 I=1,20
        IF(INDEX(LINE,KEYWD(I)).GE.1.AND.KW.EQ.0)KW=I
   45   LEQ=INDEX(LINE,'=')+1
      GO TO (1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,42,42),KW+1
    1 BACKSPACE 1
      WRITE(7,*)'1st DATA RECORD:',LINE
      GO TO 79
    2 TITLE(25:104)=LINE(LEQ:80)
      WRITE(7,*)'CONTROL RECORD: TITLE=',TITLE(25:104)
      GO TO 42
    3 FMT=LINE(LEQ:80)
      WRITE(7,*)'CONTROL RECORD: FORMAT=',FMT
      GO TO 42
    4 LAST=INUM(LINE(LEQ:80))
      WRITE(7,*)'CONTROL RECORD: PERIODS=',LAST
      GO TO 42
    5 INFMT=1
      IF(INDEX(LINE,'TOTALS')+INDEX(LINE,'totals').GT.0)INFMT=3
      IF(INDEX(LINE,'REL')+INDEX(LINE,'rel').GT.0)INFMT=2
      WRITE(7,*)'CONTROL RECORD: DATA TYPE=',CTYPE(INFMT)
      GO TO 42
    6 ACODE=LINE(LEQ:LEQ)
      WRITE(7,*)'CONTROL RECORD: ADULT=',ACODE
      GO TO 42
    7 YCODE=LINE(LEQ:LEQ)
      WRITE(7,*)'CONTROL RECORD: YOUNG=',YCODE
      GO TO 42
    8 IYR1=INUM(LINE(LEQ:80))
      WRITE(7,*)'CONTROL RECORD: FIRST=',IYR1
      GO TO 42
    9 MAXITR=INUM(LINE(LEQ:80))
      WRITE(7,*)'CONTROL RECORD: ITERATIONS=',MAXITR
      GO TO 42
   10 EPSLON=.1D2**(-INUM(LINE(LEQ:80)))
      WRITE(7,*)'CONTROL RECORD: CONVERG=',EPSLON
      GO TO 42
   79 WRITE(7,78)
      WRITE(7,78)TITLE
   78 FORMAT(A128)
      WRITE(7,70)LAST,CTYPE(INFMT),FMT,MAXITR,EPSLON
   70 FORMAT(/' NUMBER OF TRAPPING PERIODS = ',I5/
     /        ' DATA TYPE                  = ',A16,' RECORDS'/
     /        ' INPUT FORMAT               = ',A70/
     /        ' MAX ITERATIONS             = ',I6/
     /        ' CONVERGENCE CRITERION      = ',E10.4)
      IF(INFMT.EQ.3)GO TO 230
   80 CONTINUE
      IF(FMT(1:1).NE.'(')THEN
        READ(1,*,END=250,ERR=800)CAGE,(CAP(I),I=1,LAST*INFMT),NCNT
      ELSE
        READ(1,FMT,END=250,ERR=800)CAGE,(CAP(I),I=1,LAST*INFMT),NCNT
      ENDIF
      IF(INFMT.EQ.2)THEN
         DO 44 I=1,2*LAST,2
           CAP(I/2+1)=CAP(I)
   44      IF(CAP(I).EQ.1.AND.CAP(I+1).EQ.0)CAP(I/2+1)=2
      ENDIF
      NREAD=NREAD+1
      AGE=0
      IF(CAGE.EQ.ACODE)AGE=1
      IF(CAGE.EQ.YCODE)AGE=2
      IF (AGE.EQ.0) GO TO 80
      IF(NCNT.LE.0)NCNT=1
      NUSED=NUSED+1
      LCAP=-1
C                     AGE=1 - ADULT ....   AGE=2 - YOUNG
C
C   ***    PART OF SUBROUTINE WHICH COMPUTES STATS
C   ***    NEEDED TO COMPUTE CONTINGENCY TABLES
C
      LCAP=-1
      FRST=999
      DO 100 I=1,LAST
		IF(CAP(I).GE.3)FLAGAX=1
         IF(MODAX.EQ.0.AND.CAP(I).GT.2)CAP(I)=CAP(I)-3
         IF(CAP(I).LE.0)GO TO 100
         IF(I.LT.FRST.AND.CAP(I).NE.3)FRST=I
         LCAP=I
         IF(CAP(I).GE.3)LCAP=I+1
  100    CONTINUE
C
      DO 160 I=1,LAST
         IF(CAP(I).NE.0.AND.CAP(I).NE.3)THEN
C                                captured in I
           IF(I.LE.FRST)THEN
c                                  captured for the first time in I
             N(I,AGE)=N(I,AGE)+NCNT
             IF(CAP(I).NE.2)NS(I,AGE)=NS(I,AGE)+NCNT
             IF(I.LT.LCAP)R(I,AGE)=R(I,AGE)+NCNT
             IF(AGE.EQ.1)THEN
               IF(I.LT.LCAP)CA(I,1,2)=CA(I,1,2)+NCNT
               IF(I.GE.LCAP.AND.CAP(I).LE.2)CN(I,1,2)=CN(I,1,2)+NCNT
             ENDIF
           ELSE
c                                  captured after the first time in I
             N(I,1)=N(I,1)+NCNT
             IF(CAP(I).NE.2)NS(I,1)=NS(I,1)+NCNT
             M(I)=M(I)+NCNT
             IF(I.LT.LCAP)THEN
               CA(I,AGE,1)=CA(I,AGE,1)+NCNT
               R(I,1)=R(I,1)+NCNT
             ELSE
               IF(CAP(I).LE.2)CN(I,AGE,1)=CN(I,AGE,1)+NCNT
             ENDIF
             OLDNEW=2
             IF(I.GT.(FRST+1))OLDNEW=1
             CM(I,AGE,OLDNEW)=CM(I,AGE,OLDNEW)+NCNT
           ENDIF
         ELSE
c                               not captured in I
           IF(I.GT.FRST.AND.I.LT.LCAP)THEN
             B(I)=B(I)+NCNT
             OLDNEW=2
             IF(I.GT.(FRST+1))OLDNEW=1
             Z(I,AGE,OLDNEW)=Z(I,AGE,OLDNEW)+NCNT
           ENDIF
         ENDIF
  160    CONTINUE
C
      GO TO 80
CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
C
C           READ SUMMARY TotalS
C
  230 DO 240 I=1,LAST
        READ(1,FMT,END=250)M(I),(N(I,J),J=1,2),(NS(I,J),J=1,2),
     ,      (R(I,J),J=1,2),B(I)
        NREAD=NREAD+1
  240   NUSED=NUSED+1
C
C  -----  WRITE SUMMARY OF DATA.
C
  250 IF(MODAX.EQ.0.AND.FLAGAX.EQ.1)WRITE(7,227)
  227 FORMAT(/' *** DATA CONTAIN BETWEEN PERIOD RESIGHTING CODES ',
     /        'WHICH WILL BE IGNORED ***'/
     /        ' *** TO USE THESE DATA, SELECT MODEL A2X          ',
     /        '                      ***'/)
      WRITE(7,260)
  260 FORMAT(//' SUMMARY OF DATA:'/
     / /'  Time   # Marked  # Caught    # Released  # Caught & seen',
     ,' later  # Not caught &'/
     /  ' Period    Adlt    Adlt  Yng   Adlt  Yng        Adlt  Yng ',
     ,'        seen later'/1X,90('-'))
      DO 280 I = 1,LAST
        YR(I)=IYR1+I-1
        WRITE(7,270)YR(I),INT(M(I)),(INT(N(I,J)),J=1,2),
     ,  (INT(NS(I,J)),J=1,2),(INT(R(I,J)),J=1,2),INT(B(I))
  270   FORMAT(I6,I9,I8,I5,I7,I5,I12,I5,I16)
        IF(MOD(YR(I),5).EQ.0)WRITE(7,270)
  280   CONTINUE
      WRITE(7,290) NREAD,NUSED
  290 FORMAT(/1X,I8,' Input records read'/1X,I8,' Records used'/)
  300 RETURN
C
  800 NREAD=NREAD+1
      WRITE(*,801)NREAD
      WRITE(7,801)NREAD
  801 FORMAT(' Error reading record ',I4,' from input file.')
      IF(NREAD.GE.10)STOP
      GO TO 80
      END
