nms, a Fortran77 code which includes a wide variety of numerical software, including solvers for linear systems of equations, a piecewise Hermie cubic (PWH) interpolation package (PCHIP), numerical quadrature, linear least squares data fitting, the solution of nonlinear equations, ordinary differential equations (ODE), optimization and nonlinear least squares (NLS), simulation and random numbers, trigonometric approximation and Fast Fourier Transforms (FFT).

The code accompanies the text "Numerical Methods and Software". The book is a modern discussion of current numerical algorithms and software. The software that comes with the book has been extracted from standard software libraries, particularly the SLATEC library. Thus the book is also a good introduction to the use of a portion of the SLATEC library, which does not have a widely available solid hardcopy reference.

In particular, nms() includes some or all of:


The computer code and data files described and made available on this web page are distributed under the MIT license.


nms is available in a Fortran77 version and a Fortran90 version.

Related Data and Programs:


bernstein_polynomial, a Fortran77 code which evaluates the Bernstein polynomials, useful for uniform approximation of functions;

blas1_d, a Fortran77 code which contains basic linear algebra routines for vector-vector operations, using double precision real arithmetic;

fftpack5, a Fortran77 code which contains version 5 of FFTPACK.

linpack_d, a Fortran77 code which solves linear systems using double precision real arithmetic;

machine, a Fortran77 code which reports the value of machine arithmetic constants.

ode, a Fortran77 code which implements the Shampine and Gordon ODE solver.

pchip, a Fortran77 code which can construct a piecewise cubic Hermite interpolant to data, and carry out various related operations, by Fred Fritsch.

qr_solve, a Fortran77 code which computes the least squares solution of a linear system A*x=b.

quadpack, a Fortran77 code which approximates integrals of functions.

rkf45, a Fortran77 code which is a Runge-Kutta-Fehlberg ODE solver.

test_values, a Fortran77 code which supplies test values of various mathematical functions.

xerror, a Fortran77 code which is designed to report and handle errors detected during program execution.


  1. David Kahaner, Cleve Moler, Steven Nash,
    Numerical Methods and Software,
    Prentice Hall, 1989,
    ISBN: 0-13-627258-4,
    LC: TA345.K34.

Source Code:

Last revised on 09 January 2024.