Runge-Kutta integration.
Note
The default real kind (wp) can be
changed using optional preprocessor flags.
This library was built with real kind:
real(kind=real64) [8 bytes]
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public, | parameter | :: | rk_module_rk | = | real64 |
real kind used by this module [8 bytes] |
| integer, | private, | parameter | :: | wp | = | rk_module_rk |
local copy of |
| real(kind=wp), | private, | parameter | :: | zero | = | 0.0_wp | |
| integer, | private, | parameter | :: | max_error_len | = | 100 |
max size of error message strings |
| integer, | private, | parameter | :: | dense_form_polynomial | = | 1 |
|
| integer, | private, | parameter | :: | dense_form_dopri | = | 2 |
the form used in |
| integer, | public, | parameter | :: | RKLIB_ERROR_DENSE_NOT_AVAILABLE | = | -16 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_DENSE_STEP_DISABLED | = | -15 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_DENSE_NOT_ENABLED | = | -14 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_DENSE_RECURSIVE | = | -13 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_DENSE_OUT_OF_RANGE | = | -12 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_NO_DENSE_OUTPUT | = | -11 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_TOO_MANY_STEPS | = | -10 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_INVALID_RTOL_SIZE | = | -9 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_INVALID_ATOL_SIZE | = | -8 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_INVALID_H | = | -7 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_USER_STOPPED | = | -6 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_MIN_STEP_SIZE | = | -5 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_TOO_MANY_REDUCTIONS | = | -4 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_INVALID_HINIT_METHOD | = | -3 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_G_NOT_ASSOCIATED | = | -2 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_F_NOT_ASSOCIATED | = | -1 | |
| integer, | public, | parameter | :: | RKLIB_ERROR_NONE | = | 0 | |
| character(len=max_error_len), | private, | parameter, dimension(RKLIB_ERROR_DENSE_NOT_AVAILABLE:RKLIB_ERROR_NONE) | :: | rklib_error_messages | = | ['No step is available for the dense output   ', 'dense_output_step requires dense output     ', 'Dense output was not enabled                ', 'Interpolate called from within interpolate  ', 'Dense output time is outside the last step  ', 'The method does not have a dense output     ', 'Too many steps                              ', 'Invalid size for rtol array                 ', 'Invalid size for atol array                 ', 'Step size cannot be zero                    ', 'User stopped the integration                ', 'Minimum step size reached                   ', 'Too many attempts to reduce step size       ', 'Invalid initial step size estimation method ', 'The event procedure g is not associated     ', 'The function procedure f is not associated  ', 'Success                                     '] |
Status message strings that go with the status codes.
The index in this array is the |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(euler_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(midpoint_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(heun_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkssp22_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk3_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkssp33_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkssp53_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk4_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rks4_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkr4_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkls44_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkls54_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkssp54_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rks5_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk5_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkc5_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkl5_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rklk5a_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rklk5b_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkb6_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk7_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk8_10_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkcv8_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk8_12_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rks10_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkz10_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rko10_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkh10_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkbs32_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkssp43_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkf45_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkck54_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkdp54_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkt54_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rks54_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkpp54_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkpp54b_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkbs54_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkss54_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkdp65_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkc65_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rktp64_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv65e_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv65r_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv65_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(dverk65_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rktf65_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rktp75_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rktmy7_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rktmy7s_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv76e_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv76r_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkss76_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkf78_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv78_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(dverk78_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkdp85_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rktp86_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkdp87_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv87e_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv87r_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkev87_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkk87_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkf89_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv89_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkt98a_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv98e_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv98r_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rks98_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkf108_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkc108_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkb109_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rks1110a_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkf1210_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rko129_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkf1412_class), | intent(in) | :: | me |
properties of the method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(euler_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(midpoint_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(heun_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkssp22_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk3_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkssp33_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkssp53_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk4_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rks4_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkr4_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkls44_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkls54_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkssp54_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rks5_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk5_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkc5_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkl5_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rklk5a_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rklk5b_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkb6_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk7_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk8_10_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkcv8_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk8_12_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rks10_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkz10_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rko10_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkh10_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkbs32_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkssp43_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkf45_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkck54_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkdp54_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkt54_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rks54_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkpp54_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkpp54b_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkbs54_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkss54_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkdp65_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkc65_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rktp64_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv65e_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv65r_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv65_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(dverk65_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rktf65_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rktp75_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rktmy7_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rktmy7s_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv76e_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv76r_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkss76_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkf78_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv78_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(dverk78_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkdp85_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rktp86_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkdp87_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv87e_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv87r_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkev87_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkk87_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkf89_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv89_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkt98a_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv98e_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv98r_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rks98_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkf108_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkc108_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkb109_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rks1110a_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkf1210_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rko129_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkf1412_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
state at time |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate for |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkdp54_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(out), | dimension(:,:), allocatable | :: | b |
dense output coefficients |
|
| integer, | intent(out) | :: | form |
the form of |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv65e_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(out), | dimension(:,:), allocatable | :: | b |
dense output coefficients |
|
| integer, | intent(out) | :: | form |
the form of |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv65e_class), | intent(inout) | :: | me |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv65r_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(out), | dimension(:,:), allocatable | :: | b |
dense output coefficients |
|
| integer, | intent(out) | :: | form |
the form of |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv65r_class), | intent(inout) | :: | me |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv76e_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(out), | dimension(:,:), allocatable | :: | b |
dense output coefficients |
|
| integer, | intent(out) | :: | form |
the form of |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv76e_class), | intent(inout) | :: | me |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv76r_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(out), | dimension(:,:), allocatable | :: | b |
dense output coefficients |
|
| integer, | intent(out) | :: | form |
the form of |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv76r_class), | intent(inout) | :: | me |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(dverk78_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(out), | dimension(:,:), allocatable | :: | b |
dense output coefficients |
|
| integer, | intent(out) | :: | form |
the form of |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(dverk78_class), | intent(inout) | :: | me |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkdp85_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(out), | dimension(:,:), allocatable | :: | b |
dense output coefficients |
|
| integer, | intent(out) | :: | form |
the form of |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkdp85_class), | intent(inout) | :: | me |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkdp87_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(out), | dimension(:,:), allocatable | :: | b |
dense output coefficients |
|
| integer, | intent(out) | :: | form |
the form of |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkdp87_class), | intent(inout) | :: | me |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv87e_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(out), | dimension(:,:), allocatable | :: | b |
dense output coefficients |
|
| integer, | intent(out) | :: | form |
the form of |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv87e_class), | intent(inout) | :: | me |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv87r_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(out), | dimension(:,:), allocatable | :: | b |
dense output coefficients |
|
| integer, | intent(out) | :: | form |
the form of |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv87r_class), | intent(inout) | :: | me |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkev87_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(out), | dimension(:,:), allocatable | :: | b |
dense output coefficients |
|
| integer, | intent(out) | :: | form |
the form of |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkev87_class), | intent(inout) | :: | me |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv98e_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(out), | dimension(:,:), allocatable | :: | b |
dense output coefficients |
|
| integer, | intent(out) | :: | form |
the form of |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv98e_class), | intent(inout) | :: | me |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv98r_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(out), | dimension(:,:), allocatable | :: | b |
dense output coefficients |
|
| integer, | intent(out) | :: | form |
the form of |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rkv98r_class), | intent(inout) | :: | me |
Vector norm function. Must return a value .
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
a vector |
the magnitude of the vector
Returns the properties of the method.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(in) | :: | me |
properties of the method
routine called before integration begins to set up internal variables.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me |
derivative function
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
time |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
state vector |
|
| real(kind=wp), | intent(out), | dimension(:) | :: | xdot |
derivative of state vector |
event function
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
time |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
state vector |
|
| real(kind=wp), | intent(out) | :: | g |
g(t,x). The goal is to stop the integration when g=0. |
report function
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
time |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
state vector |
rk step function for the fixed-step methods.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_fixed_step_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state vector |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
final state vector |
rk step function for the variable-step methods.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x |
initial state vector |
|
| real(kind=wp), | intent(in) | :: | h |
time step |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
final state vector |
|
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xerr |
truncation error estimate |
Properties of an RK method.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | order | = | 0 |
order of the method |
|
| integer, | public | :: | number_of_stages | = | 0 |
number of stages |
|
| logical, | public | :: | fsal | = | .false. |
if it is a FSAL method |
|
| logical, | public | :: | low_storage | = | .false. |
if it is a LS method |
|
| logical, | public | :: | strong_stability_preserving | = | .false. |
if it is a SSP method |
|
| logical, | public | :: | dense | = | .false. |
if the method has a dense output (continuous extension) |
|
| integer, | public | :: | number_of_registers | = | 0 |
number of |
|
| real(kind=wp), | public | :: | cfl | = | zero |
Courant-Friedrichs-Lewy number |
|
| character(len=:), | public, | allocatable | :: | short_name |
short version of the method name |
||
| character(len=:), | public, | allocatable | :: | long_name |
longer description of the method |
Algorithms for adjusting the step size for variable-step Runge-Kutta integrators.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | private | :: | fixed_step_mode | = | .false. |
if true, then the method runs in fixed step mode with not error estimation |
|
| real(kind=wp), | private | :: | hmax | = | 1.0e+6_wp |
maximum allowed step size |
|
| real(kind=wp), | private | :: | hmin | = | 1.0e-6_wp |
minimum allowed step size |
|
| real(kind=wp), | private | :: | hfactor_reject | = | 0.5_wp |
minimum allowed factor for decreasing step size after rejected step |
|
| real(kind=wp), | private | :: | hfactor_accept | = | 2.0_wp |
maximum allowed factor for increasing step size after accepted step |
|
| integer, | private | :: | accept_mode | = | 2 |
method to determine if step is accepted [1,2] |
|
| integer, | private | :: | max_attempts | = | 10000 |
maximum number of attempts to decrease step size before giving up |
|
| logical, | private | :: | relative_err | = | .false. |
if true, use the error per unit step: .
otherwise, use the error per step: .
(The scaled error is then proportional to one less power of |
|
| real(kind=wp), | private | :: | safety_factor | = | 0.9_wp |
for |
|
| integer, | private | :: | p_exponent_offset | = | 1 |
the exponent of the |
|
| procedure(norm_func), | private, | nopass, pointer | :: | norm | => | maxval_func |
routine for computing the norm of the scaled error (e.g., maxval_func, norm2_func, rms_func, or a user function) |
| integer, | private | :: | rtol_scaling | = | 1 |
the state used to scale the relative tolerance:
|
|
| integer, | private | :: | error_combination | = | 1 |
for methods with two error estimates that are combined
(currently |
|
| real(kind=wp), | private | :: | pi_beta | = | 0.0_wp |
the parameter of the PI (Lund) step size control
(stabilized step size control, see Hairer & Wanner,
Solving ODEs I, section IV.2). |
|
| real(kind=wp), | private | :: | pi_beta_mult | = | 0.75_wp |
the error exponent is reduced by |
|
| logical, | private | :: | no_increase_after_reject | = | .false. |
if true, the step size is not increased
for the step after a rejected step (as in |
|
| real(kind=wp), | private | :: | err_old | = | 1.0e-4_wp |
scaled error of the last accepted step (for the PI control) |
|
| logical, | private | :: | last_rejected | = | .false. |
if the last step was rejected |
| procedure, public :: initialize => stepsize_class_constructor | |
| procedure, public :: compute_stepsize | |
| procedure, public :: destroy => destroy_stepsize_class | |
| procedure, public :: reset => stepsize_class_reset | |
| procedure, public :: tolerance => stepsize_class_tolerance |
main integration class
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | private | :: | istatus | = | 0 |
status code |
|
| logical, | private | :: | stopped | = | .false. |
if user has stopped the integration in |
|
| integer, | private | :: | num_steps | = | 0 |
number of accepted steps taken |
|
| integer, | private | :: | max_number_of_steps | = | huge(1) |
maximum number of steps to take |
|
| integer, | private | :: | report_rate | = | 1 |
how often to call report function:
|
|
| logical, | private | :: | stop_on_errors | = | .false. |
if true, then errors will stop the program |
|
| integer, | private | :: | n | = | 0 |
user specified number of variables |
|
| procedure(deriv_func), | private, | pointer | :: | f | => | null() |
user-specified derivative function |
| procedure(report_func), | private, | pointer | :: | report | => | null() |
user-specified report function |
| procedure(event_func), | private, | pointer | :: | g | => | null() |
event function (stop when this is zero) |
| type(root_method), | private | :: | solver | = | root_method_brent |
the root solver method to use for even finding |
|
| real(kind=wp), | private, | dimension(:,:), allocatable | :: | funcs |
matrix to store the function
evaluations in the step function.
this will be size ( |
||
| logical, | private | :: | dense_enabled | = | .false. |
if the dense output was enabled by the user (see initialize_variable_step) |
|
| integer, | private | :: | dense_form | = | 0 |
the form of the |
|
| real(kind=wp), | private, | dimension(:,:), allocatable | :: | dense_b |
dense output coefficients
(allocated if the method has a dense output,
even if it is not enabled)
( |
||
| logical, | private | :: | dense_available | = | .false. |
if the dense output data for the last step is valid |
|
| logical, | private | :: | dense_computed | = | .false. |
if |
|
| logical, | private | :: | dense_computing | = | .false. |
if |
|
| real(kind=wp), | private | :: | dense_t | = | zero |
initial time of the last accepted step |
|
| real(kind=wp), | private | :: | dense_h | = | zero |
size of the last accepted step |
|
| real(kind=wp), | private, | dimension(:), allocatable | :: | dense_x |
initial state of the last accepted step ( |
||
| real(kind=wp), | private, | dimension(:), allocatable | :: | dense_xf |
final state of the last accepted step ( |
||
| real(kind=wp), | private, | dimension(:,:), allocatable | :: | dense_r |
interpolating polynomial coefficients
for the last accepted step ( |
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, private :: init => initialize_rk_class | |
| procedure, private :: begin => begin_integration_rk_class | |
| procedure, private :: raise_exception | |
| procedure, private :: clear_exception | |
| procedure, private :: export_point | |
| procedure, private :: dense_coefficients | dense output coefficients for the method |
| procedure, private :: dense_extra_stages | additional function evaluations for the dense output |
| procedure, private :: dense_save | |
| procedure, private :: dense_check | |
| procedure, private :: dense_invalidate | |
| procedure(begin_func), private, deferred :: begin_integration | |
| procedure(properties_func), public, deferred :: properties |
fixed step size class
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure(properties_func), public, deferred :: properties | |
| procedure(step_func_fixed), private, deferred :: step | the step routine for the rk method |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, private :: begin_integration => begin_integration_rk_fixed_step_class |
Main integration class for variable step size Runge-Kutta methods
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(stepsize_class), | private | :: | stepsize_method |
the method for varying the step size |
|||
| real(kind=wp), | private, | dimension(:), allocatable | :: | rtol |
relative tolerance ( |
||
| real(kind=wp), | private, | dimension(:), allocatable | :: | atol |
absolute tolerance ( |
||
| integer, | private | :: | hinit_method | = | 1 |
if automatically computing the inital step size, which
method to use. 1 = |
|
| integer, | private | :: | num_rejected_steps | = | 0 |
number of rejected steps |
|
| real(kind=wp), | private | :: | last_accepted_step_size | = | zero |
the last accepted step size |
|
| real(kind=wp), | private | :: | dense_output_step | = | zero |
if > 0, the points are reported at this fixed time interval using the dense output (see initialize_variable_step) |
|
| logical, | private | :: | dense_reporting | = | .false. |
if the dense output is used for reporting in the current integration |
|
| real(kind=wp), | private | :: | dense_output_t0 | = | zero |
initial time of the current integration |
|
| integer(kind=int64), | private | :: | dense_output_k | = | 0 |
index of the last dense output point reported:
|
|
| real(kind=wp), | private, | allocatable | :: | t_saved |
cached |
||
| real(kind=wp), | private, | dimension(:), allocatable | :: | x_saved |
cached |
||
| real(kind=wp), | private, | dimension(:), allocatable | :: | f_saved |
cached |
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure(properties_func), public, deferred :: properties | |
| procedure(step_func_variable), private, deferred :: step | the step routine for the rk method |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, private :: hstart | for automatically computing the initial step size [this is from DDEABM] |
| procedure, private :: hinit | for automatically computing the initial step size [this is from DOP853] |
| procedure, private :: begin_integration => begin_integration_rk_variable_step_class | |
| procedure, private :: compute_initial_step | |
| procedure, private :: export_step | |
| procedure, private :: export_dense_output | |
| procedure, private :: order | returns |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache |
a variable step method with the "first same as last" (FSAL) property:
the last function evaluation of a step (at the final t and x)
is the first one of the next step. It is reused by means of the function
evaluation cache (see set_fsal_cache and check_fsal_cache).
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure(properties_func), public, deferred :: properties | |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache |
Euler
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => euler | |
| procedure, public :: properties => euler_properties |
Midpoint
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => midpoint | |
| procedure, public :: properties => midpoint_properties |
Heun
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => heun | |
| procedure, public :: properties => heun_properties |
2-stage, 2nd order TVD Runge-Kutta Shu-Osher
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rkssp22 | |
| procedure, public :: properties => rkssp22_properties |
3th order Runge-Kutta
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rk3 | |
| procedure, public :: properties => rk3_properties |
3-stage, 3rd order TVD Runge-Kutta Shu-Osher
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rkssp33 | |
| procedure, public :: properties => rkssp33_properties |
5-stage, 3rd order SSP Runge-Kutta Spiteri-Ruuth
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rkssp53 | |
| procedure, public :: properties => rkssp53_properties |
Classic 4th order Runge-Kutta
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rk4 | |
| procedure, public :: properties => rk4_properties |
4th order Runge-Kutta Shanks
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rks4 | |
| procedure, public :: properties => rks4_properties |
4th order Runge-Kutta Ralston
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rkr4 | |
| procedure, public :: properties => rkr4_properties |
4-stage, 4th order low storage non-TVD Runge-Kutta Jiang-Shu
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rkls44 | |
| procedure, public :: properties => rkls44_properties |
5-stage, 4th order low storage Runge-Kutta Carpenter-Kennedy
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rkls54 | |
| procedure, public :: properties => rkls54_properties |
5-stage, 4th order SSP Runge-Kutta Spiteri-Ruuth
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rkssp54 | |
| procedure, public :: properties => rkssp54_properties |
5th order Runge-Kutta Shanks
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rks5 | |
| procedure, public :: properties => rks5_properties |
5th order Runge-Kutta
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rk5 | |
| procedure, public :: properties => rk5_properties |
5th order Runge-Kutta Cassity
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rkc5 | |
| procedure, public :: properties => rkc5_properties |
5th order Runge-Kutta Lawson
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rkl5 | |
| procedure, public :: properties => rkl5_properties |
5th order Runge-Kutta Luther-Konen 1
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rklk5a | |
| procedure, public :: properties => rklk5a_properties |
5th order Runge-Kutta Luther-Konen 2
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rklk5b | |
| procedure, public :: properties => rklk5b_properties |
6th order Runge-Kutta Butcher
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rkb6 | |
| procedure, public :: properties => rkb6_properties |
7th order Runge-Kutta Shanks
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rk7 | |
| procedure, public :: properties => rk7_properties |
10-stage, 8th order Runge-Kutta Shanks
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rk8_10 | |
| procedure, public :: properties => rk8_10_properties |
11-stage, 8th order Runge-Kutta Cooper-Verner
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rkcv8 | |
| procedure, public :: properties => rkcv8_properties |
12-stage, 8th order Runge-Kutta Shanks
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rk8_12 | |
| procedure, public :: properties => rk8_12_properties |
10th order Runge-Kutta Stepanov
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rks10 | |
| procedure, public :: properties => rks10_properties |
10th order Runge-Kutta Zhang
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rkz10 | |
| procedure, public :: properties => rkz10_properties |
10th order Runge-Kutta Ono
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rko10 | |
| procedure, public :: properties => rko10_properties |
10th order Runge-Kutta Hairer
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_fixed_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_fixed_step | |
| procedure, public :: integrate_to_event => integrate_to_event_fixed_step | |
| procedure, public :: step => rkh10 | |
| procedure, public :: properties => rkh10_properties |
Bogacki & Shampine 3(2)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkbs32 | |
| procedure, public :: properties => rkbs32_properties |
4-stage, 3rd order SSP
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkssp43 | |
| procedure, public :: properties => rkssp43_properties |
Fehlberg 4(5)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkf45 | |
| procedure, public :: properties => rkf45_properties |
Cash & Karp 5(4)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkck54 | |
| procedure, public :: properties => rkck54_properties |
Dormand-Prince 5(4)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkdp54 | |
| procedure, public :: properties => rkdp54_properties | |
| procedure, public :: dense_coefficients => rkdp54_dense_coefficients |
Tsitouras 5(4)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkt54 | |
| procedure, public :: properties => rkt54_properties |
Stepanov 5(4)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rks54 | |
| procedure, public :: properties => rks54_properties |
Papakostas-PapaGeorgiou 5(4)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkpp54 | |
| procedure, public :: properties => rkpp54_properties |
Papakostas-PapaGeorgiou 5(4) b
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkpp54b | |
| procedure, public :: properties => rkpp54b_properties |
Bogacki & Shampine 5(4)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkbs54 | |
| procedure, public :: properties => rkbs54_properties |
Sharp & Smart 5(4)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkss54 | |
| procedure, public :: properties => rkss54_properties |
Dormand-Prince 6(5)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkdp65 | |
| procedure, public :: properties => rkdp65_properties |
Calvo 6(5)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkc65 | |
| procedure, public :: properties => rkc65_properties |
Tsitouras & Papakostas NEW6(4)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rktp64 | |
| procedure, public :: properties => rktp64_properties |
Verner efficient (9,6(5))
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkv65e | |
| procedure, public :: properties => rkv65e_properties | |
| procedure, public :: dense_coefficients => rkv65e_dense_coefficients | |
| procedure, public :: dense_extra_stages => rkv65e_dense_extra_stages |
Verner robust (9,6(5))
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkv65r | |
| procedure, public :: properties => rkv65r_properties | |
| procedure, public :: dense_coefficients => rkv65r_dense_coefficients | |
| procedure, public :: dense_extra_stages => rkv65r_dense_extra_stages |
Verner 6(5)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkv65 | |
| procedure, public :: properties => rkv65_properties |
Verner 6(5) "DVERK"
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => dverk65 | |
| procedure, public :: properties => dverk65_properties |
Tsitouras & Famelis 6(5)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rktf65 | |
| procedure, public :: properties => rktf65_properties |
Tsitouras & Papakostas NEW7(5)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rktp75 | |
| procedure, public :: properties => rktp75_properties |
7th order Tanaka-Muramatsu-Yamashita
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rktmy7 | |
| procedure, public :: properties => rktmy7_properties |
7th order Stable Tanaka-Muramatsu-Yamashita
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rktmy7s | |
| procedure, public :: properties => rktmy7s_properties |
Verner efficient (10:7(6))
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkv76e | |
| procedure, public :: properties => rkv76e_properties | |
| procedure, public :: dense_coefficients => rkv76e_dense_coefficients | |
| procedure, public :: dense_extra_stages => rkv76e_dense_extra_stages |
Verner robust (10:7(6))
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkv76r | |
| procedure, public :: properties => rkv76r_properties | |
| procedure, public :: dense_coefficients => rkv76r_dense_coefficients | |
| procedure, public :: dense_extra_stages => rkv76r_dense_extra_stages |
Sharp & Smart 7(6)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkss76 | |
| procedure, public :: properties => rkss76_properties |
Fehlberg 7(8)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkf78 | |
| procedure, public :: properties => rkf78_properties |
Verner 7(8)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkv78 | |
| procedure, public :: properties => rkv78_properties |
Verner "Maple" 7(8)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => dverk78 | |
| procedure, public :: properties => dverk78_properties | |
| procedure, public :: dense_coefficients => dverk78_dense_coefficients | |
| procedure, public :: dense_extra_stages => dverk78_dense_extra_stages |
Dormand-Prince 8(5)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkdp85 | |
| procedure, public :: properties => rkdp85_properties | |
| procedure, public :: dense_coefficients => rkdp85_dense_coefficients | |
| procedure, public :: dense_extra_stages => rkdp85_dense_extra_stages |
Tsitouras & Papakostas NEW8(6)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rktp86 | |
| procedure, public :: properties => rktp86_properties |
Dormand & Prince RK8(7)13M
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkdp87 | |
| procedure, public :: properties => rkdp87_properties | |
| procedure, public :: dense_coefficients => rkdp87_dense_coefficients | |
| procedure, public :: dense_extra_stages => rkdp87_dense_extra_stages |
Verner efficient (8)7
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkv87e | |
| procedure, public :: properties => rkv87e_properties | |
| procedure, public :: dense_coefficients => rkv87e_dense_coefficients | |
| procedure, public :: dense_extra_stages => rkv87e_dense_extra_stages |
Verner robust (8)7
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkv87r | |
| procedure, public :: properties => rkv87r_properties | |
| procedure, public :: dense_coefficients => rkv87r_dense_coefficients | |
| procedure, public :: dense_extra_stages => rkv87r_dense_extra_stages |
Enright-Verner (8)7
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkev87 | |
| procedure, public :: properties => rkev87_properties | |
| procedure, public :: dense_coefficients => rkev87_dense_coefficients | |
| procedure, public :: dense_extra_stages => rkev87_dense_extra_stages |
Kovalnogov-Fedorov-Karpukhina-Simos-Tsitouras 8(7)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkk87 | |
| procedure, public :: properties => rkk87_properties |
Fehlberg 8(9)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkf89 | |
| procedure, public :: properties => rkf89_properties |
Verner 8(9)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkv89 | |
| procedure, public :: properties => rkv89_properties |
Tsitouras 9(8) A
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkt98a | |
| procedure, public :: properties => rkt98a_properties |
Verner efficient (16:9(8))
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkv98e | |
| procedure, public :: properties => rkv98e_properties | |
| procedure, public :: dense_coefficients => rkv98e_dense_coefficients | |
| procedure, public :: dense_extra_stages => rkv98e_dense_extra_stages |
Verner robust (16:9(8))
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkv98r | |
| procedure, public :: properties => rkv98r_properties | |
| procedure, public :: dense_coefficients => rkv98r_dense_coefficients | |
| procedure, public :: dense_extra_stages => rkv98r_dense_extra_stages |
Sharp 9(8)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rks98 | |
| procedure, public :: properties => rks98_properties |
Feagin 8(10)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkf108 | |
| procedure, public :: properties => rkf108_properties |
Curtis 10(8)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkc108 | |
| procedure, public :: properties => rkc108_properties |
Baker 10(9)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkb109 | |
| procedure, public :: properties => rkb109_properties |
Stone 11(10)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rks1110a | |
| procedure, public :: properties => rks1110a_properties |
Feagin 12(10)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkf1210 | |
| procedure, public :: properties => rkf1210_properties |
Ono 12(9)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rko129 | |
| procedure, public :: properties => rko129_properties |
Feagin 14(12)
| procedure, public :: destroy | destructor |
| procedure, public :: stop => rk_class_stop | user-callable method to stop the integration |
| procedure, public :: status => rk_class_status | get status code and message |
| procedure, public :: failed | |
| procedure, public :: interpolate | dense output for the last accepted step |
| procedure, public :: dense_interval | interval of the last accepted step for the dense output |
| procedure, public :: initialize => initialize_variable_step | initialize the class (set n,f, and report) |
| procedure, public :: integrate => integrate_variable_step | |
| procedure, public :: integrate_to_event => integrate_to_event_variable_step | |
| procedure, public :: info => info_variable_step | |
| procedure, public :: destroy_fsal_cache | |
| procedure, public :: check_fsal_cache | |
| procedure, public :: set_fsal_cache | |
| procedure, public :: step => rkf1412 | |
| procedure, public :: properties => rkf1412_properties |
Returns the order of the RK method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(in) | :: | me |
order of the method
Returns true if there was an error. Can use rk_class_status to get more info.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(in) | :: | me |
Check that the dense output can be used: the method has one, and it was enabled. If not, an error is raised.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me |
Use intrinsic norm2(x) for computing the vector norm.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
Use the root mean square, , for computing the vector norm.
This is the norm used in Hairer's DOPRI5 and DOP853 codes.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
Use maxval(abs(x)) for computing the vector norm.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
The error tolerance vector for a step from x to xf: rtol*s + atol,
where s depends on the rtol_scaling option.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(stepsize_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(in), | dimension(:) | :: | rtol |
relative tolerance |
|
| real(kind=wp), | intent(in), | dimension(:) | :: | atol |
absolute tolerance |
|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
state at the start of the step |
|
| real(kind=wp), | intent(in), | dimension(:) | :: | xf |
state at the end of the step |
the error tolerance for each component
Compute the initial step size.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t0 |
initial time |
||
| real(kind=wp), | intent(in) | :: | tf |
final time |
||
| real(kind=wp), | dimension(me%n) | :: | x0 |
initial state |
||
| real(kind=wp), | intent(in) | :: | h0 |
user-input initial step size (if zero, then one is computed) |
step size to use
computation of an initial step size guess
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | x | |||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
dimension(n) |
|
| real(kind=wp), | intent(in) | :: | posneg |
posneg = sign(1.0_wp,xend-x) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | f0 |
dimension(n) |
|
| real(kind=wp), | intent(in) | :: | hmax | |||
| real(kind=wp), | intent(in), | dimension(:) | :: | atol | ||
| real(kind=wp), | intent(in), | dimension(:) | :: | rtol |
Clear any exception.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me |
Raise an exception.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me | |||
| integer, | intent(in) | :: | error_code |
the error to raise |
User-callable method to stop the integration (e.g., from f, g, or report).
No further function evaluations are done, and the integrator returns, with the
status set to RKLIB_ERROR_USER_STOPPED. This is not treated as an error
(i.e., it does not stop the program if stop_on_errors is true).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me |
Get the status of an integration.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(in) | :: | me | |||
| integer, | intent(out), | optional | :: | istatus |
status code ( |
|
| character(len=:), | intent(out), | optional, | allocatable | :: | message |
status message |
Wrapper for exporting points during integration.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t | |||
| real(kind=wp), | intent(in), | dimension(:) | :: | x | ||
| logical, | intent(in), | optional | :: | first_or_last |
if this is the first or last point (always reported) |
Returns the dense output coefficients for the method.
This is the default for methods that do not have a dense output (b is not allocated).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(in) | :: | me | |||
| real(kind=wp), | intent(out), | dimension(:,:), allocatable | :: | b |
dense output coefficients |
|
| integer, | intent(out) | :: | form |
the form of |
Compute any additional function evaluations needed for the dense output
of the last accepted step, and store them in me%funcs (after the ones used by
the step function). This is the default for methods that don't need any.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me |
Save the data needed for the dense output of a step that was just accepted.
The function evaluations of the step are taken from me%funcs when
interpolate is called, so this is only valid until the next step is taken.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
initial time of the step |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
initial state of the step |
|
| real(kind=wp), | intent(in) | :: | h |
size of the step |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | xf |
final state of the step |
Mark the dense output data as invalid.
This must be called before me%funcs is overwritten by a new step.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me |
Dense output: compute the state at a time within the last accepted step,
using the continuous extension of the method (if it has one, see
rklib_properties dense).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
time at which to compute the state |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | x |
state at |
|
| integer, | intent(out), | optional | :: | istatus |
status of this call |
Returns the interval of the last accepted step, which is where interpolate can
be used. For example, this can be called from the report function to get the
previous time and state, so that points in between can be computed.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me | |||
| logical, | intent(out) | :: | available |
if dense output is available |
||
| real(kind=wp), | intent(out), | optional | :: | t0 |
initial time of the step |
|
| real(kind=wp), | intent(out), | optional | :: | tf |
final time of the step |
|
| real(kind=wp), | intent(out), | optional, | dimension(me%n) | :: | x0 |
initial state of the step |
| real(kind=wp), | intent(out), | optional, | dimension(me%n) | :: | xf |
final state of the step |
Destructor for the function evaluation cache.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(inout) | :: | me |
Compute the function at t and x, or get it from the function evaluation
cache if it is there (see set_fsal_cache). This is used by all the variable-step
methods for the first stage of a step. It may already be in the cache because:
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t | |||
| real(kind=wp), | intent(in), | dimension(:) | :: | x | ||
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
Compute the function and add it to the function evaluation cache, so that it
can be reused by the next step (see check_fsal_cache). This is used for
f at the end of a step: by the first-same-as-last (FSAL) methods (the last stage
of the step), and by the methods whose dense output needs it as one of its extra stages
(see dense_extra_stages).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t | |||
| real(kind=wp), | intent(in), | dimension(:) | :: | x | ||
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
Initialize the rk_class.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me | |||
| integer, | intent(in) | :: | n |
number of variables |
||
| procedure(deriv_func) | :: | f |
derivative function |
|||
| procedure(report_func), | optional | :: | report |
for reporting the steps |
||
| procedure(event_func), | optional | :: | g |
for stopping at an event |
||
| logical, | intent(in), | optional | :: | stop_on_errors |
stop the program for any errors (default is False) |
|
| integer, | intent(in), | optional | :: | max_number_of_steps |
max number of steps allowed |
|
| integer, | intent(in), | optional | :: | report_rate |
how often to call report function:
|
|
| class(root_method), | intent(in), | optional | :: | solver |
the root-finding method to use for even finding.
if not present, then |
|
| logical, | intent(in), | optional | :: | dense_output |
to enable the dense output (default is False). This is ignored if the method does not have one. |
Begin an integration.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_class), | intent(inout) | :: | me |
Begin a rk_fixed_step_class integration.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_fixed_step_class), | intent(inout) | :: | me |
Initialize the rk_fixed_step_class.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_fixed_step_class), | intent(inout) | :: | me | |||
| integer, | intent(in) | :: | n |
number of variables |
||
| procedure(deriv_func) | :: | f |
derivative function |
|||
| procedure(report_func), | optional | :: | report |
for reporting the steps |
||
| procedure(event_func), | optional | :: | g |
for stopping at an event |
||
| logical, | intent(in), | optional | :: | stop_on_errors |
stop the program for any errors (default is False) |
|
| integer, | intent(in), | optional | :: | max_number_of_steps |
max number of steps allowed |
|
| integer, | intent(in), | optional | :: | report_rate |
how often to call report function:
|
|
| class(root_method), | intent(in), | optional | :: | solver |
the root-finding method to use for even finding.
if not present, then |
Main integration routine for the rk_class.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_fixed_step_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t0 |
initial time |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | x0 |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
abs(time step) |
||
| real(kind=wp), | intent(in) | :: | tf |
final time |
||
| real(kind=wp), | intent(out), | dimension(:) | :: | xf |
final state |
Event-finding integration routine for the rk_class. Integrates until g(t,x)=0, or until t=tf (whichever happens first).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_fixed_step_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t0 |
initial time |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | x0 |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
abs(time step) |
||
| real(kind=wp), | intent(in) | :: | tmax |
max final time if event not located |
||
| real(kind=wp), | intent(in) | :: | tol |
function tolerance for root finding |
||
| real(kind=wp), | intent(out) | :: | tf |
actual final time reached |
||
| real(kind=wp), | intent(out), | dimension(:) | :: | xf |
final state (at tf) |
|
| real(kind=wp), | intent(out) | :: | gf |
g value at tf |
Constructor for a stepsize_class.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(stepsize_class), | intent(out) | :: | me |
(all options not specified are set to their defaults) |
||
| real(kind=wp), | intent(in), | optional | :: | hmin |
minimum allowed step size (>0) |
|
| real(kind=wp), | intent(in), | optional | :: | hmax |
maximum allowed step size (>0) |
|
| real(kind=wp), | intent(in), | optional | :: | hfactor_reject |
minimum allowed factor for decreasing step size after rejected step (>0) |
|
| real(kind=wp), | intent(in), | optional | :: | hfactor_accept |
maximum allowed factor for decreasing step size after accepted step (>0) |
|
| procedure(norm_func), | optional | :: | norm |
the user-specified function |
||
| integer, | intent(in), | optional | :: | accept_mode |
method to determine if step is accepted [1,2] |
|
| logical, | intent(in), | optional | :: | relative_err |
if true, use the error per unit step:
. Otherwise (the default),
use the error per step: .
Note that, for the error per unit step,
the scaled error is proportional to one less power of |
|
| real(kind=wp), | intent(in), | optional | :: | safety_factor |
for |
|
| integer, | intent(in), | optional | :: | p_exponent_offset |
the exponent of the step size factor is
|
|
| integer, | intent(in), | optional | :: | max_attempts |
max step size change attempts after rejected step |
|
| logical, | intent(in), | optional | :: | fixed_step_mode |
if true, then the method runs in
fixed step mode with not error estimation.
All the other inputs are ignored. Note that
this requires a |
|
| integer, | intent(in), | optional | :: | rtol_scaling |
the state used to scale the relative tolerance:
|
|
| integer, | intent(in), | optional | :: | error_combination |
for methods with two error estimates ( |
|
| real(kind=wp), | intent(in), | optional | :: | pi_beta |
the parameter for the PI (Lund) stabilized
step size control ( |
|
| real(kind=wp), | intent(in), | optional | :: | pi_beta_mult |
the error exponent is reduced by |
|
| logical, | intent(in), | optional | :: | no_increase_after_reject |
if true, the step size is not increased for the step after a rejected step (default is false). |
Reset the internal state of the step size control. This is called at the start of each integration.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(stepsize_class), | intent(inout) | :: | me |
Destructor for stepsize_class.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(stepsize_class), | intent(out) | :: | me |
Compute the new step size using the specific method.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(stepsize_class), | intent(inout) | :: | me |
( |
||
| integer, | intent(in) | :: | n |
number of variables |
||
| real(kind=wp), | intent(in) | :: | h |
current step size (<>0) |
||
| real(kind=wp), | intent(in), | dimension(n) | :: | tol |
abs error tolerance (>0) |
|
| real(kind=wp), | intent(in), | dimension(n) | :: | err |
truncation error estimate (>0) |
|
| integer, | intent(in) | :: | p |
order of the method |
||
| real(kind=wp), | intent(out) | :: | hnew |
new step size (<>0) |
||
| logical, | intent(out) | :: | accept |
if the step is accepted |
Begin a rk_variable_step_class integration.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(inout) | :: | me |
Initialize the rk_variable_step_class.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(inout) | :: | me | |||
| integer, | intent(in) | :: | n |
number of equations |
||
| procedure(deriv_func) | :: | f |
derivative function |
|||
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | rtol |
relative tolerance (if size=1,
then same tol used for all
equations). If not present, a default
of |
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | atol |
absolute tolerance (if size=1,
then same tol used for all
equations). If not present, a default
of |
| type(stepsize_class), | intent(in), | optional | :: | stepsize_method |
method for varying the step size |
|
| integer, | intent(in), | optional | :: | hinit_method |
which method (1 or 2) to use for
automatic initial step size
computation.
1 = use |
|
| procedure(report_func), | optional | :: | report |
for reporting the steps |
||
| procedure(event_func), | optional | :: | g |
for stopping at an event |
||
| logical, | intent(in), | optional | :: | stop_on_errors |
stop the program for any errors (default is False) |
|
| integer, | intent(in), | optional | :: | max_number_of_steps |
max number of steps allowed |
|
| integer, | intent(in), | optional | :: | report_rate |
how often to call report function:
|
|
| class(root_method), | intent(in), | optional | :: | solver |
the root-finding method to use for even finding.
if not present, then |
|
| logical, | intent(in), | optional | :: | dense_output |
to enable the dense output (default is False, unless
|
|
| real(kind=wp), | intent(in), | optional | :: | dense_output_step |
if present and not zero, the points are reported
at this fixed time interval (starting from the initial
time), using the dense output of the method,
rather than at the steps taken by the integrator.
The first and last point are also reported (so the
last interval will generally be shorter).
This is only used if |
Return some info about the integration.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(in) | :: | me | |||
| integer, | intent(out), | optional | :: | num_steps |
number of steps taken |
|
| integer, | intent(out), | optional | :: | num_rejected_steps |
number of rejected steps |
|
| real(kind=wp), | intent(out), | optional | :: | last_accepted_step_size |
the last accepted step size
|
Export the point(s) after a step has been accepted (other than the last step). Either the end of the step, or the dense output points within the step (see export_dense_output).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t |
time at the end of the step |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
state at the end of the step |
|
| logical, | intent(out) | :: | ok |
false if there was an error (the integration should not continue) |
Report the dense output points (at the fixed dense_output_step interval)
within the last accepted step, that are before t_stop.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t_stop |
report points up to (but not including) this time |
||
| logical, | intent(out) | :: | ok |
false if there was an error (the integration should not continue) |
Main integration routine for the rk_variable_step_class.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t0 |
initial time |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | x0 |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
initial abs(time step) |
||
| real(kind=wp), | intent(in) | :: | tf |
final time |
||
| real(kind=wp), | intent(out), | dimension(:) | :: | xf |
final state |
Event-finding integration routine for the rk_variable_step_class. Integrates until g(t,x)=0, or until t=tf (whichever happens first).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | t0 |
initial time |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | x0 |
initial state |
|
| real(kind=wp), | intent(in) | :: | h |
abs(time step) |
||
| real(kind=wp), | intent(in) | :: | tmax |
max final time if event not located |
||
| real(kind=wp), | intent(in) | :: | tol |
function tolerance for root finding |
||
| real(kind=wp), | intent(out) | :: | tf |
actual final time reached |
||
| real(kind=wp), | intent(out), | dimension(me%n) | :: | xf |
final state (at tf) |
|
| real(kind=wp), | intent(out) | :: | gf |
g value at tf |
Computes a starting step size to be used in solving initial value problems in ordinary differential equations.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(rk_variable_step_class), | intent(inout) | :: | me | |||
| real(kind=wp), | intent(in) | :: | a |
the initial point of integration. |
||
| real(kind=wp), | intent(in) | :: | b |
a value of the independent variable used to define
the direction of integration. a reasonable choice is to
set |
||
| real(kind=wp), | intent(in), | dimension(me%n) | :: | y |
the vector of initial values of the |
|
| real(kind=wp), | intent(in), | dimension(me%n) | :: | yprime |
the vector of derivatives of the |
|
| real(kind=wp), | intent(in), | dimension(me%n) | :: | etol |
the vector of error tolerances corresponding to
the |
|
| real(kind=wp), | intent(out) | :: | h |
appropriate starting step size to be attempted by the differential equation method. |