11#include "scaleFElib.h"
61 integer :: sfcflx_num_tot
63 procedure :: init => atmosphysfcvars_init
64 procedure :: final => atmosphysfcvars_final
65 procedure :: setup => atmosphysfcvars_setup
66 procedure :: history => atmosphysfcvars_history
77 'K', 2,
'XY',
'surface_temp' ), &
94 'm/s*kg/m2/s', 2,
'XY',
'' ), &
96 'm/s*kg/m2/s', 2,
'XY',
'' ), &
98 'm/s*kg/m2/s', 2,
'XY',
'' ), &
100 'J/m2/s', 2,
'XY',
'' ), &
102 'J/m2/s', 2,
'XY',
'' ), &
104 'kg/m2/s', 2,
'XY',
'' ) /
116 real(rp),
private :: atmos_phy_sfc_default_sfc_temp = 300.0_rp
122 subroutine atmosphysfcvars_init( this, model_mesh, &
126 class(modelmeshbase),
target,
intent(in) :: model_mesh
127 real(rp),
intent(in) :: default_sfc_temp
131 logical :: reg_file_hist
138 log_info(
'AtmosPhySfcVars_Init',*)
140 atmos_phy_sfc_default_sfc_temp = default_sfc_temp
142 end subroutine atmosphysfcvars_init
145 subroutine atmosphysfcvars_setup( this, model_mesh )
148 class(modelmeshbase),
target,
intent(in) :: model_mesh
152 logical :: reg_file_hist
165 select type(model_mesh)
167 atm_mesh => model_mesh
169 mesh3d => atm_mesh%ptr_mesh
171 call mesh3d%GetMesh2D( mesh2d )
174 call this%SFCVARS_manager%Init()
177 reg_file_hist = .true.
179 call this%SFCVARS_manager%Regist( &
181 this%SFC_VARS(v), reg_file_hist, fill_zero=.true. )
184 do n=1, mesh2d%LOCAL_MESH_NUM
189 call this%SFCFLX_manager%Init()
190 allocate( this%SFC_FLX(this%SFCFLX_NUM_TOT) )
192 reg_file_hist = .true.
193 do v = 1, this%SFCFLX_NUM_TOT
194 call this%SFCFLX_manager%Regist( &
196 this%SFC_FLX(v), reg_file_hist, fill_zero=.true. )
200 end subroutine atmosphysfcvars_setup
204 subroutine atmosphysfcvars_final( this )
210 log_info(
'AtmosPhySfcVars_Final',*)
212 call this%SFCVARS_manager%Final()
213 deallocate( this%SFC_VARS )
215 call this%SFCFLX_manager%Final()
216 deallocate( this%SFC_FLX )
219 end subroutine atmosphysfcvars_final
223 subroutine atmosphysfcvars_history( this )
234 hst_id = this%SFC_VARS(v)%hist_id
238 do v = 1, this%SFCFLX_NUM_TOT
239 hst_id = this%SFC_FLX(v)%hist_id
244 end subroutine atmosphysfcvars_history
249 SFC_TEMP, SFLX_MU, SFLX_MV, SFLX_MW, SFLX_SH, SFLX_LH, SFLX_QV, &
257 integer,
intent(in) :: domid
268 class(
localmesh3d),
pointer,
intent(out),
optional :: lcmesh3d
276 call field%GetLocalMeshField(domid, sfc_temp)
279 call field%GetLocalMeshField(domid, sflx_mu)
282 call field%GetLocalMeshField(domid, sflx_mv)
285 call field%GetLocalMeshField(domid, sflx_mw)
288 call field%GetLocalMeshField(domid, sflx_sh)
291 call field%GetLocalMeshField(domid, sflx_lh)
294 call field%GetLocalMeshField(domid, sflx_qv)
297 if (
present(lcmesh3d))
then
298 call mesh%GetLocalMesh( domid, lcmesh )
303 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)
Get local mesh fields for surface variables.
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_svar_alb_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 2D
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 restart file with each component.
Derived type representing a local mesh for 2D domain.
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)