Fortran and Matlab Codes

If you have any problems with the file transfer, please, contact Ernst.Hairer (at)
We hope the programs will be of use for you and your group. We appreciate, if you communicate us your experiences (bad and good) with our codes.
A testset of stiff differential equations with drivers for some of our codes is also at your disposal.
The software of this page is free subject to the following licence agreement

Geometric Integrators (Structure-Preserving Algorithms)
Symplectic methods for Hamiltonian systems and symmetric methods for reversible problems show an improved qualitative and quantitative behaviour, especially for long-time integrations.
For a description see: E. Hairer, C. Lubich and G. Wanner (2002): Geometric Numerical Integration. Structure-Preserving Algorithms for Ordinary Differential equations. Springer Series in Comput. Math., vol. 31 as well as the article E. Hairer and M. Hairer (2002): GniCodes - Matlab programs for geometric numerical integration.

The tar file gnicodes.tar contains a directory with the following Fortran 77 codes (for unfolding the directory use the command tar xvf gnicodes.tar)

The tar file gnimatlab.tar contain a directory with the following Matlab codes (for unfolding the directory use the command tar xvf gnimatlab.tar) A C++ version of these codes has been written by John Denker.

Rigid body integrator, which is described in E. Hairer and G. Vilmart (2006): Preprocessed Discrete Moser-Veselov algorithm for the full dynamics of the rigid body, J. Phys. A: Math. Gen. 39 (2006) 13225-13235.

Nonstiff Differential Equations
For a description see: Hairer, Norsett and Wanner (1993): Solving Ordinary Differential Equations. Nonstiff Problems. 2nd edition. Springer Series in Comput. Math., vol. 8.

Stiff Differential Equations and Differential-Algebraic Problems
Description: Hairer and Wanner (1996): Solving Ordinary Differential Equations. Stiff and Differential-Algebraic Problems. 2nd edition. Springer Series in Comput. Math., vol. 14.

Stabilized explicit methods for stiff differential equations
The methods are based on explicit Runge-Kutta methods with extended stability domain along the negative real axis. They are easy to use (no linear algebra routines, ...), and they are especially suited for MOL discretizations of parabolic partial differential equations. The codes are written by Assyr Abdulle (Assyr.Abdulle (at)

Delay Differential Equations
For nonstiff problems For stiff problems, including differential-algebraic and neutral delay equations with constant or state-dependent (eventually vanishing) delay. The codes are written in collaboration with Nicola Guglielmi (guglielm (at) There is a folder with Matlab codes, written by Denis Bichsel "dbichsel (at)", for adaptations of the nonstiff integrators DOPRI5 and DOP853 to delay differential equations.

Mechanical Systems
The following codes are especially adapted to the equations of motion for constrained mechanical systems: q' = T(q,t)v M(t,q)v' = f(q,v,u,t) - L(q,v,u,t)*lamda 0 = H(q,t)v + k(q,t) u' = d(q,v,u,lambda,t) They have options for projecting the numerical solution to manifolds defined by 0 = g(q,t).
A dense output is available.
Back to the page of Ernst Hairer