FE-Project
Loading...
Searching...
No Matches
scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d Type Reference

Derived type to provide a driver of dynamical core with the atmospheric nonhydrostatic equations. More...

Inheritance diagram for scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d:
scale_atm_dyn_dgm_driver_base::atmdyndgmdriver_base3d scale_atm_dyn_dgm_driver_base::atmdyndgmdriver_base

Public Member Functions

procedure init (this, eqs_type_name, tint_type_name, dtsec, sponge_layer_flag, modal_filter_flag, hide_mpi_comm_flag, model_mesh3d)
 Initialize a object to provide a driver of atmospheric dynamical core.
procedure final (this)
 Finalize a object to provide a driver of atmospheric dynamical core.
procedure update (this, prog_vars, aux_vars, phytends, dens_trc, dens0_trc, mflx_x_tavg, mflx_y_tavg, mflx_z_tavg, alph_dens_m_tavg, alph_dens_p_tavg, coriolis, element_operation, dx, dy, dz, sx, sy, sz, lift, mesh3d)
 Update the prognostic variables for the non-hydrostatic 3D atmospheric dynamical core.
procedure is_thermvar_rhot (this)
 Get a flag whether density-weighted potential temperature is used for a prognostic thermodynamic variable.
procedure calc_pressure (this, pres, prog_vars, aux_vars)
 Calculate the pressure using the prognostic variables with the non-hydrostatic 3D atmospheric dynamical core.
procedure update_therm_hyd (this, aux_vars)
 Update the hydrostatic part of thermodynamic prognostic variable (THERM_hyd)
procedure update_phyd_hgrad (this, pres_hyd, pres_hyd_ref, mesh3d, element_operation)
 Calculate the horizontal gradient of the hydrostatic pressure.

Public Attributes

integer eqs_typeid
 Type ID of equation system.
logical entot_conserve_scheme_flag
 Flag whether total energy is a prognostic variable.
logical modalfilter_flag
 Flag wheter modal filtering is applied.
type(modalfilter) modal_filter_3d
type(modalfilter) modal_filter_v1d
type(modalfilter) modal_filterh1d
type(modalfilter) modal_filterv1d
type(atmdynspongelayer) sponge_layer
logical spongelayer_flag
 Flag wheter sponge layer is applied.
type(meshfield3d), dimension(:), allocatable aux_dynvars3d
type(modelvarmanager) auxdynvar3d_manager
integer auxdynvar3d_commid
type(atmdynbnd) boundary_cond
logical hevi_flag
 Flag wheter HEVI is applied.
logical hevi_use_lapack_flag
 Flag wheter lapack is used in HEVI solver.
logical hide_mpi_comm_flag
 Flag wheter hiding MPI communication is performed.
Public Attributes inherited from scale_atm_dyn_dgm_driver_base::atmdyndgmdriver_base
integer progvar_num
 Number of prognostic variables.
type(timeint_rk), dimension(:), allocatable tint
 Objects with temporal scheme.

Static Public Attributes

procedure(atm_dyn_nonhydro3d_cal_vi), pointer, nopass cal_vi => null()
procedure(atm_dyn_nonhydro3d_cal_tend_ex), pointer, nopass cal_tend_ex => null()
procedure(atm_dyn_nonhydro3d_final), pointer, nopass dynsolver_final => null()

Detailed Description

Derived type to provide a driver of dynamical core with the atmospheric nonhydrostatic equations.

Definition at line 275 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

Member Function/Subroutine Documentation

◆ init()

procedure scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::init ( class(atmdyndgmdriver_nonhydro3d), intent(inout) this,
character(len=*), intent(in) eqs_type_name,
character(len=*), intent(in) tint_type_name,
real(dp), intent(in) dtsec,
logical, intent(in) sponge_layer_flag,
logical, intent(in) modal_filter_flag,
logical, intent(in) hide_mpi_comm_flag,
class(modelmesh3d), intent(inout), target model_mesh3d )

Initialize a object to provide a driver of atmospheric dynamical core.

Parameters
eqs_type_nameName of governing equation
tint_type_nameName of temporal scheme
sponge_layer_flagFlag whether sponge layer is applied
modal_filter_flagFlag whether modal filtering is applied
hide_mpi_comm_flagFlag whether hiding MPI communication is performed
model_mesh3DObject managing 3D model mesh

Definition at line 310 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

◆ final()

procedure scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::final ( class(atmdyndgmdriver_nonhydro3d), intent(inout) this)

Finalize a object to provide a driver of atmospheric dynamical core.

Definition at line 311 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

◆ update()

procedure scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::update ( class(atmdyndgmdriver_nonhydro3d), intent(inout) this,
class(modelvarmanager), intent(inout) prog_vars,
class(modelvarmanager), intent(inout) aux_vars,
class(modelvarmanager), intent(inout) phytends,
type(meshfield3d), intent(inout) dens_trc,
type(meshfield3d), intent(inout) dens0_trc,
type(meshfield3d), intent(inout) mflx_x_tavg,
type(meshfield3d), intent(inout) mflx_y_tavg,
type(meshfield3d), intent(inout) mflx_z_tavg,
type(meshfield3d), intent(inout) alph_dens_m_tavg,
type(meshfield3d), intent(inout) alph_dens_p_tavg,
class(meshfield2d), intent(in) coriolis,
class(elementoperationbase3d), intent(in) element_operation,
type(sparsemat), intent(in) dx,
type(sparsemat), intent(in) dy,
type(sparsemat), intent(in) dz,
type(sparsemat), intent(in) sx,
type(sparsemat), intent(in) sy,
type(sparsemat), intent(in) sz,
type(sparsemat), intent(in) lift,
class(meshbase3d), intent(in), target mesh3d )

Update the prognostic variables for the non-hydrostatic 3D atmospheric dynamical core.

Definition at line 312 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

◆ is_thermvar_rhot()

procedure scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::is_thermvar_rhot ( class(atmdyndgmdriver_nonhydro3d), intent(inout) this)

Get a flag whether density-weighted potential temperature is used for a prognostic thermodynamic variable.

Definition at line 313 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

◆ calc_pressure()

procedure scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::calc_pressure ( class(atmdyndgmdriver_nonhydro3d), intent(in) this,
class(meshfield3d), intent(inout) pres,
class(modelvarmanager), intent(inout) prog_vars,
class(modelvarmanager), intent(inout) aux_vars )

Calculate the pressure using the prognostic variables with the non-hydrostatic 3D atmospheric dynamical core.

Definition at line 314 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

◆ update_therm_hyd()

procedure scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::update_therm_hyd ( class(atmdyndgmdriver_nonhydro3d), intent(in) this,
class(modelvarmanager), intent(inout) aux_vars )

Update the hydrostatic part of thermodynamic prognostic variable (THERM_hyd)

Definition at line 315 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

◆ update_phyd_hgrad()

procedure scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::update_phyd_hgrad ( class(atmdyndgmdriver_nonhydro3d), intent(inout) this,
class(meshfield3d), intent(in) pres_hyd,
class(meshfield3d), intent(in) pres_hyd_ref,
class(meshbase3d), intent(in), target mesh3d,
class(elementoperationbase3d), intent(in) element_operation )

Calculate the horizontal gradient of the hydrostatic pressure.

Definition at line 316 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

Member Data Documentation

◆ eqs_typeid

integer scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::eqs_typeid

Type ID of equation system.

Definition at line 276 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

276 integer :: EQS_TYPEID !< Type ID of equation system

◆ entot_conserve_scheme_flag

logical scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::entot_conserve_scheme_flag

Flag whether total energy is a prognostic variable.

Definition at line 277 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

277 logical :: ENTOT_CONSERVE_SCHEME_FLAG !< Flag whether total energy is a prognostic variable

◆ modalfilter_flag

logical scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::modalfilter_flag

Flag wheter modal filtering is applied.

Definition at line 280 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

280 logical :: MODALFILTER_FLAG !< Flag wheter modal filtering is applied

◆ modal_filter_3d

type(modalfilter) scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::modal_filter_3d

Definition at line 281 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

281 type(ModalFilter) :: modal_filter_3d

◆ modal_filter_v1d

type(modalfilter) scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::modal_filter_v1d

Definition at line 282 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

282 type(ModalFilter) :: modal_filter_v1D

◆ modal_filterh1d

type(modalfilter) scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::modal_filterh1d

Definition at line 284 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

284 type(ModalFilter) :: modal_filterH1D

◆ modal_filterv1d

type(modalfilter) scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::modal_filterv1d

Definition at line 285 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

285 type(ModalFilter) :: modal_filterV1D

◆ sponge_layer

type(atmdynspongelayer) scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::sponge_layer

Definition at line 288 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

288 type(AtmDynSpongeLayer) :: sponge_layer

◆ spongelayer_flag

logical scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::spongelayer_flag

Flag wheter sponge layer is applied.

Definition at line 289 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

289 logical :: SPONGELAYER_FLAG !< Flag wheter sponge layer is applied

◆ aux_dynvars3d

type(meshfield3d), dimension(:), allocatable scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::aux_dynvars3d

Definition at line 292 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

292 type(MeshField3D), allocatable :: AUX_DYNVARS3D(:)

◆ auxdynvar3d_manager

type(modelvarmanager) scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::auxdynvar3d_manager

Definition at line 293 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

293 type(ModelVarManager) :: AUXDYNVAR3D_manager

◆ auxdynvar3d_commid

integer scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::auxdynvar3d_commid

Definition at line 294 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

294 integer :: AUXDYNVAR3D_commid

◆ boundary_cond

type(atmdynbnd) scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::boundary_cond

Definition at line 297 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

297 type(AtmDynBnd) :: boundary_cond

◆ hevi_flag

logical scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::hevi_flag

Flag wheter HEVI is applied.

Definition at line 300 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

300 logical :: hevi_flag !< Flag wheter HEVI is applied

◆ hevi_use_lapack_flag

logical scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::hevi_use_lapack_flag

Flag wheter lapack is used in HEVI solver.

Definition at line 301 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

301 logical :: hevi_use_lapack_flag !< Flag wheter lapack is used in HEVI solver

◆ hide_mpi_comm_flag

logical scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::hide_mpi_comm_flag

Flag wheter hiding MPI communication is performed.

Definition at line 304 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

304 logical :: hide_mpi_comm_flag !< Flag wheter hiding MPI communication is performed

◆ cal_vi

procedure (atm_dyn_nonhydro3d_cal_vi), pointer, nopass scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::cal_vi => null()
static

Definition at line 306 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

306 procedure(atm_dyn_nonhydro3d_cal_vi), pointer, nopass :: cal_vi => null()

◆ cal_tend_ex

procedure (atm_dyn_nonhydro3d_cal_tend_ex), pointer, nopass scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::cal_tend_ex => null()
static

Definition at line 307 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

307 procedure(atm_dyn_nonhydro3d_cal_tend_ex), pointer, nopass :: cal_tend_ex => null()

◆ dynsolver_final

procedure (atm_dyn_nonhydro3d_final), pointer, nopass scale_atm_dyn_dgm_driver_nonhydro3d::atmdyndgmdriver_nonhydro3d::dynsolver_final => null()
static

Definition at line 308 of file scale_atm_dyn_dgm_driver_nonhydro3d.F90.

308 procedure(atm_dyn_nonhydro3d_final), pointer, nopass :: dynsolver_final => null()

The documentation for this type was generated from the following file: