An Adams-Bashford-Moulton multi-value ODE integrator class.
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 | = | 10 | 10 levels of temporary storage are required. |
|
integer(kind=ip), | public | :: | order | = | 5 | The order of the method is 5. |
|
real(kind=wp), | public | :: | last_dt | Variable that keeps track of the last timestep. |
Routine to provide information about temporary storage levels is provided by abmv5_ntemp.
Routine that reports how many temporary storage levels are needed.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abmv5), | intent(in) | :: | this | The routine is called on this object. |
The return value is the number of required temorary storage levels.
Initialization routine is provided by abmv5_init.
Routine that initializes the integrator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abmv5), | 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. |
Stepping routine is provided by abmv5_step.
Routine that takes a time step.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abmv5), | intent(inout) | :: | this | The routine is called on this object. |
Shut down routine is provided by abmv5_shutdown.
Routine that shuts downs the integrator.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abmv5), | intent(inout) | :: | this | The routine is called on this object. |
type, extends(integrator) :: abmv5
!! An Adams-Bashford-Moulton multi-value ODE integrator class.
integer(ip) :: ntmp = 10
!! 10 levels of temporary storage are required.
integer(ip) :: order = 5
!! The order of the method is 5.
real(wp) :: last_dt
!! Variable that keeps track of the last timestep.
contains
procedure :: ntemp => abmv5_ntemp
!! Routine to provide information about temporary storage levels is
!! provided by [[abmv5_ntemp]].
procedure :: init => abmv5_init
!! Initialization routine is provided by [[abmv5_init]].
procedure :: step => abmv5_step
!! Stepping routine is provided by [[abmv5_step]].
procedure :: shutdown => abmv5_shutdown
!! Shut down routine is provided by [[abmv5_shutdown]].
end type abmv5