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

This module contains 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).

Functions/Subroutines

real function, private fqvs (t)
 This function is for saturation vapor pressure with respect to liquid water.
 
real function, private fqis (t)
 This function is for saturation vapor pressure with respect to ice.
 
subroutine, public 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 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 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 gamma_sp (xx)
 Single-precision complete gamma function.
 
double precision function, private gamma_dpr (x)
 Douple-precision complete gamma function (single precision input)
 
real function, private gamxinf (a1, x1)
 single-precision incomplete gamma function (single precision args)
 
double precision function, private gamxinfdp (a1, x1)
 Double-precision incomplete gamma function (single precision args)
 
real function gaminterp (ratio, alp, luindex, ilh)
 Function to interpolate from a table of incomplete gamma function values.
 
real function, private gaml02 (x)
 Function calculates Gamma(0.2,x)/Gamma[0.2] for 40 micro drops ( imurain == 3 )
 
real function, private gaml02d300 (x)
 Function calculates fraction of drops larger than 300 microns ( imurain == 3 )
 
real function, private gaml02d500 (x)
 Function calculates Gamma(0.2,x)/Gamma[0.2] for 500 micro drops ( imurain == 3 )
 
real function beta (p, q)
 
double precision function, private gamma_dp (xx)
 Douple-precision complete gamma function (double precision argument)
 
subroutine, private gammadp (x, ga)
 Double-precision complete gamma function subroutine (used by beta function routine)
 
real function, private delbk (bb, nu, mu, k)
 Function calculates collection coefficients following Siefert (2006)
 
real function, private delabk (ba, bb, nua, nub, mua, mub, k)
 Function calculates collection coefficients following Siefert (2006)
 
subroutine hailmaxd (dtp, nx, ny, nz, an, na, nor, norz, alpha2d, dn, hailmax1d, hailmaxk1, jslab)
 Hail max size subroutine.
 
subroutine 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 fallout1d (nx, ny, nz, nor, na, dtp, dtfrac, jgs, vt, a, db1, ia, id, xfall, dtz1, ixcol)
 Column sedimentation fallout subroutine.
 
subroutine 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 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 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 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 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 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 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 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 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 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 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.
 

Variables

logical, private cleardiag = .false.
 
integer, parameter wrfchem_flag = 1
 
logical, private is_aerosol_aware = .false.
 
logical, private turn_on_cin = .false.
 
integer, private eqtset = 1
 
double precision, parameter, public zscale = 1.0d0
 
double precision, parameter, public zscaleinv = 1.0d0/zscale
 
real, parameter warmonly = 0.0
 
logical, parameter lwsm6 = .false.
 
real, parameter dimax = 500.e-6
 
real, parameter roqimax = 2.08e22*dimax**8
 
integer iuseferrier = 1
 
integer idbzci = 1
 
integer iusewetgraupel = 1
 
integer iusewethail = 0
 
integer iusewetsnow = 0
 
real, private rho_qr = 1000.
 
real, private cnor = 8.0e5
 
real, private rho_qs = 100.
 
real, private cnos = 3.0e6
 
real, private rho_qh = 500.
 
real, private cnoh = 4.0e5
 
real, private rho_qhl = 800.
 
real, private cnohl = 4.0e4
 
real, private hdnmn = 170.0
 
real, private hldnmn = 500.0
 
real cnohmn = 1.e-2
 
real cnohlmn = 1.e-2
 
real, private qcmincwrn = 2.0e-3
 
real, private cwdiap = 20.0e-6
 
real, private cwdisp = 0.15
 
real, private ccn = 0.6e+09
 
real, private ccnuf = 0
 
real, public qccn
 
real, public qccnuf
 
real, private old_qccn = -1.0
 
integer, private iauttim = 1
 
real, private auttim = 300.
 
real, private qcwmntim = 1.0e-5
 
logical, parameter, private invertccn = .true.
 
logical switchccn = .false.
 
real old_cccn = -1.0
 
logical restoreccn = .true.
 
real ccntimeconst = 3600.
 
real, private restoreccnfrac = 1.0
 
real ufccntimeconst = 6.*3600.
 
real ufbackground = 0.1e9
 
logical decayufccn = .false.
 
integer i_uf_or_ccn = 0
 
integer, private itfall = 0
 
integer, private iscfall = 1
 
integer, private irfall = -1
 
integer, private isfall = 2
 
logical, private do_accurate_sedimentation = .true.
 
integer, private interval_sedi_vt = 2
 
integer, private infall = 4
 
integer imydiagalpha = 0
 
real, private rainfallfac = 1.0
 
real, private icefallfac = 1.5
 
real, private snowfallfac = 1.25
 
real, private graupelfallfac = 1.0
 
real, private hailfallfac = 1.0
 
integer, private icefallopt = 3
 
integer, private icdx = 6
 
integer, private icdxhl = 6
 
real axh = 75.7149
 
real bxh = 0.5
 
real axf = 75.7149
 
real bxf = 0.5
 
real axhl = 206.984
 
real bxhl = 0.6384
 
real, private cdhmin = 0.45
 
real, private cdhmax = 0.8
 
real, private cdhdnmin = 500.
 
real, private cdhdnmax = 800.0
 
real, private cdhlmin = 0.45
 
real, private cdhlmax = 0.6
 
real, private cdhldnmin = 500.
 
real, private cdhldnmax = 800.0
 
real, private vtmaxsed = 70.
 
integer rssflg = 1
 
integer sssflg = 1
 
integer hssflg = 1
 
integer hlssflg = 1
 
integer, private ndebug = -1
 
integer, private ncdebug = 0
 
integer, private ipconc = 5
 
integer, private inucopt = 0
 
integer, private ichaff = 0
 
integer, parameter ilimit = 0
 
real, private constccw = -1.
 
real, private cimn = 1.0e3
 
real, private cimx = 1.0e6
 
real, private rhofrz = 900
 
real, private ifrzg = 1.0
 
real, private ifiacrg = 1.0
 
real, private ifrzs = 1.0
 
real, private ffrzs = 0.0
 
real, private f2h = 1.0
 
integer, private irwfrz = 1
 
integer, private irimtim = 0
 
integer, private irimdenopt = 1
 
real, private rimc1 = 300.0
 
real, private rimc2 = 0.44
 
real, private rimc3 = 170.0
 
real rimc4 = 900.0
 
real, private rimtim = 120.0
 
real, private eqtot = 1.0e-9
 
real, private rimdenvwgt = 0.0
 
integer, private ireadmic = 0
 
integer, private idiagnosecnu = 0
 
integer, private iccwflg = 1
 
integer, private issfilt = 0
 
integer, private icnuclimit = 0
 
integer, private irenuc = 2
 
integer, private irenuc3d = 0
 
real renucfrac = 0.0
 
real ssf2kmax = 10.
 
real, private cck = 0.6
 
real, private ciintmx = 1.0e6
 
real, private cwccn
 
real, private ccwmx
 
integer, private idocw = 1
 
integer, private idorw = 1
 
integer, private idoci = 1
 
integer, private idoir = 1
 
integer, private idoip = 1
 
integer, private idosw = 1
 
integer, private idogl = 1
 
integer, private idogm = 1
 
integer, private idogh = 1
 
integer, private idofw = 1
 
integer, private idohw = 1
 
integer, private idohl = 1
 
integer, private itype1 = 0
 
integer, private itype2 = 2
 
integer, private in_freeze_rain_first = 0
 
integer, private icenucopt = 1
 
real, private naer = 1.0e6
 
integer, private icfn = 2
 
integer, private ihrn = 0
 
integer, private ibfc = 1
 
real, private cwfrz2snowfrac = 0.0
 
real, private cwfrz2snowratio = 5.
 
integer, private iremoveqwfrz = 1
 
integer, private iacr = 2
 
integer, private icrcev = 1
 
integer, private icracr = 1
 
integer, private icracrthresh = 1
 
integer, private ibfr = 2
 
integer, private ibiggopt = 2
 
integer ibiggsmallrain = 0
 
integer, private iacrsize = 5
 
real, private cimas0 = 6.62e-11
 
real, private cimas1 = 6.88e-13
 
real, private splintermass = 6.88e-13
 
real, private cfnfac = 0.1
 
integer, private iscni = 4
 
real, private fscni = 1.0
 
logical, private imeyers5 = .false.
 
real, private dmincw = 15.0e-6
 
integer, private iehw = 1
 
integer, private iefw = 1
 
integer, private iehlw = 1
 
integer, private ierw = 1
 
integer, private iehr0c = 0
 
integer, private iehlr0c = 0
 
real, private ehw0 = 0.9
 
real, private erw0 = 1.0
 
real, private ehlw0 = 0.9
 
real, private efw0 = 0.5
 
real ehr0 = 1.0
 
real efr0 = 1.0
 
real ehlr0 = 1.0
 
real, private exwmindiam = 0.0
 
real, private esilfo0 = 1.0
 
real, private ehslfo0 = 1.0
 
integer, private ircnw = 5
 
real, private qminrncw = 2.0e-3
 
integer, private iqcinit = 2
 
real, private ssmxinit = 0.4
 
real, private ewfac = 1.0
 
real, private eii0 = 0.1
 
real, private eii1 = 0.1
 
real, private eii0hl = 0.2
 
real, private eii1hl = 0.0
 
real, private ewi_dcmin = 15.0e-06
 
real, private ewi_dimin = 30.0e-06
 
real, private eri0 = 0.1
 
real, private eri_cimin = 10.e-6
 
real, private esi0 = 0.1
 
real, private ehs0 = 0.1
 
real, private ehs1 = 0.1
 
integer iessopt = 1
 
real, private ess0 = 0.5
 
real, private ess1 = 0.05
 
real, private esstem1 = -15.
 
real, private esstem2 = -10.
 
real, private essrmax = 0.02
 
real, private essfrac1 = 0.5
 
real, private essfrac2 = 0.75
 
integer, private iessec0flag = 0
 
real, private ehsfrac = 1.0
 
real, private ehimin = 0.0
 
real, private ehimax = 1.0
 
real, private ehsmax = 0.5
 
real, private ecollmx = 0.5
 
integer, private iglcnvi = 1
 
integer, private iglcnvs = 2
 
real, private rz
 
real, private rzhl
 
real, private rzs
 
real, private alphahacx = 0.0
 
real, private fconv = 1.0
 
real, private rg0 = 400.0
 
integer, private rcond = 2
 
integer, parameter, private icond = 1
 
integer, private iqis0 = 2
 
real, private dfrz = 0.15e-3
 
real, private dmlt = 3.0e-3
 
real, private dshd = 1.0e-3
 
integer, private ivshdgs = 1
 
integer, private ished2cld = 0
 
integer, private ihmlt = 2
 
integer, private imltshddmr = 2
 
real mltdiam1 = 9.0e-3
 
real mltdiam2 = 16.0e-3
 
real mltdiam3 = 19.0e-3
 
real mltdiam4 = 200.0e-3
 
real mltdiam05 = 4.5e-3
 
integer, private nsplinter = 0
 
real, private lawson_splinter_fac = 2.5e-11
 
integer, private isnwfrac = 0
 
real, private qhdpvdn = -1.
 
real, private qhacidn = -1.
 
integer, private iraintypes = 0
 
logical, private mixedphase = .false.
 
integer, private imixedphase = 0
 
logical, private qsdenmod = .false.
 
logical, private qhdenmod = .false.
 
logical, private qsvtmod = .false.
 
real, private sheddiam = 8.0e-03
 
real sheddiamlg = 10.0e-03
 
real sheddiam0 = 20.0e-03
 
integer ifwmhopt = 2
 
integer ihxw2rain = 0
 
real, private fwms = 0.5
 
real, private fwmh = 0.5
 
real, private fwmhl = 0.5
 
real fwmlarge = 0.2
 
integer ifwmfall = 0
 
logical rescale_high_alpha = .false.
 
logical rescale_low_alpha = .true.
 
logical rescale_low_alphar = .true.
 
logical rescale_low_alphah = .true.
 
logical rescale_low_alphahl = .true.
 
real, parameter alpharmax = 8.
 
integer, private ihlcnh = -1
 
real, private hlcnhdia = 1.e-3
 
real, private hlcnhqmin = 0.1e-3
 
real, private hldia1 = 10.0e-3
 
integer, private incwet = 0
 
integer, private iusedw = 0
 
real, private dwmin = 5.0e-3
 
real, private dwetmin = 5.0e-3
 
real, private dwmax = 15.e-3
 
real, private dwtempmin = 242.
 
real, private dwehwmin = 0.
 
real, private dg0thresh = 0.15
 
integer ifddenfac = 0
 
real fddenthresh = 500.
 
integer icvhl2h = 0
 
integer, private imurain = 1
 
integer, private imusnow = 3
 
integer, private iturbenhance = 0
 
integer, private isedonly = 0
 
integer, private iferwisventr = 2
 
integer, private izwisventr = 2
 
integer iresetmoments = 0
 
integer, private imaxdiaopt = 3
 
integer iraintailbreak = 0
 
real draintail = 8.e-3
 
integer, private dmrauto = 0
 
integer dmropt = 0
 
integer dmhlopt = 0
 
integer irescalerainopt = 3
 
real rescale_wthresh = 3.0
 
real rescale_tempthresh = 0.0
 
real, parameter alpharaut = 0.0
 
real cxmin = 1.e-8
 
real zxmin = 1.e-28
 
integer ithompsoncnoh = 0
 
integer ivhmltsoak = 1
 
logical, private iwetsoak = .true.
 
integer, private ioldlimiter = 0
 
integer, private isnowfall = 2
 
integer, private isnowdens = 1
 
integer, private ibiggsnow = 3
 
real biggsnowdiam = -1.0
 
integer, private ixtaltype = 1
 
real, private takshedsize1 = 0.15
 
real, private takshedsize2 = 0.3
 
real, private takshedsize3 = 0.45
 
integer, private numshedregimes = 3
 
real, private evapfac = 1.0
 
real, private depfac = 1.0
 
real, parameter, private meltfac = 1.0
 
integer, private ibinhmlr = 0
 
integer, private ibinhlmlr = 0
 
integer, private ibinnum = 2
 
integer, private iqhacrmlr = 1
 
integer, private iqhlacrmlr = 1
 
integer, private iqhacwshr = 1
 
integer, private iqhlacwshr = 1
 
real, private binmlrmxdia = 40.e-3
 
real, private binmlrzrrfac = 1.0
 
real, private snowmeltdia = 0
 
real, private alphasmlr0 = 14.0
 
real, private delta_alphamlr = 0.5
 
integer iqvsopt = 0
 
integer imaxsupopt = 4
 
real maxsupersat = 1.9
 
real maxlowtempss = 1.08
 
real ssmxuf = 4.0
 
integer, parameter icespheres = 0
 
integer, parameter lqmx = 30
 
integer, parameter lt = 1
 
integer, parameter lv = 2
 
integer, parameter lc = 3
 
integer, parameter lr = 4
 
integer, parameter li = 5
 
integer, private lis = 0
 
integer, private ls = 6
 
integer, private lh = 7
 
integer, private lf = 0
 
integer, private lhl = 0
 
integer, private lccn = 9
 
integer, private lccnuf = 0
 
integer, private lccna = 0
 
integer, private lcina = 0
 
integer, private lcin = 0
 
integer, private lnc = 9
 
integer, private lnr = 10
 
integer, private lni = 11
 
integer, private lnis = 0
 
integer, private lns = 12
 
integer, private lnh = 13
 
integer, private lnf = 0
 
integer, private lnhl = 0
 
integer, private lnhf = 0
 
integer, private lnhlf = 0
 
integer, private lss = 0
 
integer lvh = 15
 
integer, private lhab = 8
 
integer, private lg = 7
 
integer lvi = 0
 
integer lvs = 0
 
integer lvgl = 0
 
integer lvgm = 0
 
integer lvgh = 0
 
integer lvf = 0
 
integer lvhl = 0
 
integer lhw = 0
 
integer lfw = 0
 
integer lsw = 0
 
integer lhlw = 0
 
integer lhwlg = 0
 
integer lhlwlg = 0
 
integer lzr = 0
 
integer lzi = 0
 
integer lzs = 0
 
integer lzgl = 0
 
integer lzgm = 0
 
integer lzgh = 0
 
integer lzf = 0
 
integer lzh = 0
 
integer lzhl = 0
 
integer lscw = 0
 
integer lscr = 0
 
integer lsci = 0
 
integer lscis = 0
 
integer lscs = 0
 
integer lsch = 0
 
integer lscf = 0
 
integer lschl = 0
 
integer lscwi = 0
 
integer lscpi = 0
 
integer lscni = 0
 
integer lscpli = 0
 
integer lscnli = 0
 
integer lschab = 0
 
integer lscb = 0
 
integer lsce = 0
 
integer lsceq = 0
 
integer lne = 0
 
real cnoh0 = 4.0e+5
 
real hwdn1 = 700.0
 
real alphai = 0.0
 
real alphas = 0.0
 
real alphar = 0.0
 
real, private alphah = 0.0
 
real, private alphahl = 1.0
 
real dmuh = 1.0
 
real dmuhl = 1.0
 
real, private alphamax = 15.
 
real, private alphamin = 0.
 
real, parameter rnumin = -0.8
 
real, parameter rnumax = 15.0
 
real cnu = 0.0
 
real, parameter rnu = -0.8
 
real, parameter snu = -0.8
 
real, parameter cinu = 0.0
 
real, dimension(lc:lqmx) xnu
 
real, dimension(lc:lqmx) xmu
 
real, dimension(lc:lqmx) dnu
 
real, dimension(lc:lqmx) dmu
 
real, dimension(lc:lqmx) ax
 
real, dimension(lc:lqmx) bx
 
real, dimension(lc:lqmx) fx
 
real, dimension(lc:lqmx) da0
 
real, dimension(lc:lqmx, lc:lqmx) dab0
 
real, dimension(lc:lqmx, lc:lqmx) dab1
 
real, dimension(lc:lqmx) da1
 
real, dimension(lc:lqmx) bb
 
integer ipelec = 0
 
integer isaund = 0
 
logical idoniconly = .false.
 
integer, private elec_on_time = -1
 
integer, private elec_ramp_time = 0
 
integer jchgs = 3
 
integer jchgn = 2
 
integer ichge = 3
 
integer ichgw = 2
 
real charging_border = 4000.
 
real, private delqnw = -1.0e-10
 
real, private delqxw = 1.0e-10
 
real tindmn = 233
 
real tindmx = 298.0
 
integer ngm0
 
integer ngm1
 
integer ngm2
 
double precision, parameter dgam = 0.01
 
double precision, parameter dgami = 100.
 
double precision, dimension(0:ngm0gmoi
 
integer, parameter nqiacralpha = 300
 
integer, parameter nqiacrratio = 400
 
real, parameter maxratiolu = 100.
 
real, parameter maxalphalu = 15.
 
real, parameter minalphalu = -0.95
 
real, parameter dqiacralpha = maxalphalu/Float(nqiacralpha)
 
real, parameter dqiacrratio = maxratiolu/Float(nqiacrratio)
 
real, parameter dqiacrratioinv = 1./dqiacrratio
 
real, parameter dqiacralphainv = 1./dqiacralpha
 
integer, parameter ialpstart = minalphalu*dqiacralphainv
 
real, dimension(0:nqiacrratio, ialpstart:nqiacralpha) ciacrratio
 
real, dimension(0:nqiacrratio, ialpstart:nqiacralpha) qiacrratio
 
real, dimension(0:nqiacrratio, ialpstart:nqiacralpha) ziacrratio
 
double precision, dimension(0:nqiacrratio, ialpstart:nqiacralpha, 12, 2) gamxinflu
 
real, dimension(ialpstart:nqiacralpha, ialpstart:nqiacralpha, lc:lqmx, lc:lqmx), save dab0lu
 
real, dimension(ialpstart:nqiacralpha, ialpstart:nqiacralpha, lc:lqmx, lc:lqmx), save dab1lu
 
integer, parameter ngdnmm = 9
 
real, dimension(ngdnmm, 3) mmgraupvt
 
integer, dimension(lc:lqmx) lsc
 
integer, dimension(lc:lqmx) ln
 
integer, dimension(lc:lqmx) ipc
 
integer, dimension(lc:lqmx) lvol
 
integer, dimension(lc:lqmx) lz
 
integer, dimension(li:lqmx) lliq
 
integer, dimension(lc:lqmx) denscale
 
integer, dimension(lc:lqmx) ido
 
logical ldovol
 
real, dimension(lc:lqmx) xdn0
 
real, dimension(lc:lqmx) xdnmx
 
real, dimension(lc:lqmx) xdnmn
 
real, dimension(lc:lqmx) cdx
 
real, dimension(lc:lqmx) cno
 
real, dimension(lc:lqmx) xvmn
 
real, dimension(lc:lqmx) xvmx
 
real, dimension(lc:lqmx) qxmin
 
real, dimension(lc:lqmx) qxmin_init
 
integer nqsat
 
real fqsat
 
real fqsati
 
real, dimension(nqsattabqvs
 
real, dimension(nqsattabqis
 
real, dimension(nqsatdtabqvs
 
real, dimension(nqsatdtabqis
 
real, parameter ar = 841.99666
 
real, parameter br = 0.8
 
real, parameter aradcw = -0.27544
 
real, parameter bradcw = 0.26249e+06
 
real, parameter cradcw = -1.8896e+10
 
real, parameter dradcw = 4.4626e+14
 
real, parameter bta1 = 0.6
 
real, parameter cnit = 1.0e-02
 
real, parameter dragh = 0.60
 
real, parameter dnz00 = 1.225
 
real, parameter rho00 = 1.225
 
real, parameter cs = 12.42
 
real, parameter ds = 0.42
 
real cp608 = 0.608
 
real gr = 9.8
 
real, parameter pi = 3.141592653589793
 
real, parameter piinv = 1./pi
 
real, parameter pid4 = pi/4.0
 
real xvrmn
 
real xvrmx0
 
real xvsmn
 
real xvsmx
 
real xvfmn
 
real xvfmx
 
real xvgmn
 
real xvgmx
 
real xvhmn
 
real xvhmn0
 
real xvhmx
 
real xvhmx0
 
real xvhlmn
 
real xvhlmx
 
real, parameter dhlmn = 0.3e-3
 
real, parameter dhlmx = 40.e-3
 
real, parameter dhmn0 = 0.3e-3
 
real, private dhmn = dhmn0
 
real, private dhmx = -1.
 
real, parameter cwradn = 2.0e-6
 
real, parameter xcradmn = cwradn
 
real, parameter cwradx = 60.e-6
 
real, parameter xcradmx = cwradx
 
real, parameter cwc1 = 6.0/(pi*1000.)
 
real, parameter xvcmn =0.523599*(2.*cwradn)**3
 
real, parameter xvcmx =0.523599*(2.*xcradmx)**3
 
real, parameter cwmasn = 1000.*xvcmn
 
real, parameter cwmasx = 1000.*xvcmx
 
real, parameter cwmasn5 = 1000.*0.523599*(2.*5.0e-6)**3
 
real, parameter xvimn =0.523599*(2.*5.e-6)**3
 
real, parameter xvimx =0.523599*(2.*1.e-3)**3
 
real, private xvdmx = -1.0
 
real xvrmx
 
real eperao
 
real ec
 
real eci
 
real scwppmx = 20.0e-12
 
real scippmx = 20.0e-12
 
real, parameter c1f3 = 1.0/3.0
 
real, parameter cai = 21.87455
 
real, parameter caw = 17.2693882
 
real, parameter cbi = 7.66
 
real, parameter cbw = 35.86
 
real, parameter cbwbolton = 29.65
 
real, parameter cawbolton = 17.67
 
real, parameter tfrh = 233.15
 
real tfr = 273.15
 
real cp = 1004.0
 
real rd = 287.04
 
real rw = 461.5
 
real cpl = 4190.0
 
real cpigb = 2106.0
 
real cpi = 1.0/1004.0
 
real cap = 287.04/1004.0
 
real tfrcbw = 273.15 - cbw
 
real tfrcbi = 273.15 - cbi
 
real rovcp = 287.04/1004.0
 
real rdorv = 0.622
 
real, parameter poo = 1.0e+05
 
real, parameter advisc0 = 1.832e-05
 
real, parameter advisc1 = 1.718e-05
 
real, parameter tka0 = 2.43e-02
 
real, parameter, private cv = 717.0
 
real, parameter, private cvv = 1408.5
 
real, parameter bfnu0 = (rnu + 2.0)/(rnu + 1.0)
 
real ventr
 
real ventrn
 
real ventc
 
real c1sw
 
real cckm
 
real ccne
 
real ccnefac
 
real cnexp
 
real ccne0
 
integer, public na = 9
 
integer nxtra = 1
 
real gf4p5
 
real gf4ds
 
real gf4br
 
real gsnow1
 
real gsnow53
 
real gsnow73
 
real gfcinu1
 
real gfcinu1p47
 
real gfcinu2p47
 
real gfcinu1p22
 
real gfcinu2p22
 
real gfcinu1p18
 
real gfcinu2p18
 
real cwchtmp0 = 1.0
 
real cwchltmp0 = 1.0
 
real esctot = 1.0e-13
 
integer, dimension(lc:lqmx, lc:lqmx) iexy
 
integer ieswi = 1
 
integer ieswc = 1
 
integer ieswr = 0
 
integer iehlsw = 1
 
integer iehli = 1
 
integer iehlc = 1
 
integer iehlr = 0
 
integer iehwsw = 1
 
integer iehwi = 1
 
integer iehwc = 1
 
integer iehwr = 0
 
logical, parameter do_satadj_for_wrfchem = .true.
 
integer, parameter ac_opt = 0
 
logical, private nuaccoinp = .false.