Wanted: Fast Diagonalization Routine

   I am wondering if anyone knows of any references to or sources for
 fast algorithms or routines for diagonalization (i.e.
 finding the eigenvalues and eigenvectors) of a symmetric matrix.
   If the source codes are available, FORTRAN code would be preferable, but C
 would work if that's all that is available.
   The problem I am using this for consists of finding stationary points
 (specifically saddle points) on the 3*N-dimensional Cartesian potential
 surface for a system of N particles interacting via pairwise interactions.
 The matrix in question is the Hessian second-derivative matrix (symmetric,
 real, and non-sparse).
 Any references or suggestions would be greatly appreciated!
 Please send your responses directly by e-mail.
 Keith Ball
 Dept. of Physics
 Univ. of Chicago