Solution of Sparse Unsymmetric Linear Systems

UMFPACK_2.0 is a FORTRAN77 library which solves unsymmetric sparse linear systems, and represents an obsolete version of the program which has since been rewritten in C, by Timothy Davis, Iain Duff.

UMFPACK Version 2.0 is a package for solving systems of sparse linear systems, Ax=b, where A is sparse and can be unsymmetric. It is written in ANSI Fortran77. There are options for choosing a good pivot order, factorizing a subsequent matrix with the same pivot order and nonzero pattern as a previously factorized matrix, and solving systems of linear equations with the factors (with A, L, or U, or their transposes). Iterative refinement, with sparse backward error estimates, can be performed. Both single and double precision routines are available.

There are four primary routines that can be called by the user (where "*" is D for double precision or S for single precision):


    * NOTICE:  "The UMFPACK Package may be used SOLELY for educational,   *
    * research, and benchmarking purposes by non-profit organizations and *
    * the U.S. government.  Commercial and other organizations may make  *
    * use of UMFPACK SOLELY for benchmarking purposes only.  UMFPACK may  *
    * be modified by or on behalf of the User for such use but at no time *
    * shall UMFPACK or any such modified version of UMFPACK become the    *
    * property of the User.  UMFPACK is provided without warranty of any  *
    * kind, either expressed or implied.  Neither the Authors nor their   *
    * employers shall be liable for any direct or consequential loss or   *
    * damage whatsoever arising out of the use or misuse of UMFPACK by    *
    * the User.  UMFPACK must not be sold.  You may make copies of        *
    * UMFPACK, but this NOTICE and the Copyright notice must appear in    *
    * all copies.  Any other use of UMFPACK requires written permission.  *
    * Your use of UMFPACK is an implicit agreement to these conditions."  *
    *                                                                     *
    * The MA38 Package in the Harwell Subroutine Library (HSL) has        *
    * equivalent functionality (and identical calling interface) as       *
    * UMFPACK.  It is available for commercial use.   Technical reports,  *
    * information on HSL, and matrices are available via the World Wide   *
    * Web at, or by          *
    * anonymous ftp at  Also contact John         *
    * Harding, Harwell Subroutine Library, B 552, AEA Technology,         *
    * Harwell, Didcot, Oxon OX11 0RA, England.                            *
    * telephone (44) 1235 434573, fax (44) 1235 434340,                   *
    * email, who will provide details of price    *
    * and conditions of use.                                              *


UMFPACK_2.0 is available in a FORTRAN77 version.

Related Data and Programs:

MGMRES, a FORTRAN77 library which applies the restarted Generalized Minimum Residual (GMRES) algorithm to solve a sparse linear system, by Lili Ju.

SPARSEKIT, a FORTRAN77 library which implements operations on sparse matrices, including conversion between various formats, by Yousef Saad.

SPARSEPAK, a FORTRAN77 library which forms an obsolete version of the Waterloo Sparse Matrix Package.

TEMPLATED, a FORTRAN77 library which carries out simple versions of various iterative solvers. This is the double precision version.

TEMPLATES, a FORTRAN77 library which carries out simple versions of various iterative solvers. This is the single precision version.

UMFPACK, FORTRAN77 programs which demonstrate the use of the C library UMFPACK to solve large sparse linear systems of equations.


Timothy Davis, Iain Duff


  1. Timothy Davis,
    Algorithm 832: UMFPACK, an unsymmetric-pattern multifrontal method,
    ACM Transactions on Mathematical Software,
    Volume 30, Number 2, June 2004, pages 196-199.
  2. Timothy Davis,
    Direct Methods for Sparse Linear Systems,
    SIAM, 2006,
    ISBN: 0898716136,
    LC: QA188.D386.

Source Code:

Examples and Tests:

List of Routines:

You can go up one level to the FORTRAN77 source codes.

Last revised on 01 February 2014.