FE-Project
Loading...
Searching...
No Matches
scale_atm_dyn_dgm_nonhydro3d_common Module Reference

module FElib / Fluid dyn solver / Atmosphere / Nonhydrostatic model / Common More...

Functions/Subroutines

subroutine, public atm_dyn_dgm_nonhydro3d_common_init (mesh)
 Initialize a common module for atmospheric nonhydrostatic dynamical core.
subroutine, public atm_dyn_dgm_nonhydro3d_common_final ()
 Finalize a common module for atmospheric nonhydrostatic dynamical core.
subroutine, public atm_dyn_dgm_nonhydro3d_common_get_varinfo (prgvar_info, auxvar_info, phytend_info)
 Get variable information for atmospheric nonhydrostatic dynamical core.
subroutine, public atm_dyn_dgm_nonhydro3d_common_setup_variables (prgvars, qtrcvars, auxvars, phytends, prgvar_manager, qtrcvar_manager, auxvar_manager, phytend_manager, reg_file_hist, do_setup_phytend, phytend_num_tot, mesh3d, prgvar_varinfo)
 Setup variable managers for atmospheric nonhydrostatic dynamical core.
subroutine, public atm_dyn_dgm_nonhydro3d_common_calc_pressure (pres, dpres, ddens, momx, momy, momz, therm, pres_hyd, dens_hyd, therm_hyd, rtot, cvtot, cptot, mesh3d, entot_conserve_scheme_flag)
subroutine, public atm_dyn_dgm_nonhydro3d_common_calc_therm_phyd (therm_hyd, pres_hyd, dens_hyd, mesh3d, entot_conserve_scheme_flag)
subroutine, public atm_dyn_dgm_nonhydro3d_common_drhot2pres (pres, dpres, drhot, pres_hyd, therm_hyd, rtot, cvtot, cptot, lcmesh, elem3d)
 Calculate pressure from the deviation of density-weighted potential temperature (DRHOT)
subroutine, public atm_dyn_dgm_nonhydro3d_common_drhot2entot (entot, ddens, momx, momy, momz, drhot, dens_hyd, pres_hyd, therm_hyd, rtot, cvtot, cptot, lcmesh, elem3d)
subroutine, public atm_dyn_dgm_nonhydro3d_common_entot2pres (pres, dpres, ddens, momx, momy, momz, entot, pres_hyd, dens_hyd, rtot, cvtot, lcmesh, elem3d)
subroutine, public atm_dyn_dgm_nonhydro3d_common_calc_rhot_hyd (rhot_hyd, pres_hyd, lcmesh, elem3d)
subroutine, public atm_dyn_dgm_nonhydro3d_common_calc_phyd_hgrad_lc (dphyddx, dphyddy, pres_hyd, pres_hyd_ref, element3d_operation, lmesh, elem)
 Calculate horizontal graidient of hydrostatic pressure In this calculation, we assume that PRES_hyd_ref is continuous at element boundaries.

Variables

integer, parameter, public prgvar_ddens_id = 1
integer, parameter, public prgvar_therm_id = 2
integer, parameter, public prgvar_drhot_id = 2
integer, parameter, public prgvar_etot_id = 2
integer, parameter, public prgvar_momz_id = 3
integer, parameter, public prgvar_momx_id = 4
integer, parameter, public prgvar_momy_id = 5
integer, parameter, public prgvar_scalar_num = 3
integer, parameter, public prgvar_hvec_num = 1
integer, parameter, public prgvar_num = 5
integer, parameter, public phytend_dens_id = 1
integer, parameter, public phytend_momx_id = 2
integer, parameter, public phytend_momy_id = 3
integer, parameter, public phytend_momz_id = 4
integer, parameter, public phytend_rhot_id = 5
integer, parameter, public phytend_rhoh_id = 6
integer, parameter, public phytend_num = 6
integer, parameter, public auxvar_preshydro_id = 1
integer, parameter, public auxvar_denshydro_id = 2
integer, parameter, public auxvar_thermhydro_id = 3
integer, parameter, public auxvar_pres_id = 4
integer, parameter, public auxvar_pt_id = 5
integer, parameter, public auxvar_rtot_id = 6
integer, parameter, public auxvar_cvtot_id = 7
integer, parameter, public auxvar_cptot_id = 8
integer, parameter, public auxvar_qdry_id = 9
integer, parameter, public auxvar_preshydro_ref_id = 10
integer, parameter, public auxvar_num = 10
real(rp), dimension(:,:), allocatable, public intrpmat_vpordm1

Detailed Description

module FElib / Fluid dyn solver / Atmosphere / Nonhydrostatic model / Common

Description
A common model for atmospheric nonhydrostatic dynamical core
Author
Yuta Kawai, Team SCALE
NAMELIST
  • No namelist group
History Output
namedescriptionunitvariable
PRES_hydhydrostatic part of pressurePaPRES_hyd
DENS_hydhydrostatic part of densitykg/m3DENS_hyd
THERM_hydhydrostatic part of THERMkg/m3THERM_hyd
PRESpressurePaPRES
PTpotential temperatureKPT
RTOTTotal gas constantJ/kg/KRTOT
CVTOTTotal heat capacityJ/kg/KCVTOT
CPTOTTotal heat capacityJ/kg/KCPTOT
QDRYdry airkg/kgQDRY
PRES_hyd_REFhydrostatic reference pressurePaPRES_hyd_REF
DENS_tpDENS_tpkg/m3/sDENS_tp
MOMX_tpMOMX_tpkg/m2/sMOMX_tp
MOMY_tpMOMY_tpkg/m2/sMOMY_tp
MOMZ_tpMOMZ_tpkg/m2/sMOMZ_tp
RHOT_tpRHOT_tpkg/m3.K/sRHOT_tp
RHOH_pRHOH_pkg/m3.J/sRHOH_p
DDENSdeviation of densitykg/m3DDENS
THERMTHERM-THERM
MOMZmomentum zkg/m2/sMOMZ
MOMXmomentum xkg/m2/sMOMX
MOMYmomentum ykg/m2/sMOMY
{TRACER_NAME}{TRACER_NAME};
{TRACER_NAME} depends on the physics schemes, e.g., QV, QC, QR.
TRACER_UNITTRACER_NAME
{TRACER_NAME}_tptendency of physical process for {TRACER_NAME};
{TRACER_NAME} depends on the physics schemes, e.g., QV, QC, QR.
TRACER_UNITTRACER_NAME

Function/Subroutine Documentation

◆ atm_dyn_dgm_nonhydro3d_common_init()

subroutine, public scale_atm_dyn_dgm_nonhydro3d_common::atm_dyn_dgm_nonhydro3d_common_init ( class(meshbase3d), intent(in) mesh)

Initialize a common module for atmospheric nonhydrostatic dynamical core.

Definition at line 112 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

113 implicit none
114 class(MeshBase3D), intent(in) :: mesh
115
116 type(ElementBase3D), pointer :: elem
117 !--------------------------------------------
118
119 elem => mesh%refElem3D
120 allocate( intrpmat_vpordm1(elem%Np,elem%Np) )
121 call mesh%refElem3D%Generate_ModalTruncationMat( elem%PolyOrder_h, elem%PolyOrder_v-1, & ! (in)
122 intrpmat_vpordm1 ) ! (out)
123 return

References intrpmat_vpordm1.

Referenced by scale_atm_dyn_dgm_globalnonhydro3d_etot_heve::atm_dyn_dgm_globalnonhydro3d_etot_heve_init(), scale_atm_dyn_dgm_globalnonhydro3d_etot_hevi::atm_dyn_dgm_globalnonhydro3d_etot_hevi_init(), scale_atm_dyn_dgm_globalnonhydro3d_rhot_heve_gpu::atm_dyn_dgm_globalnonhydro3d_rhot_heve_gpu_init(), scale_atm_dyn_dgm_globalnonhydro3d_rhot_heve::atm_dyn_dgm_globalnonhydro3d_rhot_heve_init(), scale_atm_dyn_dgm_globalnonhydro3d_rhot_hevi::atm_dyn_dgm_globalnonhydro3d_rhot_hevi_init(), scale_atm_dyn_dgm_nonhydro3d_etot_heve::atm_dyn_dgm_nonhydro3d_etot_heve_init(), scale_atm_dyn_dgm_nonhydro3d_etot_hevi::atm_dyn_dgm_nonhydro3d_etot_hevi_init(), scale_atm_dyn_dgm_nonhydro3d_rhot_heve_gpu::atm_dyn_dgm_nonhydro3d_rhot_heve_gpu_init(), scale_atm_dyn_dgm_nonhydro3d_rhot_heve::atm_dyn_dgm_nonhydro3d_rhot_heve_init(), scale_atm_dyn_dgm_nonhydro3d_rhot_heve_splitform::atm_dyn_dgm_nonhydro3d_rhot_heve_splitform_init(), scale_atm_dyn_dgm_nonhydro3d_rhot_hevi::atm_dyn_dgm_nonhydro3d_rhot_hevi_init(), and scale_atm_dyn_dgm_nonhydro3d_rhot_hevi_splitform::atm_dyn_dgm_nonhydro3d_rhot_hevi_splitform_init().

◆ atm_dyn_dgm_nonhydro3d_common_final()

subroutine, public scale_atm_dyn_dgm_nonhydro3d_common::atm_dyn_dgm_nonhydro3d_common_final

◆ atm_dyn_dgm_nonhydro3d_common_get_varinfo()

subroutine, public scale_atm_dyn_dgm_nonhydro3d_common::atm_dyn_dgm_nonhydro3d_common_get_varinfo ( type(variableinfo), dimension(prgvar_num), intent(out) prgvar_info,
type(variableinfo), dimension(auxvar_num), intent(out) auxvar_info,
type(variableinfo), dimension(phytend_num), intent(out), optional phytend_info )

Get variable information for atmospheric nonhydrostatic dynamical core.

Definition at line 137 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

139
140 implicit none
141 type(VariableInfo), intent(out) :: prgvar_info(PRGVAR_NUM)
142 type(VariableInfo), intent(out) :: auxvar_info(AUXVAR_NUM)
143 type(VariableInfo), intent(out), optional :: phytend_info(PHYTEND_NUM)
144
145 type(VariableInfo) :: PRGVAR_VARINFO(PRGVAR_NUM)
146 DATA prgvar_varinfo / &
147 variableinfo( prgvar_ddens_id, 'DDENS', 'deviation of density', &
148 'kg/m3', 3, 'XYZ', 'air_density' ), &
149 variableinfo( prgvar_therm_id, 'THERM', 'THERM', &
150 '-', 3, 'XYZ', '' ), &
151 variableinfo( prgvar_momz_id , 'MOMZ', 'momentum z', &
152 'kg/m2/s', 3, 'XYZ', 'northward_mass_flux_of_air' ), &
153 variableinfo( prgvar_momx_id , 'MOMX', 'momentum x', &
154 'kg/m2/s', 3, 'XYZ', 'upward_mass_flux_of_air' ), &
155 variableinfo( prgvar_momy_id , 'MOMY', 'momentum y', &
156 'kg/m2/s', 3, 'XYZ', 'eastward_mass_flux_of_air' ) /
157
158 type(VariableInfo) :: AUXVAR_VARINFO(AUXVAR_NUM)
159 DATA auxvar_varinfo / &
160 variableinfo( auxvar_preshydro_id, 'PRES_hyd', 'hydrostatic part of pressure', &
161 'Pa', 3, 'XYZ', '' ), &
162 variableinfo( auxvar_denshydro_id, 'DENS_hyd', 'hydrostatic part of density', &
163 'kg/m3', 3, 'XYZ', '' ), &
164 variableinfo( auxvar_thermhydro_id, 'THERM_hyd', 'hydrostatic part of THERM', &
165 'kg/m3', 3, 'XYZ', '' ), &
166 variableinfo( auxvar_pres_id , 'PRES', 'pressure', &
167 'Pa', 3, 'XYZ', 'air_pressure' ), &
168 variableinfo( auxvar_pt_id , 'PT', 'potential temperature', &
169 'K', 3, 'XYZ', 'potential_temperature' ), &
170 variableinfo( auxvar_rtot_id , 'RTOT', 'Total gas constant', &
171 'J/kg/K', 3, 'XYZ', '' ), &
172 variableinfo( auxvar_cvtot_id , 'CVTOT', 'Total heat capacity', &
173 'J/kg/K', 3, 'XYZ', '' ), &
174 variableinfo( auxvar_cptot_id , 'CPTOT', 'Total heat capacity', &
175 'J/kg/K', 3, 'XYZ', '' ), &
176 variableinfo( auxvar_qdry_id , 'QDRY', 'dry air', &
177 'kg/kg', 3, 'XYZ', '' ), &
178 variableinfo( auxvar_preshydro_ref_id, 'PRES_hyd_REF', 'hydrostatic reference pressure', &
179 'Pa', 3, 'XYZ', '' )/
180
181 type(VariableInfo) :: PHYTEND_VARINFO(PHYTEND_NUM)
182 DATA phytend_varinfo / &
183 variableinfo( phytend_dens_id, 'DENS_tp', 'DENS_tp', &
184 'kg/m3/s', 3, 'XYZ', 'tendency of physical process for DENS' ), &
185 variableinfo( phytend_momx_id, 'MOMX_tp', 'MOMX_tp', &
186 'kg/m2/s', 3, 'XYZ', 'tendency of physical process for MOMX' ), &
187 variableinfo( phytend_momy_id, 'MOMY_tp', 'MOMY_tp', &
188 'kg/m2/s', 3, 'XYZ', 'tendency of physical process for MOMY' ), &
189 variableinfo( phytend_momz_id, 'MOMZ_tp', 'MOMZ_tp', &
190 'kg/m2/s', 3, 'XYZ', 'tendency of physical process for MOMZ' ), &
191 variableinfo( phytend_rhot_id, 'RHOT_tp', 'RHOT_tp', &
192 'kg/m3.K/s', 3, 'XYZ', 'tendency of physical process for RHOT' ), &
193 variableinfo( phytend_rhoh_id, 'RHOH_p', 'RHOH_p', &
194 'kg/m3.J/s', 3, 'XYZ', 'heating of physical process for THERM' ) /
195
196 !----------------------------------------------------------
197
198 prgvar_info(:) = prgvar_varinfo
199 auxvar_info(:) = auxvar_varinfo
200 if ( present(phytend_info) ) phytend_info(:) = phytend_varinfo
201
202 return

References auxvar_cptot_id, auxvar_cvtot_id, auxvar_denshydro_id, auxvar_pres_id, auxvar_preshydro_id, auxvar_preshydro_ref_id, auxvar_pt_id, auxvar_qdry_id, auxvar_rtot_id, auxvar_thermhydro_id, phytend_dens_id, phytend_momx_id, phytend_momy_id, phytend_momz_id, phytend_rhoh_id, phytend_rhot_id, prgvar_ddens_id, prgvar_momx_id, prgvar_momy_id, prgvar_momz_id, and prgvar_therm_id.

Referenced by atm_dyn_dgm_nonhydro3d_common_setup_variables().

◆ atm_dyn_dgm_nonhydro3d_common_setup_variables()

subroutine, public scale_atm_dyn_dgm_nonhydro3d_common::atm_dyn_dgm_nonhydro3d_common_setup_variables ( type(meshfield3d), dimension(prgvar_num), intent(inout) prgvars,
type(meshfield3d), dimension(0:qa), intent(inout) qtrcvars,
type(meshfield3d), dimension(auxvar_num), intent(inout) auxvars,
type(meshfield3d), dimension(phytend_num_tot), intent(inout) phytends,
type(modelvarmanager), intent(inout) prgvar_manager,
type(modelvarmanager), intent(inout) qtrcvar_manager,
type(modelvarmanager), intent(inout) auxvar_manager,
type(modelvarmanager), intent(inout) phytend_manager,
logical, intent(in) reg_file_hist,
logical, intent(in) do_setup_phytend,
integer, intent(in) phytend_num_tot,
class(meshbase3d), intent(in) mesh3d,
type(variableinfo), dimension(prgvar_num), intent(out) prgvar_varinfo )

Setup variable managers for atmospheric nonhydrostatic dynamical core.

Parameters
[in,out]prgvarsArray of objects to manage prognostic variables
[in,out]qtrcvarsArray of objects to manage tracer variables
[in,out]auxvarsArray of objects to manage auxiliary variables
[in,out]phytendsArray of objects to manage physics tendency variables
[in,out]prgvar_managerObject to manage prognostic variables
[in,out]qtrcvar_managerObject to manage tracer variables
[in,out]auxvar_managerObject to manage auxiliary variables
[in,out]phytend_managerObject to manage physics tendency variables
[in]reg_file_histFlag whether variables are registered for history file output or not
[in]do_setup_phytendFlag whether to setup physics tendency variables or not
[in]mesh3dObject to manage 3D mesh
[out]prgvar_varinfoVariable information with prognostic variables

Definition at line 206 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

211
212 use scale_atmos_hydrometeor, only: &
213 atmos_hydrometeor_dry
214 use scale_tracer, only: &
215 qa, tracer_name, tracer_desc, tracer_unit
218 implicit none
219 integer, intent(in) :: PHYTEND_NUM_TOT
220 type(MeshField3D), intent(inout) :: prgvars(PRGVAR_NUM) !< Array of objects to manage prognostic variables
221 type(MeshField3D), intent(inout) :: qtrcvars(0:QA) !< Array of objects to manage tracer variables
222 type(MeshField3D), intent(inout) :: auxvars(AUXVAR_NUM) !< Array of objects to manage auxiliary variables
223 type(MeshField3D), intent(inout) :: phytends(PHYTEND_NUM_TOT) !< Array of objects to manage physics tendency variables
224 type(ModelVarManager), intent(inout) :: prgvar_manager !< Object to manage prognostic variables
225 type(ModelVarManager), intent(inout) :: qtrcvar_manager !< Object to manage tracer variables
226 type(ModelVarManager), intent(inout) :: auxvar_manager !< Object to manage auxiliary variables
227 type(ModelVarManager), intent(inout) :: phytend_manager !< Object to manage physics tendency variables
228 logical, intent(in) :: reg_file_hist !< Flag whether variables are registered for history file output or not
229 logical, intent(in) :: do_setup_phytend !< Flag whether to setup physics tendency variables or not
230 class(MeshBase3D), intent(in) :: mesh3D !< Object to manage 3D mesh
231 type(VariableInfo), intent(out) :: PRGVAR_VARINFO(PRGVAR_NUM) !< Variable information with prognostic variables
232
233 type(VariableInfo) :: AUXVAR_VARINFO(AUXVAR_NUM)
234 type(VariableInfo) :: PHYTEND_VARINFO(PHYTEND_NUM)
235
236 integer :: iv
237 integer :: iq
238
239 type(VariableInfo) :: qtrc_dry_vinfo_tmp
240 type(VariableInfo) :: qtrc_dry_tp_vinfo_tmp
241 type(VariableInfo) :: qtrc_vinfo_tmp
242 type(VariableInfo) :: qtrc_tp_vinfo_tmp
243 !----------------------------------------------------------
244
245 call atm_dyn_dgm_nonhydro3d_common_get_varinfo( prgvar_varinfo, auxvar_varinfo, phytend_varinfo ) ! (out)
246
247 !- Initialize prognostic variables
248
249 do iv = 1, prgvar_num
250 call prgvar_manager%Regist( &
251 prgvar_varinfo(iv), mesh3d, & ! (in)
252 prgvars(iv), & ! (inout)
253 reg_file_hist, monitor_flag=.true., fill_zero=.true. ) ! (out)
254 !$acc update device( prgvars(iv) )
255 end do
256
257 !- Initialize tracer variables
258
259 if ( qa == 0 ) then
260 ! Dummy
261 qtrc_dry_vinfo_tmp%ndims = 3
262 qtrc_dry_vinfo_tmp%dim_type = 'XYZ'
263 qtrc_dry_vinfo_tmp%STDNAME = ''
264
265 qtrc_dry_vinfo_tmp%keyID = 0
266 qtrc_dry_vinfo_tmp%NAME = "QV"
267 qtrc_dry_vinfo_tmp%DESC = "Ratio of Water Vapor mass to total mass (Specific humidity)"
268 qtrc_dry_vinfo_tmp%UNIT = "kg/kg"
269 call qtrcvar_manager%Regist( &
270 qtrc_dry_vinfo_tmp, mesh3d, & ! (in)
271 qtrcvars(0), & ! (inout)
272 .false., monitor_flag=.false., fill_zero=.true. ) ! (in)
273 else
274 qtrc_vinfo_tmp%ndims = 3
275 qtrc_vinfo_tmp%dim_type = 'XYZ'
276 qtrc_vinfo_tmp%STDNAME = ''
277
278 do iq = 1, qa
279 qtrc_vinfo_tmp%keyID = iq
280 qtrc_vinfo_tmp%NAME = tracer_name(iq)
281 qtrc_vinfo_tmp%DESC = tracer_desc(iq)
282 qtrc_vinfo_tmp%UNIT = tracer_unit(iq)
283 call qtrcvar_manager%Regist( &
284 qtrc_vinfo_tmp, mesh3d, & ! (in)
285 qtrcvars(iq), & ! (inout)
286 reg_file_hist, monitor_flag=.true., fill_zero=.true. ) ! (in)
287 end do
288 end if
289
290 !- Initialize auxiliary variables
291
292 do iv = 1, auxvar_num
293 call auxvar_manager%Regist( &
294 auxvar_varinfo(iv), mesh3d, & ! (in)
295 auxvars(iv), & ! (inout)
296 reg_file_hist, fill_zero=.true. ) ! (in)
297 end do
298
299 !- Initialize the tendency of physical processes
300
301 if ( do_setup_phytend ) then
302
303 do iv = 1, phytend_num
304 call phytend_manager%Regist( &
305 phytend_varinfo(iv), mesh3d, & ! (in)
306 phytends(iv), & ! (inout)
307 reg_file_hist, fill_zero=.true. ) ! (in)
308 end do
309
310 if ( qa == 0 ) then
311 ! Dummy
312 qtrc_dry_tp_vinfo_tmp%ndims = 3
313 qtrc_dry_tp_vinfo_tmp%dim_type = 'XYZ'
314 qtrc_dry_tp_vinfo_tmp%STDNAME = ''
315
316 iv = phytend_num + 1
317 qtrc_dry_tp_vinfo_tmp%keyID = iv
318 qtrc_dry_tp_vinfo_tmp%NAME = "QV_tp"
319 qtrc_dry_tp_vinfo_tmp%DESC = "tendency of physical process for QV"
320 qtrc_dry_tp_vinfo_tmp%UNIT = "kg/m3/s"
321 call phytend_manager%Regist( &
322 qtrc_dry_tp_vinfo_tmp, mesh3d, & ! (in)
323 phytends(iv), & ! (inout)
324 .false., fill_zero=.true. ) ! (in)
325 else
326 qtrc_tp_vinfo_tmp%ndims = 3
327 qtrc_tp_vinfo_tmp%dim_type = 'XYZ'
328 qtrc_tp_vinfo_tmp%STDNAME = ''
329
330 do iq = 1, qa
331 iv = phytend_num + iq
332 qtrc_tp_vinfo_tmp%keyID = iv
333 qtrc_tp_vinfo_tmp%NAME = trim(tracer_name(iq))//'_tp'
334 qtrc_tp_vinfo_tmp%DESC = 'tendency of physical process for '//trim(tracer_desc(iq))
335 qtrc_tp_vinfo_tmp%UNIT = trim(tracer_unit(iq))//'/s'
336
337 call phytend_manager%Regist( &
338 qtrc_tp_vinfo_tmp, mesh3d, & ! (in)
339 phytends(iv), & ! (inout)
340 reg_file_hist, fill_zero=.true. ) ! (in)
341 end do
342 end if
343
344 end if
345
346 return
module FElib / Mesh / Base 3D
module FElib / Data / base
Derived type to manage a computational mesh (base type for 3D domain)
Derived type representing a field with 3D mesh.

References atm_dyn_dgm_nonhydro3d_common_get_varinfo(), auxvar_num, phytend_num, and prgvar_num.

◆ atm_dyn_dgm_nonhydro3d_common_calc_pressure()

subroutine, public scale_atm_dyn_dgm_nonhydro3d_common::atm_dyn_dgm_nonhydro3d_common_calc_pressure ( class(meshfield3d), intent(inout) pres,
class(meshfield3d), intent(inout) dpres,
class(meshfield3d), intent(in) ddens,
class(meshfield3d), intent(in) momx,
class(meshfield3d), intent(in) momy,
class(meshfield3d), intent(in) momz,
class(meshfield3d), intent(in) therm,
class(meshfield3d), intent(in) pres_hyd,
class(meshfield3d), intent(in) dens_hyd,
class(meshfield3d), intent(in) therm_hyd,
class(meshfield3d), intent(in) rtot,
class(meshfield3d), intent(in) cvtot,
class(meshfield3d), intent(in) cptot,
class(meshbase3d), intent(in), target mesh3d,
logical, intent(in) entot_conserve_scheme_flag )

Definition at line 350 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

355
356 implicit none
357 class(MeshField3D), intent(inout) :: PRES
358 class(MeshField3D), intent(inout) :: DPRES
359 class(MeshField3D), intent(in) :: DDENS
360 class(MeshField3D), intent(in) :: MOMX
361 class(MeshField3D), intent(in) :: MOMY
362 class(MeshField3D), intent(in) :: MOMZ
363 class(MeshField3D), intent(in) :: THERM
364 class(MeshField3D), intent(in) :: PRES_hyd
365 class(MeshField3D), intent(in) :: DENS_hyd
366 class(MeshField3D), intent(in) :: THERM_hyd
367 class(MeshField3D), intent(in) :: Rtot
368 class(MeshField3D), intent(in) :: CVtot
369 class(MeshField3D), intent(in) :: CPtot
370 class(MeshBase3D), intent(in), target :: mesh3D
371 logical, intent(in) :: ENTOT_CONSERVE_SCHEME_FLAG
372
373 integer :: n
374 class(LocalMesh3D), pointer :: lcmesh3D
375 !---------------------------
376
377 do n=1, mesh3d%LOCAL_MESH_NUM
378 lcmesh3d => mesh3d%lcmesh_list(n)
379
380 if ( entot_conserve_scheme_flag ) then
381 call atm_dyn_dgm_nonhydro3d_common_entot2pres( pres%local(n)%val, dpres%local(n)%val, &
382 ddens%local(n)%val, momx%local(n)%val, momy%local(n)%val, momz%local(n)%val, therm%local(n)%val, &
383 pres_hyd%local(n)%val, dens_hyd%local(n)%val, rtot%local(n)%val, cvtot%local(n)%val, &
384 lcmesh3d, lcmesh3d%refElem3D )
385 else
386 call atm_dyn_dgm_nonhydro3d_common_drhot2pres( pres%local(n)%val, dpres%local(n)%val, &
387 therm%local(n)%val, pres_hyd%local(n)%val, therm_hyd%local(n)%val, rtot%local(n)%val, cvtot%local(n)%val, cptot%local(n)%val, &
388 lcmesh3d, lcmesh3d%refElem3D )
389 end if
390 end do
391
392 return

References atm_dyn_dgm_nonhydro3d_common_drhot2pres(), and atm_dyn_dgm_nonhydro3d_common_entot2pres().

◆ atm_dyn_dgm_nonhydro3d_common_calc_therm_phyd()

subroutine, public scale_atm_dyn_dgm_nonhydro3d_common::atm_dyn_dgm_nonhydro3d_common_calc_therm_phyd ( class(meshfield3d), intent(inout) therm_hyd,
class(meshfield3d), intent(in) pres_hyd,
class(meshfield3d), intent(in) dens_hyd,
class(meshbase3d), intent(in), target mesh3d,
logical, intent(in) entot_conserve_scheme_flag )

Definition at line 396 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

400
401 implicit none
402 class(MeshField3D), intent(inout) :: THERM_hyd
403 class(MeshField3D), intent(in) :: PRES_hyd
404 class(MeshField3D), intent(in) :: DENS_hyd
405 class(MeshBase3D), intent(in), target :: mesh3D
406 logical, intent(in) :: ENTOT_CONSERVE_SCHEME_FLAG
407
408 integer :: n
409 class(LocalMesh3D), pointer :: lcmesh3D
410 !---------------------------
411
412 do n=1, mesh3d%LOCAL_MESH_NUM
413 lcmesh3d => mesh3d%lcmesh_list(n)
414
415 if ( entot_conserve_scheme_flag ) then
416 ! ToDO
417 else
418 call atm_dyn_dgm_nonhydro3d_common_calc_rhot_hyd( therm_hyd%local(n)%val, &
419 pres_hyd%local(n)%val, lcmesh3d, lcmesh3d%refElem3D )
420 end if
421 end do
422
423 return

References atm_dyn_dgm_nonhydro3d_common_calc_rhot_hyd().

◆ atm_dyn_dgm_nonhydro3d_common_drhot2pres()

subroutine, public scale_atm_dyn_dgm_nonhydro3d_common::atm_dyn_dgm_nonhydro3d_common_drhot2pres ( real(rp), dimension(elem3d%np,lcmesh%nea), intent(out) pres,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(out) dpres,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) drhot,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) pres_hyd,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) therm_hyd,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) rtot,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) cvtot,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) cptot,
class(localmesh3d), intent(in) lcmesh,
class(elementbase3d), intent(in) elem3d )

Calculate pressure from the deviation of density-weighted potential temperature (DRHOT)

Definition at line 428 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

431
432 use scale_const, only: &
433 rdry => const_rdry, &
434 cpdry => const_cpdry, &
435 cvdry => const_cvdry, &
436 pres00 => const_pre00
437
438 implicit none
439 class(LocalMesh3D), intent(in) :: lcmesh
440 class(ElementBase3D), intent(in) :: elem3D
441 real(RP), intent(out) :: PRES(elem3D%Np,lcmesh%NeA)
442 real(RP), intent(out) :: DPRES(elem3D%Np,lcmesh%NeA)
443 real(RP), intent(in) :: DRHOT(elem3D%Np,lcmesh%NeA)
444 real(RP), intent(in) :: PRES_hyd(elem3D%Np,lcmesh%NeA)
445 real(RP), intent(in) :: THERM_hyd(elem3D%Np,lcmesh%NeA)
446 real(RP), intent(in) :: Rtot(elem3D%Np,lcmesh%NeA)
447 real(RP), intent(in) :: CVtot(elem3D%Np,lcmesh%NeA)
448 real(RP), intent(in) :: CPtot(elem3D%Np,lcmesh%NeA)
449
450 integer :: ke, p
451 real(RP) :: RHOT(elem3D%Np)
452 real(RP) :: RHOT_
453 real(RP) :: rP0
454 !---------------------------------------------------------------
455
456 rp0 = 1.0_rp / pres00
457 !$omp parallel do private( RHOT )
458 !$acc parallel loop gang present( PRES, DPRES, DRHOT, PRES_hyd, THERM_hyd, Rtot, CVtot, CPtot, lcmesh,elem3D )
459 do ke=lcmesh%NeS, lcmesh%NeE
460! RHOT(:) = PRES00 / Rdry * ( PRES_hyd(:,ke) / PRES00 )**(CvDry/CpDry) + DRHOT(:,ke)
461
462#ifdef _OPENACC
463 !$acc loop vector
464 do p=1, elem3d%Np
465 rhot_ = pres00 / rdry * ( pres_hyd(p,ke) / pres00 )**(cvdry/cpdry) + drhot(p,ke)
466
467 pres(p,ke) = pres00 * ( rtot(p,ke) * rp0 * rhot_ )**( cptot(p,ke) / cvtot(p,ke) )
468 dpres(p,ke) = pres(p,ke) - pres_hyd(p,ke)
469 end do
470#else
471 rhot(:) = therm_hyd(:,ke) + drhot(:,ke)
472
473 pres(:,ke) = pres00 * ( rtot(:,ke) * rp0 * rhot(:) )**( cptot(:,ke) / cvtot(:,ke) )
474 dpres(:,ke) = pres(:,ke) - pres_hyd(:,ke)
475#endif
476 end do
477
478 return

Referenced by atm_dyn_dgm_nonhydro3d_common_calc_pressure(), and atm_dyn_dgm_nonhydro3d_common_drhot2entot().

◆ atm_dyn_dgm_nonhydro3d_common_drhot2entot()

subroutine, public scale_atm_dyn_dgm_nonhydro3d_common::atm_dyn_dgm_nonhydro3d_common_drhot2entot ( real(rp), dimension(elem3d%np,lcmesh%nea), intent(out) entot,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) ddens,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) momx,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) momy,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) momz,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) drhot,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) dens_hyd,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) pres_hyd,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) therm_hyd,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) rtot,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) cvtot,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) cptot,
class(localmesh3d), intent(in) lcmesh,
class(elementbase3d), intent(in) elem3d )

Definition at line 482 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

486
487 use scale_const, only: &
488 grav => const_grav
489
490 implicit none
491 class(LocalMesh3D), intent(in) :: lcmesh
492 class(ElementBase3D), intent(in) :: elem3D
493 real(RP), intent(out) :: EnTot(elem3D%Np,lcmesh%NeA)
494 real(RP), intent(in) :: DDENS(elem3D%Np,lcmesh%NeA)
495 real(RP), intent(in) :: MOMX(elem3D%Np,lcmesh%NeA)
496 real(RP), intent(in) :: MOMY(elem3D%Np,lcmesh%NeA)
497 real(RP), intent(in) :: MOMZ(elem3D%Np,lcmesh%NeA)
498 real(RP), intent(in) :: DRHOT(elem3D%Np,lcmesh%NeA)
499 real(RP), intent(in) :: DENS_hyd(elem3D%Np,lcmesh%NeA)
500 real(RP), intent(in) :: PRES_hyd(elem3D%Np,lcmesh%NeA)
501 real(RP), intent(in) :: THERM_hyd(elem3D%Np,lcmesh%NeA)
502 real(RP), intent(in) :: Rtot(elem3D%Np,lcmesh%NeA)
503 real(RP), intent(in) :: CVtot(elem3D%Np,lcmesh%NeA)
504 real(RP), intent(in) :: CPtot(elem3D%Np,lcmesh%NeA)
505
506 integer :: ke, ke2D
507
508 real(RP) :: DENS(elem3D%Np)
509 real(RP) :: mom_u1(elem3D%Np), mom_u2(elem3D%Np)
510
511 real(RP) :: PRES(elem3D%Np,lcmesh%NeA)
512 real(RP) :: DPRES(elem3D%Np,lcmesh%NeA)
513 !---------------------------------------------------------------
514
515 call atm_dyn_dgm_nonhydro3d_common_drhot2pres( pres, dpres, &
516 drhot, pres_hyd, therm_hyd, rtot, cvtot, cptot, &
517 lcmesh, elem3d )
518
519 !$omp parallel do private( ke2D, DENS, mom_u1, mom_u2 )
520 do ke=lcmesh%NeS, lcmesh%NeE
521 ke2d = lcmesh%EMap3Dto2D(ke)
522
523 dens(:) = dens_hyd(:,ke) + ddens(:,ke)
524 mom_u1(:) = lcmesh%G_ij(lcmesh%refElem3D%IndexH2Dto3D,ke2d,1,1) * momx(:,ke) + lcmesh%G_ij(lcmesh%refElem3D%IndexH2Dto3D,ke2d,2,1) * momy(:,ke)
525 mom_u2(:) = lcmesh%G_ij(lcmesh%refElem3D%IndexH2Dto3D,ke2d,2,1) * momx(:,ke) + lcmesh%G_ij(lcmesh%refElem3D%IndexH2Dto3D,ke2d,2,2) * momy(:,ke)
526
527 entot(:,ke) = pres(:,ke) * cvtot(:,ke) / rtot(:,ke) &
528 + 0.5_rp * ( momx(:,ke) * mom_u1(:) + momy(:,ke) * mom_u2(:) + momz(:,ke)**2 ) / dens(:) &
529 + grav * dens(:) * lcmesh%zlev(:,ke)
530 end do
531
532 return

References atm_dyn_dgm_nonhydro3d_common_drhot2pres().

Referenced by mod_dg_prep::dg_prep().

◆ atm_dyn_dgm_nonhydro3d_common_entot2pres()

subroutine, public scale_atm_dyn_dgm_nonhydro3d_common::atm_dyn_dgm_nonhydro3d_common_entot2pres ( real(rp), dimension(elem3d%np,lcmesh%nea), intent(out) pres,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(out) dpres,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) ddens,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) momx,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) momy,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) momz,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) entot,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) pres_hyd,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) dens_hyd,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) rtot,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) cvtot,
class(localmesh3d), intent(in) lcmesh,
class(elementbase3d), intent(in) elem3d )

Definition at line 536 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

540
541 use scale_const, only: &
542 grav => const_grav
543
544 implicit none
545 class(LocalMesh3D), intent(in) :: lcmesh
546 class(ElementBase3D), intent(in) :: elem3D
547 real(RP), intent(out) :: PRES(elem3D%Np,lcmesh%NeA)
548 real(RP), intent(out) :: DPRES(elem3D%Np,lcmesh%NeA)
549 real(RP), intent(in) :: DDENS(elem3D%Np,lcmesh%NeA)
550 real(RP), intent(in) :: MOMX(elem3D%Np,lcmesh%NeA)
551 real(RP), intent(in) :: MOMY(elem3D%Np,lcmesh%NeA)
552 real(RP), intent(in) :: MOMZ(elem3D%Np,lcmesh%NeA)
553 real(RP), intent(in) :: EnTot(elem3D%Np,lcmesh%NeA)
554 real(RP), intent(in) :: PRES_hyd(elem3D%Np,lcmesh%NeA)
555 real(RP), intent(in) :: DENS_hyd(elem3D%Np,lcmesh%NeA)
556 real(RP), intent(in) :: Rtot(elem3D%Np,lcmesh%NeA)
557 real(RP), intent(in) :: CVtot(elem3D%Np,lcmesh%NeA)
558
559 integer :: ke, ke2D
560
561 real(RP) :: DENS(elem3D%Np)
562 real(RP) :: mom_u1(elem3D%Np), mom_u2(elem3D%Np)
563 !---------------------------------------------------------------
564
565 !$omp parallel do private( ke2D, DENS, mom_u1, mom_u2 )
566 do ke=lcmesh%NeS, lcmesh%NeE
567 ke2d = lcmesh%EMap3Dto2D(ke)
568
569 dens(:) = dens_hyd(:,ke) + ddens(:,ke)
570 mom_u1(:) = lcmesh%G_ij(lcmesh%refElem3D%IndexH2Dto3D,ke2d,1,1) * momx(:,ke) + lcmesh%G_ij(lcmesh%refElem3D%IndexH2Dto3D,ke2d,2,1) * momy(:,ke)
571 mom_u2(:) = lcmesh%G_ij(lcmesh%refElem3D%IndexH2Dto3D,ke2d,2,1) * momx(:,ke) + lcmesh%G_ij(lcmesh%refElem3D%IndexH2Dto3D,ke2d,2,2) * momy(:,ke)
572
573 pres(:,ke) = ( entot(:,ke) - grav * dens(:) * lcmesh%zlev(:,ke) &
574 - 0.5_rp * ( momx(:,ke) * mom_u1(:) + momy(:,ke) * mom_u2(:) + momz(:,ke)**2 ) / dens(:) &
575 ) * rtot(:,ke) / cvtot(:,ke)
576
577 dpres(:,ke) = pres(:,ke) - pres_hyd(:,ke)
578 end do
579
580 return

Referenced by atm_dyn_dgm_nonhydro3d_common_calc_pressure().

◆ atm_dyn_dgm_nonhydro3d_common_calc_rhot_hyd()

subroutine, public scale_atm_dyn_dgm_nonhydro3d_common::atm_dyn_dgm_nonhydro3d_common_calc_rhot_hyd ( real(rp), dimension(elem3d%np,lcmesh%nea), intent(out) rhot_hyd,
real(rp), dimension(elem3d%np,lcmesh%nea), intent(in) pres_hyd,
class(localmesh3d), intent(in) lcmesh,
class(elementbase3d), intent(in) elem3d )

Definition at line 584 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

587
588 use scale_const, only: &
589 rdry => const_rdry, &
590 cpdry => const_cpdry, &
591 cvdry => const_cvdry, &
592 pres00 => const_pre00
593
594 implicit none
595 class(LocalMesh3D), intent(in) :: lcmesh
596 class(ElementBase3D), intent(in) :: elem3D
597 real(RP), intent(out) :: RHOT_hyd(elem3D%Np,lcmesh%NeA)
598 real(RP), intent(in) :: PRES_hyd(elem3D%Np,lcmesh%NeA)
599
600 integer :: ke, p
601 real(RP) :: rP0
602 !---------------------------------------------------------------
603
604 rp0 = 1.0_rp / pres00
605
606 !$omp parallel do
607 !$acc parallel loop gang present( RHOT_hyd, PRES_hyd, lcmesh, elem3D )
608 do ke=lcmesh%NeS, lcmesh%NeE
609#ifdef _OPENACC
610 do p=1, elem3d%Np
611 rhot_hyd(p,ke) = pres00 / rdry * ( pres_hyd(p,ke) / pres00 )**(cvdry/cpdry)
612 end do
613#else
614 rhot_hyd(:,ke) = pres00 / rdry * ( pres_hyd(:,ke) / pres00 )**(cvdry/cpdry)
615#endif
616 end do
617
618 return

Referenced by atm_dyn_dgm_nonhydro3d_common_calc_therm_phyd(), and mod_dg_prep::dg_prep().

◆ atm_dyn_dgm_nonhydro3d_common_calc_phyd_hgrad_lc()

subroutine, public scale_atm_dyn_dgm_nonhydro3d_common::atm_dyn_dgm_nonhydro3d_common_calc_phyd_hgrad_lc ( real(rp), dimension(elem%np,lmesh%nea), intent(out) dphyddx,
real(rp), dimension(elem%np,lmesh%nea), intent(out) dphyddy,
real(rp), dimension(elem%np,lmesh%nea), intent(in) pres_hyd,
real(rp), dimension(elem%np,lmesh%nea), intent(in) pres_hyd_ref,
class(elementoperationbase3d), intent(in) element3d_operation,
class(localmesh3d), intent(in) lmesh,
class(elementbase3d), intent(in) elem )

Calculate horizontal graidient of hydrostatic pressure In this calculation, we assume that PRES_hyd_ref is continuous at element boundaries.

Definition at line 624 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

627 implicit none
628 class(LocalMesh3D), intent(in) :: lmesh
629 class(ElementBase3D), intent(in) :: elem
630 real(RP), intent(out) :: DPhydDx(elem%Np,lmesh%NeA)
631 real(RP), intent(out) :: DPhydDy(elem%Np,lmesh%NeA)
632 real(RP), intent(in) :: PRES_hyd(elem%Np,lmesh%NeA)
633 real(RP), intent(in) :: PRES_hyd_ref(elem%Np,lmesh%NeA)
634 class(ElementOperationBase3D), intent(in) :: element3D_operation
635
636 integer :: ke, ke2D, p
637
638 real(RP) :: Flux(elem%Np,3), Fz(elem%Np), DFlux(elem%Np,4,2)
639 real(RP) :: del_flux_hyd(elem%NfpTot,2,lmesh%Ne)
640 real(RP) :: GsqrtV, RGsqrtV(elem%Np)
641
642 real(RP) :: E33
643 real(RP) :: GradPhyd_x, GradPhyd_y
644 !-----------------------------------------
645
646 call get_phyd_hgrad_numflux_generalhvc( del_flux_hyd, & ! (out)
647 pres_hyd, pres_hyd_ref, & ! (in)
648 lmesh%Gsqrt, lmesh%GsqrtH, lmesh%gam, lmesh%GI3(:,:,1), lmesh%GI3(:,:,2), & ! (in)
649 lmesh%normal_fn(:,:,1), lmesh%normal_fn(:,:,2), lmesh%normal_fn(:,:,3), & ! (in)
650 lmesh%vmapM, lmesh%vmapP, elem%IndexH2Dto3D_bnd, & ! (in)
651 lmesh, elem, lmesh%lcmesh2D, lmesh%lcmesh2D%refElem2D ) ! (in)
652
653 !$omp parallel do private( ke, ke2D, p, &
654 !$omp Flux, Fz, DFlux, GsqrtV, RGsqrtV, E33, &
655 !$omp GradPhyd_x, GradPhyd_y )
656 do ke = lmesh%NeS, lmesh%NeE
657 ke2d = lmesh%EMap3Dto2D(ke)
658
659 do p=1, elem%Np
660 gsqrtv = lmesh%Gsqrt(p,ke) / ( lmesh%gam(p,ke)**2 * lmesh%GsqrtH(elem%IndexH2Dto3D(p),ke2d) )
661
662 rgsqrtv(p) = 1.0_rp / gsqrtv
663 flux(p,1) = gsqrtv * ( pres_hyd(p,ke) - pres_hyd_ref(p,ke) )
664 end do
665
666 do p=1, elem%Np
667 flux(p,2) = flux(p,1)
668 flux(p,3) = lmesh%GI3(p,ke,1) * flux(p,1)
669 fz(p) = lmesh%GI3(p,ke,2) * flux(p,1)
670 end do
671
672 call element3d_operation%Div( flux, del_flux_hyd(:,1,ke), &
673 dflux(:,:,1) )
674 call element3d_operation%Dz( fz, dflux(:,3,2) )
675 call element3d_operation%Lift( del_flux_hyd(:,2,ke), dflux(:,4,2) )
676
677 do p=1, elem%Np
678 e33 = lmesh%Escale(p,ke,3,3)
679
680 gradphyd_x = lmesh%Escale(p,ke,1,1) * dflux(p,1,1) &
681 + e33 * dflux(p,3,1) &
682 + dflux(p,4,1)
683
684 gradphyd_y = lmesh%Escale(p,ke,2,2) * dflux(p,2,1) &
685 + e33 * dflux(p,3,2) &
686 + dflux(p,4,2)
687
688 dphyddx(p,ke) = gradphyd_x * rgsqrtv(p)
689 dphyddy(p,ke) = gradphyd_y * rgsqrtv(p)
690 end do
691 end do
692
693 return

Variable Documentation

◆ prgvar_ddens_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::prgvar_ddens_id = 1

◆ prgvar_therm_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::prgvar_therm_id = 2

Definition at line 69 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

69 integer, public, parameter :: PRGVAR_THERM_ID = 2 ! Variable associated with energy equation (DRHOT or ETOT)

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo(), and mod_atmos_phy_preproc::physpreprocnone_init().

◆ prgvar_drhot_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::prgvar_drhot_id = 2

Definition at line 70 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

70 integer, public, parameter :: PRGVAR_DRHOT_ID = 2

◆ prgvar_etot_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::prgvar_etot_id = 2

Definition at line 71 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

71 integer, public, parameter :: PRGVAR_ETOT_ID = 2

◆ prgvar_momz_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::prgvar_momz_id = 3

◆ prgvar_momx_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::prgvar_momx_id = 4

◆ prgvar_momy_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::prgvar_momy_id = 5

◆ prgvar_scalar_num

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::prgvar_scalar_num = 3

Definition at line 75 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

75 integer, public, parameter :: PRGVAR_SCALAR_NUM = 3

◆ prgvar_hvec_num

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::prgvar_hvec_num = 1

Definition at line 76 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

76 integer, public, parameter :: PRGVAR_HVEC_NUM = 1

◆ prgvar_num

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::prgvar_num = 5

◆ phytend_dens_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::phytend_dens_id = 1

Definition at line 79 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

79 integer, public, parameter :: PHYTEND_DENS_ID = 1

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo(), and mod_atmos_component::atmos_setup().

◆ phytend_momx_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::phytend_momx_id = 2

Definition at line 80 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

80 integer, public, parameter :: PHYTEND_MOMX_ID = 2

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo(), and mod_atmos_component::atmos_setup().

◆ phytend_momy_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::phytend_momy_id = 3

Definition at line 81 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

81 integer, public, parameter :: PHYTEND_MOMY_ID = 3

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo(), and mod_atmos_component::atmos_setup().

◆ phytend_momz_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::phytend_momz_id = 4

Definition at line 82 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

82 integer, public, parameter :: PHYTEND_MOMZ_ID = 4

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo(), and mod_atmos_component::atmos_setup().

◆ phytend_rhot_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::phytend_rhot_id = 5

Definition at line 83 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

83 integer, public, parameter :: PHYTEND_RHOT_ID = 5

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo(), and mod_atmos_component::atmos_setup().

◆ phytend_rhoh_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::phytend_rhoh_id = 6

Definition at line 84 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

84 integer, public, parameter :: PHYTEND_RHOH_ID = 6

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo(), and mod_atmos_component::atmos_setup().

◆ phytend_num

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::phytend_num = 6

Definition at line 85 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

85 integer, public, parameter :: PHYTEND_NUM = 6

Referenced by atm_dyn_dgm_nonhydro3d_common_setup_variables(), and mod_atmos_component::atmos_setup().

◆ auxvar_preshydro_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::auxvar_preshydro_id = 1

◆ auxvar_denshydro_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::auxvar_denshydro_id = 2

◆ auxvar_thermhydro_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::auxvar_thermhydro_id = 3

Definition at line 90 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

90 integer, public, parameter :: AUXVAR_THERMHYDRO_ID = 3

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo().

◆ auxvar_pres_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::auxvar_pres_id = 4

Definition at line 91 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

91 integer, public, parameter :: AUXVAR_PRES_ID = 4

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo(), and mod_atmos_component::atmos_setup().

◆ auxvar_pt_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::auxvar_pt_id = 5

Definition at line 92 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

92 integer, public, parameter :: AUXVAR_PT_ID = 5

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo().

◆ auxvar_rtot_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::auxvar_rtot_id = 6

Definition at line 93 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

93 integer, public, parameter :: AUXVAR_Rtot_ID = 6

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo(), and mod_atmos_component::atmos_setup().

◆ auxvar_cvtot_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::auxvar_cvtot_id = 7

Definition at line 94 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

94 integer, public, parameter :: AUXVAR_CVtot_ID = 7

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo().

◆ auxvar_cptot_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::auxvar_cptot_id = 8

Definition at line 95 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

95 integer, public, parameter :: AUXVAR_CPtot_ID = 8

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo().

◆ auxvar_qdry_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::auxvar_qdry_id = 9

Definition at line 96 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

96 integer, public, parameter :: AUXVAR_Qdry_ID = 9

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo().

◆ auxvar_preshydro_ref_id

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::auxvar_preshydro_ref_id = 10

Definition at line 97 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

97 integer, public, parameter :: AUXVAR_PRESHYDRO_REF_ID = 10

Referenced by atm_dyn_dgm_nonhydro3d_common_get_varinfo().

◆ auxvar_num

integer, parameter, public scale_atm_dyn_dgm_nonhydro3d_common::auxvar_num = 10

◆ intrpmat_vpordm1

real(rp), dimension(:,:), allocatable, public scale_atm_dyn_dgm_nonhydro3d_common::intrpmat_vpordm1

Definition at line 102 of file scale_atm_dyn_dgm_nonhydro3d_common.F90.

102 real(RP), public, allocatable :: IntrpMat_VPOrdM1(:,:)

Referenced by scale_atm_dyn_dgm_globalnonhydro3d_rhot_heve::atm_dyn_dgm_globalnh3d_rhot_heve_cal_tend_shallow_atm_asis(), scale_atm_dyn_dgm_globalnonhydro3d_etot_heve::atm_dyn_dgm_globalnonhydro3d_etot_heve_cal_tend(), scale_atm_dyn_dgm_globalnonhydro3d_etot_hevi::atm_dyn_dgm_globalnonhydro3d_etot_hevi_cal_vi(), scale_atm_dyn_dgm_globalnonhydro3d_rhot_heve::atm_dyn_dgm_globalnonhydro3d_rhot_heve_cal_tend_deep_atm(), scale_atm_dyn_dgm_globalnonhydro3d_rhot_heve_gpu::atm_dyn_dgm_globalnonhydro3d_rhot_heve_gpu_cal_tend_deep_atm(), scale_atm_dyn_dgm_globalnonhydro3d_rhot_hevi::atm_dyn_dgm_globalnonhydro3d_rhot_hevi_cal_vi(), scale_atm_dyn_dgm_globalnonhydro3d_rhot_hevi::atm_dyn_dgm_globalnonhydro3d_rhot_hevi_cal_vi_asis(), atm_dyn_dgm_nonhydro3d_common_final(), atm_dyn_dgm_nonhydro3d_common_init(), scale_atm_dyn_dgm_nonhydro3d_etot_heve::atm_dyn_dgm_nonhydro3d_etot_heve_cal_tend(), scale_atm_dyn_dgm_nonhydro3d_etot_hevi::atm_dyn_dgm_nonhydro3d_etot_hevi_cal_vi(), scale_atm_dyn_dgm_nonhydro3d_etot_hevi_common::atm_dyn_dgm_nonhydro3d_etot_hevi_common_construct_matbnd(), scale_atm_dyn_dgm_nonhydro3d_etot_hevi_common::atm_dyn_dgm_nonhydro3d_etot_hevi_common_construct_matbnd_uv(), scale_atm_dyn_dgm_nonhydro3d_etot_hevi_common::atm_dyn_dgm_nonhydro3d_etot_hevi_common_eval_ax(), scale_atm_dyn_dgm_nonhydro3d_etot_hevi_common::atm_dyn_dgm_nonhydro3d_etot_hevi_common_eval_ax_uv(), scale_atm_dyn_dgm_nonhydro3d_rhot_heve::atm_dyn_dgm_nonhydro3d_rhot_heve_cal_tend_asis(), scale_atm_dyn_dgm_nonhydro3d_rhot_heve_splitform::atm_dyn_dgm_nonhydro3d_rhot_heve_splitform_cal_tend(), scale_atm_dyn_dgm_nonhydro3d_rhot_hevi::atm_dyn_dgm_nonhydro3d_rhot_hevi_cal_vi(), scale_atm_dyn_dgm_nonhydro3d_rhot_hevi::atm_dyn_dgm_nonhydro3d_rhot_hevi_cal_vi_asis(), scale_atm_dyn_dgm_nonhydro3d_rhot_hevi_common::atm_dyn_dgm_nonhydro3d_rhot_hevi_common_construct_matbnd(), scale_atm_dyn_dgm_nonhydro3d_rhot_hevi_common::atm_dyn_dgm_nonhydro3d_rhot_hevi_common_construct_matbnd_uv(), scale_atm_dyn_dgm_nonhydro3d_rhot_hevi_common::atm_dyn_dgm_nonhydro3d_rhot_hevi_common_eval_ax(), scale_atm_dyn_dgm_nonhydro3d_rhot_hevi_common::atm_dyn_dgm_nonhydro3d_rhot_hevi_common_eval_ax_uv(), scale_atm_dyn_dgm_nonhydro3d_rhot_hevi_common_2::atm_dyn_dgm_nonhydro3d_rhot_hevi_common_solve(), and scale_atm_dyn_dgm_nonhydro3d_rhot_hevi_splitform::atm_dyn_dgm_nonhydro3d_rhot_hevi_splitform_cal_vi().