CCPP SciDoc  v6.0.0
Common Community Physics Package Developed at DTC

◆ gfs_stochastics_run()

subroutine gfs_stochastics::gfs_stochastics_run ( integer, intent(in)  im,
integer, intent(in)  km,
integer, intent(in)  kdt,
real(kind_phys), intent(in)  delt,
logical, intent(in)  do_sppt,
logical, intent(in)  pert_mp,
logical, intent(in)  use_zmtnblck,
logical, intent(in)  do_shum,
logical, intent(in)  do_skeb,
logical, intent(in)  do_ca,
logical, intent(in)  ca_global,
real(kind_phys), dimension(:), intent(in)  ca1,
real(kind_phys), dimension(:), intent(in)  vfact_ca,
real(kind_phys), dimension(:), intent(in)  zmtnblck,
real(kind_phys), dimension(:,:), intent(inout)  sppt_wts,
real(kind_phys), dimension(:,:), intent(in)  skebu_wts,
real(kind_phys), dimension(:,:), intent(in)  skebv_wts,
real(kind_phys), dimension(:,:), intent(in)  shum_wts,
real(kind_phys), dimension(:,:), intent(in)  diss_est,
real(kind_phys), dimension(:,:), intent(in)  ugrs,
real(kind_phys), dimension(:,:), intent(in)  vgrs,
real(kind_phys), dimension(:,:), intent(in)  tgrs,
real(kind_phys), dimension(:,:), intent(in)  qgrs_wv,
real(kind_phys), dimension(:,:), intent(in)  qgrs_cw,
real(kind_phys), dimension(:,:), intent(in)  qgrs_rw,
real(kind_phys), dimension(:,:), intent(in)  qgrs_sw,
real(kind_phys), dimension(:,:), intent(in)  qgrs_iw,
real(kind_phys), dimension(:,:), intent(in)  qgrs_gl,
real(kind_phys), dimension(:,:), intent(inout)  gu0,
real(kind_phys), dimension(:,:), intent(inout)  gv0,
real(kind_phys), dimension(:,:), intent(inout)  gt0,
real(kind_phys), dimension(:,:), intent(inout)  gq0_wv,
real(kind_phys), dimension(:,:), intent(inout)  dtdtnp,
real(kind_phys), dimension(:,:), intent(inout)  gq0_cw,
real(kind_phys), dimension(:,:), intent(inout)  gq0_rw,
real(kind_phys), dimension(:,:), intent(inout)  gq0_sw,
real(kind_phys), dimension(:,:), intent(inout)  gq0_iw,
real(kind_phys), dimension(:,:), intent(inout)  gq0_gl,
real(kind_phys), dimension(:), intent(in)  rain,
real(kind_phys), dimension(:), intent(in)  rainc,
real(kind_phys), dimension(:), intent(inout)  tprcp,
real(kind_phys), dimension(:), intent(inout)  totprcp,
real(kind_phys), dimension(:), intent(inout)  cnvprcp,
real(kind_phys), dimension(:), intent(inout)  totprcpb,
real(kind_phys), dimension(:), intent(inout)  cnvprcpb,
logical, intent(in)  cplflx,
real(kind_phys), dimension(:), intent(inout)  rain_cpl,
real(kind_phys), dimension(:), intent(inout)  snow_cpl,
real(kind_phys), dimension(:), intent(in)  drain_cpl,
real(kind_phys), dimension(:), intent(in)  dsnow_cpl,
integer, intent(in)  ntcw,
integer, intent(in)  ntrw,
integer, intent(in)  ntsw,
integer, intent(in)  ntiw,
integer, intent(in)  ntgl,
character(len=*), intent(out)  errmsg,
integer, intent(out)  errflg 
)

Argument Table

GFS_stochastics_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintent
imhorizontal_loop_extenthorizontal loop extentcountinteger()in
kmvertical_layer_dimensionnumber of vertical levelscountinteger()in
kdtindex_of_timestepcurrent forecast iterationindexinteger()in
delttimestep_for_physicsphysics timestepsreal()kind_physin
do_spptflag_for_stochastic_physics_perturbationsflag for stochastic physics perturbationsflaglogical()in
pert_mpflag_for_stochastic_microphysics_perturbationsflag for stochastic microphysics physics perturbationsflaglogical()in
use_zmtnblckflag_for_mountain_blocking_for_spptflag for mountain blockingflaglogical()in
do_shumflag_for_stochastic_shum_optionflag for stochastic shum optionflaglogical()in
do_skebflag_for_stochastic_skeb_optionflag for stochastic skeb optionflaglogical()in
do_caflag_for_cellular_automatacellular automata main switchflaglogical()in
ca_globalflag_for_global_cellular_automataswitch for global caflaglogical()in
ca1cellular_automata_global_pattern_from_coupled_processcellular automata global patternflagreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
vfact_cacellular_automata_vertical_weightvertical weight for cafracreal(ccpp_constant_one:vertical_layer_dimension)kind_physin
zmtnblcklevel_of_dividing_streamlinelevel of the dividing streamlinenonereal(ccpp_constant_one:horizontal_loop_extent)kind_physin
sppt_wtssppt_weights_from_coupled_processweights for stochastic sppt perturbationnonereal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
skebu_wtsskeb_x_wind_weights_from_coupled_processweights for stochastic skeb perturbation of x windnonereal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
skebv_wtsskeb_y_wind_weights_from_coupled_processweights for stochastic skeb perturbation of y windnonereal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
shum_wtsshum_weights_from_coupled_processweights for stochastic shum perturbationnonereal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
diss_estdissipation_estimate_of_air_temperature_at_model_layersdissipation estimate model layer mean temperatureKreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
ugrsx_windzonal windm s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
vgrsy_windmeridional windm s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
tgrsair_temperaturemodel layer mean temperatureKreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
qgrs_wvspecific_humiditywater vapor specific humiditykg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
qgrs_cwcloud_liquid_water_mixing_ratioratio of mass of cloud water to mass of dry air plus vapor (without condensates)kg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
qgrs_rwrain_mixing_ratiomoist mixing ratio of rainkg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
qgrs_swsnow_mixing_ratiomoist mixing ratio of snowkg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
qgrs_iwcloud_ice_mixing_ratiomoist mixing ratio of cloud icekg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
qgrs_glgraupel_mixing_ratiomoist ratio of mass of graupel to mass of dry air plus vapor (without condensates)kg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physin
gu0x_wind_of_new_statezonal wind updated by physicsm s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
gv0y_wind_of_new_statemeridional wind updated by physicsm s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
gt0air_temperature_of_new_statetemperature updated by physicsKreal(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
gq0_wvspecific_humidity_of_new_statewater vapor specific humidity updated by physicskg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
dtdtnptendency_of_air_temperature_to_withold_from_sppttemp. change from physics that should not be perturbed by spptK s-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
gq0_cwcloud_liquid_water_mixing_ratio_of_new_statecloud condensed water mixing ratio updated by physicskg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
gq0_rwrain_mixing_ratio_of_new_statemoist mixing ratio of rain updated by physicskg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
gq0_swsnow_mixing_ratio_of_new_statemoist mixing ratio of snow updated by physicskg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
gq0_iwcloud_ice_mixing_ratio_of_new_statemoist mixing ratio of cloud ice updated by physicskg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
gq0_glgraupel_mixing_ratio_of_new_statemoist ratio of mass of graupel to mass of dry air plus vapor (without condensates) updated by physicskg kg-1real(ccpp_constant_one:horizontal_loop_extent, ccpp_constant_one:vertical_layer_dimension)kind_physinout
rainlwe_thickness_of_precipitation_amount_on_dynamics_timesteptotal rain at this time stepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
rainclwe_thickness_of_convective_precipitation_amount_on_dynamics_timestepconvective rain at this time stepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physin
tprcpnonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timesteptotal precipitation amount in each time stepmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
totprcpaccumulated_lwe_thickness_of_precipitation_amountaccumulated total precipitationmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
cnvprcpcumulative_lwe_thickness_of_convective_precipitation_amountcumulative convective precipitationmreal(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
cnvprcpbcumulative_lwe_thickness_of_convective_precipitation_amount_in_bucketcumulative convective precipitation in bucketmreal(ccpp_constant_one:horizontal_loop_extent)kind_physinout
cplflxflag_for_surface_flux_couplingflag controlling cplflx collection (default off)flaglogical()in
rain_cplcumulative_lwe_thickness_of_precipitation_amount_for_couplingtotal rain 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
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_physin
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_physin
ntcwindex_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_arraytracer index for cloud condensate (or liquid water)indexinteger()in
ntrwindex_of_rain_mixing_ratio_in_tracer_concentration_arraytracer index for rain waterindexinteger()in
ntswindex_of_snow_mixing_ratio_in_tracer_concentration_arraytracer index for snow waterindexinteger()in
ntiwindex_of_cloud_ice_mixing_ratio_in_tracer_concentration_arraytracer index for ice waterindexinteger()in
ntglindex_of_graupel_mixing_ratio_in_tracer_concentration_arraytracer index for graupelindexinteger()in
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*out
errflgccpp_error_codeerror code for error handling in CCPP1integer()out

GFS_stochastics_run General Algorithm

This is the GFS stochastic physics driver. Routines are called prior to radiation and physics steps to handle:

  1. sets up various time/date variables
  2. sets up various triggers
  3. defines random seed indices for radiation (in a reproducible way)
  4. interpolates coefficients for prognostic ozone calculation
  5. performs surface data cycling via the GFS gcycle routine