CCPP Scientific Documentation
v4.0
subroutine, public micro_mg3_0::micro_mg_tend ( integer, intent(in)  mgncol,
integer, intent(in)  nlev,
real(r8), intent(in)  deltatin,
real(r8), dimension(mgncol,nlev), intent(in)  t,
real(r8), dimension(mgncol,nlev), intent(in)  q,
real(r8), dimension(mgncol,nlev), intent(in)  qcn,
real(r8), dimension(mgncol,nlev), intent(in)  qin,
real(r8), dimension(mgncol,nlev), intent(in)  ncn,
real(r8), dimension(mgncol,nlev), intent(in)  nin,
real(r8), dimension(mgncol,nlev), intent(in)  qrn,
real(r8), dimension(mgncol,nlev), intent(in)  qsn,
real(r8), dimension(mgncol,nlev), intent(in)  nrn,
real(r8), dimension(mgncol,nlev), intent(in)  nsn,
real(r8), dimension(mgncol,nlev), intent(in)  qgr,
real(r8), dimension(mgncol,nlev), intent(in)  ngr,
real(r8), dimension(mgncol,nlev)  relvar,
real(r8), intent(in)  accre_enhan_i,
real(r8), dimension(mgncol,nlev), intent(in)  p,
real(r8), dimension(mgncol,nlev), intent(in)  pdel,
real(r8), dimension(mgncol,nlev), intent(in)  cldn,
real(r8), dimension(mgncol,nlev), intent(in)  liqcldf,
real(r8), dimension(mgncol,nlev), intent(in)  icecldf,
real(r8), dimension(mgncol,nlev), intent(in)  qsatfac,
real(r8), dimension(mgncol,nlev), intent(out)  qcsinksum_rate1ord,
real(r8), dimension(mgncol,nlev), intent(inout)  naai,
real(r8), dimension(mgncol,nlev), intent(in)  npccnin,
real(r8), dimension(mgncol,nlev,10), intent(in)  rndst,
real(r8), dimension(mgncol,nlev,10), intent(in)  nacon,
real(r8), dimension(mgncol,nlev), intent(out)  tlat,
real(r8), dimension(mgncol,nlev), intent(out)  qvlat,
real(r8), dimension(mgncol,nlev), intent(out)  qctend,
real(r8), dimension(mgncol,nlev), intent(out)  qitend,
real(r8), dimension(mgncol,nlev), intent(out)  nctend,
real(r8), dimension(mgncol,nlev), intent(out)  nitend,
real(r8), dimension(mgncol,nlev), intent(out)  qrtend,
real(r8), dimension(mgncol,nlev), intent(out)  qstend,
real(r8), dimension(mgncol,nlev), intent(out)  nrtend,
real(r8), dimension(mgncol,nlev), intent(out)  nstend,
real(r8), dimension(mgncol,nlev), intent(out)  qgtend,
real(r8), dimension(mgncol,nlev), intent(out)  ngtend,
real(r8), dimension(mgncol,nlev), intent(out)  effc,
real(r8), dimension(mgncol,nlev), intent(out)  effc_fn,
real(r8), dimension(mgncol,nlev), intent(out)  effi,
real(r8), dimension(mgncol,nlev), intent(out)  sadice,
real(r8), dimension(mgncol,nlev), intent(out)  sadsnow,
real(r8), dimension(mgncol), intent(out)  prect,
real(r8), dimension(mgncol), intent(out)  preci,
real(r8), dimension(mgncol,nlev), intent(out)  nevapr,
real(r8), dimension(mgncol,nlev), intent(out)  evapsnow,
real(r8), dimension(mgncol,nlev), intent(out)  am_evp_st,
real(r8), dimension(mgncol,nlev), intent(out)  prain,
real(r8), dimension(mgncol,nlev), intent(out)  prodsnow,
real(r8), dimension(mgncol,nlev), intent(out)  cmeout,
real(r8), dimension(mgncol,nlev), intent(out)  deffi,
real(r8), dimension(mgncol,nlev), intent(out)  pgamrad,
real(r8), dimension(mgncol,nlev), intent(out)  lamcrad,
real(r8), dimension(mgncol,nlev), intent(out)  qsout,
real(r8), dimension(mgncol,nlev), intent(out)  dsout,
real(r8), dimension(mgncol,nlev), intent(out)  qgout,
real(r8), dimension(mgncol,nlev), intent(out)  ngout,
real(r8), dimension(mgncol,nlev), intent(out)  dgout,
real(r8), dimension(mgncol,2:nlev+1), intent(out)  lflx,
real(r8), dimension(mgncol,2:nlev+1), intent(out)  iflx,
real(r8), dimension(mgncol,2:nlev+1), intent(out)  gflx,
real(r8), dimension(mgncol,2:nlev+1), intent(out)  rflx,
real(r8), dimension(mgncol,2:nlev+1), intent(out)  sflx,
real(r8), dimension(mgncol,nlev), intent(out)  qrout,
real(r8), dimension(mgncol,nlev), intent(out)  reff_rain,
real(r8), dimension(mgncol,nlev), intent(out)  reff_snow,
real(r8), dimension(mgncol,nlev), intent(out)  reff_grau,
real(r8), dimension(mgncol,nlev), intent(out)  qcsevap,
real(r8), dimension(mgncol,nlev), intent(out)  qisevap,
real(r8), dimension(mgncol,nlev), intent(out)  qvres,
real(r8), dimension(mgncol,nlev), intent(out)  cmeitot,
real(r8), dimension(mgncol,nlev), intent(out)  vtrmc,
real(r8), dimension(mgncol,nlev), intent(out)  vtrmi,
real(r8), dimension(mgncol,nlev), intent(out)  umr,
real(r8), dimension(mgncol,nlev), intent(out)  ums,
real(r8), dimension(mgncol,nlev), intent(out)  umg,
real(r8), dimension(mgncol,nlev), intent(out)  qgsedten,
real(r8), dimension(mgncol,nlev), intent(out)  qcsedten,
real(r8), dimension(mgncol,nlev), intent(out)  qisedten,
real(r8), dimension(mgncol,nlev), intent(out)  qrsedten,
real(r8), dimension(mgncol,nlev), intent(out)  qssedten,
real(r8), dimension(mgncol,nlev), intent(out)  pratot,
real(r8), dimension(mgncol,nlev), intent(out)  prctot,
real(r8), dimension(mgncol,nlev), intent(out)  mnuccctot,
real(r8), dimension(mgncol,nlev), intent(out)  mnuccttot,
real(r8), dimension(mgncol,nlev), intent(out)  msacwitot,
real(r8), dimension(mgncol,nlev), intent(out)  psacwstot,
real(r8), dimension(mgncol,nlev), intent(out)  bergstot,
real(r8), dimension(mgncol,nlev), intent(out)  bergtot,
real(r8), dimension(mgncol,nlev), intent(out)  melttot,
real(r8), dimension(mgncol,nlev), intent(out)  homotot,
real(r8), dimension(mgncol,nlev), intent(out)  qcrestot,
real(r8), dimension(mgncol,nlev), intent(out)  prcitot,
real(r8), dimension(mgncol,nlev), intent(out)  praitot,
real(r8), dimension(mgncol,nlev), intent(out)  qirestot,
real(r8), dimension(mgncol,nlev), intent(out)  mnuccrtot,
real(r8), dimension(mgncol,nlev), intent(out)  mnuccritot,
real(r8), dimension(mgncol,nlev), intent(out)  pracstot,
real(r8), dimension(mgncol,nlev), intent(out)  meltsdttot,
real(r8), dimension(mgncol,nlev), intent(out)  frzrdttot,
real(r8), dimension(mgncol,nlev), intent(out)  mnuccdtot,
real(r8), dimension(mgncol,nlev), intent(out)  pracgtot,
real(r8), dimension(mgncol,nlev), intent(out)  psacwgtot,
real(r8), dimension(mgncol,nlev), intent(out)  pgsacwtot,
real(r8), dimension(mgncol,nlev), intent(out)  pgracstot,
real(r8), dimension(mgncol,nlev), intent(out)  prdgtot,
real(r8), dimension(mgncol,nlev), intent(out)  qmultgtot,
real(r8), dimension(mgncol,nlev), intent(out)  qmultrgtot,
real(r8), dimension(mgncol,nlev), intent(out)  psacrtot,
real(r8), dimension(mgncol,nlev), intent(out)  npracgtot,
real(r8), dimension(mgncol,nlev), intent(out)  nscngtot,
real(r8), dimension(mgncol,nlev), intent(out)  ngracstot,
real(r8), dimension(mgncol,nlev), intent(out)  nmultgtot,
real(r8), dimension(mgncol,nlev), intent(out)  nmultrgtot,
real(r8), dimension(mgncol,nlev), intent(out)  npsacwgtot,
real(r8), dimension(mgncol,nlev), intent(out)  nrout,
real(r8), dimension(mgncol,nlev), intent(out)  nsout,
real(r8), dimension(mgncol,nlev), intent(out)  refl,
real(r8), dimension(mgncol,nlev), intent(out)  arefl,
real(r8), dimension(mgncol,nlev), intent(out)  areflz,
real(r8), dimension(mgncol,nlev), intent(out)  frefl,
real(r8), dimension(mgncol,nlev), intent(out)  csrfl,
real(r8), dimension(mgncol,nlev), intent(out)  acsrfl,
real(r8), dimension(mgncol,nlev), intent(out)  fcsrfl,
real(r8), dimension(mgncol,nlev), intent(out)  rercld,
real(r8), dimension(mgncol,nlev), intent(out)  ncai,
real(r8), dimension(mgncol,nlev), intent(out)  ncal,
real(r8), dimension(mgncol,nlev), intent(out)  qrout2,
real(r8), dimension(mgncol,nlev), intent(out)  qsout2,
real(r8), dimension(mgncol,nlev), intent(out)  nrout2,
real(r8), dimension(mgncol,nlev), intent(out)  nsout2,
real(r8), dimension(mgncol,nlev), intent(out)  drout2,
real(r8), dimension(mgncol,nlev), intent(out)  dsout2,
real(r8), dimension(mgncol,nlev), intent(out)  qgout2,
real(r8), dimension(mgncol,nlev), intent(out)  ngout2,
real(r8), dimension(mgncol,nlev), intent(out)  dgout2,
real(r8), dimension(mgncol,nlev), intent(out)  freqg,
real(r8), dimension(mgncol,nlev), intent(out)  freqs,
real(r8), dimension(mgncol,nlev), intent(out)  freqr,
real(r8), dimension(mgncol,nlev), intent(out)  nfice,
real(r8), dimension(mgncol,nlev), intent(out)  qcrat,
real(r8), dimension(mgncol,nlev), intent(out)  prer_evap,
real(r8), intent(in)  xlat,
real(r8), intent(in)  xlon,
logical, intent(in)  lprnt,
logical, intent(in)  iccn,
logical, intent(in)  aero_in,
integer, dimension(mgncol), intent(in)  nlball 
)
Authors
Hugh Morrison, Andrew Gettelman, NCAR, Peter Caldwell, LLNL e-mail: morri.nosp@m.son@.nosp@m.ucar..nosp@m.edu, andre.nosp@m.w@uc.nosp@m.ar.ed.nosp@m.u

MG3 micro_mg_tend General Algorithm

Parameters
[in]mgncolnumber of microphysics columns
[in]nlevnumber of layers
[in]nlballsedimentation start level
[in]xlonnumber of layers
[in]deltatintime step (s)
[in]tinput temperature (K)
[in]qinput h20 vapor mixing ratio (kg/kg)
[in]qcncloud water mixing ratio (kg/kg)
[in]qincloud ice mixing ratio (kg/kg)
[in]ncncloud water number conc (1/kg)
[in]nincloud ice number conc (1/kg)
[in]qrnrain mixing ratio (kg/kg)
[in]qsnsnow mixing ratio (kg/kg)
[in]nrnrain number conc (1/kg)
[in]nsnsnow number conc (1/kg)
[in]qgrgraupel/hail mixing ratio (kg/kg)
[in]ngrgraupel/hail number conc (1/kg)
relvarcloud water relative variance (-)
[in]accre_enhan_ioptional accretion enhancement factor (-)
[in]pair pressure (pa)
[in]pdelpressure difference across level (pa)
[in]cldncloud fraction (no units)
[in]liqcldfliquid cloud fraction (no units)
[in]icecldfice cloud fraction (no units)
[in]qsatfacsubgrid cloud water saturation scaling factor (no units)
[in]lprntcontrol flag for diagnostic print out
[in]iccnflag for IN and CCN forcing for Morrison-Gettelman microphysics
[in]aero_inflag for using aerosols in Morrison-Gettelman microphysics
[in,out]naaiice nucleation number (from microp_aero_ts) (1/kg)
[in]npccninccn activated number tendency (from microp_aero_ts) (1/kg*s)
[in]rndstradius of each dust bin, for contact freezing (from microp_aero_ts) (m)
[in]naconnumber in each dust bin, for contact freezing (from microp_aero_ts) (1/m^3)
[out]qcsinksum_rate1ord1st order rate for direct cw to precip conversion
[out]tlatlatent heating rate (W/kg)
[out]qvlatmicrophysical tendency qv (1/s)
[out]qctendmicrophysical tendency qc (1/s)
[out]qitendmicrophysical tendency qi (1/s)
[out]nctendmicrophysical tendency nc (1/(kg*s))
[out]nitendmicrophysical tendency ni (1/(kg*s))
[out]qrtendmicrophysical tendency qr (1/s)
[out]qstendmicrophysical tendency qs (1/s)
[out]nrtendmicrophysical tendency nr (1/(kg*s))
[out]nstendmicrophysical tendency ns (1/(kg*s))
[out]qgtendmicrophysical tendency qg (1/s)
[out]ngtendmicrophysical tendency ng (1/(kg*s))
[out]effcdroplet effective radius (micron)
[out]effc_fndroplet effective radius, assuming nc = 1.e8 kg-1
[out]efficloud ice effective radius (micron)
[out]sadicecloud ice surface area density (cm2/cm3)
[out]sadsnowcloud snow surface area density (cm2/cm3)
[out]prectsurface precip rate (m/s)
[out]precicloud ice/snow precip rate (m/s)
[out]nevaprevaporation rate of rain + snow (1/s)
[out]evapsnowsublimation rate of snow (1/s)
[out]am_evp_ststratiform evaporation area (frac)
[out]prainproduction of rain + snow (1/s)
[out]prodsnowproduction of snow (1/s)
[out]cmeoutevap/sub of cloud (1/s)
[out]deffiice effective diameter for optics (radiation) (micron)
[out]pgamradice gamma parameter for optics (radiation) (no units)
[out]lamcradslope of droplet distribution for optics (radiation) (1/m)
[out]qsoutsnow mixing ratio (kg/kg)
[out]dsoutsnow diameter (m)
[out]lflxgrid-box average liquid condensate flux (kg m^-2 s^-1)
[out]iflxgrid-box average ice condensate flux (kg m^-2 s^-1)
[out]rflxgrid-box average rain flux (kg m^-2 s^-1)
[out]sflxgrid-box average snow flux (kg m^-2 s^-1)
[out]gflxgrid-box average graupel/hail flux (kg m^-2 s^-1)
[out]qroutgrid-box average rain mixing ratio (kg/kg)
[out]reff_rainrain effective radius (micron)
[out]reff_snowsnow effective radius (micron)
[out]reff_graugraupel effective radius (micron)
[out]qcsevapcloud water evaporation due to sedimentation (1/s)
[out]qisevapcloud ice sublimation due to sedimentation (1/s)
[out]qvresresidual condensation term to ensure RH < 100% (1/s)
[out]cmeitotgrid-mean cloud ice sub/dep (1/s)
[out]vtrmcmass-weighted cloud water fallspeed (m/s)
[out]vtrmimass-weighted cloud ice fallspeed (m/s)
[out]umrmass weighted rain fallspeed (m/s)
[out]umsmass weighted snow fallspeed (m/s)
[out]umgmass weighted graupel/hail fallspeed (m/s)
[out]qgsedtenqg sedimentation tendency (1/s)
[out]qcsedtenqc sedimentation tendency (1/s)
[out]qisedtenqi sedimentation tendency (1/s)
[out]qrsedtenqr sedimentation tendency (1/s)
[out]qssedtenqs sedimentation tendency (1/s)
[out]pratotaccretion of cloud by rain
[out]prctotautoconversion of cloud to rain
[out]mnuccctotmixing ratio tend due to immersion freezing
[out]mnuccttotmixing ratio tend due to contact freezing
[out]msacwitotmixing ratio tend due to H-M splintering
[out]psacwstotcollection of cloud water by snow
[out]bergstotbergeron process on snow
[out]bergtotbergeron process on cloud ice
[out]melttotmelting of cloud ice
[out]homotothomogeneous freezing cloud water
[out]qcrestotresidual cloud condensation due to removal of excess supersat
[out]prcitotautoconversion of cloud ice to snow
[out]praitotaccretion of cloud ice by snow
[out]qirestotresidual ice deposition due to removal of excess supersat
[out]mnuccrtotmixing ratio tendency due to heterogeneous freezing of rain to snow (1/s)
[out]mnuccritotmixing ratio tendency due to heterogeneous freezing of rain to ice (1/s)
[out]pracstotmixing ratio tendency due to accretion of rain by snow (1/s)
[out]meltsdttotlatent heating rate due to melting of snow (W/kg)
[out]frzrdttotlatent heating rate due to homogeneous freezing of rain (W/kg)
[out]mnuccdtotmass tendency from ice nucleation
[out]pracgtotchange in q collection rain by graupel (precipf)
[out]psacwgtotchange in q collection droplets by graupel (lcldm)
[out]pgsacwtotconversion q to graupel due to collection droplets by snow (lcldm)
[out]pgracstotconversion q to graupel due to collection rain by snow (precipf)
[out]prdgtotdep of graupel (precipf)
[out]qmultgtotchange q due to ice mult droplets/graupel (lcldm)
[out]qmultrgtotchange q due to ice mult rain/graupel (precipf)
[out]psacrtotconversion due to coll of snow by rain (precipf)
[out]npracgtotchange n collection rain by graupel (precipf)
[out]nscngtotchange n conversion to graupel due to collection droplets by snow (lcldm)
[out]ngracstotchange n conversion to graupel due to collection rain by snow (precipf)
[out]nmultgtotice mult due to acc droplets by graupel (lcldm)
[out]nmultrgtotice mult due to acc rain by graupel (precipf)
[out]npsacwgtotchange n collection droplets by graupel (lcldm?)
[out]nroutrain number concentration (1/m3)
[out]nsoutsnow number concentration (1/m3)
[out]reflanalytic radar reflectivity
[out]areflaverage reflectivity will zero points outside valid range
[out]areflzaverage reflectivity in z.
[out]freflfractional occurrence of radar reflectivity
[out]csrflcloudsat reflectivity
[out]acsrflcloudsat average
[out]fcsrflcloudsat fractional occurrence of radar reflectivity
[out]rercldeffective radius calculation for rain + cloud
[out]ncaioutput number conc of ice nuclei available (1/m3)
[out]ncaloutput number conc of CCN (1/m3)
[out]qrout2copy of qrout as used to compute drout2
[out]qsout2copy of qsout as used to compute dsout2
[out]nrout2copy of nrout as used to compute drout2
[out]nsout2copy of nsout as used to compute dsout2
[out]drout2mean rain particle diameter (m)
[out]dsout2mean snow particle diameter (m)
[out]freqsfractional occurrence of snow
[out]freqrfractional occurrence of rain
[out]nficefractional occurrence of ice
[out]qcratlimiter for qc process rates (1=no limit –> 0. no qc)
[out]qgoutgraupel/hail mixing ratio (kg/kg)
[out]dgoutgraupel/hail diameter (m)
[out]ngoutgraupel/hail number concentration (1/m3)
[out]qgout2copy of qgout as used to compute dgout2
[out]ngout2copy of ngout as used to compute dgout2
[out]dgout2mean graupel/hail particle diameter (m)
[out]freqgfractional occurrence of graupel
  • Assign variable deltat to deltatin
  • Copies of input concentrations that may be changed internally.
  • Calculation liquid/ice cloud fraction
  • Initialize local variables
  • initialize microphysics output
  • initialize precip output
  • initialize rain size
  • initialize variables for trop_mozart
  • initialize microphysical tendencies
  • initialize in-cloud and in-precip quantities to zero
  • initialize precip fallspeeds to zero
  • initialize limiter for output
  • initialize ccn activated number tendency (npccn)
  • initialize precip at surface

References micro_mg_utils::accrete_cloud_ice_snow(), micro_mg_utils::accrete_cloud_water_rain(), micro_mg_utils::accrete_cloud_water_snow(), micro_mg_utils::accrete_rain_snow(), agtmp, allow_sed_supersat, micro_mg_utils::avg_diameter(), micro_mg_utils::bergeron_process_snow(), bgtmp, calc_rercld(), micro_mg_utils::contact_freezing(), cpp, csmax, csmin, dcs, do_cldice, do_ice_gmao, do_liq_liu, do_sb_physics, micro_mg_utils::evaporate_sublimate_precip(), four, funcphys::fpvsi(), funcphys::fpvsl(), g, gamma_bg_plus1, gamma_bg_plus4, gamma_bi_plus1, gamma_bi_plus4, gamma_bj_plus1, gamma_bj_plus4, gamma_br_plus1, gamma_br_plus4, gamma_bs_plus1, gamma_bs_plus4, half, micro_mg_utils::heterogeneous_rain_freezing(), micro_mg_utils::ice_autoconversion(), micro_mg_utils::ice_deposition_sublimation(), icenuct, micro_mg_utils::immersion_freezing(), micro_mg_utils::kk2000_liq_autoconversion(), micro_mg_utils::mg_ice_props, micro_mg_utils::mg_liq_props, micro_mg_utils::mg_rain_props, micro_mg_berg_eff_factor, micro_mg_precip_frac_method, microp_uniform, mindbz, minrefl, nccons, ncnst, ngcons, ngnst, nicons, ninst, omeps, one, oneo6, r, rainfrze, rhogtmp, rhosu, rv, micro_mg_utils::sb2001v2_accre_cld_water_rain(), micro_mg_utils::sb2001v2_liq_autoconversion(), micro_mg_utils::secondary_ice_production(), micro_mg_utils::self_collection_rain(), micro_mg_utils::snow_self_aggregation(), snowmelt, sublim_factor, ten, three, tmelt, ts_au, ts_au_min, two, use_hetfrz_classnuc, xlf, xxls, xxls_squared, xxlv, xxlv_squared, and zero.

Referenced by m_micro::m_micro_run().

Here is the call graph for this function: