rk4_integrator Module

Module that provides a 4th order low storage Runge-Kutta ODE integrator.

The implementation is found in submodule_rk4_implementation.f90.


Uses

  • module~~rk4_integrator~~UsesGraph module~rk4_integrator rk4_integrator module~kinds kinds module~rk4_integrator->module~kinds module~method_of_lines method_of_lines module~rk4_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~~rk4_integrator~~UsedByGraph module~rk4_integrator rk4_integrator module~all_integrators all_integrators module~all_integrators->module~rk4_integrator module~rk4_implementation rk4_implementation module~rk4_implementation->module~rk4_integrator proc~abmv5_init abmv5_init proc~abmv5_init->module~rk4_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 rk4_ntemp(this) result(ntemp)

    Routine that reports how many temporary storage levels are needed.

    Arguments

    Type IntentOptional AttributesName
    class(rk4), 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 rk4_init(this, eqs)

    Routine that initializes the integrator.

    Arguments

    Type IntentOptional AttributesName
    class(rk4), 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 rk4_step(this)

    Routine that takes a time step.

    Arguments

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

    The routine is called on this object.

interface

  • public module subroutine rk4_shutdown(this)

    Routine that shuts downs the integrator.

    Arguments

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

    The routine is called on this object.


Derived Types

type, public, extends(integrator) :: rk4

A 4th order low storage 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 =1

1 level of temporary storage are required.

Type-Bound Procedures

procedure, public :: ntemp => rk4_ntemp

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

procedure, public :: init => rk4_init

Initialization routine is provided by rk4_init.

procedure, public :: step => rk4_step

Stepping routine is provided by rk4_step.

procedure, public :: shutdown => rk4_shutdown

Shut down routine is provided by rk4_shutdown.