11#include "scaleFElib.h"
61 integer :: sfcflx_num_tot
63 procedure :: init => atmosphysfcvars_init
64 procedure :: final => atmosphysfcvars_final
65 procedure :: history => atmosphysfcvars_history
86 'm/s*kg/m2/s', 2,
'XY',
'' ), &
88 'm/s*kg/m2/s', 2,
'XY',
'' ), &
90 'm/s*kg/m2/s', 2,
'XY',
'' ), &
92 'J/m2/s', 2,
'XY',
'' ), &
94 'J/m2/s', 2,
'XY',
'' ), &
96 'kg/m2/s', 2,
'XY',
'' ) /
108 real(rp),
private :: atmos_phy_sfc_default_sfc_temp = 300.0_rp
114 subroutine atmosphysfcvars_init( this, model_mesh )
117 class(modelmeshbase),
target,
intent(in) :: model_mesh
121 logical :: reg_file_hist
127 namelist / param_atmos_phy_sfc_vars / &
128 atmos_phy_sfc_default_sfc_temp
133 log_info(
'AtmosPhySfcVars_Init',*)
139 read(io_fid_conf,nml=param_atmos_phy_sfc_vars,iostat=ierr)
141 log_info(
"ATMOS_PHY_SFC_vars_setup",*)
'Not found namelist. Default used.'
142 elseif( ierr > 0 )
then
143 log_error(
"ATMOS_PHY_SFC_vars_setup",*)
'Not appropriate names in namelist PARAM_ATMOS_PHY_SFC_VARS. Check!'
146 log_nml(param_atmos_phy_sfc_vars)
151 select type(model_mesh)
153 atm_mesh => model_mesh
155 mesh3d => atm_mesh%ptr_mesh
157 call mesh3d%GetMesh2D( mesh2d )
160 call this%SFCVARS_manager%Init()
163 reg_file_hist = .true.
165 call this%SFCVARS_manager%Regist( &
167 this%SFC_VARS(v), reg_file_hist, fill_zero=.true. )
170 do n=1, mesh2d%LOCAL_MESH_NUM
175 call this%SFCFLX_manager%Init()
176 allocate( this%SFC_FLX(this%SFCFLX_NUM_TOT) )
178 reg_file_hist = .true.
179 do v = 1, this%SFCFLX_NUM_TOT
180 call this%SFCFLX_manager%Regist( &
182 this%SFC_FLX(v), reg_file_hist, fill_zero=.true. )
186 end subroutine atmosphysfcvars_init
190 subroutine atmosphysfcvars_final( this )
196 log_info(
'AtmosPhySfcVars_Final',*)
198 call this%SFCVARS_manager%Final()
199 deallocate( this%SFC_VARS )
201 call this%SFCFLX_manager%Final()
202 deallocate( this%SFC_FLX )
205 end subroutine atmosphysfcvars_final
208 subroutine atmosphysfcvars_history( this )
219 hst_id = this%SFC_VARS(v)%hist_id
223 do v = 1, this%SFCFLX_NUM_TOT
224 hst_id = this%SFC_FLX(v)%hist_id
229 end subroutine atmosphysfcvars_history
232 SFC_TEMP, SFLX_MU, SFLX_MV, SFLX_MW, SFLX_SH, SFLX_LH, SFLX_QV, &
240 integer,
intent(in) :: domid
251 class(
localmesh3d),
pointer,
intent(out),
optional :: lcmesh3d
259 call field%GetLocalMeshField(domid, sfc_temp)
262 call field%GetLocalMeshField(domid, sflx_mu)
265 call field%GetLocalMeshField(domid, sflx_mv)
268 call field%GetLocalMeshField(domid, sflx_mw)
271 call field%GetLocalMeshField(domid, sflx_sh)
274 call field%GetLocalMeshField(domid, sflx_lh)
277 call field%GetLocalMeshField(domid, sflx_qv)
280 if (
present(lcmesh3d))
then
281 call mesh%GetLocalMesh( domid, lcmesh )
286 if (
present(lcmesh3d)) lcmesh3d => lcmesh
module Atmosphere / Physics / surface process
type(variableinfo), dimension(atmos_phy_sf_sflx_num1), public atmos_phy_sf_sflx_vinfo
subroutine, public atmosphysfcvars_getlocalmeshfields(domid, mesh, svars_list, sflx_list, sfc_temp, sflx_mu, sflx_mv, sflx_mw, sflx_sh, sflx_lh, sflx_qv, lcmesh3d)
integer, parameter, public atmos_phy_sf_sflx_mv_id
type(variableinfo), dimension(atmos_phy_sf_svar_num), public atmos_phy_sf_svar_vinfo
integer, parameter, public atmos_phy_sf_sflx_qv_id
integer, parameter, public atmos_phy_sf_sflx_mu_id
integer, parameter, public atmos_phy_sf_sflx_num1
integer, parameter, public atmos_phy_sf_sflx_sh_id
integer, parameter, public atmos_phy_sf_svar_num
integer, parameter, public atmos_phy_sf_sflx_lh_id
integer, parameter, public atmos_phy_sf_svar_temp_id
integer, parameter, public atmos_phy_sf_sflx_mw_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
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 a surface component.
Derived type representing a 3D reference element.
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 representing a field with 2D mesh.
Derived type representing a field with 3D mesh.
Derived type representing a field (base type)