CCPP Scientific Documentation
v5.0.0
GFS Scale-Aware Mass-Flux Shallow Convection Scheme Module

This subroutine contains the entirety of the SAMF shallow convection scheme. More...

Detailed Description

This routine follows the GFS Scale-Aware Mass-Flux Deep Convection Scheme 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.

Argument Table

samfshalcnv_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintentoptional
imhorizontal_loop_extenthorizontal loop extentcountinteger()inFalse
kmvertical_dimensionvertical layer dimensioncountinteger()inFalse
itcnumber_of_aerosol_tracers_for_convectionnumber of aerosol tracers transported/scavenged by convectioncountinteger()inFalse
ntcnumber_of_chemical_tracersnumber of chemical tracerscountinteger()inFalse
cliqspecific_heat_of_liquid_water_at_constant_pressurespecific heat of liquid water at constant pressureJ kg-1 K-1real()kind_physinFalse
cpspecific_heat_of_dry_air_at_constant_pressurespecific heat of dry air at constant pressureJ kg-1 K-1real()kind_physinFalse
cvapspecific_heat_of_water_vapor_at_constant_pressurespecific heat of water vapor at constant pressureJ kg-1 K-1real()kind_physinFalse
epsratio_of_dry_air_to_water_vapor_gas_constantsrd/rvnonereal()kind_physinFalse
epsm1ratio_of_dry_air_to_water_vapor_gas_constants_minus_one(rd/rv) - 1nonereal()kind_physinFalse
fvratio_of_vapor_to_dry_air_gas_constants_minus_one(rv/rd) - 1 (rv = ideal gas constant for water vapor)nonereal()kind_physinFalse
gravgravitational_accelerationgravitational accelerationm s-2real()kind_physinFalse
hvaplatent_heat_of_vaporization_of_water_at_0Clatent heat of evaporation/sublimationJ kg-1real()kind_physinFalse
rdgas_constant_dry_airideal gas constant for dry airJ kg-1 K-1real()kind_physinFalse
rvgas_constant_water_vaporideal gas constant for water vaporJ kg-1 K-1real()kind_physinFalse
t0ctemperature_at_zero_celsiustemperature at 0 degree CelsiusKreal()kind_physinFalse
delttime_step_for_physicsphysics time stepsreal()kind_physinFalse
ntkindex_for_turbulent_kinetic_energy_convective_transport_tracerindex for turbulent kinetic energy in the convectively transported tracer arrayindexinteger()inFalse
ntrnumber_of_tracers_for_samfnumber of tracers for scale-aware mass flux schemescountinteger()inFalse
delpair_pressure_difference_between_midlayerspres(k) - pres(k+1)Pareal(horizontal_dimension, vertical_dimension)kind_physinFalse
prslpair_pressuremean layer pressurePareal(horizontal_dimension, vertical_dimension)kind_physinFalse
pspsurface_air_pressuresurface pressurePareal(horizontal_dimension)kind_physinFalse
philgeopotentiallayer geopotentialm2 s-2real(horizontal_dimension, vertical_dimension)kind_physinFalse
qtrconvective_transportable_tracersarray to contain cloud water and other convective trans. tracerskg kg-1real(horizontal_dimension, vertical_dimension, number_of_tracers_for_convective_transport)kind_physinoutFalse
q1water_vapor_specific_humidity_updated_by_physicsupdated vapor specific humiditykg kg-1real(horizontal_dimension, vertical_dimension)kind_physinoutFalse
t1air_temperature_updated_by_physicsupdated temperatureKreal(horizontal_dimension, vertical_dimension)kind_physinoutFalse
u1x_wind_updated_by_physicsupdated x-direction windm s-1real(horizontal_dimension, vertical_dimension)kind_physinoutFalse
v1y_wind_updated_by_physicsupdated y-direction windm s-1real(horizontal_dimension, vertical_dimension)kind_physinoutFalse
fscavcoefficients_for_aerosol_scavengingarray of aerosol scavenging coefficientsnonereal(number_of_chemical_tracers)kind_physinFalse
rnlwe_thickness_of_shallow_convective_precipitation_amountshallow convective rainfall amount on physics timestepmreal(horizontal_dimension)kind_physoutFalse
kbotvertical_index_at_cloud_baseindex at cloud baseindexinteger(horizontal_dimension)outFalse
ktopvertical_index_at_cloud_topindex at cloud topindexinteger(horizontal_dimension)outFalse
kcnvflag_deep_convectiondeep convection: 0=no, 1=yesflaginteger(horizontal_dimension)inoutFalse
islimsksea_land_ice_masklandmask: sea/land/ice=0/1/2flaginteger(horizontal_dimension)inFalse
gareacell_areagrid cell aream2real(horizontal_dimension)kind_physinFalse
dotomegalayer mean vertical velocityPa s-1real(horizontal_dimension, vertical_dimension)kind_physinFalse
ncloudnumber_of_hydrometeorsnumber of hydrometeorscountinteger()inFalse
hpblatmosphere_boundary_layer_thicknessPBL top heightmreal(horizontal_dimension)kind_physinFalse
ud_mfinstantaneous_atmosphere_updraft_convective_mass_flux(updraft mass flux) * deltkg m-2real(horizontal_dimension, vertical_dimension)kind_physoutFalse
dt_mfinstantaneous_atmosphere_detrainment_convective_mass_flux(detrainment mass flux) * deltkg m-2real(horizontal_dimension, vertical_dimension)kind_physoutFalse
cnvwconvective_cloud_water_mixing_ratiomoist convective cloud water mixing ratiokg kg-1real(horizontal_dimension, vertical_dimension)kind_physoutFalse
cnvcconvective_cloud_coverconvective cloud coverfracreal(horizontal_dimension, vertical_dimension)kind_physoutFalse
clamentrainment_rate_coefficient_shallow_convectionentrainment rate coefficient for shal conv.nonereal()kind_physinFalse
c0srain_conversion_parameter_shallow_convectionconvective rain conversion parameter for shal conv.m-1real()kind_physinFalse
c1detrainment_conversion_parameter_shallow_convectionconvective detrainment conversion parameter for shal conv.m-1real()kind_physinFalse
pgconmomentum_transport_reduction_factor_pgf_shallow_convectionreduction factor in momentum transport due to shal conv. induced pressure gradient forcefracreal()kind_physinFalse
asolfacaerosol_aware_parameter_shallow_convectionaerosol-aware parameter inversely proportional to CCN number concentraion from Lim (2011) for shal conv.nonereal()kind_physinFalse
hwrf_samfshalflag_for_hwrf_samfshalcnv_schemeflag for hwrf samfshalcnv schemeflaglogical()inFalse
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*outFalse
errflgccpp_error_flagerror flag for error handling in CCPPflaginteger()outFalse

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

Functions/Subroutines

subroutine samfshalcnv::samfshalcnv_run (im, km, itc, ntc, cliq, cp, cvap, eps, epsm1, fv, grav, hvap, rd, rv, t0c, delt, ntk, ntr, delp, prslp, psp, phil, qtr, q1, t1, u1, v1, fscav, rn, kbot, ktop, kcnv, islimsk, garea, dot, ncloud, hpbl, ud_mf, dt_mf, cnvw, cnvc, clam, c0s, c1, pgcon, asolfac, hwrf_samfshal, errmsg, errflg)