CCPP SciDoc v7.0.0  v7.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches

◆ micro_mg_tend()

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,
integer, intent(in) iccn,
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,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

Definition at line 437 of file micro_mg3_0.F90.

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(), micro_mg_utils::avg_diameter(), micro_mg_utils::bergeron_process_snow(), micro_mg_utils::contact_freezing(), micro_mg_utils::evaporate_sublimate_precip(), micro_mg_utils::evaporate_sublimate_precip_graupel(), micro_mg_utils::gmao_ice_autoconversion(), micro_mg_utils::graupel_collecting_cld_water(), micro_mg_utils::graupel_collecting_rain(), micro_mg_utils::graupel_collecting_snow(), micro_mg_utils::graupel_rain_riming_snow(), micro_mg_utils::graupel_rime_splintering(), micro_mg_utils::graupel_riming_liquid_snow(), micro_mg_utils::heterogeneous_rain_freezing(), micro_mg_utils::ice_autoconversion(), micro_mg_utils::ice_deposition_sublimation(), micro_mg_utils::immersion_freezing(), micro_mg_utils::kk2000_liq_autoconversion(), micro_mg_utils::liu_liq_autoconversion(), 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(), and micro_mg_utils::snow_self_aggregation().

Here is the call graph for this function: