ModGeometry_t Derived Type

type, public :: ModGeometry_t

Geometry module object


Contents


Components

TypeVisibility AttributesNameInitial
logical, private :: mod_geometry_initialized =.false.
real(kind=p), private, allocatable, dimension(:):: hsg

Half sigma levels. Dimension(kx + 1).

real(kind=p), private, allocatable, dimension(:):: dhs

Sigma level thicknesses. Dimension(kx).

real(kind=p), private, allocatable, dimension(:):: fsg

Full sigma levels. Dimension(kx).

real(kind=p), private, allocatable, dimension(:):: dhsr

1/(2*sigma level thicknesses). Dimension(kx).

real(kind=p), private, allocatable, dimension(:):: fsgr

akap/(2*full sigma levels). Dimension(kx).

real(kind=p), private, allocatable, dimension(:):: radang

Latitudes in radians. Dimension(il).

real(kind=p), private, allocatable, dimension(:):: coriol

Coriolis parameter as a function of latitude. Dimension(il).

real(kind=p), private, allocatable, dimension(:):: sia

sine(latitude). Dimension(il).

real(kind=p), private, allocatable, dimension(:):: coa

cosine(latitude). Dimension(il).

real(kind=p), private, allocatable, dimension(:):: sia_half

sine(latitude) over one hemisphere only. Dimension(iy).

real(kind=p), private, allocatable, dimension(:):: coa_half

cosine(latitude) over one hemisphere only. Dimension(il).

real(kind=p), private, allocatable, dimension(:):: cosg

Same as coa (TODO: remove). Dimension(il).

real(kind=p), private, allocatable, dimension(:):: cosgr

1/coa. Dimension(il).

real(kind=p), private, allocatable, dimension(:):: cosgr2

1/coa^2. Dimension(il).

real(kind=p), private, allocatable, dimension(:):: sigl

Logarithm of full-level sigma. Dimension(kx).

real(kind=p), private, allocatable, dimension(:):: sigh

Half-level sigma. Dimension(0:kx).

g/(d_sigma p0) : to convert fluxes of u,v,q into d(u,v,q)/dt . Dimension(kx).

real(kind=p), private, allocatable, dimension(:):: grdsig

g/(d_sigma p0 c_p): to convert energy fluxes into dT/dt Dimension(kx).

real(kind=p), private, allocatable, dimension(:):: grdscp
real(kind=p), private, allocatable, dimension(:, :):: wvi

Weights for vertical interpolation. Dimension(kx, 2).


Type-Bound Procedures

procedure, public :: initialize => ModGeometry_initialize

  • private subroutine ModGeometry_initialize(this)

    Initializes all of the model geometry variables.

    Arguments

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

procedure, public :: delete => ModGeometry_delete

  • private subroutine ModGeometry_delete(this)

    Delete the Geometry instance

    Arguments

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