toms648
toms648,
a FORTRAN77 code which
defines a set of non-stiff initial
value problems for ordinary differential equations.
This is a version of ACM TOMS algorithm 648.
These problems have the common form:
determine (some values of) the function Y(T)
given
Y'(T) = F(T,Y)
with initial value
Y(T0) = Y0
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*(20-y)/80;
-
Enright and Pryce #A5,
neqn = 1,
y' = (y-t)/(y+t);
-
Enright and Pryce #B1,
neqn = 2,
y1' = 2*y1*(1-y2)
y2' = - y2*(1-y1);
-
Enright and Pryce #B2,
neqn = 3,
y1' = -y1+y2
y2' = y1-2*y2+y3
y3' = y2-y3;
-
Enright and Pryce #B3,
neqn = 3,
y1' = -y1
y2' = y1-y2^2
y3' = y2^2;
-
Enright and Pryce #B4,
neqn = 3,
y1' = (-y2-y1*y3) / sqrt(y1^2+y2^2)
y2' = (y1-y2*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 is one part (the non-stiff double precision part)
of the set of routines released as ACM toms Algorithm 648.
Licensing:
The computer code and data files made available on this
web page are distributed under
the MIT license
Languages:
toms648 is available in
a FORTRAN77 version.
Related Data and Programs:
toms648_test
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 Runge-Kutta-Fehlberg 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 28-34.
-
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 603-637.
Source Code:
Last revised on 30 November 2023.