K-PROFILE BOUNDARY LAYER SCHEME WITH CLOUD TOP ENTRAINMENT
This routine calculates diffusivity coefficients for vertical
diffusion using a K-profile approach. This scheme is modelled
after:
Lock, A.P., A.R. Brown, M.R. Bush, G.M. Martin, and R.N.B. Smith,
2000: A new boundary layer mixing scheme. Part I: Scheme
description and single-column modeling tests. Mon. Wea. Rev.,
128, 3187-3199.
constants_mod
fms_mod
diag_manager_mod
time_manager_mod
sat_vapor_pres_mod
monin_obukhov_mod
call entrain_init (lonb, latb, axes,time,idim,jdim,kdim)
lonb | Vector of model longitudes at cell boundaries (radians) [real] |
latb | Vector of model latitudes at cell boundaries (radians) [real] |
axes | Integer arrary for axes used needed for netcdf diagnostics [integer] |
time | Time type variable used for netcdf diagnostics [time_type] |
idim | Size of first (longitude) array dimension [integer] |
jdim | Size of second (latitude) array dimension [integer] |
kdim | Size of third (vertical, full levels) array dimension [integer] |
call entrain (is,ie,js,je,time, tdtlw_in, convect,u_star,b_star, & t,qv,ql,qi,qa,u,v,zfull,pfull,zhalf,phalf, diff_m,diff_t,k_m_entr,k_t_entr,use_entr,zsml, vspblcap,kbot)
is | Indice of starting point in the longitude direction of the slab being passed to entrain [integer] |
ie | Indice of ending point in the longitude direction of the slab being passed to entrain [integer] |
js | Indice of starting point in the latitude direction of the slab being passed to entrain [integer] |
je | Indice of ending point in the latitude direction of the slab being passed to entrain [integer] |
time | Time of the model: used for netcdf diagnostics [time_type] |
tdtlw_in | Longwave cooling rate (from the radiation scheme) (K/sec) [real] |
convect | Is surface based convection occurring in this grid box at this time? (from convection scheme (or schemes)) [logical] |
u_star | Friction velocity (m/s) [real] |
b_star | Buoyancy scale (m/s2) [real] |
t | Temperature (3d array) (K) [time_type] |
qv | Water vapor specific humidity (3d array) (kg/kg) [real] |
ql | Liquid water specific humidity (3d array) (kg/kg) [real] |
qi | Ice water specific humidity (3d array) (kg/kg) [real] |
qa | Cloud fraction (3d array) (fraction) [real] |
u | Zonal wind velocity (3d array) (m/s) [real] |
v | Meridional wind velocity (3d array) (m/s) [logical] |
zfull | Geopotential height of full model levels (3d array) (m) [real] |
pfull | Pressure of full model levels (3d array) (Pa) [real] |
zhalf | Geopotential height of half model levels (3d array) (m) [real] |
phalf | Pressure of half model levels (3d array) (Pa) [real] |
kbot | Optional input integer indicating the lowest true layer of atmosphere (counting down from the top of the atmosphere).
This is used only for eta coordinate model. [integer] |
diff_m | Vertical momentum diffusion coefficient (3d array) (m2/s)
Note that if apply_entrain = .true. then the output will be the diffusion coefficient diagnosed by entrain_mod (k_m_entr). If apply_entrain = .false. then the output will be identical to the input. This permits one to run entrain_mod as a diagnostic module without using the diffusion coefficients determined by it. [real] |
diff_t | Vertical heat and tracer diffusion coefficient (3d array) (m2/s)
The note for diff_m also applies here. [real] |
k_m_entr | Vertical momentum diffusion coefficient diagnosed by entrain_mod (3d array) (m2/s) [real] |
k_t_entr | Vertical heat and tracer diffusion coefficient diagnosed by entrain_mod (3d array) (m2/s) [real] |
use_entr | Was a diffusion coefficient calculated for this level by entrain_mod? (1.0 = yes, 0.0 = no) [real] |
zsml | Height of surface based convective mixed layer (m)
This may be used by other routines, e.g. Steve Garner's gravity wave drag [real] |
vspblcap | Lowest height level for which entrain module calculated at diffusion coefficient (meters)
(i.e. where use_entr = 1.0)
This is used by stable_bl_turb.f90 to limit the height of enhanced mixing in stable conditions. [real] |
call pbl_depth (t, z, u_star, b_star, ipbl, h, parcelkick)
t | Liquid water virtual static energy divided by cp (K) [real] |
z | Geopoential height of levels t is defined on (m) [real] |
u_star | Friction velocity (m/s) [real] |
b_star | Buoyancy scale (m/s2) [real] |
ipbl | Integer indicating the half model level which is the PBL top [integer] |
h | PBL height (m) [real] |
parcelkick | Surface parcel excess (K) [real] |
call prof_recon (rho,t,pf,ph,zt,dt)
rho | Air density (kg/m3) [real] |
t | Liquid water virtual static energy divided by cp (K) [real] |
pf | Full level pressures (Pa) [real] |
ph | Half level pressures (pa) [real] |
zt | Top of radiatively driven layer in distance relative to boundary between cloud top layer and the level below (m) [real] |
dt | Cloud top jump in liquid water virtual static energy divided by cp (K) [real] |
call radml_depth (svp, zt, t, zf, zh, zb, zml)
svp | Cloud top value of the liquid water virtual static energy divided by cp (K) [real] |
zt | Top of radiatively driven layer (m) [real] |
t | Liquid water virtual static energy divided by cp (vertical profile) (K) [real] |
zf | Full level geopotential height relative to ground (vertical profile) (m) [real] |
zh | Half level geopotential height relative to ground (vertical profile) (m) [real] |
zb | Base of radiatively driven mixed layer (m) [real] |
zml | Depth of radiatively driven mixed layer (m) (equals zt minus zb) [real] |
call diffusivity_pbl (h, u_star, b_star, t, zm, k_m, k_t)
h | Depth of surface driven mixed layer (m) [real] |
u_star | Friction velocity (m/s) [real] |
b_star | Buoyancy scale (m/s2) [real] |
t | Liquid water virtual static energy divided by cp (K) [real] |
zm | Half level heights relative to the ground (m) [real] |
k_m | Momentum diffusion coefficient (m2/s) [real] |
k_t | Heat and tracer diffusion coefficient (m2/s) [real] |
call entrain_end