module atmosphere / physics / PBL
More...
module atmosphere / physics / PBL
- Description
- Planetary boundary layer turbulence
- Author
- Team SCALE
- NAMELIST
-
- History Output
name | description | unit | variable |
Kh_BL | eddy diffusion | m2/s | Kh |
Nu_BL | eddy viscosity | m2/s | Nu |
QL_BL | liquid water content in partial condensation | kg/kg | QL |
RHOT_t_BL | RHOT tendency (BL) | K.kg/m3/s | RHOT_t_BL |
RHOU_t_BL | MOMX tendency (BL) | kg/m2/s2 | RHOU_t_BL |
RHOV_t_BL | MOMY tendency (BL) | kg/m2/s2 | RHOV_t_BL |
Zi_BL | depth of the boundary layer | m | Zi |
cldfrac_BL | cloud fraction in partial condensation | 1 | cldfrac |
{TRACER_NAME}_t_BL | RHO*{TRACER_NAME} tendency (BL);
{TRACER_NAME} depends on the physics schemes, e.g., QV, QC, QR. | kg/m3/s | RHOQ_t_BL |
◆ atmos_phy_bl_driver_tracer_setup()
subroutine, public mod_atmos_phy_bl_driver::atmos_phy_bl_driver_tracer_setup |
Config.
Definition at line 50 of file mod_atmos_phy_bl_driver.F90.
69 log_info(
"ATMOS_PHY_BL_driver_tracer_setup",*)
'Setup'
83 log_error(
"ATMOS_PHY_BL_driver_tracer_setup",*)
'ATMOS_PHY_BL_TYPE is invalid: ', trim(
atmos_phy_bl_type)
References scale_atmos_phy_bl_mynn::atmos_phy_bl_mynn_desc, scale_atmos_phy_bl_mynn::atmos_phy_bl_mynn_name, scale_atmos_phy_bl_mynn::atmos_phy_bl_mynn_ntracer, scale_atmos_phy_bl_mynn::atmos_phy_bl_mynn_tracer_setup(), scale_atmos_phy_bl_mynn::atmos_phy_bl_mynn_units, mod_atmos_admin::atmos_phy_bl_type, mod_atmos_admin::atmos_sw_phy_bl, scale_prc::prc_abort(), mod_atmos_phy_bl_vars::qe, mod_atmos_phy_bl_vars::qs, and scale_tracer::tracer_regist().
Referenced by mod_atmos_driver::atmos_driver_tracer_setup().
◆ atmos_phy_bl_driver_setup()
subroutine, public mod_atmos_phy_bl_driver::atmos_phy_bl_driver_setup |
Setup.
Definition at line 94 of file mod_atmos_phy_bl_driver.F90.
107 log_info(
"ATMOS_PHY_BL_driver_setup",*)
'Setup'
113 ka, ks, ke, ia, is, ie, ja, js, je, &
117 log_info(
"ATMOS_PHY_BL_driver_setup",*)
'this component is never called.'
References scale_atmos_phy_bl_mynn::atmos_phy_bl_mynn_setup(), mod_atmos_admin::atmos_phy_bl_type, mod_atmos_phy_bl_vars::atmos_phy_bl_zi, mod_atmos_admin::atmos_sw_phy_bl, scale_bulkflux::bulkflux_type, scale_atmos_grid_cartesc_index::ia, scale_atmos_grid_cartesc_index::ie, scale_atmos_grid_cartesc_index::is, scale_atmos_grid_cartesc_index::ja, scale_atmos_grid_cartesc_index::je, scale_atmos_grid_cartesc_index::js, scale_atmos_grid_cartesc_index::ka, scale_atmos_grid_cartesc_index::ke, and scale_atmos_grid_cartesc_index::ks.
Referenced by mod_atmos_driver::atmos_driver_setup().
◆ atmos_phy_bl_driver_calc_tendency()
subroutine, public mod_atmos_phy_bl_driver::atmos_phy_bl_driver_calc_tendency |
( |
logical, intent(in) |
update_flag | ) |
|
calculate tendency
Definition at line 127 of file mod_atmos_phy_bl_driver.F90.
136 atmos_phy_bl_mynn_tendency_tracer
165 atmos_vars_get_diagnostic
188 logical,
intent(in) :: update_flag
190 real(RP) :: Nu(KA,IA,JA)
191 real(RP) :: Kh(KA,IA,JA)
193 real(RP) :: QW(KA,IA,JA)
195 real(RP) :: N2 (KA,IA,JA)
196 real(RP) :: POTL(KA,IA,JA)
197 real(RP) :: POTV(KA,IA,JA)
199 real(RP),
pointer :: RHOQV_t(:,:,:)
201 integer :: k, i, j, iq
204 if ( update_flag )
then
206 rhoq_t_bl(:,:,:,:) = 0.0_rp
210 call atmos_vars_get_diagnostic(
"N2", n2 )
211 call atmos_vars_get_diagnostic(
"POTL", potl )
212 call atmos_vars_get_diagnostic(
"POTV", potv )
216 qw(k,i,j) =
qv(k,i,j) +
qc(k,i,j) +
qi(k,i,j)
221 rhoqv_t => rhoq_t_bl(:,:,:,
i_qv)
223 allocate( rhoqv_t(ka,ia,ja) )
226 ka, ks, ke, ia, is, ie, ja, js, je, &
227 dens(:,:,:),
u(:,:,:),
v(:,:,:), &
230 qdry(:,:,:),
qv(:,:,:), qw(:,:,:), &
231 potl(:,:,:), potv(:,:,:), &
233 sflx_mu(:,:), sflx_mv(:,:), sflx_sh(:,:), sflx_qv(:,:), &
234 ustar(:,:), tstar(:,:), qstar(:,:), rlmo(:,:), &
235 cz(:,:,:), fz(:,:,:), dt_bl, &
237 rhou_t_bl(:,:,:), rhov_t_bl(:,:,:), rhot_t_bl(:,:,:), &
238 rhoqv_t(:,:,:), rhoq_t_bl(:,:,:,
qs:
qe), &
239 nu(:,:,:), kh(:,:,:), &
240 ql(:,:,:), cldfrac(:,:,:), zi(:,:) )
241 if (
i_qv <= 0 )
deallocate( rhoqv_t )
243 if ( ( .not. tracer_advc(iq) ) .or. iq==
i_qv .or. (iq>=
qs .and. iq<=
qe) ) cycle
244 call atmos_phy_bl_mynn_tendency_tracer( &
245 ka, ks, ke, ia, is, ie, ja, js, je, &
250 cz(:,:,:), fz(:,:,:), &
251 dt_bl, tracer_name(iq), &
252 rhoq_t_bl(:,:,:,iq) )
256 call file_history_in( nu(:,:,:),
'Nu_BL',
'eddy viscosity',
'm2/s', fill_halo=.true., dim_type=
"ZHXY" )
257 call file_history_in( kh(:,:,:),
'Kh_BL',
'eddy diffusion',
'm2/s', fill_halo=.true., dim_type=
"ZHXY" )
259 call file_history_in( ql(:,:,:),
'QL_BL',
'liquid water content in partial condensation',
'kg/kg', fill_halo=.true. )
260 call file_history_in( cldfrac(:,:,:),
'cldfrac_BL',
'cloud fraction in partial condensation',
'1', fill_halo=.true. )
262 call file_history_in( zi(:,:),
'Zi_BL',
'depth of the boundary layer',
'm', fill_halo=.true. )
264 call file_history_in( rhou_t_bl(:,:,:),
'RHOU_t_BL',
'MOMX tendency (BL)',
'kg/m2/s2', fill_halo=.true. )
265 call file_history_in( rhov_t_bl(:,:,:),
'RHOV_t_BL',
'MOMY tendency (BL)',
'kg/m2/s2', fill_halo=.true. )
266 call file_history_in( rhot_t_bl(:,:,:),
'RHOT_t_BL',
'RHOT tendency (BL)',
'K.kg/m3/s', fill_halo=.true. )
269 if ( .not. tracer_advc(iq) ) cycle
270 call file_history_in( rhoq_t_bl(:,:,:,iq), trim(tracer_name(iq))//
'_t_BL', &
271 'RHO*'//trim(tracer_name(iq))//
' tendency (BL)',
'kg/m3/s', fill_halo=.true. )
275 call statistics_total( ka, ks, ke, ia, is, ie, ja, js, je, &
276 rhou_t_bl(:,:,:),
'RHOU_t_BL', &
279 call statistics_total( ka, ks, ke, ia, is, ie, ja, js, je, &
280 rhov_t_bl(:,:,:),
'RHOV_t_BL', &
283 call statistics_total( ka, ks, ke, ia, is, ie, ja, js, je, &
284 rhot_t_bl(:,:,:),
'RHOT_t_BL', &
287 call statistics_total( ka, ks, ke, ia, is, ie, ja, js, je, &
288 nu(:,:,:),
'Nu_BL', &
291 call statistics_total( ka, ks, ke, ia, is, ie, ja, js, je, &
292 kh(:,:,:),
'Kh_BL', &
297 if ( .not. tracer_advc(iq) ) cycle
298 call statistics_total( ka, ks, ke, ia, is, ie, ja, js, je, &
299 rhoq_t_bl(:,:,:,iq), trim(tracer_name(iq))//
'_t_BL', &
312 rhou_t(k,i,j) = rhou_t(k,i,j) + rhou_t_bl(k,i,j)
313 rhov_t(k,i,j) = rhov_t(k,i,j) + rhov_t_bl(k,i,j)
314 rhot_t(k,i,j) = rhot_t(k,i,j) + rhot_t_bl(k,i,j)
320 if ( .not. tracer_advc(iq) ) cycle
325 rhoq_t(k,i,j,iq) = rhoq_t(k,i,j,iq) + rhoq_t_bl(k,i,j,iq)
References scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_cz, scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_fz, scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_totvol, scale_atmos_grid_cartesc_real::atmos_grid_cartesc_real_vol, mod_atmos_phy_bl_vars::atmos_phy_bl_cldfrac, scale_atmos_phy_bl_mynn::atmos_phy_bl_mynn_tendency(), mod_atmos_phy_bl_vars::atmos_phy_bl_ql, mod_atmos_phy_bl_vars::atmos_phy_bl_rhoq_t, mod_atmos_phy_bl_vars::atmos_phy_bl_rhot_t, mod_atmos_phy_bl_vars::atmos_phy_bl_rhou_t, mod_atmos_phy_bl_vars::atmos_phy_bl_rhov_t, mod_atmos_admin::atmos_phy_bl_type, mod_atmos_phy_bl_vars::atmos_phy_bl_zi, mod_atmos_phy_sf_vars::atmos_phy_sf_qstar, mod_atmos_phy_sf_vars::atmos_phy_sf_rlmo, mod_atmos_phy_sf_vars::atmos_phy_sf_sfc_dens, mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_mu, mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_mv, mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_qtrc, mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_qv, mod_atmos_phy_sf_vars::atmos_phy_sf_sflx_sh, mod_atmos_phy_sf_vars::atmos_phy_sf_tstar, mod_atmos_phy_sf_vars::atmos_phy_sf_ustar, mod_atmos_admin::atmos_sw_phy_bl, scale_bulkflux::bulkflux_type, mod_atmos_vars::dens, mod_atmos_vars::dens_av, mod_atmos_vars::exner, scale_atmos_hydrometeor::i_qv, scale_atmos_grid_cartesc_index::ia, scale_atmos_grid_cartesc_index::ie, scale_atmos_grid_cartesc_index::ieb, scale_atmos_grid_cartesc_index::is, scale_atmos_grid_cartesc_index::isb, scale_atmos_grid_cartesc_index::ja, scale_atmos_grid_cartesc_index::je, scale_atmos_grid_cartesc_index::jeb, scale_atmos_grid_cartesc_index::js, scale_atmos_grid_cartesc_index::jsb, scale_tracer::k, scale_atmos_grid_cartesc_index::ka, scale_atmos_grid_cartesc_index::ke, scale_atmos_grid_cartesc_index::ks, mod_atmos_vars::pott, mod_atmos_vars::pres, scale_tracer::qa, mod_atmos_vars::qc, mod_atmos_vars::qdry, mod_atmos_phy_bl_vars::qe, mod_atmos_vars::qi, mod_atmos_phy_bl_vars::qs, mod_atmos_vars::qtrc, mod_atmos_vars::qtrc_av, mod_atmos_vars::qv, mod_atmos_vars::rhoq_tp, mod_atmos_vars::rhot_tp, mod_atmos_vars::rhou_tp, mod_atmos_vars::rhov_tp, scale_statistics::statistics_checktotal, scale_time::time_dtsec_atmos_phy_bl, scale_tracer::tracer_advc, scale_tracer::tracer_mass, scale_tracer::tracer_name, mod_atmos_vars::u, and mod_atmos_vars::v.
Referenced by mod_atmos_driver::atmos_driver_calc_tendency(), and mod_atmos_driver::atmos_driver_calc_tendency_from_sflux().
character(len=h_short), public atmos_phy_bl_type
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sfc_dens
character(len=h_long), dimension(:), allocatable, public atmos_phy_bl_mynn_desc
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_mu
subroutine, public prc_abort
Abort Process.
real(rp), dimension(:,:,:,:), allocatable, public rhoq_tp
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_cz
geopotential height [m] (zxy)
real(rp), dimension(:,:,:), allocatable, target, public pott
subroutine, public atmos_phy_bl_mynn_tendency(KA, KS, KE, IA, IS, IE, JA, JS, JE, DENS, U, V, POTT, PROG, PRES, EXNER, N2, QDRY, QV, Qw, POTL, POTV, SFC_DENS, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_QV, us, ts, qs, RLmo, CZ, FZ, dt_DP, BULKFLUX_type, RHOU_t, RHOV_t, RHOT_t, RHOQV_t, RPROG_t, Nu, Kh, Qlp, cldfrac, Zi)
ATMOS_PHY_BL_MYNN_tendency calculate tendency by the virtical eddy viscosity.
real(rp), dimension(:,:,:,:), pointer, public qtrc_av
character(len=h_short), dimension(:), allocatable, public atmos_phy_bl_mynn_units
real(rp), dimension(:,:,:), allocatable, public rhov_tp
module atmosphere / physics / pbl / mynn
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_qstar
real(rp), dimension(:,:,:), allocatable, target, public qdry
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_ustar
real(dp), public time_dtsec_atmos_phy_bl
time interval of physics(pbl ) [sec]
real(rp), dimension(:,:,:), allocatable, public atmos_phy_bl_rhou_t
module atmosphere / hydrometeor
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_mv
real(rp), dimension(:,:,:,:), allocatable, target, public atmos_phy_bl_rhoq_t
module ATMOSPHERIC Surface Variables
module Atmosphere GRID CartesC Real(real space)
real(rp), dimension(:,:,:,:), allocatable, target, public qtrc
real(rp), dimension(:,:,:), allocatable, public atmos_phy_bl_rhov_t
real(rp), dimension(:,:,:), allocatable, public rhou_tp
module atmosphere / physics / PBL
real(rp), dimension(:,:,:), allocatable, target, public dens
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_vol
control volume (zxy) [m3]
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_rlmo
real(rp), dimension(:,:,:), allocatable, target, public v
real(rp), dimension(:,:), allocatable, public atmos_phy_bl_zi
real(rp), dimension(:,:,:), allocatable, target, public exner
real(rp), dimension(:,:), pointer, public atmos_phy_sf_sflx_qv
character(len=h_short), public bulkflux_type
real(rp), dimension(:,:,:), allocatable, pointer, target, public qv
real(rp), dimension(:,:,:), allocatable, target, public atmos_phy_sf_sflx_qtrc
subroutine, public tracer_regist(QS, NQ, NAME, DESC, UNIT, CV, CP, R, ENGI0, ADVC, MASS)
Regist tracer.
real(rp), dimension(:,:,:), allocatable, target, public pres
real(rp), dimension(:,:,:), pointer, public dens_av
real(rp), dimension(:,:,:), allocatable, target, public u
logical, public statistics_checktotal
calc&report variable totals to logfile?
module ATMOSPHERIC Variables
real(rp), dimension(:,:,:), pointer, public qi
real(rp), dimension(:,:,:), allocatable, public rhot_tp
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_sflx_sh
logical, public atmos_sw_phy_bl
integer, public atmos_phy_bl_mynn_ntracer
real(rp), dimension(:,:,:), pointer, public qc
real(rp), dimension(:,:,:), allocatable, public atmos_grid_cartesc_real_fz
geopotential height [m] (wxy)
real(rp), public atmos_grid_cartesc_real_totvol
total volume (zxy, local) [m3]
real(rp), dimension(:,:,:), allocatable, public atmos_phy_bl_cldfrac
real(rp), dimension(:,:,:), allocatable, public atmos_phy_bl_rhot_t
subroutine, public atmos_phy_bl_mynn_setup(KA, KS, KE, IA, IS, IE, JA, JS, JE, BULKFLUX_type, TKE_MIN, PBL_MAX)
ATMOS_PHY_BL_MYNN_setup Setup.
real(rp), dimension(:,:,:), allocatable, public atmos_phy_bl_ql
character(len=h_short), dimension(:), allocatable, public atmos_phy_bl_mynn_name
real(rp), dimension(:,:), allocatable, public atmos_phy_sf_tstar
subroutine, public atmos_phy_bl_mynn_tracer_setup
ATMOS_PHY_BL_MYNN_tracer_setup Tracer Setup.