ModImplicit_t Derived Type

type, public, extends(ModHorizontalDiffusion_t) :: ModImplicit_t


Inherits

type~~modimplicit_t~~InheritsGraph type~modimplicit_t ModImplicit_t ModHorizontalDiffusion_t ModHorizontalDiffusion_t type~modimplicit_t->ModHorizontalDiffusion_t

Contents

Source Code


Components

TypeVisibility AttributesNameInitial
logical, private :: mod_implicit_initialize_flag =.false.
real(kind=p), private, allocatable, dimension(:):: tref
real(kind=p), private, allocatable, dimension(:):: tref2
real(kind=p), private, allocatable, dimension(:):: tref3
real(kind=p), private, allocatable, dimension(:):: dhsx
real(kind=p), private, allocatable, dimension(:, :):: xc
real(kind=p), private, allocatable, dimension(:, :):: xd
real(kind=p), private, allocatable, dimension(:, :):: elz
real(kind=p), private, allocatable, dimension(:, :, :):: xj

Type-Bound Procedures

procedure, public :: initialize => ModImplicit_initialize

  • private subroutine ModImplicit_initialize(this, mod_geometry)

    Initialize constants for implicit computation of horizontal diffusion and gravity waves.

    Read more…

    Arguments

    Type IntentOptional AttributesName
    class(ModImplicit_t), intent(inout) :: this
    class(ModGeometry_t), intent(in), target:: mod_geometry

procedure, public :: set_time_step => ModImplicit_set_time_step

  • private subroutine ModImplicit_set_time_step(this, dt)

    Arguments

    Type IntentOptional AttributesName
    class(ModImplicit_t), intent(inout), target:: this
    real(kind=p), intent(in) :: dt

    Time step

procedure, public :: delete => ModImplicit_delete

procedure, public :: implicit_terms => ModImplicit_implicit_terms

  • private subroutine ModImplicit_implicit_terms(this, divdt, tdt, psdt)

    Correct tendencies for implicit gravity wave model

    Arguments

    Type IntentOptional AttributesName
    class(ModImplicit_t), intent(inout) :: this
    complex(kind=p), intent(inout) :: divdt(mx,nx,kx)

    Divergence tendency

    complex(kind=p), intent(inout) :: tdt(mx,nx,kx)

    Temperature tendency

    complex(kind=p), intent(inout) :: psdt(mx,nx)

    log(surface pressure) tendency

Source Code

    type, extends(ModHorizontalDiffusion_t) :: ModImplicit_t
        logical :: mod_implicit_initialize_flag = .false.

        real(p), allocatable, dimension(:) :: tref, tref2, tref3, dhsx
        real(p), allocatable, dimension(:, :) :: xc, xd, elz
        real(p), allocatable, dimension(:, :, :) :: xj
    contains
        procedure :: initialize => ModImplicit_initialize
        procedure :: set_time_step => ModImplicit_set_time_step
        procedure :: delete => ModImplicit_delete
        procedure :: implicit_terms => ModImplicit_implicit_terms
    end type ModImplicit_t