11#include "scaleFElib.h"
62 integer :: tends_num_tot
64 procedure :: init => atmosphycpvars_init
65 procedure :: final => atmosphycpvars_final
66 procedure :: setup => atmosphycpvars_setup
67 procedure :: history => atmosphycpvars_history
86 'kg/m3/s', 3,
'XYZ',
'' ), &
88 'kg/m3/s', 3,
'XYZ',
'' ), &
90 'kg/m3.K/s', 3,
'XYZ',
'' ), &
92 'kg/m3/s', 3,
'XYZ',
'' ) /
102 'kg/m2/s', 2,
'XY',
'' ), &
104 'kg/m2/s', 2,
'XY',
'' ), &
106 'J/m2/s', 2,
'XY',
'' ) /
115 subroutine atmosphycpvars_init( this, model_mesh )
118 class(modelmeshbase),
target,
intent(in) :: model_mesh
121 log_info(
'AtmosPhyCpVars_Init',*)
123 end subroutine atmosphycpvars_init
126 subroutine atmosphycpvars_setup( this, model_mesh )
127 use scale_atmos_hydrometeor,
only: &
130 use scale_tracer,
only: &
131 tracer_name, tracer_desc, tracer_unit
132 use scale_file_history,
only: &
136 class(modelmeshbase),
target,
intent(in) :: model_mesh
141 logical :: reg_file_hist
147 type(variableinfo) :: qtrc_tp_vinfo_tmp
148 type(variableinfo) :: qtrc_vterm_vinfo_tmp
157 select type(model_mesh)
159 atm_mesh => model_mesh
161 mesh3d => atm_mesh%ptr_mesh
163 call mesh3d%GetMesh2D( mesh2d )
167 call this%tends_manager%Init()
168 allocate( this%tends(this%TENDS_NUM_TOT) )
170 reg_file_hist = .true.
172 call this%tends_manager%Regist( &
174 this%tends(iv), reg_file_hist )
176 do n = 1, mesh3d%LOCAL_MESH_NUM
177 this%tends(iv)%local(n)%val(:,:) = 0.0_rp
181 qtrc_tp_vinfo_tmp%ndims = 3
182 qtrc_tp_vinfo_tmp%dim_type =
'XYZ'
183 qtrc_tp_vinfo_tmp%STDNAME =
''
187 qtrc_tp_vinfo_tmp%keyID = iv
188 qtrc_tp_vinfo_tmp%NAME =
'CP_'//trim(hyd_name(iq))//
'_t'
189 qtrc_tp_vinfo_tmp%DESC =
'tendency of rho*'//trim(hyd_name(iq))//
' in CP process'
190 qtrc_tp_vinfo_tmp%UNIT =
'kg/m3/s'
192 reg_file_hist = .true.
193 call this%tends_manager%Regist( &
194 qtrc_tp_vinfo_tmp, mesh3d, &
195 this%tends(iv), reg_file_hist )
197 do n = 1, mesh3d%LOCAL_MESH_NUM
198 this%tends(iv)%local(n)%val(:,:) = 0.0_rp
204 call this%auxvars2D_manager%Init()
207 reg_file_hist = .true.
209 call this%auxvars2D_manager%Regist( &
211 this%auxvars2D(iv), reg_file_hist )
213 do n = 1, mesh3d%LOCAL_MESH_NUM
214 this%auxvars2D(iv)%local(n)%val(:,:) = 0.0_rp
219 end subroutine atmosphycpvars_setup
223 subroutine atmosphycpvars_final( this )
228 log_info(
'AtmosPhyCpVars_Final',*)
230 call this%tends_manager%Final()
231 deallocate( this%tends )
233 call this%auxvars2D_manager%Final()
234 deallocate( this%auxvars2D )
237 end subroutine atmosphycpvars_final
241 cp_DENS_t, cp_RHOT_t, cp_RHOQv_t, &
249 integer,
intent(in) :: domid
255 class(
localmesh3d),
pointer,
intent(out),
optional :: lcmesh3d
265 call field%GetLocalMeshField(domid, cp_dens_t)
268 call field%GetLocalMeshField(domid, cp_rhot_t)
271 call field%GetLocalMeshField(domid, cp_rhoqv_t)
273 if (
present(lcmesh3d))
then
274 call mesh%GetLocalMesh( domid, lcmesh )
279 if (
present(lcmesh3d)) lcmesh3d => lcmesh
288 SFLX_rain, SFLX_snow, SFLX_engi )
294 integer,
intent(in) :: domid
305 call field%GetLocalMeshField(domid, sflx_rain)
308 call field%GetLocalMeshField(domid, sflx_snow)
311 call field%GetLocalMeshField(domid, sflx_engi)
317 subroutine atmosphycpvars_history( this )
326 do v=1, this%TENDS_NUM_TOT
327 hst_id = this%tends(v)%hist_id
332 hst_id = this%auxvars2D(v)%hist_id
336 end subroutine atmosphycpvars_history
module Atmosphere / Physics / Cumulus Parameterization
type(variableinfo), dimension(atmos_phy_cp_tends_num1), public atmos_phy_cp_tend_vinfo
integer, parameter, public atmos_phy_cp_dens_t_id
integer, parameter, public atmos_phy_cp_aux2d_sflx_engi_id
subroutine, public atmosphycpvars_getlocalmeshfields_sfcflx(domid, mesh, sfcflx_list, sflx_rain, sflx_snow, sflx_engi)
integer, parameter, public atmos_phy_cp_tends_num1
subroutine, public atmosphycpvars_getlocalmeshfields_tend(domid, mesh, bl_tends_list, cp_dens_t, cp_rhot_t, cp_rhoqv_t, lcmesh3d)
type(variableinfo), dimension(atmos_phy_cp_aux2d_num), public atmos_phy_cp_aux2d_vinfo
integer, parameter, public atmos_phy_cp_rhoqv_t_id
integer, parameter, public atmos_phy_cp_rhot_t_id
integer, parameter, public atmos_phy_cp_aux2d_num
integer, parameter, public atmos_phy_cp_aux2d_sflx_rain_id
integer, parameter, public atmos_phy_cp_aux2d_sflx_snow_id
integer, parameter, public atmos_phy_cp_rhow_t_id
module FElib / Element / Base
module FElib / File / History
module FElib / File / Restart
module FElib / Mesh / Local 3D
module FElib / Mesh / Local, Base
module FElib / Data / base
module FElib / Mesh / Base 2D
module FElib / Mesh / Base 3D
integer, public meshbase3d_dimtypeid_xyz
module FElib / Mesh / Base
module FElib / Data / base
module FElib / Data / Communication base
FElib / model framework / mesh manager.
FElib / model framework / variable manager.
Derived type to manage a computational mesh (base class)
Derived type to manage variables with cumulus parameterization component in atmospheric model.
Derived type representing a 3D reference element.
Derived type to manage restart file with each component.
Derived type to manage a local 3D computational domain.
Derived type to manage a local computational domain (base type)
Derived type representing a field with local mesh (base type)
Derived type to manage a computational mesh (base type for 2D domain)
Derived type to manage a computational mesh (base type for 3D domain)
Base type to manage a computational mesh.
Derived type representing a field with 2D mesh.
Derived type representing a field with 3D mesh.
Derived type representing a field (base type)
Container to save a pointer of MeshField(1D, 2D, 3D) object.