geometry Module

For storing all variables related to the model's grid space.


Uses

  • module~~geometry~~UsesGraph module~geometry geometry module~types types module~geometry->module~types module~params params module~geometry->module~params iso_fortran_env iso_fortran_env module~types->iso_fortran_env module~params->module~types

Used by

  • module~~geometry~~UsedByGraph module~geometry geometry module~prognostics prognostics module~prognostics->module~geometry module~model_state model_state module~prognostics->module~model_state module~spectral spectral module~prognostics->module~spectral module~model_state->module~geometry module~horizontal_diffusion horizontal_diffusion module~model_state->module~horizontal_diffusion module~model_state->module~spectral module~implicit implicit module~model_state->module~implicit module~legendre legendre module~legendre->module~geometry module~horizontal_diffusion->module~geometry proc~get_grid_point_tendencies get_grid_point_tendencies proc~get_grid_point_tendencies->module~geometry proc~get_grid_point_tendencies->module~model_state module~geopotential geopotential proc~get_grid_point_tendencies->module~geopotential proc~get_grid_point_tendencies->module~spectral proc~get_grid_point_tendencies->module~implicit proc~get_spectral_tendencies get_spectral_tendencies proc~get_spectral_tendencies->module~geometry proc~get_spectral_tendencies->module~model_state proc~get_spectral_tendencies->module~geopotential proc~get_spectral_tendencies->module~spectral proc~get_spectral_tendencies->module~implicit module~geopotential->module~geometry module~surface_fluxes surface_fluxes module~surface_fluxes->module~geometry proc~get_physical_tendencies get_physical_tendencies proc~get_physical_tendencies->module~geometry proc~get_physical_tendencies->module~model_state proc~get_physical_tendencies->module~surface_fluxes proc~get_physical_tendencies->module~spectral module~shortwave_radiation shortwave_radiation proc~get_physical_tendencies->module~shortwave_radiation module~spectral->module~geometry module~fourier fourier module~spectral->module~fourier module~shortwave_radiation->module~geometry module~implicit->module~geometry module~implicit->module~horizontal_diffusion module~fourier->module~geometry module~fourier->module~legendre proc~get_tendencies get_tendencies proc~get_tendencies->module~model_state proc~initialize_geopotential initialize_geopotential proc~initialize_geopotential->module~model_state proc~modelstate_init_sst_anom modelstate_init_sst_anom proc~modelstate_init_sst_anom->module~model_state proc~initialize_boundaries initialize_boundaries proc~initialize_boundaries->module~model_state proc~modfourier_initialize ModFourier_initialize proc~modfourier_initialize->module~legendre proc~modimplicit_set_time_step ModImplicit_set_time_step proc~modimplicit_set_time_step->module~horizontal_diffusion proc~land_model_init land_model_init proc~land_model_init->module~model_state proc~do_single_step do_single_step proc~do_single_step->module~model_state proc~do_single_step->module~spectral module~time_stepping time_stepping proc~do_single_step->module~time_stepping proc~initialize_coupler initialize_coupler proc~initialize_coupler->module~model_state proc~run_land_model run_land_model proc~run_land_model->module~model_state proc~gen_sppt gen_sppt proc~gen_sppt->module~legendre proc~gen_sppt->module~spectral proc~transform_spectral2grid transform_spectral2grid proc~transform_spectral2grid->module~prognostics proc~set_forcing set_forcing proc~set_forcing->module~model_state proc~set_forcing->module~surface_fluxes proc~set_forcing->module~shortwave_radiation proc~modimplicit_initialize ModImplicit_initialize proc~modimplicit_initialize->module~horizontal_diffusion proc~apply_grid_filter apply_grid_filter proc~apply_grid_filter->module~prognostics proc~sea_model_init sea_model_init proc~sea_model_init->module~model_state proc~modspectral_initialize ModSpectral_initialize proc~modspectral_initialize->module~fourier proc~modimplicit_delete ModImplicit_delete proc~modimplicit_delete->module~horizontal_diffusion proc~run_sea_model run_sea_model proc~run_sea_model->module~model_state module~speedy_driver speedy_driver module~speedy_driver->module~model_state proc~transform_grid2spectral transform_grid2spectral proc~transform_grid2spectral->module~prognostics proc~check_diagnostics check_diagnostics proc~check_diagnostics->module~spectral proc~modfourier_delete ModFourier_delete proc~modfourier_delete->module~legendre proc~couple_sea_land couple_sea_land proc~couple_sea_land->module~model_state proc~couple_land_atm couple_land_atm proc~couple_land_atm->module~model_state proc~set_geopotential set_geopotential proc~set_geopotential->module~model_state proc~modspectral_delete ModSpectral_delete proc~modspectral_delete->module~fourier proc~first_step first_step proc~first_step->module~model_state proc~initialize_state initialize_state proc~initialize_state->module~prognostics proc~initialize_state->module~model_state proc~initialize_state->module~geopotential proc~initialize_state->module~time_stepping proc~get_zonal_average_fields get_zonal_average_fields proc~get_zonal_average_fields->module~model_state module~time_stepping->module~spectral proc~get_shortwave_rad_fluxes get_shortwave_rad_fluxes proc~get_shortwave_rad_fluxes->module~model_state proc~step step proc~step->module~model_state proc~step->module~horizontal_diffusion proc~step->module~implicit proc~couple_sea_atm couple_sea_atm proc~couple_sea_atm->module~model_state

Contents


Derived Types

type, public :: ModGeometry_t

Geometry module object

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).

Read more…
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
procedure, public :: delete => ModGeometry_delete

Subroutines

private subroutine ModGeometry_initialize(this)

Initializes all of the model geometry variables.

Arguments

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

private subroutine ModGeometry_delete(this)

Delete the Geometry instance

Arguments

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