Module that provides a 5th order continuous explicit Runge-Kutta ODE integrator (see Verner & Zennaro, 1995, Mathematics of Computation, 64, 211, 1123-1146).
The implementation is found in submodule_rk5_implementation.f90.
Routine that reports how many temporary storage levels are needed.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(rk5), | intent(in) | :: | this | The routine is called on this object. |
The return value is the number of required temorary storage levels.
Routine that initializes the integrator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(rk5), | intent(inout) | :: | this | The routine is called on this object. |
||
type(equation_pointer), | intent(in), | dimension(:) | :: | eqs | A 1d-array of pointers to equations that will be integrated. |
Routine that takes a time step.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(rk5), | intent(inout) | :: | this | The routine is called on this object. |
Routine that shuts downs the integrator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(rk5), | intent(inout) | :: | this | The routine is called on this object. |
A 5th order continuous explicit Runge-Kutta ODE integrator.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=ip), | public | :: | nequations | The number of equations to integrate. |
|||
class(equation_pointer), | public, | dimension(:), allocatable | :: | eqs | A 1d array of equation pointers. Will be of length nequations. |
||
integer(kind=ip), | public | :: | ntmp | = | 7 | 7 levels of temporary storage are required. |
procedure, public :: ntemp => rk5_ntemp | Routine to provide information about temporary storage levels is provided by rk5_ntemp. |
procedure, public :: init => rk5_init | Initialization routine is provided by rk5_init. |
procedure, public :: step => rk5_step | Stepping routine is provided by rk5_step. |
procedure, public :: shutdown => rk5_shutdown | Shut down routine is provided by rk5_shutdown. |