rklib_variable_dense Submodule

Dense output coefficients for the variable-step RK formulas.

Each *_dense_coefficients routine returns the matrix b (number_of_stages x degree) defining the interpolant over the step , along with its form: either the polynomial form (dense_form_polynomial), or the form used in DOPRI5 and DOP853 (dense_form_dopri). See dense_coefficients. So, the coefficients can be entered as they are published.

If the dense output needs function evaluations in addition to the ones from the step, these are computed in the *_dense_extra_stages routine, and stored in me%funcs after the ones from the step.


Uses

  • module~~rklib_variable_dense~~UsesGraph module~rklib_variable_dense rklib_variable_dense module~rklib_module rklib_module module~rklib_variable_dense->module~rklib_module iso_fortran_env iso_fortran_env module~rklib_module->iso_fortran_env root_module root_module module~rklib_module->root_module

Module Procedures

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkdp54_dense_coefficients pure module subroutine rkdp54_dense_coefficients(me, b, form)

Dense output for the Dormand-Prince 5(4) method rkdp54. This is the 4th order continuous extension due to Shampine (as used in DOPRI5). The coefficients are given here in the polynomial form (row i contains the coefficients of ).

Read more…

Arguments

Type IntentOptional 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 b

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkdp85_dense_coefficients pure module subroutine rkdp85_dense_coefficients(me, b, form)

Dense output for the Dormand-Prince 8(5) method rkdp85. This is the 7th order continuous extension from DOP853. It requires 4 additional function evaluations (see rkdp85_dense_extra_stages).

Read more…

Arguments

Type IntentOptional 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 b

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkdp85_dense_extra_stages module subroutine rkdp85_dense_extra_stages(me)

The additional function evaluations for the dense output of rkdp85. These are stored in me%funcs(:,13:16). Stage 13 is f at the end of the step, which is cached for the first stage of the next step (as in DOP853).

Arguments

Type IntentOptional Attributes Name
class(rkdp85_class), intent(inout) :: me

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv65e_dense_coefficients pure module subroutine rkv65e_dense_coefficients(me, b, form)

Dense output for Verner's "most efficient" 6(5) method rkv65e. This is the interpolant of order 6 (bi6) from the coefficient file, which requires 3 additional function evaluations (see rkv65e_dense_extra_stages).

Read more…

Arguments

Type IntentOptional 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 b

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv65e_dense_extra_stages module subroutine rkv65e_dense_extra_stages(me)

The additional function evaluations for the dense output of rkv65e. These are stored in me%funcs(:,10:12).

Arguments

Type IntentOptional Attributes Name
class(rkv65e_class), intent(inout) :: me

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv65r_dense_coefficients pure module subroutine rkv65r_dense_coefficients(me, b, form)

Dense output for Verner's "most robust" 6(5) method rkv65r. This is the interpolant of order 6 (bi6) from the coefficient file, which requires 3 additional function evaluations (see rkv65r_dense_extra_stages).

Read more…

Arguments

Type IntentOptional 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 b

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv65r_dense_extra_stages module subroutine rkv65r_dense_extra_stages(me)

The additional function evaluations for the dense output of rkv65r. These are stored in me%funcs(:,10:12).

Arguments

Type IntentOptional Attributes Name
class(rkv65r_class), intent(inout) :: me

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv76e_dense_coefficients pure module subroutine rkv76e_dense_coefficients(me, b, form)

Dense output for Verner's "most efficient" 7(6) method rkv76e. This is the interpolant of order 7 (bi7) from the coefficient file, which requires 6 additional function evaluations (see rkv76e_dense_extra_stages).

Read more…

Arguments

Type IntentOptional 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 b

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv76e_dense_extra_stages module subroutine rkv76e_dense_extra_stages(me)

The additional function evaluations for the dense output of rkv76e. These are stored in me%funcs(:,11:16). Stage 11 is f at the end of the step, which is cached for the first stage of the next step (see set_fsal_cache).

Arguments

Type IntentOptional Attributes Name
class(rkv76e_class), intent(inout) :: me

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv76r_dense_coefficients pure module subroutine rkv76r_dense_coefficients(me, b, form)

Dense output for Verner's "most robust" 7(6) method rkv76r. This is the interpolant of order 7 (bi7) from the coefficient file, which requires 6 additional function evaluations (see rkv76r_dense_extra_stages).

Read more…

Arguments

Type IntentOptional 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 b

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv76r_dense_extra_stages module subroutine rkv76r_dense_extra_stages(me)

The additional function evaluations for the dense output of rkv76r. These are stored in me%funcs(:,11:16). Stage 11 is f at the end of the step, which is cached for the first stage of the next step (see set_fsal_cache).

Arguments

Type IntentOptional Attributes Name
class(rkv76r_class), intent(inout) :: me

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv87e_dense_coefficients pure module subroutine rkv87e_dense_coefficients(me, b, form)

Dense output for Verner's "most efficient" 8(7) method rkv87e. This is the interpolant of order 8 (bi8) from the coefficient file, which requires 8 additional function evaluations (see rkv87e_dense_extra_stages).

Read more…

Arguments

Type IntentOptional 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 b

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv87e_dense_extra_stages module subroutine rkv87e_dense_extra_stages(me)

The additional function evaluations for the dense output of rkv87e. These are stored in me%funcs(:,14:21). Stage 14 is f at the end of the step, which is cached for the first stage of the next step (see set_fsal_cache).

Arguments

Type IntentOptional Attributes Name
class(rkv87e_class), intent(inout) :: me

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv87r_dense_coefficients pure module subroutine rkv87r_dense_coefficients(me, b, form)

Dense output for Verner's "most robust" 8(7) method rkv87r. This is the interpolant of order 8 (bi8) from the coefficient file, which requires 8 additional function evaluations (see rkv87r_dense_extra_stages).

Read more…

Arguments

Type IntentOptional 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 b

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv87r_dense_extra_stages module subroutine rkv87r_dense_extra_stages(me)

The additional function evaluations for the dense output of rkv87r. These are stored in me%funcs(:,14:21). Stage 14 is f at the end of the step, which is cached for the first stage of the next step (see set_fsal_cache).

Arguments

Type IntentOptional Attributes Name
class(rkv87r_class), intent(inout) :: me

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv98e_dense_coefficients pure module subroutine rkv98e_dense_coefficients(me, b, form)

Dense output for Verner's "most efficient" 9(8) method rkv98e. This is the interpolant of order 9 (bi9) from the coefficient file, which requires 10 additional function evaluations (see rkv98e_dense_extra_stages).

Read more…

Arguments

Type IntentOptional 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 b

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv98e_dense_extra_stages module subroutine rkv98e_dense_extra_stages(me)

The additional function evaluations for the dense output of rkv98e. These are stored in me%funcs(:,17:26). Stage 17 is f at the end of the step, which is cached for the first stage of the next step (see set_fsal_cache).

Arguments

Type IntentOptional Attributes Name
class(rkv98e_class), intent(inout) :: me

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv98r_dense_coefficients pure module subroutine rkv98r_dense_coefficients(me, b, form)

Dense output for Verner's "most robust" 9(8) method rkv98r. This is the interpolant of order 9 (bi9) from the coefficient file, which requires 10 additional function evaluations (see rkv98r_dense_extra_stages).

Read more…

Arguments

Type IntentOptional 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 b

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkv98r_dense_extra_stages module subroutine rkv98r_dense_extra_stages(me)

The additional function evaluations for the dense output of rkv98r. These are stored in me%funcs(:,17:26). Stage 17 is f at the end of the step, which is cached for the first stage of the next step (see set_fsal_cache).

Arguments

Type IntentOptional Attributes Name
class(rkv98r_class), intent(inout) :: me

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkdp87_dense_coefficients pure module subroutine rkdp87_dense_coefficients(me, b, form)

Dense output for the Prince-Dormand 8(7) (RK8(7)13M) method rkdp87. This is an interpolant of order 8 constructed by P. Stone, which requires 8 additional function evaluations (see rkdp87_dense_extra_stages).

Read more…

Arguments

Type IntentOptional 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 b

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkdp87_dense_extra_stages module subroutine rkdp87_dense_extra_stages(me)

The additional function evaluations for the dense output of rkdp87. These are stored in me%funcs(:,14:21). Stage 14 is f at the end of the step, which is cached for the first stage of the next step (see set_fsal_cache).

Arguments

Type IntentOptional Attributes Name
class(rkdp87_class), intent(inout) :: me

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkev87_dense_coefficients pure module subroutine rkev87_dense_coefficients(me, b, form)

Dense output for the Enright-Verner 8(7) method rkev87. This is an interpolant of order 8 constructed by P. Stone, which requires 8 additional function evaluations (see rkev87_dense_extra_stages).

Read more…

Arguments

Type IntentOptional 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 b

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html rkev87_dense_extra_stages module subroutine rkev87_dense_extra_stages(me)

The additional function evaluations for the dense output of rkev87. These are stored in me%funcs(:,14:21). Stage 14 is f at the end of the step, which is cached for the first stage of the next step (see set_fsal_cache).

Arguments

Type IntentOptional Attributes Name
class(rkev87_class), intent(inout) :: me

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html dverk78_dense_coefficients pure module subroutine dverk78_dense_coefficients(me, b, form)

Dense output for the Verner 8(7) (Maple's dverk78) method dverk78. This is an interpolant of order 8 constructed by P. Stone, which requires 9 additional function evaluations (see dverk78_dense_extra_stages).

Read more…

Arguments

Type IntentOptional 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 b

module procedure /home/runner/work/rklib/rklib/doc/module/rklib_variable_dense.html dverk78_dense_extra_stages module subroutine dverk78_dense_extra_stages(me)

The additional function evaluations for the dense output of dverk78. These are stored in me%funcs(:,14:22). Stage 14 is f at the end of the step, which is cached for the first stage of the next step (see set_fsal_cache).

Arguments

Type IntentOptional Attributes Name
class(dverk78_class), intent(inout) :: me