CCPP SciDoc v7.0.0  v7.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches
NSSL 2-moment microphysics modules

This module provides a 1/2/3-moment bulk microphysics scheme based on a combination of Straka and Mansell (2005, JAM) and Zeigler (1985, JAS) and modified/upgraded in in Mansell, Zeigler, and Bruning (2010, JAS). Two-moment adaptive sedimentation follows Mansell (2010, JAS), using parameter infall = 4. More...

Collaboration diagram for NSSL 2-moment microphysics modules:

Functions/Subroutines

real function, private module_mp_nssl_2mom::fqvs (t)
 This function is for saturation vapor pressure with respect to liquid water.
 
real function, private module_mp_nssl_2mom::fqis (t)
 This function is for saturation vapor pressure with respect to ice.
 
subroutine, public module_mp_nssl_2mom::nssl_2mom_init_const (con_g, con_rd, con_cp, con_rv, con_t0c, con_cliq, con_csol, con_eps)
 NSSL MP subroutine to initialize physical constants provided by host model.
 
subroutine, public module_mp_nssl_2mom::nssl_2mom_init (ims, ime, jms, jme, kms, kme, nssl_params, ipctmp, mixphase, ihvol, idoniconlytmp, nssl_graupelfallfac, nssl_hailfallfac, nssl_ehw0, nssl_ehlw0, nssl_icdx, nssl_icdxhl, nssl_icefallfac, nssl_snowfallfac, nssl_cccn, nssl_ufccn, nssl_alphah, nssl_alphahl, nssl_alphar, nssl_density_on, nssl_hail_on, nssl_ccn_on, nssl_icecrystals_on, ccn_is_ccna, errmsg, errflg, infileunit, myrank, mpiroot)
 NSSL MP setup routine (sets local options and array indices)
 
subroutine, public module_mp_nssl_2mom::nssl_2mom_driver (qv, qc, qr, qi, qs, qh, qhl, ccw, crw, cci, csw, chw, chl, cn, vhw, vhl, cna, cni, f_cn, f_cna, f_cina, f_qc, f_qr, f_qi, f_qs, f_qh, f_qhl, cnuf, f_cnuf, zrw, zhw, zhl, f_zrw, f_zhw, f_zhl, f_vhw, f_vhl, qsw, qhw, qhlw, tt, th, pii, p, w, dn, dz, dtp, itimestep, is_theta_or_temp, ntmul, ntcnt, lastloop, rainnc, rainncv, dx, dy, axtra, snownc, snowncv, grplnc, grplncv, sr, hailnc, hailncv, hail_maxk1, hail_max2d, nwp_diagnostics, tkediss, re_cloud, re_ice, re_snow, re_rain, re_graup, re_hail, has_reqc, has_reqi, has_reqs, has_reqr, has_reqg, has_reqh, rainncw2, rainnci2, dbz, vzf, compdbz, rscghis_2d, rscghis_2dp, rscghis_2dn, scr, scw, sci, scs, sch, schl, sctot, elec_physics, induc, elecz, scion, sciona, noninduc, noninducp, noninducn, pcc2, pre2, depsubr, mnucf2, melr2, ctr2, rim1_2, rim2_2, rim3_2, nctr2, nnuccd2, nnucf2, effc2, effr2, effi2, effs2, effg2, fc2, fr2, fi2, fs2, fg2, fnc2, fnr2, fni2, fns2, fng2, ipelectmp, diagflag, ke_diag, errmsg, errflg, nssl_progn, wetscav_on, rainprod, evapprod, cu_used, qrcuten, qscuten, qicuten, qccuten, ids, ide, jds, jde, kds, kde, ims, ime, jms, jme, kms, kme, its, ite, jts, jte, kts, kte)
 Driver subroutine that copies state data to local 2D arrays for microphysics calls.
 
real function, private module_mp_nssl_2mom::gamma_sp (xx)
 Single-precision complete gamma function.
 
double precision function, private module_mp_nssl_2mom::gamma_dpr (x)
 Douple-precision complete gamma function (single precision input)
 
real function, private module_mp_nssl_2mom::gamxinf (a1, x1)
 single-precision incomplete gamma function (single precision args)
 
double precision function, private module_mp_nssl_2mom::gamxinfdp (a1, x1)
 Double-precision incomplete gamma function (single precision args)
 
real function module_mp_nssl_2mom::gaminterp (ratio, alp, luindex, ilh)
 Function to interpolate from a table of incomplete gamma function values.
 
real function, private module_mp_nssl_2mom::gaml02 (x)
 Function calculates Gamma(0.2,x)/Gamma[0.2] for 40 micro drops ( imurain == 3 )
 
real function, private module_mp_nssl_2mom::gaml02d300 (x)
 Function calculates fraction of drops larger than 300 microns ( imurain == 3 )
 
real function, private module_mp_nssl_2mom::gaml02d500 (x)
 Function calculates Gamma(0.2,x)/Gamma[0.2] for 500 micro drops ( imurain == 3 )
 
double precision function, private module_mp_nssl_2mom::gamma_dp (xx)
 Douple-precision complete gamma function (double precision argument)
 
subroutine, private module_mp_nssl_2mom::gammadp (x, ga)
 Double-precision complete gamma function subroutine (used by beta function routine)
 
real function, private module_mp_nssl_2mom::delbk (bb, nu, mu, k)
 Function calculates collection coefficients following Siefert (2006)
 
real function, private module_mp_nssl_2mom::delabk (ba, bb, nua, nub, mua, mub, k)
 Function calculates collection coefficients following Siefert (2006)
 
subroutine module_mp_nssl_2mom::hailmaxd (dtp, nx, ny, nz, an, na, nor, norz, alpha2d, dn, hailmax1d, hailmaxk1, jslab)
 Hail max size subroutine.
 
subroutine module_mp_nssl_2mom::sediment1d (dtp, nx, ny, nz, an, na, nor, norz, xfall, dn, dz3d, dz3dinv, t0, t7, infdo, jslab, its, jts, timesed1, timesed2, timesed3, zmaxsed, timesetvt)
 Sedimentation driver subroutine. Calls fallout column by column.
 
subroutine module_mp_nssl_2mom::fallout1d (nx, ny, nz, nor, na, dtp, dtfrac, jgs, vt, a, db1, ia, id, xfall, dtz1, ixcol)
 Column sedimentation fallout subroutine.
 
subroutine module_mp_nssl_2mom::calczgr1d (nx, ny, nz, nor, na, a, ixe, kze, z, db, jgs, ipconc, alpha, l, ln, qmin, xvmn, xvmx, lvol, rho_qx, ixcol)
 Calculates temporary reflectivity moment for adaptive size-sorting limiter.
 
subroutine module_mp_nssl_2mom::calcnfromz1d (nx, ny, nz, nor, na, a, t0, ixe, kze, z0, db, jgs, ipconc, alpha, l, ln, qmin, xvmn, xvmx, t1, lvol, rho_qx, infall, ixcol)
 Subroutine to correct number concentration to prevent reflectivity growth.
 
subroutine, public module_mp_nssl_2mom::calcnfromq (nx, ny, nz, an, na, nor, norz, dn, qcw, qci, qsw, qrw, qhw, qhl, ccw, cci, csw, crw, chw, chl, cccn, cccna, vhw, vhl, qv, spechum, invertccn_flag, cwmasin)
 Subroutine to calculate number concentrations from initial state that has only mixing ratio.
 
subroutine module_mp_nssl_2mom::calcnfromcuten (nx, ny, nz, an, anold, na, nor, norz, dn)
 Subroutine to calculate number concentrations from convection parameterization rates that have only mixing ratio.
 
subroutine, public module_mp_nssl_2mom::calc_eff_radius (nx, ny, nz, na, jyslab, nor, norz, t1, t2, t3, t4, t5, t6, f_t5, f_t6, qcw, qci, qsw, qrw, ccw, cci, csw, crw, an, dn)
 Subroutine to calculate effective radii for use by radiation routines.
 
subroutine module_mp_nssl_2mom::qvexcess (ngs, mgs, qwvp0, qv0, qcw1, pres, thetap0, theta0, qvex, pi0, tabqvs, nqsat, fqsat, cbw, fcqv1, felvcp, ss1, pk, ngscnt)
 Subroutine that returns the maximum possible condensation.
 
subroutine module_mp_nssl_2mom::setvtz (ngscnt, qx, qxmin, qxw, cx, rho0, rhovt, xdia, cno, cnostmp, xmas, vtxbar, xdn, xvmn0, xvmx0, xv, cdx, cdxgs, ipconc1, ndebug1, ngs, nz, kgs, fadvisc, cwmasn, cwmasx, cwradn, cnina, cimna, cimxa, itype1a, itype2a, temcg, infdo, alpha, ildo, axx, bxx)
 Mean hydrometeor size and fall speed calculations.
 
subroutine module_mp_nssl_2mom::ziegfall1d (nx, ny, nz, nor, norz, na, dtp, jgs, ixcol, xvt, rhovtzx, an, dn, ipconc0, t0, t7, cwmasn, cwmasx, cwradn, qxmin, xdnmx, xdnmn, cdx, cno, xdn0, xvmn, xvmx, ngs, qx, qxw, cx, xv, vtxbar, xmas, xdn, xdia, vx, alpha, zx, igs, kgs, rho0, temcg, temg, rhovt, cwnc, cinc, fadvisc, cwdia, cipmas, cnina, cimas, cnostmp, infdo, ildo, timesetvt)
 Column-wise front end to setvtz for sedimentation.
 
subroutine module_mp_nssl_2mom::radardd02 (nx, ny, nz, nor, na, an, temk, dbz, db, nzdbz, cnoh0t, hwdn1t, ipconc, ke_diag, iunit)
 Radar reflectivity calculation. Assumes ideal Rayleigh scattering.
 
subroutine module_mp_nssl_2mom::nucond (nx, ny, nz, na, jyslab, nor, norz, dtp, nxi, dz3d, t0, t9, an, dn, p2, pn, w, ngs, axtra, io_flag, ssfilt, t00, t77, flag_qndrop)
 Droplet nucleation routine. Explicit condensation/evaporation. Tiny mixing ratio cleanup.
 
subroutine module_mp_nssl_2mom::nssl_2mom_gs (nx, ny, nz, na, jyslab, nor, norz, dtp, gz, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, an, dn, p2, pn, w, iunit, t00, t77, ventr, ventc, c1sw, jgs, ido, xdnmx, xdnmn, cdx, xdn0, tmp3d, tkediss, thproc, numproc, dx1, dy1, ngs, timevtcalc, axtra, io_flag, has_wetscav, rainprod2d, evapprod2d, alpha2d, errmsg, errflg, elec, its, ids, ide, jds, jde)
 Main microphysical processes routine.
 

Detailed Description

Added info on graupel density and soaking is in Mansell and Ziegler (2013, JAS)

Average graupel and hail particle densities are predicted, which affects fall speed as well.

Maintainer: Ted Mansell, National Severe Storms Laboratory ted.m.nosp@m.anse.nosp@m.ll@no.nosp@m.aa.g.nosp@m.ov

Microphysics References:

Mansell, E. R., C. L. Ziegler, and E. C. Bruning, 2010: Simulated electrification of a small thunderstorm with two-moment bulk microphysics. J. Atmos. Sci., 67, 171-194, doi:10. 1175/2009JAS2965.1.

Mansell, E. R. and C. L. Ziegler, 2013: Aerosol effects on simulated storm electrification and precipitation in a two-moment bulk microphysics model. J. Atmos. Sci., 70 (7), 2032-2050, doi:10.1175/JAS-D-12-0264.1.

Ziegler, C. L., 1985: Retrieval of thermal and microphysical variables in observed convective storms. Part I: Model development and preliminary testing. J. Atmos. Sci., 42, 1487-1509.

Sedimentation reference:

Mansell, E. R., 2010: On sedimentation and advection in multimoment bulk microphysics. J. Atmos. Sci., 67, 3084-3094, doi:10.1175/2010JAS3341.1.