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:ngm0) | gmoi |
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(nqsat) | tabqvs |
real, dimension(nqsat) | tabqis |
real, dimension(nqsat) | dtabqvs |
real, dimension(nqsat) | dtabqis |
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. |