The subroutine contains the entirety of the SAMF shallow convection scheme. The scale-aware mass-flux shallow convection scheme is an updated version of the previous mass-flux shallow convection scheme with scale and aerosol awareness and parameterizes the effect of shallow convection on the environment. More...
local_name | standard_name | long_name | units | rank | type | kind | intent | optional |
---|---|---|---|---|---|---|---|---|
im | horizontal_loop_extent | horizontal loop extent | count | 0 | integer | in | F | |
ix | horizontal_dimension | horizontal dimension | count | 0 | integer | in | F | |
km | vertical_dimension | vertical layer dimension | count | 0 | integer | in | F | |
delt | time_step_for_physics | physics time step | s | 0 | real | kind_phys | in | F |
delp | air_pressure_difference_between_midlayers | pres(k) - pres(k+1) | Pa | 2 | real | kind_phys | in | F |
prslp | air_pressure | mean layer pressure | Pa | 2 | real | kind_phys | in | F |
psp | surface_air_pressure | surface pressure | Pa | 1 | real | kind_phys | in | F |
phil | geopotential | layer geopotential | m2 s-2 | 2 | real | kind_phys | in | F |
ql1 | cloud_ice_specific_humidity | cloud ice specific humidity | kg kg-1 | 2 | real | kind_phys | inout | F |
ql2 | cloud_liquid_water_specific_humidity | cloud water specific humidity | kg kg-1 | 2 | real | kind_phys | inout | F |
q1 | water_vapor_specific_humidity_updated_by_physics | updated vapor specific humidity | kg kg-1 | 2 | real | kind_phys | inout | F |
t1 | air_temperature_updated_by_physics | updated temperature | K | 2 | real | kind_phys | inout | F |
u1 | x_wind_updated_by_physics | updated x-direction wind | m s-1 | 2 | real | kind_phys | inout | F |
v1 | y_wind_updated_by_physics | updated y-direction wind | m s-1 | 2 | real | kind_phys | inout | F |
rn | lwe_thickness_of_shallow_convective_precipitation_amount | shallow convective rainfall amount on physics timestep | m | 1 | real | kind_phys | out | F |
kbot | vertical_index_at_cloud_base | index at cloud base | index | 1 | integer | inout | F | |
ktop | vertical_index_at_cloud_top | index at cloud top | index | 1 | integer | inout | F | |
kcnv | flag_deep_convection | deep convection: 0=no, 1=yes | flag | 1 | integer | inout | F | |
islimsk | sea_land_ice_mask | landmask: sea/land/ice=0/1/2 | flag | 1 | integer | in | F | |
garea | cell_area | grid cell area | m2 | 1 | real | kind_phys | in | F |
dot | omega | layer mean vertical velocity | Pa s-1 | 2 | real | kind_phys | in | F |
ncloud | number_of_hydrometeors | number of hydrometeors | count | 0 | integer | in | F | |
hpbl | atmosphere_boundary_layer_thickness | PBL top height | m | 1 | real | kind_phys | in | F |
ud_mf | instantaneous_atmosphere_updraft_convective_mass_flux | (updraft mass flux) * delt | kg m-2 | 2 | real | kind_phys | out | F |
dt_mf | instantaneous_atmosphere_detrainment_convective_mass_flux | (detrainment mass flux) * delt | kg m-2 | 2 | real | kind_phys | out | F |
cnvw | convective_cloud_water_specific_humidity | convective cloud water specific humidity | kg kg-1 | 2 | real | kind_phys | out | F |
cnvc | convective_cloud_cover | convective cloud cover | frac | 2 | real | kind_phys | out | F |
errmsg | error_message | error message for error handling in CCPP | none | 0 | character | len=* | out | F |
errflg | error_flag | error flag for error handling in CCPP | flag | 0 | integer | out | F |
Functions/Subroutines | |
subroutine | sasas_shal::sasas_shal_run (im, ix, km, delt, delp, prslp, psp, phil, ql1, ql2, q1, t1, u1, v1, rn, kbot, ktop, kcnv, islimsk, garea, dot, ncloud, hpbl, ud_mf, dt_mf, cnvw, cnvc, errmsg, errflg) |
subroutine sasas_shal::sasas_shal_run | ( | integer, intent(in) | im, |
integer, intent(in) | ix, | ||
integer, intent(in) | km, | ||
real(kind=kind_phys), intent(in) | delt, | ||
real(kind=kind_phys), dimension(ix,km), intent(in) | delp, | ||
real(kind=kind_phys), dimension(ix,km), intent(in) | prslp, | ||
real(kind=kind_phys), dimension(im), intent(in) | psp, | ||
real(kind=kind_phys), dimension(ix,km), intent(in) | phil, | ||
real(kind=kind_phys), dimension(ix,km), intent(inout) | ql1, | ||
real(kind=kind_phys), dimension(ix,km), intent(inout) | ql2, | ||
real(kind=kind_phys), dimension(ix,km), intent(inout) | q1, | ||
real(kind=kind_phys), dimension(ix,km), intent(inout) | t1, | ||
real(kind=kind_phys), dimension(ix,km), intent(inout) | u1, | ||
real(kind=kind_phys), dimension(ix,km), intent(inout) | v1, | ||
real(kind=kind_phys), dimension(im), intent(out) | rn, | ||
integer, dimension(im), intent(inout) | kbot, | ||
integer, dimension(im), intent(inout) | ktop, | ||
integer, dimension(im), intent(inout) | kcnv, | ||
integer, dimension(im), intent(in) | islimsk, | ||
real(kind=kind_phys), dimension(im), intent(in) | garea, | ||
real(kind=kind_phys), dimension(ix,km), intent(in) | dot, | ||
integer, intent(in) | ncloud, | ||
real(kind=kind_phys), dimension(im), intent(in) | hpbl, | ||
real(kind=kind_phys), dimension(im,km), intent(out) | ud_mf, | ||
real(kind=kind_phys), dimension(im,km), intent(out) | dt_mf, | ||
real(kind=kind_phys), dimension(ix,km), intent(out) | cnvw, | ||
real(kind=kind_phys), dimension(ix,km), intent(out) | cnvc, | ||
character(len=*), intent(out) | errmsg, | ||
integer, intent(out) | errflg | ||
) |
\[ \frac{1}{\eta}\frac{\partial \eta}{\partial z} = \lambda_e - \lambda_d \]
where \(\eta\) is the normalized mass flux, \(\lambda_e\) is the entrainment rate and \(\lambda_d\) is the detrainment rate. The normalized mass flux increases upward below the cloud base and decreases upward above.\[ A_u=\int_{z_0}^{z_t}\frac{g}{c_pT(z)}\frac{\eta}{1 + \gamma}[h(z)-h^*(z)]dz \]
(discretized according to [28] equation B.10 using B.2 and B.3 of [3] and assuming \(\eta=1\)) where \(A_u\) is the updraft cloud work function, \(z_0\) and \(z_t\) are cloud base and cloud top, respectively, \(\gamma = \frac{L}{c_p}\left(\frac{\partial \overline{q_s}}{\partial T}\right)_p\) and other quantities are previously defined.