# TOMS648_NSD ODE Tests Non-Stiff Double Precision

TOMS648_NSD is a FORTRAN77 library which defines a set of non-stiff 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(T0) = Y0

A uniform interface makes it easy to solve all the problems automatically, or to concentrate on a single one.

The problems include:

1. Enright and Pryce #A1,
neqn = 1,
y' = -y;
2. Enright and Pryce #A2,
neqn = 1,
y' = -y^3/2;
3. Enright and Pryce #A3,
neqn = 1,
y' = cos(t)*y;
4. Enright and Pryce #A4,
neqn = 1,
y' = y*(20-y)/80;
5. Enright and Pryce #A5,
neqn = 1,
y' = (y-t)/(y+t);
6. Enright and Pryce #B1,
neqn = 2,
y1' = 2*y1*(1-y2)
y2' = - y2*(1-y1);
7. Enright and Pryce #B2,
neqn = 3,
y1' = -y1+y2
y2' = y1-2*y2+y3
y3' = y2-y3;
8. Enright and Pryce #B3,
neqn = 3,
y1' = -y1
y2' = y1-y2^2
y3' = y2^2;
9. 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);
10. Enright and Pryce #B5,
neqn = 3,
y1' = y2*y3
y2' = -y1*y3
y3' = -0.51*y1*y2;
11. Enright and Pryce #C1,
neqn = 10;
12. Enright and Pryce #C2,
neqn = 10;
13. Enright and Pryce #C3,
neqn = 10;
14. Enright and Pryce #C4,
neqn = 51;
15. Enright and Pryce #C5,
neqn = 30;
16. Enright and Pryce #D1,
neqn = 4;
17. Enright and Pryce #D2,
neqn = 4;
18. Enright and Pryce #D3,
neqn = 4;
19. Enright and Pryce #D4,
neqn = 4;
20. Enright and Pryce #D5,
neqn = 4;
21. Enright and Pryce #E1,
neqn = 2;
22. Enright and Pryce #E2,
neqn = 2;
23. Enright and Pryce #E3,
neqn = 2;
24. Enright and Pryce #E4,
neqn = 2;
25. Enright and Pryce #E5,
neqn = 2;
26. Enright and Pryce #F1,
neqn = 2;
27. Enright and Pryce #F2,
neqn = 1;
28. Enright and Pryce #F3,
neqn = 2;
29. Enright and Pryce #F4,
neqn = 1;
30. Enright and Pryce #F5,
neqn = 1;

TOMS648_NSD is one part (the non-stiff 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 Runge-Kutta-Fehlberg ODE solver.

TEST_ODE, a FORTRAN90 library which defines a set of test functions for ODE solvers.

### References:

1. W Enright and J Pryce,
Algorithm 648,
NSDTST and STDTST,
ACM Transactions on Mathematical Software,
Volume 13, Number 1, 1987, pages 28-34.
2. 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.

### 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 ODE-solver being tested.
• STR3 converts P to a 3 character integer percentage.
• TRUE uses a Runge-Kutta scheme to estimate the true solution.

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

Last revised on 23 March 2006.