D02PSF computes the solution of a system of ordinary differential equations using interpolation anywhere on an integration step taken by
D02PFF.
SUBROUTINE D02PSF ( |
N, TWANT, IDERIV, NWANT, YWANT, YPWANT, F, WCOMM, LWCOMM, IUSER, RUSER, IWSAV, RWSAV, IFAIL) |
INTEGER |
N, IDERIV, NWANT, LWCOMM, IUSER(*), IWSAV(130), IFAIL |
REAL (KIND=nag_wp) |
TWANT, YWANT(NWANT), YPWANT(NWANT), WCOMM(LWCOMM), RUSER(*), RWSAV(32*N+350) |
EXTERNAL |
F |
|
D02PSF and its associated routines (
D02PFF,
D02PQF,
D02PRF,
D02PTF and
D02PUF) solve the initial value problem for a first-order system of ordinary differential equations. The routines, based on Runge–Kutta methods and derived from RKSUITE (see
Brankin et al. (1991)), integrate
where
is the vector of
solution components and
is the independent variable.
D02PFF computes the solution at the end of an integration step. Using the information computed on that step D02PSF computes the solution by interpolation at any point on that step. It cannot be used if
or
was specified in the call to setup routine
D02PQF.
Brankin R W, Gladwell I and Shampine L F (1991) RKSUITE: A suite of Runge–Kutta codes for the initial value problems for ODEs SoftReport 91-S1 Southern Methodist University
If on entry
or
, explanatory error messages are output on the current error message unit (as defined by
X04AAF).
-
or in setup, but interpolation is not available for this method. Either use or in setup or use reset routine to force the integrator to step to particular points.
On entry, a previous call to the setup routine has not been made or the communication arrays have become corrupted, or a catastrophic error has already been detected elsewhere.
You cannot continue integrating the problem.
On entry, .
Constraint: , or .
On entry, , and .
Constraint: for or , .
On entry, .
Constraint: for or , .
On entry, , but the value passed to the setup routine was .
On entry, and .
Constraint: .
You cannot call this routine after the integrator has returned an error.
You cannot call this routine before you have called the step integrator.
You cannot call this routine when you have specified, in the setup routine, that the range integrator will be used.
The computed values will be of a similar accuracy to that computed by
D02PFF.
D02PSF is not threaded by NAG in any implementation.
D02PSF makes calls to BLAS and/or LAPACK routines, which may be threaded within the vendor library used by this implementation. Consult the documentation for the vendor library for further information.
Please consult the
X06 Chapter Introduction for information on how to control and interrogate the OpenMP environment used within this routine. Please also consult the
Users' Note for your implementation for any additional implementation-specific information.
None.
This example solves the equation
reposed as
over the range
with initial conditions
and
. Relative error control is used with threshold values of
for each solution component.
D02PFF is used to integrate the problem one step at a time and D02PSF is used to compute the first component of the solution and its derivative at intervals of length
across the range whenever these points lie in one of those integration steps. A low order Runge–Kutta method (
) is also used with tolerances
and
in turn so that solutions may be compared.