abmv5_integrator Module

Module that provides a 5th order Adams-Bashford-Moulton multi-value ODE integrator.

The implementation is found in submodule_abmv5_implementation.f90.


Uses

  • module~~abmv5_integrator~~UsesGraph module~abmv5_integrator abmv5_integrator module~kinds kinds module~abmv5_integrator->module~kinds module~method_of_lines method_of_lines module~abmv5_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~~abmv5_integrator~~UsedByGraph module~abmv5_integrator abmv5_integrator module~all_integrators all_integrators module~all_integrators->module~abmv5_integrator module~abmv5_implementation abmv5_implementation module~abmv5_implementation->module~abmv5_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 abmv5_ntemp(this) result(ntemp)

    Routine that reports how many temporary storage levels are needed.

    Arguments

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

    Routine that initializes the integrator.

    Arguments

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

    The routine is called on this object.

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

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

interface

  • public module subroutine abmv5_step(this)

    Routine that takes a time step.

    Arguments

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

    The routine is called on this object.

interface

  • public module subroutine abmv5_shutdown(this)

    Routine that shuts downs the integrator.

    Arguments

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

    The routine is called on this object.


Derived Types

type, public, extends(integrator) :: abmv5

An Adams-Bashford-Moulton multi-value ODE integrator class.

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 =10

10 levels of temporary storage are required.

integer(kind=ip), public :: order =5

The order of the method is 5.

real(kind=wp), public :: last_dt

Variable that keeps track of the last timestep.

Type-Bound Procedures

procedure, public :: ntemp => abmv5_ntemp

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

procedure, public :: init => abmv5_init

Initialization routine is provided by abmv5_init.

procedure, public :: step => abmv5_step

Stepping routine is provided by abmv5_step.

procedure, public :: shutdown => abmv5_shutdown

Shut down routine is provided by abmv5_shutdown.