rk5_integrator Module

Module that provides a 5th order continuous explicit Runge-Kutta ODE integrator (see Verner & Zennaro, 1995, Mathematics of Computation, 64, 211, 1123-1146).

The implementation is found in submodule_rk5_implementation.f90.


Uses

  • module~~rk5_integrator~~UsesGraph module~rk5_integrator rk5_integrator module~kinds kinds module~rk5_integrator->module~kinds module~method_of_lines method_of_lines module~rk5_integrator->module~method_of_lines module~method_of_lines->module~kinds module~equations equations module~method_of_lines->module~equations module~equations->module~kinds

Used by

  • module~~rk5_integrator~~UsedByGraph module~rk5_integrator rk5_integrator module~rk5_implementation rk5_implementation module~rk5_implementation->module~rk5_integrator module~all_integrators all_integrators module~all_integrators->module~rk5_integrator proc~osc_schw_init osc_schw_init proc~osc_schw_init->module~all_integrators proc~geod_schw_init geod_schw_init proc~geod_schw_init->module~all_integrators program~test test program~test->module~all_integrators proc~scal_schw_init scal_schw_init proc~scal_schw_init->module~all_integrators

Contents


Interfaces

interface

  • public module function rk5_ntemp(this) result(ntemp)

    Routine that reports how many temporary storage levels are needed.

    Arguments

    Type IntentOptional AttributesName
    class(rk5), intent(in) :: this

    The routine is called on this object.

    Return Value integer(kind=ip)

    The return value is the number of required temorary storage levels.

interface

  • public module subroutine rk5_init(this, eqs)

    Routine that initializes the integrator.

    Arguments

    Type IntentOptional AttributesName
    class(rk5), intent(inout) :: this

    The routine is called on this object.

    type(equation_pointer), intent(in), dimension(:):: eqs

    A 1d-array of pointers to equations that will be integrated.

interface

  • public module subroutine rk5_step(this)

    Routine that takes a time step.

    Arguments

    Type IntentOptional AttributesName
    class(rk5), intent(inout) :: this

    The routine is called on this object.

interface

  • public module subroutine rk5_shutdown(this)

    Routine that shuts downs the integrator.

    Arguments

    Type IntentOptional AttributesName
    class(rk5), intent(inout) :: this

    The routine is called on this object.


Derived Types

type, public, extends(integrator) :: rk5

A 5th order continuous explicit Runge-Kutta ODE integrator.

Components

TypeVisibility AttributesNameInitial
integer(kind=ip), public :: nequations

The number of equations to integrate.

class(equation_pointer), public, dimension(:), allocatable:: eqs

A 1d array of equation pointers. Will be of length nequations.

integer(kind=ip), public :: ntmp =7

7 levels of temporary storage are required.

Type-Bound Procedures

procedure, public :: ntemp => rk5_ntemp

Routine to provide information about temporary storage levels is provided by rk5_ntemp.

procedure, public :: init => rk5_init

Initialization routine is provided by rk5_init.

procedure, public :: step => rk5_step

Stepping routine is provided by rk5_step.

procedure, public :: shutdown => rk5_shutdown

Shut down routine is provided by rk5_shutdown.