CCPP Scientific Documentation
v4.1.0
GFS Precipitation Type Diagnostics Module

If dominant precip type is requested (i.e., Zhao-Carr MP scheme), 4 more algorithms in calpreciptype() will be called. the tallies are then summed in calwxt_dominant(). For GFDL cloud MP scheme, determine convective rain/snow by surface temperature; and determine explicit rain/snow by rain/snow coming out directly from MP. More...

Detailed Description

Argument Table

GFS_MP_generic_post_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintentoptional
imhorizontal_loop_extenthorizontal loop extentcountinteger()inFalse
ixhorizontal_dimensionhorizontal dimensioncountinteger()inFalse
levsvertical_dimensionvertical layer dimensioncountinteger()inFalse
kdtindex_of_time_stepcurrent time step indexindexinteger()inFalse
nrcmarray_dimension_of_random_numbersecond dimension of random number stream for RAScountinteger()inFalse
ncldnumber_of_hydrometeorschoice of cloud scheme / number of hydrometeorscountinteger()inFalse
nnclnumber_of_tracers_for_cloud_condensatenumber of tracers for cloud condensatecountinteger()inFalse
ntcwindex_for_liquid_cloud_condensatetracer index for cloud condensate (or liquid water)indexinteger()inFalse
ntracnumber_of_tracersnumber of tracerscountinteger()inFalse
imp_physicsflag_for_microphysics_schemechoice of microphysics schemeflaginteger()inFalse
imp_physics_gfdlflag_for_gfdl_microphysics_schemechoice of GFDL microphysics schemeflaginteger()inFalse
imp_physics_thompsonflag_for_thompson_microphysics_schemechoice of Thompson microphysics schemeflaginteger()inFalse
imp_physics_mgflag_for_morrison_gettelman_microphysics_schemechoice of Morrison-Gettelman microphysics schemeflaginteger()inFalse
cal_preflag_for_precipitation_type_algorithmflag controls precip type algorithmflaglogical()inFalse
lssavflag_diagnosticslogical flag for storing diagnosticsflaglogical()inFalse
ldiag3dflag_diagnostics_3Dflag for 3d diagnostic fieldsflaglogical()inFalse
cplflxflag_for_flux_couplingflag controlling cplflx collection (default off)flaglogical()inFalse
cplchmflag_for_chemistry_couplingflag controlling cplchm collection (default off)flaglogical()inFalse
con_ggravitational_accelerationgravitational accelerationm s-2real()kind_physinFalse
dtftime_step_for_dynamicsdynamics timestepsreal()kind_physinFalse
fraindynamics_to_physics_timestep_ratioratio of dynamics timestep to physics timestepnonereal()kind_physinFalse
rainclwe_thickness_of_convective_precipitation_amount_on_dynamics_timestepconvective rain at this time stepmreal(horizontal_dimension)kind_physinFalse
rain1lwe_thickness_of_explicit_precipitation_amountexplicit rainfall amount on physics timestepmreal(horizontal_dimension)kind_physinFalse
rannrandom_number_arrayrandom number array (0-1)nonereal(horizontal_dimension, array_dimension_of_random_number)kind_physinFalse
xlatlatitudelatituderadiansreal(horizontal_dimension)kind_physinFalse
xlonlongitudelongituderadiansreal(horizontal_dimension)kind_physinFalse
gt0air_temperature_updated_by_physicstemperature updated by physicsKreal(horizontal_dimension, vertical_dimension)kind_physinFalse
gq0tracer_concentration_updated_by_physicstracer concentration updated by physicskg kg-1real(horizontal_dimension, vertical_dimension, number_of_tracers)kind_physinFalse
prslair_pressurelayer mean pressurePareal(horizontal_dimension, vertical_dimension)kind_physinFalse
prsiair_pressure_at_interfacepressure at layer interfacePareal(horizontal_dimension, vertical_dimension_plus_one)kind_physinFalse
phiigeopotential_at_interfacegeopotential at model layer interfacesm2 s-2real(horizontal_dimension, vertical_dimension_plus_one)kind_physinFalse
tsfcsurface_skin_temperaturesurface skin temperatureKreal(horizontal_dimension)kind_physinFalse
icelwe_thickness_of_ice_amount_on_dynamics_timestepice fall at this time stepmreal(horizontal_dimension)kind_physinoutFalse
snowlwe_thickness_of_snow_amount_on_dynamics_timestepsnow fall at this time stepmreal(horizontal_dimension)kind_physinoutFalse
graupellwe_thickness_of_graupel_amount_on_dynamics_timestepgraupel fall at this time stepmreal(horizontal_dimension)kind_physinoutFalse
save_tair_temperature_saveair temperature before entering a physics schemeKreal(horizontal_dimension, vertical_dimension)kind_physinFalse
save_qvwater_vapor_specific_humidity_savewater vapor specific humidity before entering a physics schemekg kg-1real(horizontal_dimension, vertical_dimension)kind_physinFalse
rain0lwe_thickness_of_explicit_rain_amountexplicit rain on physics timestepmreal(horizontal_dimension)kind_physinFalse
ice0lwe_thickness_of_ice_amountice fall on physics timestepmreal(horizontal_dimension)kind_physinFalse
snow0lwe_thickness_of_snow_amountsnow fall on physics timestepmreal(horizontal_dimension)kind_physinFalse
graupel0lwe_thickness_of_graupel_amountgraupel fall on physics timestepmreal(horizontal_dimension)kind_physinFalse
delair_pressure_difference_between_midlayersair pressure difference between midlayersPareal(horizontal_dimension, vertical_dimension)kind_physinFalse
rainlwe_thickness_of_precipitation_amount_on_dynamics_timesteptotal rain at this time stepmreal(horizontal_dimension)kind_physinoutFalse
domr_diagdominant_rain_typedominant rain typenonereal(horizontal_dimension)kind_physinoutFalse
domzr_diagdominant_freezing_rain_typedominant freezing rain typenonereal(horizontal_dimension)kind_physinoutFalse
domip_diagdominant_sleet_typedominant sleet typenonereal(horizontal_dimension)kind_physinoutFalse
doms_diagdominant_snow_typedominant snow typenonereal(horizontal_dimension)kind_physinoutFalse
tprcpnonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timesteptotal precipitation amount in each time stepmreal(horizontal_dimension)kind_physinoutFalse
srflagflag_for_precipitation_typesnow/rain flag for precipitationflagreal(horizontal_dimension)kind_physinoutFalse
srratio_of_snowfall_to_rainfallsnow ratio: ratio of snow to total precipitationfracreal(horizontal_dimension)kind_physinFalse
cnvprcpcumulative_lwe_thickness_of_convective_precipitation_amountcumulative convective precipitationmreal(horizontal_dimension)kind_physinoutFalse
totprcpaccumulated_lwe_thickness_of_precipitation_amountaccumulated total precipitationmreal(horizontal_dimension)kind_physinoutFalse
toticeaccumulated_lwe_thickness_of_ice_amountaccumulated ice precipitationkg m-2real(horizontal_dimension)kind_physinoutFalse
totsnwaccumulated_lwe_thickness_of_snow_amountaccumulated snow precipitationkg m-2real(horizontal_dimension)kind_physinoutFalse
totgrpaccumulated_lwe_thickness_of_graupel_amountaccumulated graupel precipitationkg m-2real(horizontal_dimension)kind_physinoutFalse
cnvprcpbcumulative_lwe_thickness_of_convective_precipitation_amount_in_bucketcumulative convective precipitation in bucketmreal(horizontal_dimension)kind_physinoutFalse
totprcpbaccumulated_lwe_thickness_of_precipitation_amount_in_bucketaccumulated total precipitation in bucketmreal(horizontal_dimension)kind_physinoutFalse
toticebaccumulated_lwe_thickness_of_ice_amount_in_bucketaccumulated ice precipitation in bucketkg m-2real(horizontal_dimension)kind_physinoutFalse
totsnwbaccumulated_lwe_thickness_of_snow_amount_in_bucketaccumulated snow precipitation in bucketkg m-2real(horizontal_dimension)kind_physinoutFalse
totgrpbaccumulated_lwe_thickness_of_graupel_amount_in_bucketaccumulated graupel precipitation in bucketkg m-2real(horizontal_dimension)kind_physinoutFalse
dt3dtcumulative_change_in_temperature_due_to_microphysicscumulative change in temperature due to microphysicsKreal(horizontal_dimension, vertical_dimension)kind_physinoutFalse
dq3dtcumulative_change_in_water_vapor_specific_humidity_due_to_microphysicscumulative change in water vapor specific humidity due to microphysicskg kg-1real(horizontal_dimension, vertical_dimension)kind_physinoutFalse
rain_cpllwe_thickness_of_precipitation_amount_for_couplingtotal rain precipitationmreal(horizontal_dimension)kind_physinoutFalse
rainc_cpllwe_thickness_of_convective_precipitation_amount_for_couplingtotal convective precipitationmreal(horizontal_dimension)kind_physinoutFalse
snow_cpllwe_thickness_of_snow_amount_for_couplingtotal snow precipitationmreal(horizontal_dimension)kind_physinoutFalse
pwatcolumn_precipitable_waterprecipitable waterkg m-2real(horizontal_dimension)kind_physinoutFalse
do_spptflag_for_stochastic_surface_physics_perturbationsflag for stochastic surface physics perturbationsflaglogical()inFalse
dtdtrtendency_of_air_temperature_due_to_radiative_heating_on_physics_time_steptemp. change due to radiative heating per time stepKreal(horizontal_dimension, vertical_dimension)kind_physinoutFalse
dtdtctendency_of_air_temperature_due_to_radiative_heating_assuming_clear_skyclear sky radiative (shortwave + longwave) heating rate at current timeK s-1real(horizontal_dimension, vertical_dimension)kind_physinFalse
drain_cpltendency_of_lwe_thickness_of_precipitation_amount_for_couplingchange in rain_cpl (coupling_type)mreal(horizontal_dimension)kind_physinoutFalse
dsnow_cpltendency_of_lwe_thickness_of_snow_amount_for_couplingchange in show_cpl (coupling_type)mreal(horizontal_dimension)kind_physinoutFalse
lsmflag_for_land_surface_schemeflag for land surface modelflaginteger()inFalse
lsm_rucflag_for_ruc_land_surface_schemeflag for RUC land surface modelflaginteger()inFalse
lsm_noahmpflag_for_noahmp_land_surface_schemeflag for NOAH MP land surface modelflaginteger()inFalse
raincprvlwe_thickness_of_convective_precipitation_amount_from_previous_timestepconvective_precipitation_amount from previous timestepmreal(horizontal_dimension)kind_physinoutFalse
rainncprvlwe_thickness_of_explicit_rainfall_amount_from_previous_timestepexplicit rainfall from previous timestepmreal(horizontal_dimension)kind_physinoutFalse
iceprvlwe_thickness_of_ice_amount_from_previous_timestepice amount from previous timestepmreal(horizontal_dimension)kind_physinoutFalse
snowprvlwe_thickness_of_snow_amount_from_previous_timestepsnow amount from previous timestepmreal(horizontal_dimension)kind_physinoutFalse
graupelprvlwe_thickness_of_graupel_amount_from_previous_timestepgraupel amount from previous timestepmreal(horizontal_dimension)kind_physinoutFalse
draincprvconvective_precipitation_rate_from_previous_timestepconvective precipitation rate from previous timestepmm s-1real(horizontal_dimension)kind_physinoutFalse
drainncprvexplicit_rainfall_rate_from_previous_timestepexplicit rainfall rate previous timestepmm s-1real(horizontal_dimension)kind_physinoutFalse
diceprvice_precipitation_rate_from_previous_timestepice precipitation rate from previous timestepmm s-1real(horizontal_dimension)kind_physinoutFalse
dsnowprvsnow_precipitation_rate_from_previous_timestepsnow precipitation rate from previous timestepmm s-1real(horizontal_dimension)kind_physinoutFalse
dgraupelprvgraupel_precipitation_rate_from_previous_timestepgraupel precipitation rate from previous timestepmm s-1real(horizontal_dimension)kind_physinoutFalse
dtptime_step_for_physicsphysics timestepsreal()kind_physinFalse
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*outFalse
errflgccpp_error_flagerror flag for error handling in CCPPflaginteger()outFalse

GFS MP Generic Post General Algorithm

Functions/Subroutines

subroutine gfs_mp_generic_post::gfs_mp_generic_post_run (im, ix, levs, kdt, nrcm, ncld, nncl, ntcw, ntrac, imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_mg, cal_pre, lssav, ldiag3d, cplflx, cplchm, con_g, dtf, frain, rainc, rain1, rann, xlat, xlon, gt0, gq0, prsl, prsi, phii, tsfc, ice, snow, graupel, save_t, save_qv, rain0, ice0, snow0, graupel0, del, rain, domr_diag, domzr_diag, domip_diag, doms_diag, tprcp, srflag, sr, cnvprcp, totprcp, totice, totsnw, totgrp, cnvprcpb, totprcpb, toticeb, totsnwb, totgrpb, dt3dt, dq3dt, rain_cpl, rainc_cpl, snow_cpl, pwat, do_sppt, dtdtr, dtdtc, drain_cpl, dsnow_cpl, lsm, lsm_ruc, lsm_noahmp, raincprv, rainncprv, iceprv, snowprv, graupelprv, draincprv, drainncprv, diceprv, dsnowprv, dgraupelprv, dtp, errmsg, errflg)
 
subroutine calwxt (lm, lp1, t, q, pmid, pint, d608, rog, epsq, zint, iwx, twet)
 This subroutine computes precipitation type using a decision tree approach that uses variables such as integrated wet bulb temperatue below freezing and lowest layer temperature (Baldwin et al. 1994 [12]) More...
 
subroutine calpreciptype (kdt, nrcm, im, ix, lm, lp1, randomno, xlat, xlon, gt0, gq0, prsl, prsi, prec, phii, tskin, domr, domzr, domip, doms)
 Foure algorithms are called to calculate dominant precipitation type, and the tallies are sumed in calwxt_dominant(). More...
 
subroutine calwxt_ramer (lm, lp1, t, q, pmid, rh, td, pint, ptyp)
 This subroutine is written and provided by Jim Ramer at NOAA/ESRL (Ramer (1993) [146]). More...
 
subroutine calwxt_bourg (lm, lp1, rn, g, t, q, pmid, pint, zint, ptype)
 this routine computes precipitation type using a decision tree approach that uses the so-called "energy method" of Bourgouin(2000) [26]. More...
 
subroutine calwxt_revised (lm, lp1, t, q, pmid, pint, d608, rog, epsq, zint, twet, iwx)
 This subroutine computes precipitation type using a decision tree approach that uses variables such as integrated wet bulb temperature below freezing and lowest layer temperature (Baldwin et al.1994 [12]). Since the original version of the algorithm has a high bias for freezing rain and sleet, the revised version is to balance that bias with a version more likely to predict snow. More...
 
subroutine calwxt_dominant (nalg, rain, freezr, sleet, snow, domr, domzr, domip, doms)
 This subroutine takes the precipitation type solutions from different algorithms and sums them up to give a dominant type. More...
 
real function xmytw (t, td, p)
 Foure algorithms are called to calculate dominant precipitation type, and the tallies are sumed in calwxt_dominant(). More...