      SUBROUTINE EC08C(A,B,VALUE,VEC,N,IV,W)
      include 'MOP6FILE'
C
C TO FIND THE EIGENVALUES AND VECTORS OF A TRI-DIAGONAL
C  HERMITIAN MATRIX.
      real VALUE(*),W(*),PCK(2),ONE,ZERO,VEC(*)
      complex A(*),B(*),DN,UPCK
      equivalence (PCK(1),UPCK)
C  WE TREAT VEC AS IF IT IS DEFINED AS COMPLEX VEC(IV,N)
C  IN THE CALLING PROGRAM.
      data ONE, ZERO/1.0,0.0/
      IV2=IV+IV
      N2=N+N
      IL=IV2*(N-1)+1
      W(1)=A(1)
C
C  THE HERMITIAN FORM IS TRANSFORMED INTO A REAL FORM
      if (N-1) 80,80,10
   10 do 20 I=2,N
         W(I)=A(I)
   20 W(I+N)=CABS(B(I))
C
C  FIND THE EIGENVALUES AND VECTORS OF THE REAL FORM
   30 call EA08C(W,W(N+1),VALUE,VEC,N,IV2,W(N2+1))
C
C THE VECTORS IN VEC AT THIS POINT ARE REAL,WE NOW EXPAND THEM
C INTO VEC AS THOUGH THEY WERE COMPLEX.
      do 50 I=1,IL,IV2
         do 40 J=1,N
            K=N-J
            L=K+K
   40    VEC(I+L)=VEC(I+K)
   50 VEC(I+1)=ZERO
      if (N.LE.1) go to 80
      DN=ONE
      K=1
C
C TRANSFORM VECTORS OF REAL FORM TO THOSE OF COMPLEX FORM.
      do 70 I=4,N2,2
         K=K+1
         UPCK=ONE
         if (W(K+N).NE.ZERO) UPCK=DN*CONJG(B(K))/W(K+N)
         I1=IL-1+I
         do 60 J=I,I1,IV2
            VEC(J)=VEC(J-1)*PCK(2)
   60    VEC(J-1)=VEC(J-1)*PCK(1)
   70 DN=UPCK
   80 return
      end
