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:

  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 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:

  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.

Source Code:


Last revised on 30 November 2023.