← Back to Documentation Home
CCPP SciDoc for HSD Capabilities  SRW v3.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches
GFS saSAS Shallow Convection Module

This subroutine contains the entirety of the SAMF shallow convection scheme.This routine follows the GFS saSAS Deep Convection Module quite closely, although it can be interpreted as only having the "static" and "feedback" control portions, since the "dynamic" control is not necessary to find the cloud base mass flux. The algorithm is simplified from SAMF deep convection by excluding convective downdrafts and being confined to operate below \(p=0.7p_{sfc}\). Also, entrainment is both simpler and stronger in magnitude compared to the deep scheme. More...

Functions/Subroutines

subroutine, public progomega::progomega_calc (first_time_step, flag_restart, im, km, kbcon1, ktcon, omegain, delt, del, zi, cnvflg, omegaout, grav, buo, drag, wush, bb1, bb2)
 This subroutine computes a prognostic updraft vertical velocity used in the closure computations in the samfdeepcnv.f and cu_c3_conv.f scheme This subroutine computes a prognostic updraft vertical velocity used in the closure computations in the samfshalcnv. and cu_c3_shal scheme.
 
subroutine samfshalcnv::samfshalcnv_run (im, km, nn, itc, ntc, cliq, cp, cvap, eps, epsm1, fv, grav, hvap, rd, rv, t0c, delt, ntk, ntr, delp, first_time_step, restart, tmf, qmicro, progsigma, progomega, prslp, psp, phil, tkeh, qtr, dqtr, prevsq, q, q1, t1, u1, v1, fscav, rn, kbot, ktop, kcnv, islimsk, garea, cscale, ten_t, ten_u, ten_v, ten_q, dot, ncloud, hpbl, ud_mf, dt_mf, cnvw, cnvc, clam, c0s, c1, evef, pgcon, asolfac, hwrf_samfshal, sigmain, sigmaout, omegain, omegaout, betadcu, betamcu, betascu, cat_adj_shal, errmsg, errflg)
 

Detailed Description

Argument Table

samfshalcnv_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintent
imhorizontal_loop_extenthorizontal loop extentcountinteger()in
kmvertical_layer_dimensionvertical layer dimensioncountinteger()in
nnnumber_of_tracers_for_convective_transportnumber of tracers for convective transportcountinteger()in
first_time_stepflag_for_first_timestepflag for first time step for time integration loop (cold/warmstart)flaglogical()in
restartflag_for_restartflag for restart (warmstart) or coldstartflaglogical()in
tmftendency_of_vertically_diffused_tracer_concentrationtendency of the tracers due to vertical diffusion in PBL schemekg kg-1 s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:number_of_vertical_diffusion_tracers)kind_physin
qmicroinstantaneous_tendency_of_specific_humidity_due_to_microphysicsmoisture tendency due to microphysicskg kg-1 s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
itcindex_of_first_chemical_tracer_for_convectionindex of first chemical tracer transported/scavenged by convectionindexinteger()in
ntcnumber_of_chemical_tracersnumber of chemical tracerscountinteger()in
cliqspecific_heat_of_liquid_water_at_constant_pressurespecific heat of liquid water at constant pressureJ kg-1 K-1real()kind_physin
cpspecific_heat_of_dry_air_at_constant_pressurespecific heat of dry air at constant pressureJ kg-1 K-1real()kind_physin
cvapspecific_heat_of_water_vapor_at_constant_pressurespecific heat of water vapor at constant pressureJ kg-1 K-1real()kind_physin
epsratio_of_dry_air_to_water_vapor_gas_constantsrd/rvnonereal()kind_physin
epsm1ratio_of_dry_air_to_water_vapor_gas_constants_minus_one(rd/rv) - 1nonereal()kind_physin
fvratio_of_vapor_to_dry_air_gas_constants_minus_one(rv/rd) - 1 (rv = ideal gas constant for water vapor)nonereal()kind_physin
gravgravitational_accelerationgravitational accelerationm s-2real()kind_physin
hvaplatent_heat_of_vaporization_of_water_at_0clatent heat of evaporation/sublimationJ kg-1real()kind_physin
rdgas_constant_of_dry_airideal gas constant for dry airJ kg-1 K-1real()kind_physin
rvgas_constant_water_vaporideal gas constant for water vaporJ kg-1 K-1real()kind_physin
t0ctemperature_at_zero_celsiustemperature at 0 degree CelsiusKreal()kind_physin
cscalemultiplicative_tuning_parameter_for_convective_cloud_watermultiplicative tuning parameter for convective cloud waternonereal()kind_physin
delttimestep_for_physicsphysics time stepsreal()kind_physin
ntkindex_for_turbulent_kinetic_energy_convective_transport_tracerindex for turbulent kinetic energy in the convectively transported tracer arrayindexinteger()in
ntrnumber_of_tracers_for_samfnumber of tracers for scale-aware mass flux schemescountinteger()in
delpair_pressure_difference_between_midlayerspres(k) - pres(k+1)Pareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
prslpair_pressuremean layer pressurePareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
pspsurface_air_pressuresurface pressurePareal(ccpp_constant_one:horizontal_loop_extent)kind_physin
philgeopotentiallayer geopotentialm2 s-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
tkehvertical_turbulent_kinetic_energy_at_interfacevertical turbulent kinetic energy at model layer interfacesm2 s-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_interface_dimension)kind_physinout
qtrconvective_transportable_tracersarray to contain cloud water and other convective trans. tracerskg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:number_of_tracers_for_convective_transport)kind_physin
dqtrtendency_of_convective_transportable_tracersarray to contain tendencies of cloud water and other convective trans. tracerskg kg-1 s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:number_of_tracers_for_convective_transport)kind_physout
prevsqspecific_humidity_on_previous_timestepspecific_humidity_on_previous_timestepkg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
qphysics_timestep_initial_specific_humiditywater vapor specific humiditykg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
q1specific_humidityvapor specific humiditykg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
t1air_temperatureair temperatureKreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
u1x_windx-direction windm s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
v1y_windy-direction windm s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
ten_ttendency_of_air_temperaturetendency of air temperature calculated by one physics schemeK s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physout
ten_utendency_of_x_windtendency of x wind calculated by one physics schemem s-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physout
ten_vtendency_of_y_windtendency of y wind calculated by one physics schemem s-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physout
ten_qtendency_of_tracer_concentrationtendency of tracer concentration calculated by one physics schemekg kg-1 s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:number_of_tracers)kind_physout
fscavchemical_tracer_scavenging_fractionsarray of aerosol scavenging coefficientsnonereal(ccpp_constant_one:number_of_chemical_tracers)kind_physin
rnlwe_thickness_of_shallow_convective_precipitation_amountshallow convective rainfall amount on physics timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physout
kbotvertical_index_at_cloud_baseindex at cloud baseindexinteger(ccpp_constant_one:horizontal_loop_extent)out
ktopvertical_index_at_cloud_topindex at cloud topindexinteger(ccpp_constant_one:horizontal_loop_extent)out
kcnvflag_deep_convectiondeep convection: 0=no, 1=yesflaginteger(ccpp_constant_one:horizontal_loop_extent)inout
islimsksea_land_ice_masklandmask: sea/land/ice=0/1/2flaginteger(ccpp_constant_one:horizontal_loop_extent)in
gareacell_areagrid cell aream2real(ccpp_constant_one:horizontal_loop_extent)kind_physin
dotlagrangian_tendency_of_air_pressurelayer mean vertical velocityPa s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
ncloudnumber_of_condensate_speciesnumber of cloud condensate typescountinteger()in
hpblatmosphere_boundary_layer_thicknessPBL top heightmreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
ud_mfinstantaneous_atmosphere_updraft_convective_mass_flux(updraft mass flux) * deltkg m-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physout
dt_mfinstantaneous_atmosphere_detrainment_convective_mass_flux(detrainment mass flux) * deltkg m-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physout
cnvwconvective_cloud_water_mixing_ratiomoist convective cloud water mixing ratiokg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physout
cnvcconvective_cloud_coverconvective cloud coverfracreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physout
clamentrainment_rate_coefficient_for_shallow_convectionentrainment rate coefficient for shal conv.nonereal()kind_physin
c0srain_conversion_parameter_for_shallow_convectionconvective rain conversion parameter for shal conv.m-1real()kind_physin
c1detrainment_conversion_parameter_for_shallow_convectionconvective detrainment conversion parameter for shal conv.m-1real()kind_physin
evefrain_evaporation_coefficient_for_convectionconvective rain evaporation coefficient for convectionfracreal()kind_physin
pgconmomentum_transport_reduction_factor_due_to_pressure_gradient_force_for_shallow_convectionreduction factor in momentum transport due to shal conv. induced pressure gradient forcefracreal()kind_physin
asolfacaerosol_aware_multiplicative_rain_conversion_parameter_for_shallow_convectionaerosol-aware parameter inversely proportional to CCN number concentraion from Lim (2011) for shal conv.nonereal()kind_physin
hwrf_samfshalflag_for_hurricane_specific_code_in_scale_aware_mass_flux_shallow_convectionflag for hwrf samfshalcnv schemeflaglogical()in
progsigmado_prognostic_updraft_area_fractionflag for prognostic sigma in cumulus schemeflaglogical()in
progomegado_prognostic_updraft_velocityflag for prognostic omega in cumuls schemeflaglogical()in
sigmainphysics_timestep_initial_updraft_area_fractionconvective updraft area fractionfracreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
sigmaoutupdraft_area_fractionconvective updraft area fractionfracreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
omegainphysics_timestep_initial_updraft_velocityconvective updraft velocityPa s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
omegaoutupdraft_velocityconvective updraft velocity updated by physicsPa s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
betascutuning_param_for_shallow_cutuning param for shallow cu in case prognostic closure is usednonereal()kind_physin
betamcutuning_param_for_midlevel_cutuning param for midlevel cu in case prognostic closure is usednonereal()kind_physin
betadcutuning_param_for_deep_cutuning param for deep cu in case prognostic closure is usednonereal()kind_physin
cat_adj_shaladjustment_for_convective_advection_time_for_shallowadjustment for convective advection time for shallownonereal()kind_physin
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*out
errflgccpp_error_codeerror code for error handling in CCPP1integer()out

GFS samfshalcnv General Algorithm

  1. Compute preliminary quantities needed for the static and feedback control portions of the algorithm.
  2. Perform calculations related to the updraft of the entraining/detraining cloud model ("static control").
  3. The cloud base mass flux is obtained using the cumulus updraft velocity averaged ove the whole cloud depth.
  4. Calculate the tendencies of the state variables (per unit cloud base mass flux) and the cloud base mass flux.
  5. For the "feedback control", calculate updated values of the state variables by multiplying the cloud base mass flux and the tendencies calculated per unit cloud base mass flux from the static control.

GFS samfshalcnv Detailed Algorithm