rksuite_90 Module


Uses

  • module~~rksuite_90~~UsesGraph module~rksuite_90 rksuite_90 module~rksuite_90_prec rksuite_90_prec module~rksuite_90->module~rksuite_90_prec iso_fortran_env iso_fortran_env module~rksuite_90_prec->iso_fortran_env

Used by

  • module~~rksuite_90~~UsedByGraph module~rksuite_90 rksuite_90 module~upstream_plume_mod upstream_plume_mod module~upstream_plume_mod->module~rksuite_90 module~asymmetric_plume_mod asymmetric_plume_mod module~asymmetric_plume_mod->module~upstream_plume_mod module~static_plume_mod static_plume_mod module~static_plume_mod->module~upstream_plume_mod module~plume_mod plume_mod module~plume_mod->module~upstream_plume_mod

Contents


Interfaces

public interface setup

  • private subroutine setup_r1(comm, t_start, y_start, t_end, tolerance, thresholds, method, task, error_assess, h_start, message)

    Arguments

    Type IntentOptional AttributesName
    type(rk_comm_real_1d) :: comm
    real(kind=wp), intent(in) :: t_start
    real(kind=wp), intent(in), dimension(:):: y_start
    real(kind=wp), intent(in) :: t_end
    real(kind=wp), intent(in) :: tolerance
    real(kind=wp), intent(in), dimension(:):: thresholds
    character(len=*), intent(in), optional :: method
    character(len=*), intent(in), optional :: task
    logical, intent(in), optional :: error_assess
    real(kind=wp), intent(in), optional :: h_start
    logical, intent(in), optional :: message

public interface range_integrate

  • private recursive subroutine range_integrate_r1(comm, f, t_want, t_got, y_got, yderiv_got, flag)

    Arguments

    Type IntentOptional AttributesName
    type(rk_comm_real_1d), intent(inout) :: comm
    public function f(t, y)
    Arguments
    Type IntentOptional AttributesName
    real(kind=wp), intent(in) :: t
    real(kind=wp), intent(in), dimension(:):: y
    Return Value real(kind=wp), dimension(size(y,1))
    real(kind=wp), intent(in) :: t_want
    real(kind=wp), intent(out) :: t_got
    real(kind=wp), intent(out), dimension(:):: y_got
    real(kind=wp), intent(out), dimension(:):: yderiv_got
    integer, intent(out), optional :: flag

public interface step_integrate

  • private recursive subroutine step_integrate_r1(comm, f, t_now, y_now, yderiv_now, flag)

    Arguments

    Type IntentOptional AttributesName
    type(rk_comm_real_1d), intent(inout) :: comm
    public function f(t, y)
    Arguments
    Type IntentOptional AttributesName
    real(kind=wp), intent(in) :: t
    real(kind=wp), intent(in), dimension(:):: y
    Return Value real(kind=wp), dimension(size(y,1))
    real(kind=wp), intent(out) :: t_now
    real(kind=wp), intent(out), dimension(:):: y_now
    real(kind=wp), intent(out), dimension(:):: yderiv_now
    integer, intent(out), optional :: flag

public interface statistics

  • private subroutine statistics_r1(comm, total_f_calls, step_cost, waste, num_succ_steps, h_next, y_maxvals)

    Arguments

    Type IntentOptional AttributesName
    type(rk_comm_real_1d), intent(inout) :: comm
    integer, intent(out), optional :: total_f_calls
    integer, intent(out), optional :: step_cost
    real(kind=wp), intent(out), optional :: waste
    integer, intent(out), optional :: num_succ_steps
    real(kind=wp), intent(out), optional :: h_next
    real(kind=wp), intent(out), optional dimension(:):: y_maxvals

public interface global_error

  • private subroutine global_error_r1(comm, rms_error, max_error, t_max_error)

    Arguments

    Type IntentOptional AttributesName
    type(rk_comm_real_1d), intent(inout) :: comm
    real(kind=wp), intent(out), optional dimension(:):: rms_error
    real(kind=wp), intent(out), optional :: max_error
    real(kind=wp), intent(out), optional :: t_max_error

public interface reset_t_end

  • private subroutine reset_t_end_r1(comm, t_end_new)

    Arguments

    Type IntentOptional AttributesName
    type(rk_comm_real_1d), intent(inout) :: comm
    real(kind=wp), intent(in) :: t_end_new

public interface interpolate

  • private subroutine interpolate_r1(comm, f, t_want, y_want, yderiv_want)

    Arguments

    Type IntentOptional AttributesName
    type(rk_comm_real_1d), intent(inout), target:: comm
    public function f(t, y)
    Arguments
    Type IntentOptional AttributesName
    real(kind=wp), intent(in) :: t
    real(kind=wp), intent(in), dimension(:):: y
    Return Value real(kind=wp), dimension(size(y,1))
    real(kind=wp), intent(in) :: t_want
    real(kind=wp), intent(out), optional dimension(:):: y_want
    real(kind=wp), intent(out), optional dimension(:):: yderiv_want

public interface set_stop_on_fatal

  • private subroutine set_stop_on_fatal_r1(comm, action)

    Arguments

    Type IntentOptional AttributesName
    type(rk_comm_real_1d), intent(inout) :: comm
    logical, intent(in) :: action

public interface get_saved_fatal

public interface collect_garbage


Derived Types

type, public :: rk_comm_real_1d

Components

TypeVisibility AttributesNameInitial
real(kind=wp), private :: t
real(kind=wp), private :: t_old
real(kind=wp), private :: t_start
real(kind=wp), private :: t_end
real(kind=wp), private :: dir
real(kind=wp), private :: h
real(kind=wp), private :: h_old
real(kind=wp), private :: h_start
real(kind=wp), private :: h_average
real(kind=wp), private :: tol
integer, private :: f_count
integer, private :: full_f_count
integer, private :: step_count
integer, private :: bad_step_count
logical, private :: at_t_start
logical, private :: at_t_end
real(kind=wp), private, dimension(:), pointer:: thresh
real(kind=wp), private, dimension(:), pointer:: weights
real(kind=wp), private, dimension(:), pointer:: ymax
real(kind=wp), private, dimension(:), pointer:: scratch
real(kind=wp), private, dimension(:), pointer:: y
real(kind=wp), private, dimension(:), pointer:: yp
real(kind=wp), private, dimension(:), pointer:: y_new
real(kind=wp), private, dimension(:), pointer:: y_old
real(kind=wp), private, dimension(:), pointer:: yp_old
real(kind=wp), private, dimension(:), pointer:: v0
real(kind=wp), private, dimension(:), pointer:: v1
real(kind=wp), private, dimension(:), pointer:: err_estimates
real(kind=wp), private, dimension(:), pointer:: v2
real(kind=wp), private, dimension(:), pointer:: v3
real(kind=wp), private, dimension(:), pointer:: vtemp
real(kind=wp), private, dimension(:,:), pointer:: stages
real(kind=wp), private :: a(13,13)
real(kind=wp), private :: b(13)
real(kind=wp), private :: c(13)
real(kind=wp), private :: bhat(13)
real(kind=wp), private :: r(11,6)
real(kind=wp), private :: e(7)
integer, private :: ptr(13)
integer, private :: no_of_stages
integer, private :: rk_method
integer, private :: intrp_degree
logical, private :: intrp_able
logical, private :: intrp_needs_stages
real(kind=wp), private :: toosml
real(kind=wp), private :: cost
real(kind=wp), private :: safety
real(kind=wp), private :: expon
real(kind=wp), private :: stability_radius
real(kind=wp), private :: tan_angle
real(kind=wp), private :: rs
real(kind=wp), private :: rs1
real(kind=wp), private :: rs2
real(kind=wp), private :: rs3
real(kind=wp), private :: rs4
integer, private :: order
integer, private :: last_stage
integer, private :: max_stiff_iters
integer, private :: no_of_ge_steps
logical, private :: fsal
real(kind=wp), private :: ge_max_contrib
real(kind=wp), private :: t_ge_max_contrib
integer, private :: ge_f_count
real(kind=wp), private, dimension(:), pointer:: ge_assess
real(kind=wp), private, dimension(:), pointer:: ge_y
real(kind=wp), private, dimension(:), pointer:: ge_yp
real(kind=wp), private, dimension(:), pointer:: ge_y_new
real(kind=wp), private, dimension(:), pointer:: ge_err_estimates
real(kind=wp), private, dimension(:,:), pointer:: ge_stages
logical, private :: erason
logical, private :: erasfl
real(kind=wp), private :: mcheps
real(kind=wp), private :: dwarf
real(kind=wp), private :: round_off
real(kind=wp), private :: sqrrmc
real(kind=wp), private :: cubrmc
real(kind=wp), private :: sqtiny
integer, private :: outch
logical, private :: print_message
logical, private :: use_range
character(len=80), private :: rec(10)
real(kind=wp), private :: tlast
real(kind=wp), private :: range_t_end
real(kind=wp), private, dimension(:), pointer:: xstage
real(kind=wp), private, dimension(:), pointer:: ytemp
real(kind=wp), private, dimension(:,:), pointer:: p
integer, private :: stiff_bad_step_count
integer, private :: hit_t_end_count
real(kind=wp), private :: errold
logical, private :: chkeff
logical, private :: phase2
integer, private, dimension(7):: save_states
logical, private :: stop_on_fatal
logical, private :: saved_fatal_err

Functions

private function get_saved_state_r1(srname, save_states)

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: srname
integer, intent(inout), dimension(7):: save_states

Return Value integer

private function get_saved_fatal_r1(comm)

Arguments

Type IntentOptional AttributesName
type(rk_comm_real_1d), intent(in) :: comm

Return Value logical

private function get_stop_on_fatal_r1(comm)

Arguments

Type IntentOptional AttributesName
type(rk_comm_real_1d), intent(in) :: comm

Return Value logical


Subroutines

private subroutine machine_const(round_off, sqrrmc, cubrmc, sqtiny, outch)

Arguments

Type IntentOptional AttributesName
real(kind=wp), intent(out) :: round_off
real(kind=wp), intent(out) :: sqrrmc
real(kind=wp), intent(out) :: cubrmc
real(kind=wp), intent(out) :: sqtiny
integer, intent(out) :: outch

private subroutine method_const(rk_method, a, b, c, bhat, r, e, ptr, no_of_stages, intrp_degree, intrp_able, intrp_needs_stages, cost, safety, expon, stability_radius, tan_angle, rs, rs1, rs2, rs3, rs4, order, last_stage, max_stiff_iters, no_of_ge_steps, fsal, cdiff)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: rk_method
real(kind=wp), intent(out) :: a(13,13)
real(kind=wp), intent(out) :: b(13)
real(kind=wp), intent(out) :: c(13)
real(kind=wp), intent(out) :: bhat(13)
real(kind=wp), intent(out) :: r(11,6)
real(kind=wp), intent(out) :: e(7)
integer, intent(out) :: ptr(13)
integer, intent(out) :: no_of_stages
integer, intent(out) :: intrp_degree
logical, intent(out) :: intrp_able
logical, intent(out) :: intrp_needs_stages
real(kind=wp), intent(out) :: cost
real(kind=wp), intent(out) :: safety
real(kind=wp), intent(out) :: expon
real(kind=wp), intent(out) :: stability_radius
real(kind=wp), intent(out) :: tan_angle
real(kind=wp), intent(out) :: rs
real(kind=wp), intent(out) :: rs1
real(kind=wp), intent(out) :: rs2
real(kind=wp), intent(out) :: rs3
real(kind=wp), intent(out) :: rs4
integer, intent(out) :: order
integer, intent(out) :: last_stage
integer, intent(out) :: max_stiff_iters
integer, intent(out) :: no_of_ge_steps
logical, intent(out) :: fsal
real(kind=wp), intent(out) :: cdiff

private subroutine setup_r1(comm, t_start, y_start, t_end, tolerance, thresholds, method, task, error_assess, h_start, message)

Arguments

Type IntentOptional AttributesName
type(rk_comm_real_1d) :: comm
real(kind=wp), intent(in) :: t_start
real(kind=wp), intent(in), dimension(:):: y_start
real(kind=wp), intent(in) :: t_end
real(kind=wp), intent(in) :: tolerance
real(kind=wp), intent(in), dimension(:):: thresholds
character(len=*), intent(in), optional :: method
character(len=*), intent(in), optional :: task
logical, intent(in), optional :: error_assess
real(kind=wp), intent(in), optional :: h_start
logical, intent(in), optional :: message

private subroutine collect_garbage_r1(comm)

Arguments

Type IntentOptional AttributesName
type(rk_comm_real_1d) :: comm

private recursive subroutine range_integrate_r1(comm, f, t_want, t_got, y_got, yderiv_got, flag)

Arguments

Type IntentOptional AttributesName
type(rk_comm_real_1d), intent(inout) :: comm
public function f(t, y)
Arguments
Type IntentOptional AttributesName
real(kind=wp), intent(in) :: t
real(kind=wp), intent(in), dimension(:):: y
Return Value real(kind=wp), dimension(size(y,1))
real(kind=wp), intent(in) :: t_want
real(kind=wp), intent(out) :: t_got
real(kind=wp), intent(out), dimension(:):: y_got
real(kind=wp), intent(out), dimension(:):: yderiv_got
integer, intent(out), optional :: flag

private recursive subroutine step_integrate_r1(comm, f, t_now, y_now, yderiv_now, flag)

Arguments

Type IntentOptional AttributesName
type(rk_comm_real_1d), intent(inout) :: comm
public function f(t, y)
Arguments
Type IntentOptional AttributesName
real(kind=wp), intent(in) :: t
real(kind=wp), intent(in), dimension(:):: y
Return Value real(kind=wp), dimension(size(y,1))
real(kind=wp), intent(out) :: t_now
real(kind=wp), intent(out), dimension(:):: y_now
real(kind=wp), intent(out), dimension(:):: yderiv_now
integer, intent(out), optional :: flag

private subroutine truerr_r1(comm, f, ier)

Arguments

Type IntentOptional AttributesName
type(rk_comm_real_1d), intent(inout) :: comm
public function f(t, y)
Arguments
Type IntentOptional AttributesName
real(kind=wp), intent(in) :: t
real(kind=wp), intent(in), dimension(:):: y
Return Value real(kind=wp), dimension(size(y,1))
integer, intent(inout) :: ier

private subroutine step_r1(comm, f, tnow, y, yp, stages, tol, htry, y_new, errest, err, hmin, phase_2)

Arguments

Type IntentOptional AttributesName
type(rk_comm_real_1d), intent(inout), target:: comm
public function f(t, y)
Arguments
Type IntentOptional AttributesName
real(kind=wp), intent(in) :: t
real(kind=wp), intent(in), dimension(:):: y
Return Value real(kind=wp), dimension(size(y,1))
real(kind=wp), intent(in) :: tnow
real(kind=wp), intent(in), dimension(:):: y
real(kind=wp), intent(in), dimension(:):: yp
real(kind=wp), intent(out), dimension(:,:):: stages
real(kind=wp), intent(in) :: tol
real(kind=wp), intent(inout) :: htry
real(kind=wp), intent(out), dimension(:):: y_new
real(kind=wp), intent(out), dimension(:):: errest
real(kind=wp), intent(out) :: err
real(kind=wp), intent(in), optional :: hmin
logical, intent(inout), optional :: phase_2

private subroutine stiff_r1(comm, f, toomch, sure_stiff)

Arguments

Type IntentOptional AttributesName
type(rk_comm_real_1d), intent(inout), target:: comm
public function f(t, y)
Arguments
Type IntentOptional AttributesName
real(kind=wp), intent(in) :: t
real(kind=wp), intent(in), dimension(:):: y
Return Value real(kind=wp), dimension(size(y,1))
logical, intent(in) :: toomch
logical, intent(out) :: sure_stiff

private subroutine statistics_r1(comm, total_f_calls, step_cost, waste, num_succ_steps, h_next, y_maxvals)

Arguments

Type IntentOptional AttributesName
type(rk_comm_real_1d), intent(inout) :: comm
integer, intent(out), optional :: total_f_calls
integer, intent(out), optional :: step_cost
real(kind=wp), intent(out), optional :: waste
integer, intent(out), optional :: num_succ_steps
real(kind=wp), intent(out), optional :: h_next
real(kind=wp), intent(out), optional dimension(:):: y_maxvals

private subroutine global_error_r1(comm, rms_error, max_error, t_max_error)

Arguments

Type IntentOptional AttributesName
type(rk_comm_real_1d), intent(inout) :: comm
real(kind=wp), intent(out), optional dimension(:):: rms_error
real(kind=wp), intent(out), optional :: max_error
real(kind=wp), intent(out), optional :: t_max_error

private subroutine reset_t_end_r1(comm, t_end_new)

Arguments

Type IntentOptional AttributesName
type(rk_comm_real_1d), intent(inout) :: comm
real(kind=wp), intent(in) :: t_end_new

private subroutine interpolate_r1(comm, f, t_want, y_want, yderiv_want)

Arguments

Type IntentOptional AttributesName
type(rk_comm_real_1d), intent(inout), target:: comm
public function f(t, y)
Arguments
Type IntentOptional AttributesName
real(kind=wp), intent(in) :: t
real(kind=wp), intent(in), dimension(:):: y
Return Value real(kind=wp), dimension(size(y,1))
real(kind=wp), intent(in) :: t_want
real(kind=wp), intent(out), optional dimension(:):: y_want
real(kind=wp), intent(out), optional dimension(:):: yderiv_want

private subroutine rkmsg_r1(ier, srname, nrec, comm, flag)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: ier
character(len=*), intent(in) :: srname
integer, intent(in) :: nrec
type(rk_comm_real_1d), intent(inout) :: comm
integer, intent(out), optional :: flag

private subroutine set_saved_state_r1(srname, state, comm)

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: srname
integer, intent(in) :: state
type(rk_comm_real_1d), intent(inout) :: comm

private subroutine set_stop_on_fatal_r1(comm, action)

Arguments

Type IntentOptional AttributesName
type(rk_comm_real_1d), intent(inout) :: comm
logical, intent(in) :: action