mod_time_integration Module

module~~mod_time_integration~~UsesGraph module~mod_time_integration mod_time_integration module~mod_spectrum mod_spectrum module~mod_spectrum->module~mod_time_integration module~mod_domain mod_domain module~mod_spectrum->module~mod_domain module~mod_precision mod_precision module~mod_precision->module~mod_time_integration module~mod_precision->module~mod_spectrum module~mod_precision->module~mod_domain module~mod_utility mod_utility module~mod_precision->module~mod_utility module~mod_const mod_const module~mod_precision->module~mod_const module~mod_grid mod_grid module~mod_precision->module~mod_grid module~mod_domain->module~mod_time_integration json_module json_module json_module->module~mod_spectrum json_module->module~mod_domain module~mod_utility->module~mod_spectrum module~mod_utility->module~mod_grid datetime_module datetime_module datetime_module->module~mod_spectrum datetime_module->module~mod_domain module~mod_const->module~mod_spectrum module~mod_const->module~mod_domain iso_c_binding iso_c_binding iso_c_binding->module~mod_spectrum iso_fortran_env iso_fortran_env iso_fortran_env->module~mod_precision module~mod_grid->module~mod_domain
Help

Interfaces

public interface integrate

  • private pure function integrate_spectrum(func, initial, tendency, dt)

    Integrates spectrum forward in time using a time integration method provided as the argument func.

    Arguments

    Type IntentOptional AttributesName
    public pure function func(initial, tendency, dt)
    Arguments
    Type IntentOptional AttributesName
    type(spectrum_type), intent(in) :: initial
    type(spectrum_type), intent(in) :: tendency
    real(kind=rk), intent(in) :: dt
    Return Value type(spectrum_type)
    type(spectrum_type), intent(in) :: initial

    Initial spectrum instance

    type(spectrum_type), intent(in) :: tendency

    Spectrum tendency instance

    real(kind=rk), intent(in) :: dt

    Time step [s]

    Return Value type(spectrum_type)

  • private pure function integrate_domain(func, initial, tendency, dt)

    Integrates domain forward in time using a time integration method provided as the argument func.

    Arguments

    Type IntentOptional AttributesName
    public pure function func(initial, tendency, dt)
    Arguments
    Type IntentOptional AttributesName
    type(domain_type), intent(in) :: initial
    type(domain_type), intent(in) :: tendency
    real(kind=rk), intent(in) :: dt
    Return Value type(domain_type)
    type(domain_type), intent(in) :: initial

    Initial domain instance

    type(domain_type), intent(in) :: tendency

    Spectrum domain instance

    real(kind=rk), intent(in) :: dt

    Time step [s]

    Return Value type(domain_type)

public interface exact_exponential

  • private pure elemental function exact_exponential_spectrum(initial, tendency, dt) result(spec)

    Integrates a spectrum instance forward in time using the exact exponential.

    Arguments

    Type IntentOptional AttributesName
    type(spectrum_type), intent(in) :: initial

    Initial spectrum instance

    type(spectrum_type), intent(in) :: tendency

    Spectrum tendency instance

    real(kind=rk), intent(in) :: dt

    Time step [s]

    Return Value type(spectrum_type)

  • private pure elemental function exact_exponential_domain(initial, tendency, dt) result(domain)

    Integrates a domain instance forward in time using the exact exponential.

    Arguments

    Type IntentOptional AttributesName
    type(domain_type), intent(in) :: initial

    Initial spectrum instance

    type(domain_type), intent(in) :: tendency

    Spectrum tendency instance

    real(kind=rk), intent(in) :: dt

    Time step [s]

    Return Value type(domain_type)

public interface backward_euler

  • private pure elemental function backward_euler_spectrum(initial, tendency, dt) result(spec)

    Integrates a spectrum forward in time using a 1st order implicit backward Euler integration scheme.

    Arguments

    Type IntentOptional AttributesName
    type(spectrum_type), intent(in) :: initial

    Initial spectrum instance

    type(spectrum_type), intent(in) :: tendency

    Spectrum tendency instance

    real(kind=rk), intent(in) :: dt

    Time step [s]

    Return Value type(spectrum_type)

  • private pure elemental function backward_euler_domain(initial, tendency, dt) result(domain)

    Integrates a domain instance forward in time using a 1st order implicit backward Euler integration scheme.

    Arguments

    Type IntentOptional AttributesName
    type(domain_type), intent(in) :: initial

    Initial spectrum instance

    type(domain_type), intent(in) :: tendency

    Spectrum tendency instance

    real(kind=rk), intent(in) :: dt

    Time step [s]

    Return Value type(domain_type)

public interface forward_euler

  • private pure elemental function forward_euler_spectrum(initial, tendency, dt) result(spec)

    Integrates a spectrum forward in time using a 1st order Euler integration scheme.

    Arguments

    Type IntentOptional AttributesName
    type(spectrum_type), intent(in) :: initial

    Initial spectrum instance

    type(spectrum_type), intent(in) :: tendency

    Spectrum tendency instance

    real(kind=rk), intent(in) :: dt

    Time step [s]

    Return Value type(spectrum_type)

  • private pure elemental function forward_euler_domain(initial, tendency, dt) result(domain)

    Integrates a domain instance forward in time using a 1st order Euler integration scheme.

    Arguments

    Type IntentOptional AttributesName
    type(domain_type), intent(in) :: initial

    Initial spectrum instance

    type(domain_type), intent(in) :: tendency

    Spectrum tendency instance

    real(kind=rk), intent(in) :: dt

    Time step [s]

    Return Value type(domain_type)


Functions

private pure function integrate_spectrum(func, initial, tendency, dt)

Integrates spectrum forward in time using a time integration method provided as the argument func.

Arguments

Type IntentOptional AttributesName
public pure function func(initial, tendency, dt)
Arguments
Type IntentOptional AttributesName
type(spectrum_type), intent(in) :: initial
type(spectrum_type), intent(in) :: tendency
real(kind=rk), intent(in) :: dt
Return Value type(spectrum_type)
type(spectrum_type), intent(in) :: initial

Initial spectrum instance

type(spectrum_type), intent(in) :: tendency

Spectrum tendency instance

real(kind=rk), intent(in) :: dt

Time step [s]

Return Value type(spectrum_type)

private pure function integrate_domain(func, initial, tendency, dt)

Integrates domain forward in time using a time integration method provided as the argument func.

Arguments

Type IntentOptional AttributesName
public pure function func(initial, tendency, dt)
Arguments
Type IntentOptional AttributesName
type(domain_type), intent(in) :: initial
type(domain_type), intent(in) :: tendency
real(kind=rk), intent(in) :: dt
Return Value type(domain_type)
type(domain_type), intent(in) :: initial

Initial domain instance

type(domain_type), intent(in) :: tendency

Spectrum domain instance

real(kind=rk), intent(in) :: dt

Time step [s]

Return Value type(domain_type)

private pure elemental function backward_euler_spectrum(initial, tendency, dt) result(spec)

Integrates a spectrum forward in time using a 1st order implicit backward Euler integration scheme.

Arguments

Type IntentOptional AttributesName
type(spectrum_type), intent(in) :: initial

Initial spectrum instance

type(spectrum_type), intent(in) :: tendency

Spectrum tendency instance

real(kind=rk), intent(in) :: dt

Time step [s]

Return Value type(spectrum_type)

private pure elemental function backward_euler_domain(initial, tendency, dt) result(domain)

Integrates a domain instance forward in time using a 1st order implicit backward Euler integration scheme.

Arguments

Type IntentOptional AttributesName
type(domain_type), intent(in) :: initial

Initial spectrum instance

type(domain_type), intent(in) :: tendency

Spectrum tendency instance

real(kind=rk), intent(in) :: dt

Time step [s]

Return Value type(domain_type)

private pure elemental function exact_exponential_spectrum(initial, tendency, dt) result(spec)

Integrates a spectrum instance forward in time using the exact exponential.

Arguments

Type IntentOptional AttributesName
type(spectrum_type), intent(in) :: initial

Initial spectrum instance

type(spectrum_type), intent(in) :: tendency

Spectrum tendency instance

real(kind=rk), intent(in) :: dt

Time step [s]

Return Value type(spectrum_type)

private pure elemental function exact_exponential_domain(initial, tendency, dt) result(domain)

Integrates a domain instance forward in time using the exact exponential.

Arguments

Type IntentOptional AttributesName
type(domain_type), intent(in) :: initial

Initial spectrum instance

type(domain_type), intent(in) :: tendency

Spectrum tendency instance

real(kind=rk), intent(in) :: dt

Time step [s]

Return Value type(domain_type)

private pure elemental function forward_euler_spectrum(initial, tendency, dt) result(spec)

Integrates a spectrum forward in time using a 1st order Euler integration scheme.

Arguments

Type IntentOptional AttributesName
type(spectrum_type), intent(in) :: initial

Initial spectrum instance

type(spectrum_type), intent(in) :: tendency

Spectrum tendency instance

real(kind=rk), intent(in) :: dt

Time step [s]

Return Value type(spectrum_type)

private pure elemental function forward_euler_domain(initial, tendency, dt) result(domain)

Integrates a domain instance forward in time using a 1st order Euler integration scheme.

Arguments

Type IntentOptional AttributesName
type(domain_type), intent(in) :: initial

Initial spectrum instance

type(domain_type), intent(in) :: tendency

Spectrum tendency instance

real(kind=rk), intent(in) :: dt

Time step [s]

Return Value type(domain_type)