The code GAM numerically solves solves first order ordinary differential equations, either stiff or nonstiff in the form y'=f(x,y), with a given initial condition. The methods used are in the class of Boundary Value Methods (BVMs), namely the Generalized Adams Methods (GAMs) of order 3,5,7,9 with step size control [1,2,3,7].

The code GAM .

Numerical Experiments .

References .

The code GAM

The code GAM consists of three files:

- gam.f contains the main subroutines that implement the integration procedure;

- subgam.f contains subroutines used by GAM and some additional linear algebra routines;

- param.dat contains the definition of all the constants. This file must be inserted in the same directory as the main program during compilation; it is included in all the subroutine with the fortran 77 instruction include "param.dat".

If you retrieve the software, please send a message to so that we may keep you updated on any changes. Also any bug reports are appreciated.

Numerical Experiments

The code has been tested on many difficult stiff test problems. For example, those contained in the test set., in Hairer's home page, or in Cash's home page. Some numerical results are summarized in [3].

To run the problems in the CWI style (release 1.0 of the IVPtestset ) it is possible to use the driver gamdo.f which contain the main program that must be compiled together with the CWI routine (release 1.0) of the problem, gam.f and subgam.f. To run the problems in the test set style (release 2.2) it is possible to use the driver gamd.f which contains the main program that must be compiled together with the test set routine of the problem, gam.f and subgam.f and the subroutine report.f . See IVP test set web page for more details.

Some of the problem have been rewritten using the CWI style (release 1.0), the routines are the following:

We report here some of the most interesting results that show the difference between the codes gam (version August 1997), radau5 by Hairer and Wanner (version July 1996)[4] and mbdfdae by Cash (version April 1997) [6]. The driver for radau5 is rad5do.f taken from CWI whereas for mbdfdae the driver is mbdfddo.f . The official links, which often direct to most recent versions, are radau5 , mbdfdae . We note that any numerical comparison is necessarily problem dependent and it also depends on the chosen evaluation parameters. Here we present the following few examples:

RINGMOD: the ring modulator problem with parameter cs = 2.0 x 10^{-12} which originates from electrical circuit analysis and presents solution components oscillating at very different frequencies [5];

POLLUTION: a stiff system of 20 nonlinear differential equations [5];

BEAM: the nonlinear elastic beam equation of dimension 80 [4];

ROBER: the Robertson problem represented by a stiff system of 3 nonlinear differential equations [4];

CHEMAKZO: the Chemical Akzo Nobel problem of 6 nonlinear components [5];

VDPOL: the Van der Pol problem of dimension 2 with parameter mu=10^3 [4];

For each numerical example we report the work precision diagram; that is, a range of input tolerances and a range of initial stepsizes were used to produce a plot of the resulting scd values (the minimum number of significant digits in the numerical solution at the endpoint) against the CPU time in seconds needed for the run. The format of these diagrams is as in [4]. Naturally this diagram strongly depends on the input tolerances and on the default parameters of each code; the variation of a parameter may considerably change the diagrams. For all problems we fixed atol=rtol and h0=rtol while the values of rtol were chosen as follows:

10^{-(6+m/4)}, m=0, ... ,28, in RINGMOD;

10^{-(3+m/4)}, m=0, ... ,44, in POLLUTION;

10^{-(2+m/4)}, m=0, ... ,16, in BEAM;

10^{-(5+m/4)}, m=0, ... ,36, in ROBER;

10^{-(7+m/4)}, m=0, ... ,28, in CHEMAKZO for RADAU5 and MEBDF, and
10^{-(4+m/4)}, m=0, ... ,40, for GAM;

10^{-(2+m/4)}, m=0, ... ,48, in VDPOL.

We found that the three codes solved all problems efficiently at almost all the tolerances. In terms of CPU time it is not possible to make a direct comparison, since the behaviour is problem dependent. Regarding the number of LU factorizations, we see that in general GAM and MEBDF take very few, whereas GAM requires a very large number of function evaluations due to the splitting Newton iterations for the solution of the nonlinear systems. In RINGMOD the codes MEBDF and GAM achieve very similar accuracy with a significantly lower total cost than RADAU5 while the converse is true in ROBER. In POLLUTION and CHEMAKZO the behaviour of the three codes is very similar although RADAU5 stagnates when high precision is required. In the rest of the examples the general observation is that RADAU5 performs better at moderate tolerances while if high accuracy is required MEBDF and GAM become more competitive; this behaviour is probably due to the high order methods used inside GAM and MEBDF.


[1] L.BRUGNANO, D.TRIGIANTE, Solving Differential Problems by Multistep Initial and Boundary Value Methods, Gordon & Breach, Amsterdam, 1998.

[2] F.IAVERNARO, F.MAZZIA, Block-Boundary Value Methods for the solution of Ordinary Differential Equations,Siam J. Sci. Comput. 21 (1) (1999) 323--339. Full paper.

[3] F.IAVERNARO, F.MAZZIA, Solving Ordinary Differential Equations by Generalized Adams Methods: properties and implementation techniques, proceedings of NUMDIFF8, Appl. Num. Math. 28 (2-4) (1998) 107-126. Full paper.

[4] E. HAIRER, G. WANNER, Solving Ordinary Differential Equations II: Stiff and Differential-Algebraic Problems, Springer Series in Computational Mathematics, vol. 14, Springer-Verlag, Berlin, 1991.

[5] W.M. LIOEN, J.J.B. DE SWART and W.A. VAN DER VEEN, Test Set for IVP Solvers, CWI, Department of Mathematics, Amsterdam, Report NM-R9615, 1996

[6] J.R.CASH, S. CONSIDINE, An MEBDF Code for Stiff Initial Value Problems, ACM Transaction on Mathematical Software, Vol 18, No. 2, 1992, pp. 142-155.

[7] BVMs Bibliography.

This page is maintained by Francesca Mazzia (

Last Update: September 11, 2003