NSPIV: a Fortran Subroutine for Gaussian Elimination with Partial Pivoting