      SUBROUTINE SEIG(A,KA,N,W,T,IERR)
      DIMENSION A(1),W(N),T(1)
      IF (KA.EQ.0) GO TO 10
      CALL TRED1(KA,N,A,W,T(N+1),T(1))
      CALL TQLRAT(N,W,T,IERR)
      RETURN
10    L=N*(N+1)
      L=L/2
      CALL TRED3(N,L,A,W,T(N+1),T(1))
      CALL TQLRAT(N,W,T,IERR)
      RETURN
      END
