TOMS648_NSD
ODE Tests
NonStiff Double Precision
TOMS648_NSD
is a FORTRAN77 library which
defines a set of nonstiff initial
value problems for ordinary differential equations.
These problems have the common form:
determine (some values of) the function Y(T)
given
Y'(T) = F(T,Y)
with initial value
Y(T_{0}) = Y_{0}
A uniform interface makes it easy to solve all the problems
automatically, or to concentrate on a single one.
The problems include:

Enright and Pryce #A1,
neqn = 1,
y' = y;

Enright and Pryce #A2,
neqn = 1,
y' = y^3/2;

Enright and Pryce #A3,
neqn = 1,
y' = cos(t)*y;

Enright and Pryce #A4,
neqn = 1,
y' = y*(20y)/80;

Enright and Pryce #A5,
neqn = 1,
y' = (yt)/(y+t);

Enright and Pryce #B1,
neqn = 2,
y1' = 2*y1*(1y2)
y2' =  y2*(1y1);

Enright and Pryce #B2,
neqn = 3,
y1' = y1+y2
y2' = y12*y2+y3
y3' = y2y3;

Enright and Pryce #B3,
neqn = 3,
y1' = y1
y2' = y1y2^2
y3' = y2^2;

Enright and Pryce #B4,
neqn = 3,
y1' = (y2y1*y3) / sqrt(y1^2+y2^2)
y2' = (y1y2*y3) / sqrt(y1^2+y2^2)
y3' = y1 / sqrt(y1^2+y2^2);

Enright and Pryce #B5,
neqn = 3,
y1' = y2*y3
y2' = y1*y3
y3' = 0.51*y1*y2;

Enright and Pryce #C1,
neqn = 10;

Enright and Pryce #C2,
neqn = 10;

Enright and Pryce #C3,
neqn = 10;

Enright and Pryce #C4,
neqn = 51;

Enright and Pryce #C5,
neqn = 30;

Enright and Pryce #D1,
neqn = 4;

Enright and Pryce #D2,
neqn = 4;

Enright and Pryce #D3,
neqn = 4;

Enright and Pryce #D4,
neqn = 4;

Enright and Pryce #D5,
neqn = 4;

Enright and Pryce #E1,
neqn = 2;

Enright and Pryce #E2,
neqn = 2;

Enright and Pryce #E3,
neqn = 2;

Enright and Pryce #E4,
neqn = 2;

Enright and Pryce #E5,
neqn = 2;

Enright and Pryce #F1,
neqn = 2;

Enright and Pryce #F2,
neqn = 1;

Enright and Pryce #F3,
neqn = 2;

Enright and Pryce #F4,
neqn = 1;

Enright and Pryce #F5,
neqn = 1;
TOMS648_NSD is one part (the nonstiff double precision part)
of the set of routines released as ACM TOMS Algorithm 648.
Languages:
TOMS648_NSD is available in
a FORTRAN77 version.
Related Data and Programs:
NMS,
a FORTRAN90 library
which includes the DDRIV package of ODE solvers.
ODE,
a FORTRAN90 library which
contains the Shampine and Allen ODE solver.
RKF45,
a FORTRAN90 library which
implements a RungeKuttaFehlberg ODE solver.
TEST_ODE,
a FORTRAN90 library which
defines a set of test functions
for ODE solvers.
References:

W Enright and J Pryce,
Algorithm 648,
NSDTST and STDTST,
ACM Transactions on Mathematical Software,
Volume 13, Number 1, 1987, pages 2834.

T Hull, W Enright, B Fellen and A Sedgwick,
Comparing numerical methods for ordinary differential equations,
SIAM Journal on Numerical Analysis,
Volume 9, 1972, pages 603637.
Source Code:
Examples and Tests:
List of Routines:

NSDTST is a test package for nonstiff differential equation solvers.

CLOCK is meant to return the elapsed CPU seconds.

CNTROL calls METHOD to get statistics for one problem and tolerance.

CONST returns machine dependent constants.

DIFNRM computes the norm of the difference of two vectors.

EFSTAT computes and printes normalized efficiency statistics.

EVALU provides "true" values of the ODE solution at the endpoint.

FCN evaluates the derivative F(X,Y) for the ODE test problem.

FCN2 transfers function values from FCN to TRUE.

IVALU provides initial values to the ODE test problem.

LSQFIT fits a linear model to data.

PARCHK checks the parameters.

PLOT plots local error information.

RATIO computes the ratio of two integers.

STATS instruments the ODEsolver being tested.

STR3 converts P to a 3 character integer percentage.

TRUE uses a RungeKutta scheme to estimate the true solution.
You can go up one level to
the FORTRAN77 source codes.
Last revised on 23 March 2006.