subroutine, public sascnvn::sascnvn_run |
As in Grell (1993) [75] , the SAS convective scheme can be described in terms of three types of "controls": static, dynamic, and feedback. The static control component consists of the simple entraining/detraining updraft/downdraft cloud model and is used to determine the cloud properties, convective precipitation, as well as the convective cloud top height. The dynamic control is the determination of the potential energy available for convection to "consume", or how primed the large-scale environment is for convection to occur due to changes by the dyanmics of the host model. The feedback control is the determination of how the parameterized convection changes the large-scale environment (the host model state variables) given the changes to the state variables per unit cloud base mass flux calculated in the static control portion and the deduced cloud base mass flux determined from the dynamic control.
[in] | im | horizontal dimension |
[in] | km | vertical layer dimension |
[in] | jcap | number of spectral wave trancation |
[in] | delt | physics time step in seconds |
[in] | delp | pressure difference between level k and k+1 (Pa) |
[in] | prslp | mean layer presure (Pa) |
[in] | psp | surface pressure (Pa) |
[in] | phil | layer geopotential ( \(m^2/s^2\)) |
[in,out] | qlc | cloud water (kg/kg) |
[in,out] | qli | ice (kg/kg) |
[in,out] | q1 | updated tracers (kg/kg) |
[in,out] | t1 | updated temperature (K) |
[in,out] | u1 | updated zonal wind ( \(m s^{-1}\)) |
[in,out] | v1 | updated meridional wind ( \(m s^{-1}\)) |
[out] | cldwrk | cloud workfunction ( \(m^2/s^2\)) |
[out] | rn | convective rain (m) |
[out] | kbot | index for cloud base |
[out] | ktop | index for cloud top |
[out] | kcnv | flag to denote deep convection (0=no, 1=yes) |
[in] | islimsk | sea/land/ice mask (=0/1/2) |
[in] | dot | layer mean vertical velocity (Pa/s) |
[in] | ncloud | number of cloud species |
[out] | ud_mf | updraft mass flux multiplied by time step ( \(kg/m^2\)) |
[out] | dd_mf | downdraft mass flux multiplied by time step ( \(kg/m^2\)) |
[out] | dt_mf | ud_mf at cloud top ( \(kg/m^2\)) |
[out] | cnvw | convective cloud water (kg/kg) |
[out] | cnvc | convective cloud cover (unitless) |
local_name | standard_name | long_name | units | type | dimensions | kind | intent |
---|---|---|---|---|---|---|---|
grav | gravitational_acceleration | gravitational acceleration | m s-2 | real | () | kind_phys | in |
cp | specific_heat_of_dry_air_at_constant_pressure | specific heat of dry air at constant pressure | J kg-1 K-1 | real | () | kind_phys | in |
hvap | latent_heat_of_vaporization_of_water_at_0c | latent heat of evaporation/sublimation | J kg-1 | real | () | kind_phys | in |
rv | gas_constant_water_vapor | ideal gas constant for water vapor | J kg-1 K-1 | real | () | kind_phys | in |
fv | ratio_of_vapor_to_dry_air_gas_constants_minus_one | (rv/rd) - 1 (rv = ideal gas constant for water vapor) | none | real | () | kind_phys | in |
t0c | temperature_at_zero_celsius | temperature at 0 degree Celsius | K | real | () | kind_phys | in |
rgas | gas_constant_of_dry_air | ideal gas constant for dry air | J kg-1 K-1 | real | () | kind_phys | in |
cvap | specific_heat_of_water_vapor_at_constant_pressure | specific heat of water vapor at constant pressure | J kg-1 K-1 | real | () | kind_phys | in |
cliq | specific_heat_of_liquid_water_at_constant_pressure | specific heat of liquid water at constant pressure | J kg-1 K-1 | real | () | kind_phys | in |
eps | ratio_of_dry_air_to_water_vapor_gas_constants | rd/rv | none | real | () | kind_phys | in |
epsm1 | ratio_of_dry_air_to_water_vapor_gas_constants_minus_one | (rd/rv) - 1 | none | real | () | kind_phys | in |
im | horizontal_loop_extent | horizontal loop extent | count | integer | () | in | |
km | vertical_layer_dimension | number of vertical levels | count | integer | () | in | |
jcap | number_of_spectral_wave_truncation_for_simplified_arakawa_schubert_convection | number of spectral wave trancation used only by sascnv and sascnvn | count | integer | () | in | |
delt | timestep_for_physics | physics timestep | s | real | () | kind_phys | in |
delp | air_pressure_difference_between_midlayers | air pressure difference between midlayers | Pa | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | in |
prslp | air_pressure | mean layer pressure | Pa | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | in |
psp | surface_air_pressure | surface pressure | Pa | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
phil | geopotential | geopotential at model layer centers | m2 s-2 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | in |
qlc | cloud_condensed_water_mixing_ratio_convective_transport_tracer | ratio of mass of cloud water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
qli | ice_water_mixing_ratio_convective_transport_tracer | ratio of mass of ice water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
q1 | specific_humidity_of_new_state | water vapor specific humidity updated by physics | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
t1 | air_temperature_of_new_state | temperature updated by physics | K | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
u1 | x_wind_of_new_state | zonal wind updated by physics | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
v1 | y_wind_of_new_state | meridional wind updated by physics | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
cldwrk | cloud_work_function | cloud work function | m2 s-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | out |
rn | lwe_thickness_of_deep_convective_precipitation_amount | deep convective rainfall amount on physics timestep | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | out |
kbot | vertical_index_at_cloud_base | index for cloud base | index | integer | (ccpp_constant_one:horizontal_loop_extent) | inout | |
ktop | vertical_index_at_cloud_top | index for cloud top | index | integer | (ccpp_constant_one:horizontal_loop_extent) | inout | |
kcnv | flag_deep_convection | deep convection: 0=no, 1=yes | flag | integer | (ccpp_constant_one:horizontal_loop_extent) | inout | |
islimsk | sea_land_ice_mask | landmask: sea/land/ice=0/1/2 | flag | integer | (ccpp_constant_one:horizontal_loop_extent) | in | |
dot | lagrangian_tendency_of_air_pressure | layer mean vertical velocity | Pa s-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | in |
ncloud | number_of_condensate_species | number of cloud condensate types | count | integer | () | in | |
ud_mf | instantaneous_atmosphere_updraft_convective_mass_flux | (updraft mass flux) * delt | kg m-2 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | out |
dd_mf | instantaneous_atmosphere_downdraft_convective_mass_flux | (downdraft mass flux) * delt | kg m-2 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | out |
dt_mf | instantaneous_atmosphere_detrainment_convective_mass_flux | (detrainment mass flux) * delt | kg m-2 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | out |
cnvw | convective_cloud_water_mixing_ratio | moist convective cloud water mixing ratio | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
cnvc | convective_cloud_cover | convective cloud cover | frac | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
qlcn | mass_fraction_of_convective_cloud_liquid_water | mass fraction of convective cloud liquid water | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
qicn | mass_fraction_of_convective_cloud_ice | mass fraction of convective cloud ice water | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
w_upi | vertical_velocity_for_updraft | vertical velocity for updraft | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
cf_upi | convective_cloud_fraction_for_microphysics | convective cloud fraction for microphysics | frac | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
cnv_mfd | detrained_mass_flux | detrained mass flux | kg m-2 s-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
cnv_dqldt | tendency_of_cloud_water_due_to_convective_microphysics | tendency of cloud water due to convective microphysics | kg m-2 s-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
clcn | convective_cloud_volume_fraction | convective cloud volume fraction | frac | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
cnv_fice | ice_fraction_in_convective_tower | ice fraction in convective tower | frac | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
cnv_ndrop | number_concentration_of_cloud_liquid_water_particles_for_detrainment | droplet number concentration in convective detrainment | m-3 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
cnv_nice | number_concentration_of_ice_crystals_for_detrainment | crystal number concentration in convective detrainment | m-3 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
mp_phys | control_for_microphysics_scheme | choice of microphysics scheme | flag | integer | () | in | |
mp_phys_mg | identifier_for_morrison_gettelman_microphysics_scheme | choice of Morrison-Gettelman microphysics scheme | flag | integer | () | in | |
clam | entrainment_rate_coefficient_for_deep_convection | entrainment rate coefficient for deep convection | none | real | () | kind_phys | in |
c0 | rain_conversion_parameter_for_deep_convection | convective rain conversion parameter for deep convection | m-1 | real | () | kind_phys | in |
c1 | detrainment_conversion_parameter_for_deep_convection | convective detrainment conversion parameter for deep convection | m-1 | real | () | kind_phys | in |
betal | downdraft_fraction_reaching_surface_over_land_for_deep_convection | downdraft fraction reaching surface over land for deep convection | frac | real | () | kind_phys | in |
betas | downdraft_fraction_reaching_surface_over_water_for_deep_convection | downdraft fraction reaching surface over water for deep convection | frac | real | () | kind_phys | in |
evfact | rain_evaporation_coefficient_over_ocean_for_deep_convection | convective rain evaporation coefficient for deep convection | frac | real | () | kind_phys | in |
evfactl | rain_evaporation_coefficient_over_land_for_deep_convection | convective rain evaporation coefficient over land for deep convection | frac | real | () | kind_phys | in |
pgcon | momentum_transport_reduction_factor_due_to_pressure_gradient_force_for_deep_convection | reduction factor in momentum transport due to deep convection induced pressure gradient force | frac | real | () | kind_phys | in |
errmsg | ccpp_error_message | error message for error handling in CCPP | none | character | () | len=* | out |
errflg | ccpp_error_code | error code for error handling in CCPP | 1 | integer | () | out |
\[ \epsilon = \epsilon_0F_0 + d_1\left(1-RH\right)F_1 \]
where \(\epsilon_0\) is the cloud base entrainment rate, \(d_1\) is a tunable constant, and \(F_0=\left(\frac{q_s}{q_{s,b}}\right)^2\) and \(F_1=\left(\frac{q_s}{q_{s,b}}\right)^3\) where \(q_s\) and \(q_{s,b}\) are the saturation specific humidities at a given level and cloud base, respectively. The detrainment rate in the cloud is assumed to be equal to the entrainment rate at cloud base.\[ \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.\[ A_u=\int_{z_0}^{z_t}\frac{g}{c_pT(z)}\frac{\eta}{1 + \gamma}[h(z)-h^*(z)]dz \]
(discretized according to Grell (1993) [75] equation B.10 using B.2 and B.3 of Arakawa and Schubert (1974) [6] 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.\[ E = 1.591 - 0.639\frac{\Delta V}{\Delta z} + 0.0953\left(\frac{\Delta V}{\Delta z}\right)^2 - 0.00496\left(\frac{\Delta V}{\Delta z}\right)^3 \]
where \(\Delta V\) is the integrated horizontal shear over the cloud depth, \(\Delta z\), (the ratio is converted to units of \(10^{-3} s^{-1}\)). The variable "edto" is \(1-E\) and is constrained to the range \([0,0.9]\).\[ \lambda_d = \frac{1-\beta^{\frac{1}{k_{LFC}}}}{\overline{\Delta z}} \]
\(\lambda_d\) is the detrainment rate, \(\beta\) is a constant currently set to 0.05, \(k_{LFC}\) is the vertical index of the LFC level, and \(\overline{\Delta z}\) is the average vertical grid spacing below the LFC.\[ \frac{\partial A}{\partial t}_{LS}=\frac{A^+-cA^0}{\Delta t_{LS}} \]
where \(c\) is the correction factor "acrtfct", \(\Delta t_{LS}\) is the modified timescale over which the environment is destabilized, and the other quantities have been previously defined.\[ \frac{\partial A}{\partial t}_{cu}=\frac{A^*-A^+}{\Delta t_{cu}} \]
\(\Delta t_{cu}\) is the short timescale of the convection.\[ M_c=\frac{-\frac{\partial A}{\partial t}_{LS}}{\frac{\partial A}{\partial t}_{cu}} \]