  We introduce a new algorithm for finding the eigenvalues and eigenvectors of
Hermitian matrices within a specified region, based upon the LANSO algorithm of
Parlett and Scott. It uses selective reorthogonalization to avoid the
duplication of eigenpairs in finite-precision arithmetic, but uses a new bound
to decide when such reorthogonalization is required, and only reorthogonalizes
with respect to eigenpairs within the region of interest. We investigate its
performance for the Hermitian Wilson--Dirac operator (\gamma_5D) in lattice
quantum chromodynamics, and compare it with previous methods.
