This subroutine contains the entirety of the SAMF deep convection scheme. More...
Functions/Subroutines | |
subroutine | samfdeepcnv::samfdeepcnv_run (im, km, first_time_step, restart, tmf, qmicro, itc, ntc, cliq, cp, cvap, eps, epsm1, fv, grav, hvap, rd, rv, t0c, delt, ntk, ntr, delp, prslp, psp, phil, qtr, prevsq, q, q1, t1, u1, v1, fscav, hwrf_samfdeep, progsigma, cldwrk, rn, kbot, ktop, kcnv, islimsk, garea, dot, ncloud, hpbl, ud_mf, dd_mf, dt_mf, cnvw, cnvc, qlcn, qicn, w_upi, cf_upi, cnv_mfd, cnv_dqldt, clcn, cnv_fice, cnv_ndrop, cnv_nice, mp_phys, mp_phys_mg, clam, c0s, c1, betal, betas, evef, pgcon, asolfac, do_ca, ca_closure, ca_entr, ca_trigger, nthresh, ca_deep, rainevap, sigmain, sigmaout, betadcu, betamcu, betascu, maxmf, do_mynnedmf, errmsg, errflg) |
For grid sizes larger than threshold value, as in Grell (1993) [73] , the SAMF deep convection 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.
For grid sizes smaller than threshold value, the cloud base mass flux in the SAMF scheme is determined by the cumulus updraft velocity averaged ove the whole cloud depth (Han et al. (2017) [80] ), which in turn, determines changes of the large-scale environment due to the cumulus convection.
local_name | standard_name | long_name | units | type | dimensions | kind | intent |
---|---|---|---|---|---|---|---|
im | horizontal_loop_extent | horizontal loop extent | count | integer | () | in | |
km | vertical_layer_dimension | vertical layer dimension | count | integer | () | in | |
first_time_step | flag_for_first_timestep | flag for first time step for time integration loop (cold/warmstart) | flag | logical | () | in | |
restart | flag_for_restart | flag for restart (warmstart) or coldstart | flag | logical | () | in | |
tmf | tendency_of_vertically_diffused_tracer_concentration | updated tendency of the tracers due to vertical diffusion in PBL scheme | kg kg-1 s-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:number_of_vertical_diffusion_tracers) | kind_phys | in |
qmicro | instantaneous_tendency_of_specific_humidity_due_to_microphysics | moisture tendency due to microphysics | kg kg-1 s-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | in |
itc | index_of_first_chemical_tracer_for_convection | index of first chemical tracer transported/scavenged by convection | index | integer | () | in | |
ntc | number_of_chemical_tracers | number of chemical tracers | count | integer | () | 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 |
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 |
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 |
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 |
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 |
grav | gravitational_acceleration | gravitational acceleration | m s-2 | 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 |
rd | gas_constant_of_dry_air | ideal gas constant for dry air | J kg-1 K-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 |
t0c | temperature_at_zero_celsius | temperature at 0 degree Celsius | K | real | () | kind_phys | in |
delt | timestep_for_physics | physics time step | s | real | () | kind_phys | in |
ntk | index_for_turbulent_kinetic_energy_convective_transport_tracer | index for turbulent kinetic energy in the convectively transported tracer array | index | integer | () | in | |
ntr | number_of_tracers_for_samf | number of tracers for scale-aware mass flux schemes | count | integer | () | in | |
delp | air_pressure_difference_between_midlayers | pres(k) - pres(k+1) | 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 | layer geopotential | m2 s-2 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | in |
qtr | convective_transportable_tracers | array to contain cloud water and other convective trans. tracers | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:number_of_tracers_for_convective_transport) | kind_phys | inout |
prevsq | specific_humidity_on_previous_timestep | specific_humidity_on_previous_timestep | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | in |
q | specific_humidity | water vapor specific humidity | kg kg-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | in |
q1 | specific_humidity_of_new_state | updated vapor specific humidity | 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 | updated temperature | K | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
u1 | x_wind_of_new_state | updated x-direction wind | 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 | updated y-direction wind | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | inout |
fscav | chemical_tracer_scavenging_fractions | array of aerosol scavenging coefficients | none | real | (ccpp_constant_one:number_of_chemical_tracers) | kind_phys | in |
hwrf_samfdeep | flag_for_hurricane_specific_code_in_scale_aware_mass_flux_deep_convection | flag for hwrf samfdeepcnv scheme | flag | logical | () | in | |
progsigma | do_prognostic_updraft_area_fraction | flag for prognostic sigma in cumuls scheme | flag | logical | () | in | |
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) | out | |
ktop | vertical_index_at_cloud_top | index for cloud top | index | integer | (ccpp_constant_one:horizontal_loop_extent) | out | |
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 | |
garea | cell_area | grid cell area | m2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | 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 | |
hpbl | atmosphere_boundary_layer_thickness | PBL top height | m | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | 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 |
sigmain | prognostic_updraft_area_fraction_in_convection | convective updraft area fraction | frac | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | in |
sigmaout | updraft_area_fraction_updated_by_physics | convective updraft area fraction updated by physics | frac | real | (ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension) | kind_phys | out |
betascu | tuning_param_for_shallow_cu | tuning param for shallow cu in case prognostic closure is used | none | real | () | kind_phys | in |
betamcu | tuning_param_for_midlevel_cu | tuning param for midlevel cu in case prognostic closure is used | none | real | () | kind_phys | in |
betadcu | tuning_param_for_deep_cu | tuning param for deep cu in case prognostic closure is used | none | real | () | kind_phys | in |
maxMF | maximum_mass_flux | maximum mass flux within a column | m s-1 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
do_mynnedmf | flag_for_mellor_yamada_nakanishi_niino_pbl_scheme | flag to activate MYNN-EDMF | flag | logical | () | in | |
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 conv. | none | real | () | kind_phys | in |
c0s | rain_conversion_parameter_for_deep_convection | convective rain conversion parameter for deep conv. | m-1 | real | () | kind_phys | in |
c1 | detrainment_conversion_parameter_for_deep_convection | convective detrainment conversion parameter for deep conv. | m-1 | real | () | kind_phys | in |
betal | downdraft_fraction_reaching_surface_over_land_for_deep_convection | downdraft fraction reaching surface over land for deep conv. | frac | real | () | kind_phys | in |
betas | downdraft_fraction_reaching_surface_over_water_for_deep_convection | downdraft fraction reaching surface over water for deep conv. | frac | real | () | kind_phys | in |
evef | rain_evaporation_coefficient_for_convection | convective rain evaporation coefficient for 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 conv. induced pressure gradient force | frac | real | () | kind_phys | in |
asolfac | aerosol_aware_multiplicative_rain_conversion_parameter_for_deep_convection | aerosol-aware parameter inversely proportional to CCN number concentraion from Lim (2011) for deep conv. | none | real | () | kind_phys | in |
do_ca | flag_for_cellular_automata | cellular automata main switch | flag | logical | () | in | |
ca_closure | flag_for_global_cellular_automata_closure | switch for ca on closure | flag | logical | () | in | |
ca_entr | flag_for_global_cellular_automata_deep_convective_entrainment | switch for ca on entr | flag | logical | () | in | |
ca_trigger | flag_for_global_cellular_automata_trigger | switch for ca on trigger | flag | logical | () | in | |
nthresh | cellular_automata_vertical_velocity_perturbation_threshold_for_deep_convection | threshold used for perturbed vertical velocity | m s-1 | real | () | kind_phys | in |
ca_deep | cellular_automata_area_fraction_for_deep_convection_from_coupled_process | fraction of cellular automata for deep convection | frac | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | in |
rainevap | physics_field_for_coupling | physics_field_for_coupling | m2 s-2 | real | (ccpp_constant_one:horizontal_loop_extent) | kind_phys | out |
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 |