C
      SUBROUTINE  EIGEN (LL,WKAPPA)
C
C     ------------------------------------------------------------
C
C       SUBROUTINE PURPOSES:
C       1) SEPARATING SOLUTIONS OF THE CHARACTERISTIC EQN.
C       2) FINDING THE SOLUTION BY CALLING SUB. SOLVE.
C       FIXED-STEP LENGTH IS ADOPTED.
C
C     ------------------------------------------------------------
C
      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
C
      COMMON
     !   /BESSEL/
     !     BJ00,BJ01,BJ10,BY00,BY01,BY10
     !   /PARAMT/
     !     RO,R1,H,STEP
C
C     EVALUATION OF BESSEL FUNCTIONS OF THE 1ST AND 2ND KINDS,
C     ZERO AND 1ST ORDERS AT W*RO AND W*R1.
C
      IF (LL.EQ.0) W=0.0
10       W=W+STEP
         X=W*RO
         CALL  BESSJ0 (X,BJ0)
         CALL  BESSY0 (X,BJ0,BY0)
         CALL  BESSJ1 (X,BJ1)
         CALL  BESSY1 (X,BJ1,BY1)
         BJ00=BJ0
         BJ10=BJ1
         BY00=BY0
         BY10=BY1
         X=W*R1
         CALL  BESSJ0 (X,BJ0)
         CALL  BESSY0 (X,BJ0,BY0)
         BJ01=BJ0
         BY01=BY0
C
C       EVALUATION OF CHARACTERISTIC EQUATION. IF Y CHANGES SIGNS,
C     OVER THE CURRENT STEP, THERE MUST BE A SOLUTION OF W TO THE
C     CHARACTERISTIC EQUATION IN BETWEEN.
C
         Y=BJ01*(W*BY10+H*BY00)
     !     -BY01*(W*BJ10+H*BJ00)
         IF (W.LT.1.5*STEP) THEN
            Y0=Y
            GO TO 10
         ELSE
            Y1=Y
         ENDIF
         IF (Y0*Y1.LT.0.0) THEN
            CALL SOLVE (Y0,Y1,W,W1)
            WKAPPA=W1
            Y0=Y1
            RETURN
         ELSE
            Y0=Y1
         ENDIF
      GO TO 10
C
      END

