CCPP Scientific Documentation
v5.0.0
subroutine gfs_mp_generic_post::gfs_mp_generic_post_run ( integer, intent(in)  im,
integer, intent(in)  levs,
integer, intent(in)  kdt,
integer, intent(in)  nrcm,
integer, intent(in)  ncld,
integer, intent(in)  nncl,
integer, intent(in)  ntcw,
integer, intent(in)  ntrac,
integer, intent(in)  imp_physics,
integer, intent(in)  imp_physics_gfdl,
integer, intent(in)  imp_physics_thompson,
integer, intent(in)  imp_physics_mg,
integer, intent(in)  imp_physics_fer_hires,
logical, intent(in)  cal_pre,
logical, intent(in)  lssav,
logical, intent(in)  ldiag3d,
logical, intent(in)  qdiag3d,
logical, intent(in)  cplflx,
logical, intent(in)  cplchm,
real(kind=kind_phys), intent(in)  con_g,
real(kind=kind_phys), intent(in)  dtf,
real(kind=kind_phys), intent(in)  frain,
real(kind=kind_phys), dimension(im), intent(inout)  rainc,
real(kind=kind_phys), dimension(im), intent(in)  rain1,
real(kind=kind_phys), dimension(im,nrcm), intent(in)  rann,
real(kind=kind_phys), dimension(im), intent(in)  xlat,
real(kind=kind_phys), dimension(im), intent(in)  xlon,
real(kind=kind_phys), dimension(im,levs), intent(in)  gt0,
real(kind=kind_phys), dimension(im,levs,ntrac), intent(in)  gq0,
real(kind=kind_phys), dimension(im,levs), intent(in)  prsl,
real(kind=kind_phys), dimension(im,levs+1), intent(in)  prsi,
real(kind=kind_phys), dimension(im,levs+1), intent(in)  phii,
real(kind=kind_phys), dimension(im), intent(in)  tsfc,
real(kind=kind_phys), dimension(im), intent(inout)  ice,
real(kind=kind_phys), dimension(im), intent(inout)  snow,
real(kind=kind_phys), dimension(im), intent(inout)  graupel,
real(kind=kind_phys), dimension(im,levs), intent(in)  save_t,
real(kind=kind_phys), dimension(im,levs), intent(in)  save_qv,
real(kind=kind_phys), dimension(:), intent(in)  rain0,
real(kind=kind_phys), dimension(:), intent(in)  ice0,
real(kind=kind_phys), dimension(:), intent(in)  snow0,
real(kind=kind_phys), dimension(:), intent(in)  graupel0,
real(kind=kind_phys), dimension(im,levs), intent(in)  del,
real(kind=kind_phys), dimension(im), intent(inout)  rain,
real(kind=kind_phys), dimension(im), intent(inout)  domr_diag,
real(kind=kind_phys), dimension(im), intent(inout)  domzr_diag,
real(kind=kind_phys), dimension(im), intent(inout)  domip_diag,
real(kind=kind_phys), dimension(im), intent(inout)  doms_diag,
real(kind=kind_phys), dimension(im), intent(inout)  tprcp,
real(kind=kind_phys), dimension(im), intent(inout)  srflag,
real(kind=kind_phys), dimension(im), intent(in)  sr,
real(kind=kind_phys), dimension(im), intent(inout)  cnvprcp,
real(kind=kind_phys), dimension(im), intent(inout)  totprcp,
real(kind=kind_phys), dimension(im), intent(inout)  totice,
real(kind=kind_phys), dimension(im), intent(inout)  totsnw,
real(kind=kind_phys), dimension(im), intent(inout)  totgrp,
real(kind=kind_phys), dimension(im), intent(inout)  cnvprcpb,
real(kind=kind_phys), dimension(im), intent(inout)  totprcpb,
real(kind=kind_phys), dimension(im), intent(inout)  toticeb,
real(kind=kind_phys), dimension(im), intent(inout)  totsnwb,
real(kind=kind_phys), dimension(im), intent(inout)  totgrpb,
real(kind=kind_phys), dimension(:,:), intent(inout)  dt3dt,
real(kind=kind_phys), dimension(:,:), intent(inout)  dq3dt,
real(kind=kind_phys), dimension(:), intent(inout)  rain_cpl,
real(kind=kind_phys), dimension(:), intent(inout)  rainc_cpl,
real(kind=kind_phys), dimension(:), intent(inout)  snow_cpl,
real(kind=kind_phys), dimension(im), intent(inout)  pwat,
logical, intent(in)  do_sppt,
logical, intent(in)  ca_global,
real(kind=kind_phys), dimension(:,:), intent(inout)  dtdtr,
real(kind=kind_phys), dimension(:,:), intent(in)  dtdtc,
real(kind=kind_phys), dimension(:), intent(inout)  drain_cpl,
real(kind=kind_phys), dimension(:), intent(inout)  dsnow_cpl,
integer, intent(in)  lsm,
integer, intent(in)  lsm_ruc,
integer, intent(in)  lsm_noahmp,
real(kind=kind_phys), dimension(:), intent(inout)  raincprv,
real(kind=kind_phys), dimension(:), intent(inout)  rainncprv,
real(kind=kind_phys), dimension(:), intent(inout)  iceprv,
real(kind=kind_phys), dimension(:), intent(inout)  snowprv,
real(kind=kind_phys), dimension(:), intent(inout)  graupelprv,
real(kind=kind_phys), dimension(:), intent(inout)  draincprv,
real(kind=kind_phys), dimension(:), intent(inout)  drainncprv,
real(kind=kind_phys), dimension(:), intent(inout)  diceprv,
real(kind=kind_phys), dimension(:), intent(inout)  dsnowprv,
real(kind=kind_phys), dimension(:), intent(inout)  dgraupelprv,
real(kind=kind_phys), intent(in)  dtp,
character(len=*), intent(out)  errmsg,
integer, intent(out)  errflg 
)

Argument Table

GFS_MP_generic_post_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintentoptional
imhorizontal_loop_extenthorizontal loop extentcountinteger()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
imp_physics_fer_hiresflag_for_fer_hires_microphysics_schemechoice of Ferrier-Aligo 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
qdiag3dflag_tracer_diagnostics_3Dlogical flag for 3D tracer diagnosticsflaglogical()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
xlatlatitudelatituderadianreal(horizontal_dimension)kind_physinFalse
xlonlongitudelongituderadianreal(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
ca_globalflag_for_global_cellular_automataswitch for global caflaglogical()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

  • If requested (e.g. Zhao-Carr MP scheme), call calpreciptype() to calculate dominant precipitation type.
  • For GFDL and Thompson MP scheme, determine convective snow by surface temperature; and determine explicit rain/snow by snow/ice/graupel coming out directly from MP and convective rainfall from the cumulus scheme if the surface temperature is below \(0^oC\).

References calpreciptype().

Here is the call graph for this function: