CCPP SciDoc  v6.0.0
Common Community Physics Package Developed at DTC
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...

Functions/Subroutines

subroutine gfs_mp_generic_post::gfs_mp_generic_post_run (im, levs, kdt, nrcm, nncl, ntcw, ntrac, imp_physics, imp_physics_gfdl, imp_physics_thompson, imp_physics_nssl, imp_physics_mg, imp_physics_fer_hires, cal_pre, cplflx, cplchm, con_g, rainmin, dtf, frain, rainc, rain1, rann, xlat, xlon, gt0, gq0, prsl, prsi, phii, tsfc, ice, snow, graupel, save_t, save_q, 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, rain_cpl, rainc_cpl, snow_cpl, pwat, drain_cpl, dsnow_cpl, lsm, lsm_ruc, lsm_noahmp, raincprv, rainncprv, iceprv, snowprv, graupelprv, draincprv, drainncprv, diceprv, dsnowprv, dgraupelprv, dtp, dfi_radar_max_intervals, dtend, dtidx, index_of_temperature, index_of_process_mp, ldiag3d, qdiag3d, lssav, num_dfi_radar, fh_dfi_radar, index_of_process_dfi_radar, ix_dfi_radar, dfi_radar_tten, radar_tten_limits, fhour, errmsg, errflg)
 
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 (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 [11]) 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) [159]). 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) [28]. 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 [11]). 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...
 

Detailed Description

Argument Table

GFS_MP_generic_post_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintent
imhorizontal_loop_extenthorizontal loop extentcountinteger()in
levsvertical_layer_dimensionvertical layer dimensioncountinteger()in
kdtindex_of_timestepcurrent time step indexindexinteger()in
rainminlwe_thickness_of_minimum_rain_amountminimum rain amountmreal()kind_physin
nrcmnumber_of_random_numberssecond dimension of random number stream for RAScountinteger()in
nnclnumber_of_condensate_speciesnumber of cloud condensate typescountinteger()in
ntcwindex_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_arraytracer index for cloud condensate (or liquid water)indexinteger()in
ntracnumber_of_tracersnumber of tracerscountinteger()in
imp_physicscontrol_for_microphysics_schemechoice of microphysics schemeflaginteger()in
imp_physics_gfdlidentifier_for_gfdl_microphysics_schemechoice of GFDL microphysics schemeflaginteger()in
imp_physics_thompsonidentifier_for_thompson_microphysics_schemechoice of Thompson microphysics schemeflaginteger()in
imp_physics_mgidentifier_for_morrison_gettelman_microphysics_schemechoice of Morrison-Gettelman microphysics schemeflaginteger()in
imp_physics_fer_hiresidentifier_for_fer_hires_microphysics_schemechoice of Ferrier-Aligo microphysics schemeflaginteger()in
imp_physics_nsslidentifier_for_nssl_microphysics_schemechoice of NSSL 2-moment microphysics schemeflaginteger()in
cal_preflag_for_dominant_precipitation_type_partitionflag controls precip type algorithmflaglogical()in
cplflxflag_for_surface_flux_couplingflag controlling cplflx collection (default off)flaglogical()in
cplchmflag_for_chemistry_couplingflag controlling cplchm collection (default off)flaglogical()in
con_ggravitational_accelerationgravitational accelerationm s-2real()kind_physin
dtftimestep_for_dynamicsdynamics timestepsreal()kind_physin
fraindynamics_to_physics_timestep_ratioratio of dynamics timestep to physics timestepnonereal()kind_physin
rainclwe_thickness_of_convective_precipitation_amount_on_dynamics_timestepconvective rain at this time stepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
rain1lwe_thickness_of_explicit_precipitation_amountexplicit rainfall amount on physics timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
rannrandom_numberrandom number array (0-1)nonereal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:number_of_random_numbers)kind_physin
xlatlatitudelatituderadianreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
xlonlongitudelongituderadianreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
gt0air_temperature_of_new_statetemperature updated by physicsKreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
gq0tracer_concentration_of_new_statetracer concentration updated by physicskg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:number_of_tracers)kind_physin
prslair_pressurelayer mean pressurePareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
prsiair_pressure_at_interfacepressure at layer interfacePareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_interface_dimension)kind_physin
phiigeopotential_at_interfacegeopotential at model layer interfacesm2 s-2real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_interface_dimension)kind_physin
tsfcsurface_skin_temperaturesurface skin temperatureKreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
icelwe_thickness_of_ice_amount_on_dynamics_timestepice fall at this time stepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
snowlwe_thickness_of_snow_amount_on_dynamics_timestepsnow fall at this time stepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
graupellwe_thickness_of_graupel_amount_on_dynamics_timestepgraupel fall at this time stepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
save_tair_temperature_saveair temperature before entering a physics schemeKreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
save_qtracer_concentration_savetracer concentration before entering a physics schemekg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:number_of_tracers)kind_physinout
rain0lwe_thickness_of_explicit_rain_amountexplicit rain on physics timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
ice0lwe_thickness_of_ice_amountice fall on physics timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
snow0lwe_thickness_of_snow_amountsnow fall on physics timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
graupel0lwe_thickness_of_graupel_amountgraupel fall on physics timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
delair_pressure_difference_between_midlayersair pressure difference between midlayersPareal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
rainlwe_thickness_of_precipitation_amount_on_dynamics_timesteptotal rain at this time stepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
domr_diagdominant_rain_typedominant rain typenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
domzr_diagdominant_freezing_rain_typedominant freezing rain typenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
domip_diagdominant_sleet_typedominant sleet typenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
doms_diagdominant_snow_typedominant snow typenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
tprcpnonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timesteptotal precipitation amount in each time stepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
srflagprecipitation_typesnow/rain flag for precipitationflagreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
srratio_of_snowfall_to_rainfallsnow ratio: ratio of snow to total precipitationfracreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
cnvprcpcumulative_lwe_thickness_of_convective_precipitation_amountcumulative convective precipitationmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
totprcpaccumulated_lwe_thickness_of_precipitation_amountaccumulated total precipitationmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
toticeaccumulated_lwe_thickness_of_ice_amountaccumulated ice precipitationkg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
totsnwaccumulated_lwe_thickness_of_snow_amountaccumulated snow precipitationkg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
totgrpaccumulated_lwe_thickness_of_graupel_amountaccumulated graupel precipitationkg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
cnvprcpbcumulative_lwe_thickness_of_convective_precipitation_amount_in_bucketcumulative convective precipitation in bucketmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
totprcpbaccumulated_lwe_thickness_of_precipitation_amount_in_bucketaccumulated total precipitation in bucketmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
toticebaccumulated_lwe_thickness_of_ice_amount_in_bucketaccumulated ice precipitation in bucketkg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
totsnwbaccumulated_lwe_thickness_of_snow_amount_in_bucketaccumulated snow precipitation in bucketkg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
totgrpbaccumulated_lwe_thickness_of_graupel_amount_in_bucketaccumulated graupel precipitation in bucketkg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
rain_cplcumulative_lwe_thickness_of_precipitation_amount_for_couplingtotal rain precipitationmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
rainc_cplcumulative_lwe_thickness_of_convective_precipitation_amount_for_couplingtotal convective precipitationmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
snow_cplcumulative_lwe_thickness_of_snow_amount_for_couplingtotal snow precipitationmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
pwatcolumn_precipitable_waterprecipitable waterkg m-2real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
drain_cpltendency_of_lwe_thickness_of_rain_amount_on_dynamics_timestep_for_couplingchange in rain_cpl (coupling_type)mreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
dsnow_cpltendency_of_lwe_thickness_of_snowfall_amount_on_dynamics_timestep_for_couplingchange in show_cpl (coupling_type)mreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
lsmcontrol_for_land_surface_schemeflag for land surface modelflaginteger()in
lsm_rucidentifier_for_ruc_land_surface_schemeflag for RUC land surface modelflaginteger()in
lsm_noahmpidentifier_for_noahmp_land_surface_schemeflag for NOAH MP land surface modelflaginteger()in
raincprvlwe_thickness_of_convective_precipitation_amount_on_previous_timestepconvective_precipitation_amount from previous timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
rainncprvlwe_thickness_of_explicit_precipitation_amount_on_previous_timestepexplicit rainfall from previous timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
iceprvlwe_thickness_of_ice_precipitation_amount_on_previous_timestepice amount from previous timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
snowprvsnow_mass_on_previous_timestepsnow amount from previous timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
graupelprvlwe_thickness_of_graupel_amount_on_previous_timestepgraupel amount from previous timestepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
draincprvconvective_precipitation_rate_on_previous_timestepconvective precipitation rate from previous timestepmm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
drainncprvexplicit_precipitation_rate_on_previous_timestepexplicit rainfall rate previous timestepmm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
diceprvice_precipitation_rate_on_previous_timestepice precipitation rate from previous timestepmm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
dsnowprvsnowfall_rate_on_previous_timestepsnow precipitation rate from previous timestepmm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
dgraupelprvgraupel_precipitation_rate_on_previous_timestepgraupel precipitation rate from previous timestepmm s-1real(ccpp_constant_one:horizontal_loop_extent)kind_physinout
dtptimestep_for_physicsphysics timestepsreal()kind_physin
dfi_radar_max_intervalsmaximum_number_of_radar_derived_temperature_or_convection_suppression_intervalsmaximum allowed number of time ranges with radar-derived microphysics temperature tendencies or radar-derived convection suppressioncountinteger()in
num_dfi_radarnumber_of_radar_derived_temperature_or_convection_suppression_intervalsnumber of time ranges with radar-derived microphysics temperature tendencies or radar-derived convection suppressioncountinteger()in
fh_dfi_radarforecast_lead_times_bounding_radar_derived_temperature_or_convection_suppression_intervalsforecast lead times bounding radar derived temperature or convection suppression intervalshreal(ccpp_constant_one:maximum_number_of_radar_derived_temperature_or_convection_suppression_intervals_plus_one)kind_physin
ix_dfi_radarindices_with_radar_derived_temperature_or_convection_suppression_dataindices with radar derived temperature or convection suppression dataindexinteger(ccpp_constant_one:maximum_number_of_radar_derived_temperature_or_convection_suppression_intervals)in
dfi_radar_ttenradar_derived_microphysics_temperature_tendencyradar-derived microphysics temperature tendencyK s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:number_of_radar_derived_temperature_or_convection_suppression_intervals)kind_physin
fhourforecast_timecurrent forecast timehreal()kind_physin
radar_tten_limitsallowed_bounds_of_radar_prescribed_tendenciesallowed bounds of prescribed microphysics temperature tendenciesK s-1real(ccpp_constant_one:2)kind_physin
index_of_process_dfi_radarindex_of_radar_derived_microphysics_temperature_forcing_in_cumulative_change_indexindex of radar-derived microphysics temperature forcing in second dimension of array cumulative change indexindexinteger()in
dtendcumulative_change_of_state_variablesdiagnostic tendencies for state variablesmixedreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension, ccpp_constant_one:cumulative_change_of_state_variables_outer_index_max)kind_physinout
dtidxcumulative_change_of_state_variables_outer_indexindex of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_indexindexinteger(ccpp_constant_one:number_of_tracers_plus_one_hundred, ccpp_constant_one:number_of_cumulative_change_processes)in
index_of_temperatureindex_of_temperature_in_cumulative_change_indexindex of temperature in first dimension of array cumulative change indexindexinteger()in
index_of_process_mpindex_of_microphysics_process_process_in_cumulative_change_indexindex of microphysics transport process in second dimension of array cumulative change indexindexinteger()in
ldiag3dflag_for_diagnostics_3dflag for 3d diagnostic fieldsflaglogical()in
qdiag3dflag_for_tracer_diagnostics_3dlogical flag for 3D tracer diagnosticsflaglogical()in
lssavflag_for_diagnosticslogical flag for storing diagnosticsflaglogical()in
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*out
errflgccpp_error_codeerror code for error handling in CCPP1integer()out

GFS MP Generic Post General Algorithm