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

module Atmosphere / Physics / sub-grid scale turbulence More...

Data Types

type  atmosphytbvars
 Derived type to manage variables with atmospheric SGS turbulent component. More...

Functions/Subroutines

subroutine atmosphytbvars_init (this, model_mesh)
 Setup an object to manage variables with atmospheric SGS turbulent component.
subroutine, public atmosphytbvars_getlocalmeshfields_tend (domid, mesh, tb_tends_list, tb_momx_t, tb_momy_t, tb_momz_t, tb_rhot_t, tb_rhoq_t, lcmesh3d)

Detailed Description

module Atmosphere / Physics / sub-grid scale turbulence

Description
Container for variables with sub-grid scale turbulence model
Author
Yuta Kawai, Team SCALE

Function/Subroutine Documentation

◆ atmosphytbvars_init()

subroutine mod_atmos_phy_tb_vars::atmosphytbvars_init ( class(atmosphytbvars), intent(inout), target this,
class(modelmeshbase), intent(in), target model_mesh )

Setup an object to manage variables with atmospheric SGS turbulent component.

Parameters
model_meshObject to manage computational mesh of atmospheric model

Definition at line 97 of file mod_atmos_phy_tb_vars.F90.

98 implicit none
99 class(AtmosPhyTbVars), target, intent(inout) :: this
100 class(ModelMeshBase), target, intent(in) :: model_mesh
101 !--------------------------------------------------
102
103 log_info('AtmosPhyTbVars_Init',*)
104 return

References scale_atm_phy_tb_dgm_common::atm_phy_tb_dgm_common_setup_variables(), scale_atm_phy_tb_dgm_common::atmos_phy_tb_aux_htensor_num, scale_atm_phy_tb_dgm_common::atmos_phy_tb_aux_hvec_num, scale_atm_phy_tb_dgm_common::atmos_phy_tb_aux_num, scale_atm_phy_tb_dgm_common::atmos_phy_tb_aux_scalar_num, scale_atm_phy_tb_dgm_common::atmos_phy_tb_diag_num, and scale_atm_phy_tb_dgm_common::atmos_phy_tb_tends_num1.

◆ atmosphytbvars_getlocalmeshfields_tend()

subroutine, public mod_atmos_phy_tb_vars::atmosphytbvars_getlocalmeshfields_tend ( integer, intent(in) domid,
class(meshbase), intent(in) mesh,
class(modelvarmanager), intent(inout) tb_tends_list,
class(localmeshfieldbase), intent(out), pointer tb_momx_t,
class(localmeshfieldbase), intent(out), pointer tb_momy_t,
class(localmeshfieldbase), intent(out), pointer tb_momz_t,
class(localmeshfieldbase), intent(out), pointer tb_rhot_t,
type(localmeshfieldbaselist), dimension(:), intent(out), optional tb_rhoq_t,
class(localmesh3d), intent(out), optional, pointer lcmesh3d )

Definition at line 190 of file mod_atmos_phy_tb_vars.F90.

194
195 use scale_mesh_base, only: meshbase
197 implicit none
198
199 integer, intent(in) :: domID
200 class(MeshBase), intent(in) :: mesh
201 class(ModelVarManager), intent(inout) :: tb_tends_list
202 class(LocalMeshFieldBase), pointer, intent(out) :: tb_MOMX_t
203 class(LocalMeshFieldBase), pointer, intent(out) :: tb_MOMY_t
204 class(LocalMeshFieldBase), pointer, intent(out) :: tb_MOMZ_t
205 class(LocalMeshFieldBase), pointer, intent(out) :: tb_RHOT_t
206 type(LocalMeshFieldBaseList), intent(out), optional :: tb_RHOQ_t(:)
207 class(LocalMesh3D), pointer, intent(out), optional :: lcmesh3D
208
209 class(MeshFieldBase), pointer :: field
210 class(LocalMeshBase), pointer :: lcmesh
211
212 integer :: iq
213 !-------------------------------------------------------
214
215 !--
216 call tb_tends_list%Get(tb_momx_t_vid, field)
217 call field%GetLocalMeshField(domid, tb_momx_t)
218
219 call tb_tends_list%Get(tb_momy_t_vid, field)
220 call field%GetLocalMeshField(domid, tb_momy_t)
221
222 call tb_tends_list%Get(tb_momz_t_vid, field)
223 call field%GetLocalMeshField(domid, tb_momz_t)
224
225 call tb_tends_list%Get(tb_rhot_t_vid, field)
226 call field%GetLocalMeshField(domid, tb_rhot_t)
227
228 !---
229 if ( present(tb_rhoq_t) ) then
230 do iq = 1, size(tb_rhoq_t)
231 call tb_tends_list%Get(atmos_phy_tb_tends_num1 + iq, field)
232 call field%GetLocalMeshField(domid, tb_rhoq_t(iq)%ptr)
233 end do
234 end if
235
236 if (present(lcmesh3d)) then
237 call mesh%GetLocalMesh( domid, lcmesh )
238 nullify( lcmesh3d )
239
240 select type(lcmesh)
241 type is (localmesh3d)
242 if (present(lcmesh3d)) lcmesh3d => lcmesh
243 end select
244 end if
245
246 return
module FElib / Mesh / Base
module FElib / Data / base
Base type to manage a computational mesh.
Derived type representing a field (base type)

Referenced by mod_atmos_phy_tb::atmosphytb_setup(), and mod_atmos_phy_tb_vars::atmosphytbvars::history().