/wrfv2_fire/phys/module_mp_morr_two_moment.F
FORTRAN Legacy | 4277 lines | 2282 code | 883 blank | 1112 comment | 8 complexity | e220149e4d11905453d573b2401b0487 MD5 | raw file
Possible License(s): AGPL-1.0
Large files files are truncated, but you can click here to view the full file
- !WRF:MODEL_LAYER:PHYSICS
- !
- ! THIS MODULE CONTAINS THE TWO-MOMENT MICROPHYSICS CODE DESCRIBED BY
- ! MORRISON ET AL. (2009, MWR)
- ! CHANGES FOR V3.2, RELATIVE TO MOST RECENT (BUG-FIX) CODE FOR V3.1
- ! 1) ADDED ACCELERATED MELTING OF GRAUPEL/SNOW DUE TO COLLISION WITH RAIN, FOLLOWING LIN ET AL. (1983)
- ! 2) INCREASED MINIMUM LAMBDA FOR RAIN, AND ADDED RAIN DROP BREAKUP FOLLOWING MODIFIED VERSION
- ! OF VERLINDE AND COTTON (1993)
- ! 3) CHANGE MINIMUM ALLOWED MIXING RATIOS IN DRY CONDITIONS (RH < 90%), THIS IMPROVES RADAR REFLECTIIVITY
- ! IN LOW REFLECTIVITY REGIONS
- ! 4) BUG FIX TO MAXIMUM ALLOWED PARTICLE FALLSPEEDS AS A FUNCTION OF AIR DENSITY
- ! 5) BUG FIX TO CALCULATION OF LIQUID WATER SATURATION VAPOR PRESSURE (CHANGE IS VERY MINOR)
- ! 6) INCLUDE WRF CONSTANTS PER SUGGESTION OF JIMY
- ! bug fix, 5/12/10
- ! 7) bug fix for saturation vapor pressure in low pressure, to avoid division by zero
- ! 8) include 'EP2' WRF constant for saturation mixing ratio calculation, instead of hardwire constant
- ! CHANGES FOR V3.3
- ! 1) MODIFICATION FOR COUPLING WITH WRF-CHEM (PREDICTED DROPLET NUMBER CONCENTRATION) AS AN OPTION
- ! 2) MODIFY FALLSPEED BELOW THE LOWEST LEVEL OF PRECIPITATION, WHICH PREVENTS
- ! POTENTIAL FOR SPURIOUS ACCUMULATION OF PRECIPITATION DURING SUB-STEPPING FOR SEDIMENTATION
- ! 3) BUG FIX TO LATENT HEAT RELEASE DUE TO COLLISIONS OF CLOUD ICE WITH RAIN
- ! 4) CLEAN UP OF COMMENTS IN THE CODE
-
- ! additional minor bug fixes and small changes, 5/30/2011
- ! minor revisions by A. Ackerman April 2011:
- ! 1) replaced kinematic with dynamic viscosity
- ! 2) replaced scaling by air density for cloud droplet sedimentation
- ! with viscosity-dependent Stokes expression
- ! 3) use Ikawa and Saito (1991) air-density scaling for cloud ice
- ! 4) corrected typo in 2nd digit of ventilation constant F2R
- ! additional fixes:
- ! 5) TEMPERATURE FOR ACCELERATED MELTING DUE TO COLLIIONS OF SNOW AND GRAUPEL
- ! WITH RAIN SHOULD USE CELSIUS, NOT KELVIN (BUG REPORTED BY K. VAN WEVERBERG)
- ! 6) NPRACS IS NOT SUBTRACTED FROM SNOW NUMBER CONCENTRATION, SINCE
- ! DECREASE IN SNOW NUMBER IS ALREADY ACCOUNTED FOR BY NSMLTS
- ! 7) fix for switch for running w/o graupel/hail (cloud ice and snow only)
- ! hm bug fix 3/16/12
- ! 1) very minor change to limits on autoconversion source of rain number when cloud water is depleted
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! THIS SCHEME IS A BULK DOUBLE-MOMENT SCHEME THAT PREDICTS MIXING
- ! RATIOS AND NUMBER CONCENTRATIONS OF FIVE HYDROMETEOR SPECIES:
- ! CLOUD DROPLETS, CLOUD (SMALL) ICE, RAIN, SNOW, AND GRAUPEL.
- MODULE MODULE_MP_MORR_TWO_MOMENT
- USE module_wrf_error
- ! USE module_utility, ONLY: WRFU_Clock, WRFU_Alarm ! GT
- ! USE module_domain, ONLY : HISTORY_ALARM, Is_alarm_tstep ! GT
- ! USE WRF PHYSICS CONSTANTS
- use module_model_constants, ONLY: CP, G, R => r_d, RV => r_v, EP_2
- ! USE module_state_description
- IMPLICIT NONE
- REAL, PARAMETER :: PI = 3.1415926535897932384626434
- REAL, PARAMETER :: SQRTPI = 0.9189385332046727417803297
- PUBLIC :: MP_MORR_TWO_MOMENT
- PUBLIC :: POLYSVP
- PRIVATE :: GAMMA, DERF1
- PRIVATE :: PI, SQRTPI
- PRIVATE :: MORR_TWO_MOMENT_MICRO
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! SWITCHES FOR MICROPHYSICS SCHEME
- ! IACT = 1, USE POWER-LAW CCN SPECTRA, NCCN = CS^K
- ! IACT = 2, USE LOGNORMAL AEROSOL SIZE DIST TO DERIVE CCN SPECTRA
- ! IACT = 3, ACTIVATION CALCULATED IN MODULE_MIXACTIVATE
- INTEGER, PRIVATE :: IACT
- ! INUM = 0, PREDICT DROPLET CONCENTRATION
- ! INUM = 1, ASSUME CONSTANT DROPLET CONCENTRATION
- ! !!!NOTE: PREDICTED DROPLET CONCENTRATION NOT AVAILABLE IN THIS VERSION
- ! CONTACT HUGH MORRISON (morrison@ucar.edu) FOR FURTHER INFORMATION
- INTEGER, PRIVATE :: INUM
- ! FOR INUM = 1, SET CONSTANT DROPLET CONCENTRATION (CM-3)
- REAL, PRIVATE :: NDCNST
- ! SWITCH FOR LIQUID-ONLY RUN
- ! ILIQ = 0, INCLUDE ICE
- ! ILIQ = 1, LIQUID ONLY, NO ICE
- INTEGER, PRIVATE :: ILIQ
- ! SWITCH FOR ICE NUCLEATION
- ! INUC = 0, USE FORMULA FROM RASMUSSEN ET AL. 2002 (MID-LATITUDE)
- ! = 1, USE MPACE OBSERVATIONS
- INTEGER, PRIVATE :: INUC
- ! IBASE = 1, NEGLECT DROPLET ACTIVATION AT LATERAL CLOUD EDGES DUE TO
- ! UNRESOLVED ENTRAINMENT AND MIXING, ACTIVATE
- ! AT CLOUD BASE OR IN REGION WITH LITTLE CLOUD WATER USING
- ! NON-EQULIBRIUM SUPERSATURATION,
- ! IN CLOUD INTERIOR ACTIVATE USING EQUILIBRIUM SUPERSATURATION
- ! IBASE = 2, ASSUME DROPLET ACTIVATION AT LATERAL CLOUD EDGES DUE TO
- ! UNRESOLVED ENTRAINMENT AND MIXING DOMINATES,
- ! ACTIVATE DROPLETS EVERYWHERE IN THE CLOUD USING NON-EQUILIBRIUM
- ! SUPERSATURATION, BASED ON THE
- ! LOCAL SUB-GRID AND/OR GRID-SCALE VERTICAL VELOCITY
- ! AT THE GRID POINT
- ! NOTE: ONLY USED FOR PREDICTED DROPLET CONCENTRATION (INUM = 0)
- INTEGER, PRIVATE :: IBASE
- ! INCLUDE SUB-GRID VERTICAL VELOCITY IN DROPLET ACTIVATION
- ! ISUB = 0, INCLUDE SUB-GRID W (RECOMMENDED FOR LOWER RESOLUTION)
- ! ISUB = 1, EXCLUDE SUB-GRID W, ONLY USE GRID-SCALE W
- INTEGER, PRIVATE :: ISUB
- ! SWITCH FOR GRAUPEL/NO GRAUPEL
- ! IGRAUP = 0, INCLUDE GRAUPEL
- ! IGRAUP = 1, NO GRAUPEL
- INTEGER, PRIVATE :: IGRAUP
- ! HM ADDED NEW OPTION FOR HAIL
- ! SWITCH FOR HAIL/GRAUPEL
- ! IHAIL = 0, DENSE PRECIPITATING ICE IS GRAUPEL
- ! IHAIL = 1, DENSE PRECIPITATING GICE IS HAIL
- INTEGER, PRIVATE :: IHAIL
- ! CLOUD MICROPHYSICS CONSTANTS
- REAL, PRIVATE :: AI,AC,AS,AR,AG ! 'A' PARAMETER IN FALLSPEED-DIAM RELATIONSHIP
- REAL, PRIVATE :: BI,BC,BS,BR,BG ! 'B' PARAMETER IN FALLSPEED-DIAM RELATIONSHIP
- ! REAL, PRIVATE :: R ! GAS CONSTANT FOR AIR
- ! REAL, PRIVATE :: RV ! GAS CONSTANT FOR WATER VAPOR
- ! REAL, PRIVATE :: CP ! SPECIFIC HEAT AT CONSTANT PRESSURE FOR DRY AIR
- REAL, PRIVATE :: RHOSU ! STANDARD AIR DENSITY AT 850 MB
- REAL, PRIVATE :: RHOW ! DENSITY OF LIQUID WATER
- REAL, PRIVATE :: RHOI ! BULK DENSITY OF CLOUD ICE
- REAL, PRIVATE :: RHOSN ! BULK DENSITY OF SNOW
- REAL, PRIVATE :: RHOG ! BULK DENSITY OF GRAUPEL
- REAL, PRIVATE :: AIMM ! PARAMETER IN BIGG IMMERSION FREEZING
- REAL, PRIVATE :: BIMM ! PARAMETER IN BIGG IMMERSION FREEZING
- REAL, PRIVATE :: ECR ! COLLECTION EFFICIENCY BETWEEN DROPLETS/RAIN AND SNOW/RAIN
- REAL, PRIVATE :: DCS ! THRESHOLD SIZE FOR CLOUD ICE AUTOCONVERSION
- REAL, PRIVATE :: MI0 ! INITIAL SIZE OF NUCLEATED CRYSTAL
- REAL, PRIVATE :: MG0 ! MASS OF EMBRYO GRAUPEL
- REAL, PRIVATE :: F1S ! VENTILATION PARAMETER FOR SNOW
- REAL, PRIVATE :: F2S ! VENTILATION PARAMETER FOR SNOW
- REAL, PRIVATE :: F1R ! VENTILATION PARAMETER FOR RAIN
- REAL, PRIVATE :: F2R ! VENTILATION PARAMETER FOR RAIN
- ! REAL, PRIVATE :: G ! GRAVITATIONAL ACCELERATION
- REAL, PRIVATE :: QSMALL ! SMALLEST ALLOWED HYDROMETEOR MIXING RATIO
- REAL, PRIVATE :: CI,DI,CS,DS,CG,DG ! SIZE DISTRIBUTION PARAMETERS FOR CLOUD ICE, SNOW, GRAUPEL
- REAL, PRIVATE :: EII ! COLLECTION EFFICIENCY, ICE-ICE COLLISIONS
- REAL, PRIVATE :: ECI ! COLLECTION EFFICIENCY, ICE-DROPLET COLLISIONS
- REAL, PRIVATE :: RIN ! RADIUS OF CONTACT NUCLEI (M)
- ! hm, add for V3.2
- REAL, PRIVATE :: CPW ! SPECIFIC HEAT OF LIQUID WATER
- ! CCN SPECTRA FOR IACT = 1
- REAL, PRIVATE :: C1 ! 'C' IN NCCN = CS^K (CM-3)
- REAL, PRIVATE :: K1 ! 'K' IN NCCN = CS^K
- ! AEROSOL PARAMETERS FOR IACT = 2
- REAL, PRIVATE :: MW ! MOLECULAR WEIGHT WATER (KG/MOL)
- REAL, PRIVATE :: OSM ! OSMOTIC COEFFICIENT
- REAL, PRIVATE :: VI ! NUMBER OF ION DISSOCIATED IN SOLUTION
- REAL, PRIVATE :: EPSM ! AEROSOL SOLUBLE FRACTION
- REAL, PRIVATE :: RHOA ! AEROSOL BULK DENSITY (KG/M3)
- REAL, PRIVATE :: MAP ! MOLECULAR WEIGHT AEROSOL (KG/MOL)
- REAL, PRIVATE :: MA ! MOLECULAR WEIGHT OF 'AIR' (KG/MOL)
- REAL, PRIVATE :: RR ! UNIVERSAL GAS CONSTANT
- REAL, PRIVATE :: BACT ! ACTIVATION PARAMETER
- REAL, PRIVATE :: RM1 ! GEOMETRIC MEAN RADIUS, MODE 1 (M)
- REAL, PRIVATE :: RM2 ! GEOMETRIC MEAN RADIUS, MODE 2 (M)
- REAL, PRIVATE :: NANEW1 ! TOTAL AEROSOL CONCENTRATION, MODE 1 (M^-3)
- REAL, PRIVATE :: NANEW2 ! TOTAL AEROSOL CONCENTRATION, MODE 2 (M^-3)
- REAL, PRIVATE :: SIG1 ! STANDARD DEVIATION OF AEROSOL S.D., MODE 1
- REAL, PRIVATE :: SIG2 ! STANDARD DEVIATION OF AEROSOL S.D., MODE 2
- REAL, PRIVATE :: F11 ! CORRECTION FACTOR FOR ACTIVATION, MODE 1
- REAL, PRIVATE :: F12 ! CORRECTION FACTOR FOR ACTIVATION, MODE 1
- REAL, PRIVATE :: F21 ! CORRECTION FACTOR FOR ACTIVATION, MODE 2
- REAL, PRIVATE :: F22 ! CORRECTION FACTOR FOR ACTIVATION, MODE 2
- REAL, PRIVATE :: MMULT ! MASS OF SPLINTERED ICE PARTICLE
- REAL, PRIVATE :: LAMMAXI,LAMMINI,LAMMAXR,LAMMINR,LAMMAXS,LAMMINS,LAMMAXG,LAMMING
- ! CONSTANTS TO IMPROVE EFFICIENCY
- REAL, PRIVATE :: CONS1,CONS2,CONS3,CONS4,CONS5,CONS6,CONS7,CONS8,CONS9,CONS10
- REAL, PRIVATE :: CONS11,CONS12,CONS13,CONS14,CONS15,CONS16,CONS17,CONS18,CONS19,CONS20
- REAL, PRIVATE :: CONS21,CONS22,CONS23,CONS24,CONS25,CONS26,CONS27,CONS28,CONS29,CONS30
- REAL, PRIVATE :: CONS31,CONS32,CONS33,CONS34,CONS35,CONS36,CONS37,CONS38,CONS39,CONS40
- REAL, PRIVATE :: CONS41
- CONTAINS
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- SUBROUTINE MORR_TWO_MOMENT_INIT
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! THIS SUBROUTINE INITIALIZES ALL PHYSICAL CONSTANTS AMND PARAMETERS
- ! NEEDED BY THE MICROPHYSICS SCHEME.
- ! NEEDS TO BE CALLED AT FIRST TIME STEP, PRIOR TO CALL TO MAIN MICROPHYSICS INTERFACE
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- IMPLICIT NONE
- integer n,i
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! THE FOLLOWING PARAMETERS ARE USER-DEFINED SWITCHES AND NEED TO BE
- ! SET PRIOR TO CODE COMPILATION
- ! INUM IS AUTOMATICALLY SET TO 0 FOR WRF-CHEM BELOW,
- ! ALLOWING PREDICTION OF DROPLET CONCENTRATION
- ! THUS, THIS PARAMETER SHOULD NOT BE CHANGED HERE
- ! AND SHOULD BE LEFT TO 1
- INUM = 1
- ! SET CONSTANT DROPLET CONCENTRATION (UNITS OF CM-3)
- ! IF NO COUPLING WITH WRF-CHEM
- NDCNST = 250.
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! NOTE, THE FOLLOWING OPTIONS RELATED TO DROPLET ACTIVATION
- ! (IACT, IBASE, ISUB) ARE NOT AVAILABLE IN CURRENT VERSION
- ! FOR WRF-CHEM, DROPLET ACTIVATION IS PERFORMED
- ! IN 'MIX_ACTIVATE', NOT IN MICROPHYSICS SCHEME
- ! IACT = 1, USE POWER-LAW CCN SPECTRA, NCCN = CS^K
- ! IACT = 2, USE LOGNORMAL AEROSOL SIZE DIST TO DERIVE CCN SPECTRA
- IACT = 2
- ! IBASE = 1, NEGLECT DROPLET ACTIVATION AT LATERAL CLOUD EDGES DUE TO
- ! UNRESOLVED ENTRAINMENT AND MIXING, ACTIVATE
- ! AT CLOUD BASE OR IN REGION WITH LITTLE CLOUD WATER USING
- ! NON-EQULIBRIUM SUPERSATURATION ASSUMING NO INITIAL CLOUD WATER,
- ! IN CLOUD INTERIOR ACTIVATE USING EQUILIBRIUM SUPERSATURATION
- ! IBASE = 2, ASSUME DROPLET ACTIVATION AT LATERAL CLOUD EDGES DUE TO
- ! UNRESOLVED ENTRAINMENT AND MIXING DOMINATES,
- ! ACTIVATE DROPLETS EVERYWHERE IN THE CLOUD USING NON-EQUILIBRIUM
- ! SUPERSATURATION ASSUMING NO INITIAL CLOUD WATER, BASED ON THE
- ! LOCAL SUB-GRID AND/OR GRID-SCALE VERTICAL VELOCITY
- ! AT THE GRID POINT
- ! NOTE: ONLY USED FOR PREDICTED DROPLET CONCENTRATION (INUM = 0)
-
- IBASE = 2
- ! INCLUDE SUB-GRID VERTICAL VELOCITY (standard deviation of w) IN DROPLET ACTIVATION
- ! ISUB = 0, INCLUDE SUB-GRID W (RECOMMENDED FOR LOWER RESOLUTION)
- ! currently, sub-grid w is constant of 0.5 m/s (not coupled with PBL/turbulence scheme)
- ! ISUB = 1, EXCLUDE SUB-GRID W, ONLY USE GRID-SCALE W
- ! NOTE: ONLY USED FOR PREDICTED DROPLET CONCENTRATION (INUM = 0)
- ISUB = 0
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! SWITCH FOR LIQUID-ONLY RUN
- ! ILIQ = 0, INCLUDE ICE
- ! ILIQ = 1, LIQUID ONLY, NO ICE
- ILIQ = 0
- ! SWITCH FOR ICE NUCLEATION
- ! INUC = 0, USE FORMULA FROM RASMUSSEN ET AL. 2002 (MID-LATITUDE)
- ! = 1, USE MPACE OBSERVATIONS (ARCTIC ONLY)
- INUC = 0
- ! SWITCH FOR GRAUPEL/HAIL NO GRAUPEL/HAIL
- ! IGRAUP = 0, INCLUDE GRAUPEL/HAIL
- ! IGRAUP = 1, NO GRAUPEL/HAIL
- IGRAUP = 0
- ! HM ADDED 11/7/07
- ! SWITCH FOR HAIL/GRAUPEL
- ! IHAIL = 0, DENSE PRECIPITATING ICE IS GRAUPEL
- ! IHAIL = 1, DENSE PRECIPITATING ICE IS HAIL
- ! NOTE ---> RECOMMEND IHAIL = 1 FOR CONTINENTAL DEEP CONVECTION
- IHAIL = 0
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! SET PHYSICAL CONSTANTS
- ! FALLSPEED PARAMETERS (V=AD^B)
- AI = 700.
- AC = 3.E7
- AS = 11.72
- AR = 841.99667
- BI = 1.
- BC = 2.
- BS = 0.41
- BR = 0.8
- IF (IHAIL.EQ.0) THEN
- AG = 19.3
- BG = 0.37
- ELSE ! (MATSUN AND HUGGINS 1980)
- AG = 114.5
- BG = 0.5
- END IF
- ! CONSTANTS AND PARAMETERS
- ! R = 287.15
- ! RV = 461.5
- ! CP = 1005.
- RHOSU = 85000./(287.15*273.15)
- RHOW = 997.
- RHOI = 500.
- RHOSN = 100.
- IF (IHAIL.EQ.0) THEN
- RHOG = 400.
- ELSE
- RHOG = 900.
- END IF
- AIMM = 0.66
- BIMM = 100.
- ECR = 1.
- DCS = 125.E-6
- MI0 = 4./3.*PI*RHOI*(10.E-6)**3
- MG0 = 1.6E-10
- F1S = 0.86
- F2S = 0.28
- F1R = 0.78
- ! F2R = 0.32
- ! fix 053011
- F2R = 0.308
- ! G = 9.806
- QSMALL = 1.E-14
- EII = 0.1
- ECI = 0.7
- ! HM, ADD FOR V3.2
- CPW = 4218.
- ! SIZE DISTRIBUTION PARAMETERS
- CI = RHOI*PI/6.
- DI = 3.
- CS = RHOSN*PI/6.
- DS = 3.
- CG = RHOG*PI/6.
- DG = 3.
- ! RADIUS OF CONTACT NUCLEI
- RIN = 0.1E-6
- MMULT = 4./3.*PI*RHOI*(5.E-6)**3
- ! SIZE LIMITS FOR LAMBDA
- LAMMAXI = 1./1.E-6
- LAMMINI = 1./(2.*DCS+100.E-6)
- LAMMAXR = 1./20.E-6
- ! LAMMINR = 1./500.E-6
- LAMMINR = 1./2800.E-6
- LAMMAXS = 1./10.E-6
- LAMMINS = 1./2000.E-6
- LAMMAXG = 1./20.E-6
- LAMMING = 1./2000.E-6
- ! CCN SPECTRA FOR IACT = 1
- ! MARITIME
- ! MODIFIED FROM RASMUSSEN ET AL. 2002
- ! NCCN = C*S^K, NCCN IS IN CM-3, S IS SUPERSATURATION RATIO IN %
- K1 = 0.4
- C1 = 120.
- ! CONTINENTAL
- ! K1 = 0.5
- ! C1 = 1000.
- ! AEROSOL ACTIVATION PARAMETERS FOR IACT = 2
- ! PARAMETERS CURRENTLY SET FOR AMMONIUM SULFATE
- MW = 0.018
- OSM = 1.
- VI = 3.
- EPSM = 0.7
- RHOA = 1777.
- MAP = 0.132
- MA = 0.0284
- RR = 8.3187
- BACT = VI*OSM*EPSM*MW*RHOA/(MAP*RHOW)
- ! AEROSOL SIZE DISTRIBUTION PARAMETERS CURRENTLY SET FOR MPACE
- ! (see morrison et al. 2007, JGR)
- ! MODE 1
- RM1 = 0.052E-6
- SIG1 = 2.04
- NANEW1 = 72.2E6
- F11 = 0.5*EXP(2.5*(LOG(SIG1))**2)
- F21 = 1.+0.25*LOG(SIG1)
- ! MODE 2
- RM2 = 1.3E-6
- SIG2 = 2.5
- NANEW2 = 1.8E6
- F12 = 0.5*EXP(2.5*(LOG(SIG2))**2)
- F22 = 1.+0.25*LOG(SIG2)
- ! CONSTANTS FOR EFFICIENCY
- CONS1=GAMMA(1.+DS)*CS
- CONS2=GAMMA(1.+DG)*CG
- CONS3=GAMMA(4.+BS)/6.
- CONS4=GAMMA(4.+BR)/6.
- CONS5=GAMMA(1.+BS)
- CONS6=GAMMA(1.+BR)
- CONS7=GAMMA(4.+BG)/6.
- CONS8=GAMMA(1.+BG)
- CONS9=GAMMA(5./2.+BR/2.)
- CONS10=GAMMA(5./2.+BS/2.)
- CONS11=GAMMA(5./2.+BG/2.)
- CONS12=GAMMA(1.+DI)*CI
- CONS13=GAMMA(BS+3.)*PI/4.*ECI
- CONS14=GAMMA(BG+3.)*PI/4.*ECI
- CONS15=-1108.*EII*PI**((1.-BS)/3.)*RHOSN**((-2.-BS)/3.)/(4.*720.)
- CONS16=GAMMA(BI+3.)*PI/4.*ECI
- CONS17=4.*2.*3.*RHOSU*PI*ECI*ECI*GAMMA(2.*BS+2.)/(8.*(RHOG-RHOSN))
- CONS18=RHOSN*RHOSN
- CONS19=RHOW*RHOW
- CONS20=20.*PI*PI*RHOW*BIMM
- CONS21=4./(DCS*RHOI)
- CONS22=PI*RHOI*DCS**3/6.
- CONS23=PI/4.*EII*GAMMA(BS+3.)
- CONS24=PI/4.*ECR*GAMMA(BR+3.)
- CONS25=PI*PI/24.*RHOW*ECR*GAMMA(BR+6.)
- CONS26=PI/6.*RHOW
- CONS27=GAMMA(1.+BI)
- CONS28=GAMMA(4.+BI)/6.
- CONS29=4./3.*PI*RHOW*(25.E-6)**3
- CONS30=4./3.*PI*RHOW
- CONS31=PI*PI*ECR*RHOSN
- CONS32=PI/2.*ECR
- CONS33=PI*PI*ECR*RHOG
- CONS34=5./2.+BR/2.
- CONS35=5./2.+BS/2.
- CONS36=5./2.+BG/2.
- CONS37=4.*PI*1.38E-23/(6.*PI*RIN)
- CONS38=PI*PI/3.*RHOW
- CONS39=PI*PI/36.*RHOW*BIMM
- CONS40=PI/6.*BIMM
- CONS41=PI*PI*ECR*RHOW
- END SUBROUTINE MORR_TWO_MOMENT_INIT
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! THIS SUBROUTINE IS MAIN INTERFACE WITH THE TWO-MOMENT MICROPHYSICS SCHEME
- ! THIS INTERFACE TAKES IN 3D VARIABLES FROM DRIVER MODEL, CONVERTS TO 1D FOR
- ! CALL TO THE MAIN MICROPHYSICS SUBROUTINE (SUBROUTINE MORR_TWO_MOMENT_MICRO)
- ! WHICH OPERATES ON 1D VERTICAL COLUMNS.
- ! 1D VARIABLES FROM THE MAIN MICROPHYSICS SUBROUTINE ARE THEN REASSIGNED BACK TO 3D FOR OUTPUT
- ! BACK TO DRIVER MODEL USING THIS INTERFACE.
- ! MICROPHYSICS TENDENCIES ARE ADDED TO VARIABLES HERE BEFORE BEING PASSED BACK TO DRIVER MODEL.
- ! THIS CODE WAS WRITTEN BY HUGH MORRISON (NCAR) AND SLAVA TATARSKII (GEORGIA TECH).
- ! FOR QUESTIONS, CONTACT: HUGH MORRISON, E-MAIL: MORRISON@UCAR.EDU, PHONE:303-497-8916
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- SUBROUTINE MP_MORR_TWO_MOMENT(ITIMESTEP, &
- TH, QV, QC, QR, QI, QS, QG, NI, NS, NR, NG, &
- RHO, PII, P, DT_IN, DZ, HT, W, &
- RAINNC, RAINNCV, SR, &
- qrcuten, qscuten, qicuten, mu & ! hm added
- ,F_QNDROP, qndrop & ! hm added, wrf-chem
- ,IDS,IDE, JDS,JDE, KDS,KDE & ! domain dims
- ,IMS,IME, JMS,JME, KMS,KME & ! memory dims
- ,ITS,ITE, JTS,JTE, KTS,KTE & ! tile dims )
- !jdf ,C2PREC3D,CSED3D,ISED3D,SSED3D,GSED3D,RSED3D & ! HM ADD, WRF-CHEM
- ,QLSINK,PRECR,PRECI,PRECS,PRECG & ! HM ADD, WRF-CHEM
- )
-
- ! QV - water vapor mixing ratio (kg/kg)
- ! QC - cloud water mixing ratio (kg/kg)
- ! QR - rain water mixing ratio (kg/kg)
- ! QI - cloud ice mixing ratio (kg/kg)
- ! QS - snow mixing ratio (kg/kg)
- ! QG - graupel mixing ratio (KG/KG)
- ! NI - cloud ice number concentration (1/kg)
- ! NS - Snow Number concentration (1/kg)
- ! NR - Rain Number concentration (1/kg)
- ! NG - Graupel number concentration (1/kg)
- ! NOTE: RHO AND HT NOT USED BY THIS SCHEME AND DO NOT NEED TO BE PASSED INTO SCHEME!!!!
- ! P - AIR PRESSURE (PA)
- ! W - VERTICAL AIR VELOCITY (M/S)
- ! TH - POTENTIAL TEMPERATURE (K)
- ! PII - exner function - used to convert potential temp to temp
- ! DZ - difference in height over interface (m)
- ! DT_IN - model time step (sec)
- ! ITIMESTEP - time step counter
- ! RAINNC - accumulated grid-scale precipitation (mm)
- ! RAINNCV - one time step grid scale precipitation (mm/time step)
- ! SR - one time step mass ratio of snow to total precip
- ! qrcuten, rain tendency from parameterized cumulus convection
- ! qscuten, snow tendency from parameterized cumulus convection
- ! qicuten, cloud ice tendency from parameterized cumulus convection
- ! variables below currently not in use, not coupled to PBL or radiation codes
- ! TKE - turbulence kinetic energy (m^2 s-2), NEEDED FOR DROPLET ACTIVATION (SEE CODE BELOW)
- ! NCTEND - droplet concentration tendency from pbl (kg-1 s-1)
- ! NCTEND - CLOUD ICE concentration tendency from pbl (kg-1 s-1)
- ! KZH - heat eddy diffusion coefficient from YSU scheme (M^2 S-1), NEEDED FOR DROPLET ACTIVATION (SEE CODE BELOW)
- ! EFFCS - CLOUD DROPLET EFFECTIVE RADIUS OUTPUT TO RADIATION CODE (micron)
- ! EFFIS - CLOUD DROPLET EFFECTIVE RADIUS OUTPUT TO RADIATION CODE (micron)
- ! HM, ADDED FOR WRF-CHEM COUPLING
- ! QLSINK - TENDENCY OF CLOUD WATER TO RAIN, SNOW, GRAUPEL (KG/KG/S)
- ! CSED,ISED,SSED,GSED,RSED - SEDIMENTATION FLUXES (KG/M^2/S) FOR CLOUD WATER, ICE, SNOW, GRAUPEL, RAIN
- ! PRECI,PRECS,PRECG,PRECR - SEDIMENTATION FLUXES (KG/M^2/S) FOR ICE, SNOW, GRAUPEL, RAIN
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! reflectivity currently not included!!!!
- ! REFL_10CM - CALCULATED RADAR REFLECTIVITY AT 10 CM (DBZ)
- !................................
- ! GRID_CLOCK, GRID_ALARMS - parameters to limit radar reflectivity calculation only when needed
- ! otherwise radar reflectivity calculation every time step is too slow
- ! only needed for coupling with WRF, see code below for details
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- ! EFFC - DROPLET EFFECTIVE RADIUS (MICRON)
- ! EFFR - RAIN EFFECTIVE RADIUS (MICRON)
- ! EFFS - SNOW EFFECTIVE RADIUS (MICRON)
- ! EFFI - CLOUD ICE EFFECTIVE RADIUS (MICRON)
- ! ADDITIONAL OUTPUT FROM MICRO - SEDIMENTATION TENDENCIES, NEEDED FOR LIQUID-ICE STATIC ENERGY
- ! QGSTEN - GRAUPEL SEDIMENTATION TEND (KG/KG/S)
- ! QRSTEN - RAIN SEDIMENTATION TEND (KG/KG/S)
- ! QISTEN - CLOUD ICE SEDIMENTATION TEND (KG/KG/S)
- ! QNISTEN - SNOW SEDIMENTATION TEND (KG/KG/S)
- ! QCSTEN - CLOUD WATER SEDIMENTATION TEND (KG/KG/S)
- ! WVAR - STANDARD DEVIATION OF SUB-GRID VERTICAL VELOCITY (M/S)
- IMPLICIT NONE
- INTEGER, INTENT(IN ) :: ids, ide, jds, jde, kds, kde , &
- ims, ime, jms, jme, kms, kme , &
- its, ite, jts, jte, kts, kte
- ! Temporary changed from INOUT to IN
- REAL, DIMENSION(ims:ime, kms:kme, jms:jme), INTENT(INOUT):: &
- qv, qc, qr, qi, qs, qg, ni, ns, nr, TH, NG
- !jdf qndrop ! hm added, wrf-chem
- REAL, DIMENSION(ims:ime, kms:kme, jms:jme), optional,INTENT(INOUT):: qndrop
- !jdf REAL, DIMENSION(ims:ime, kms:kme, jms:jme),INTENT(INOUT):: CSED3D, &
- REAL, DIMENSION(ims:ime, kms:kme, jms:jme), optional,INTENT(INOUT):: QLSINK, &
- PRECI,PRECS,PRECG,PRECR ! HM, WRF-CHEM
- !, effcs, effis
- REAL, DIMENSION(ims:ime, kms:kme, jms:jme), INTENT(IN):: &
- pii, p, dz, rho, w !, tke, nctend, nitend,kzh
- REAL, INTENT(IN):: dt_in
- INTEGER, INTENT(IN):: ITIMESTEP
- REAL, DIMENSION(ims:ime, jms:jme), INTENT(INOUT):: &
- RAINNC, RAINNCV, SR
- ! REAL, DIMENSION(ims:ime, kms:kme, jms:jme), INTENT(INOUT):: & ! GT
- ! refl_10cm
- REAL , DIMENSION( ims:ime , jms:jme ) , INTENT(IN) :: ht
- ! TYPE (WRFU_Clock):: grid_clock ! GT
- ! TYPE (WRFU_Alarm), POINTER:: grid_alarms(:) ! GT
- ! LOCAL VARIABLES
- REAL, DIMENSION(its:ite, kts:kte, jts:jte):: &
- effi, effs, effr, EFFG
- REAL, DIMENSION(its:ite, kts:kte, jts:jte):: &
- T, WVAR, EFFC
- REAL, DIMENSION(kts:kte) :: &
- QC_TEND1D, QI_TEND1D, QNI_TEND1D, QR_TEND1D, &
- NI_TEND1D, NS_TEND1D, NR_TEND1D, &
- QC1D, QI1D, QR1D,NI1D, NS1D, NR1D, QS1D, &
- T_TEND1D,QV_TEND1D, T1D, QV1D, P1D, W1D, WVAR1D, &
- EFFC1D, EFFI1D, EFFS1D, EFFR1D,DZ1D, &
- ! HM ADD GRAUPEL
- QG_TEND1D, NG_TEND1D, QG1D, NG1D, EFFG1D, &
- ! ADD SEDIMENTATION TENDENCIES (UNITS OF KG/KG/S)
- QGSTEN,QRSTEN, QISTEN, QNISTEN, QCSTEN, &
- ! ADD CUMULUS TENDENCIES
- QRCU1D, QSCU1D, QICU1D
- ! add cumulus tendencies
- REAL, DIMENSION(ims:ime, kms:kme, jms:jme), INTENT(IN):: &
- qrcuten, qscuten, qicuten
- REAL, DIMENSION(ims:ime, jms:jme), INTENT(IN):: &
- mu
- LOGICAL, INTENT(IN), OPTIONAL :: F_QNDROP ! wrf-chem
- LOGICAL :: flag_qndrop ! wrf-chem
- integer :: iinum ! wrf-chem
- ! wrf-chem
- REAL, DIMENSION(kts:kte) :: nc1d, nc_tend1d,C2PREC,CSED,ISED,SSED,GSED,RSED
- ! HM add reflectivity
- ! dbz
-
- REAL PRECPRT1D, SNOWRT1D
- INTEGER I,K,J
- REAL DT
- ! LOGICAL:: dBZ_tstep ! GT
- ! below for wrf-chem
- flag_qndrop = .false.
- IF ( PRESENT ( f_qndrop ) ) flag_qndrop = f_qndrop
- !!!!!!!!!!!!!!!!!!!!!!
- ! Initialize tendencies (all set to 0) and transfer
- ! array to local variables
- DT = DT_IN
- DO I=ITS,ITE
- DO J=JTS,JTE
- DO K=KTS,KTE
- T(I,K,J) = TH(i,k,j)*PII(i,k,j)
- ! NOTE: WVAR NOT CURRENTLY USED IN CODE !!!!!!!!!!
- ! currently assign wvar to 0.5 m/s (not coupled with PBL scheme)
- WVAR(I,K,J) = 0.5
- ! currently mixing of number concentrations also is neglected (not coupled with PBL schemes)
- END DO
- END DO
- END DO
- do i=its,ite ! i loop (east-west)
- do j=jts,jte ! j loop (north-south)
- !
- ! Transfer 3D arrays into 1D for microphysical calculations
- !
- ! hm , initialize 1d tendency arrays to zero
- do k=kts,kte ! k loop (vertical)
- QC_TEND1D(k) = 0.
- QI_TEND1D(k) = 0.
- QNI_TEND1D(k) = 0.
- QR_TEND1D(k) = 0.
- NI_TEND1D(k) = 0.
- NS_TEND1D(k) = 0.
- NR_TEND1D(k) = 0.
- T_TEND1D(k) = 0.
- QV_TEND1D(k) = 0.
- nc_tend1d(k) = 0. ! wrf-chem
- QC1D(k) = QC(i,k,j)
- QI1D(k) = QI(i,k,j)
- QS1D(k) = QS(i,k,j)
- QR1D(k) = QR(i,k,j)
- NI1D(k) = NI(i,k,j)
- NS1D(k) = NS(i,k,j)
- NR1D(k) = NR(i,k,j)
- ! HM ADD GRAUPEL
- QG1D(K) = QG(I,K,j)
- NG1D(K) = NG(I,K,j)
- QG_TEND1D(K) = 0.
- NG_TEND1D(K) = 0.
- T1D(k) = T(i,k,j)
- QV1D(k) = QV(i,k,j)
- P1D(k) = P(i,k,j)
- DZ1D(k) = DZ(i,k,j)
- W1D(k) = W(i,k,j)
- WVAR1D(k) = WVAR(i,k,j)
- ! add cumulus tendencies, decouple from mu
- qrcu1d(k) = qrcuten(i,k,j)/mu(i,j)
- qscu1d(k) = qscuten(i,k,j)/mu(i,j)
- qicu1d(k) = qicuten(i,k,j)/mu(i,j)
- end do !jdf added this
- ! below for wrf-chem
- IF (flag_qndrop .AND. PRESENT( qndrop )) THEN
- iact = 3
- DO k = kts, kte
- nc1d(k)=qndrop(i,k,j)
- iinum=0
- ENDDO
- ELSE
- DO k = kts, kte
- nc1d(k)=0. ! temporary placeholder, set to constant in microphysics subroutine
- iinum=1
- ENDDO
- ENDIF
- !jdf end do
- call MORR_TWO_MOMENT_MICRO(QC_TEND1D, QI_TEND1D, QNI_TEND1D, QR_TEND1D, &
- NI_TEND1D, NS_TEND1D, NR_TEND1D, &
- QC1D, QI1D, QS1D, QR1D,NI1D, NS1D, NR1D, &
- T_TEND1D,QV_TEND1D, T1D, QV1D, P1D, DZ1D, W1D, WVAR1D, &
- PRECPRT1D,SNOWRT1D, &
- EFFC1D,EFFI1D,EFFS1D,EFFR1D,DT, &
- IMS,IME, JMS,JME, KMS,KME, &
- ITS,ITE, JTS,JTE, KTS,KTE, & ! HM ADD GRAUPEL
- QG_TEND1D,NG_TEND1D,QG1D,NG1D,EFFG1D, &
- qrcu1d, qscu1d, qicu1d, &
- ! ADD SEDIMENTATION TENDENCIES
- QGSTEN,QRSTEN,QISTEN,QNISTEN,QCSTEN, &
- nc1d, nc_tend1d, iinum, C2PREC,CSED,ISED,SSED,GSED,RSED & !wrf-chem
- )
- !
- ! Transfer 1D arrays back into 3D arrays
- !
- do k=kts,kte
- ! hm, add tendencies to update global variables
- ! HM, TENDENCIES FOR Q AND N NOW ADDED IN M2005MICRO, SO WE
- ! ONLY NEED TO TRANSFER 1D VARIABLES BACK TO 3D
- QC(i,k,j) = QC1D(k)
- QI(i,k,j) = QI1D(k)
- QS(i,k,j) = QS1D(k)
- QR(i,k,j) = QR1D(k)
- NI(i,k,j) = NI1D(k)
- NS(i,k,j) = NS1D(k)
- NR(i,k,j) = NR1D(k)
- QG(I,K,j) = QG1D(K)
- NG(I,K,j) = NG1D(K)
- T(i,k,j) = T1D(k)
- TH(I,K,J) = T(i,k,j)/PII(i,k,j) ! CONVERT TEMP BACK TO POTENTIAL TEMP
- QV(i,k,j) = QV1D(k)
- EFFC(i,k,j) = EFFC1D(k)
- EFFI(i,k,j) = EFFI1D(k)
- EFFS(i,k,j) = EFFS1D(k)
- EFFR(i,k,j) = EFFR1D(k)
- EFFG(I,K,j) = EFFG1D(K)
- ! wrf-chem
- IF (flag_qndrop .AND. PRESENT( qndrop )) THEN
- qndrop(i,k,j) = nc1d(k)
- !jdf CSED3D(I,K,J) = CSED(K)
- END IF
- IF ( PRESENT( QLSINK ) ) THEN
- if(qc(i,k,j)>1.e-10) then
- QLSINK(I,K,J) = C2PREC(K)/QC(I,K,J)
- else
- QLSINK(I,K,J) = 0.0
- endif
- END IF
- IF ( PRESENT( PRECR ) ) PRECR(I,K,J) = RSED(K)
- IF ( PRESENT( PRECI ) ) PRECI(I,K,J) = ISED(K)
- IF ( PRESENT( PRECS ) ) PRECS(I,K,J) = SSED(K)
- IF ( PRESENT( PRECG ) ) PRECG(I,K,J) = GSED(K)
- ! EFFECTIVE RADIUS FOR RADIATION CODE (currently not coupled)
- ! HM, ADD LIMIT TO PREVENT BLOWING UP OPTICAL PROPERTIES, 8/18/07
- ! EFFCS(I,K,J) = MIN(EFFC(I,K,J),50.)
- ! EFFCS(I,K,J) = MAX(EFFCS(I,K,J),1.)
- ! EFFIS(I,K,J) = MIN(EFFI(I,K,J),130.)
- ! EFFIS(I,K,J) = MAX(EFFIS(I,K,J),13.)
- end do
- ! hm modified so that m2005 precip variables correctly match wrf precip variables
- RAINNC(i,j) = RAINNC(I,J)+PRECPRT1D
- RAINNCV(i,j) = PRECPRT1D
- SR(i,j) = SNOWRT1D/(PRECPRT1D+1.E-12)
- end do
- end do
- END SUBROUTINE MP_MORR_TWO_MOMENT
- !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
- !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
- SUBROUTINE MORR_TWO_MOMENT_MICRO(QC3DTEN,QI3DTEN,QNI3DTEN,QR3DTEN, &
- NI3DTEN,NS3DTEN,NR3DTEN,QC3D,QI3D,QNI3D,QR3D,NI3D,NS3D,NR3D, &
- T3DTEN,QV3DTEN,T3D,QV3D,PRES,DZQ,W3D,WVAR,PRECRT,SNOWRT, &
- EFFC,EFFI,EFFS,EFFR,DT, &
- IMS,IME, JMS,JME, KMS,KME, &
- ITS,ITE, JTS,JTE, KTS,KTE, & ! ADD GRAUPEL
- QG3DTEN,NG3DTEN,QG3D,NG3D,EFFG,qrcu1d,qscu1d, qicu1d, &
- QGSTEN,QRSTEN,QISTEN,QNISTEN,QCSTEN, &
- nc3d,nc3dten,iinum, & ! wrf-chem
- c2prec,CSED,ISED,SSED,GSED,RSED & ! hm added, wrf-chem
- )
- !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
- ! THIS PROGRAM IS THE MAIN TWO-MOMENT MICROPHYSICS SUBROUTINE DESCRIBED BY
- ! MORRISON ET AL. 2005 JAS; MORRISON AND PINTO 2005 JAS.
- ! ADDITIONAL CHANGES ARE DESCRIBED IN DETAIL BY MORRISON, THOMPSON, TATARSKII (MWR, SUBMITTED)
- ! THIS SCHEME IS A BULK DOUBLE-MOMENT SCHEME THAT PREDICTS MIXING
- ! RATIOS AND NUMBER CONCENTRATIONS OF FIVE HYDROMETEOR SPECIES:
- ! CLOUD DROPLETS, CLOUD (SMALL) ICE, RAIN, SNOW, AND GRAUPEL.
- ! CODE STRUCTURE: MAIN SUBROUTINE IS 'MORR_TWO_MOMENT'. ALSO INCLUDED IN THIS FILE IS
- ! 'FUNCTION POLYSVP', 'FUNCTION DERF1', AND
- ! 'FUNCTION GAMMA'.
- ! NOTE: THIS SUBROUTINE USES 1D ARRAY IN VERTICAL (COLUMN), EVEN THOUGH VARIABLES ARE CALLED '3D'......
- !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
- ! DECLARATIONS
- IMPLICIT NONE
- !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
- ! THESE VARIABLES BELOW MUST BE LINKED WITH THE MAIN MODEL.
- ! DEFINE ARRAY SIZES
- ! INPUT NUMBER OF GRID CELLS
- ! INPUT/OUTPUT PARAMETERS ! DESCRIPTION (UNITS)
- INTEGER, INTENT( IN) :: IMS,IME, JMS,JME, KMS,KME, &
- ITS,ITE, JTS,JTE, KTS,KTE
- REAL, DIMENSION(KTS:KTE) :: QC3DTEN ! CLOUD WATER MIXING RATIO TENDENCY (KG/KG/S)
- REAL, DIMENSION(KTS:KTE) :: QI3DTEN ! CLOUD ICE MIXING RATIO TENDENCY (KG/KG/S)
- REAL, DIMENSION(KTS:KTE) :: QNI3DTEN ! SNOW MIXING RATIO TENDENCY (KG/KG/S)
- REAL, DIMENSION(KTS:KTE) :: QR3DTEN ! RAIN MIXING RATIO TENDENCY (KG/KG/S)
- REAL, DIMENSION(KTS:KTE) :: NI3DTEN ! CLOUD ICE NUMBER CONCENTRATION (1/KG/S)
- REAL, DIMENSION(KTS:KTE) :: NS3DTEN ! SNOW NUMBER CONCENTRATION (1/KG/S)
- REAL, DIMENSION(KTS:KTE) :: NR3DTEN ! RAIN NUMBER CONCENTRATION (1/KG/S)
- REAL, DIMENSION(KTS:KTE) :: QC3D ! CLOUD WATER MIXING RATIO (KG/KG)
- REAL, DIMENSION(KTS:KTE) :: QI3D ! CLOUD ICE MIXING RATIO (KG/KG)
- REAL, DIMENSION(KTS:KTE) :: QNI3D ! SNOW MIXING RATIO (KG/KG)
- REAL, DIMENSION(KTS:KTE) :: QR3D ! RAIN MIXING RATIO (KG/KG)
- REAL, DIMENSION(KTS:KTE) :: NI3D ! CLOUD ICE NUMBER CONCENTRATION (1/KG)
- REAL, DIMENSION(KTS:KTE) :: NS3D ! SNOW NUMBER CONCENTRATION (1/KG)
- REAL, DIMENSION(KTS:KTE) :: NR3D ! RAIN NUMBER CONCENTRATION (1/KG)
- REAL, DIMENSION(KTS:KTE) :: T3DTEN ! TEMPERATURE TENDENCY (K/S)
- REAL, DIMENSION(KTS:KTE) :: QV3DTEN ! WATER VAPOR MIXING RATIO TENDENCY (KG/KG/S)
- REAL, DIMENSION(KTS:KTE) :: T3D ! TEMPERATURE (K)
- REAL, DIMENSION(KTS:KTE) :: QV3D ! WATER VAPOR MIXING RATIO (KG/KG)
- REAL, DIMENSION(KTS:KTE) :: PRES ! ATMOSPHERIC PRESSURE (PA)
- REAL, DIMENSION(KTS:KTE) :: DZQ ! DIFFERENCE IN HEIGHT ACROSS LEVEL (m)
- REAL, DIMENSION(KTS:KTE) :: W3D ! GRID-SCALE VERTICAL VELOCITY (M/S)
- REAL, DIMENSION(KTS:KTE) :: WVAR ! SUB-GRID VERTICAL VELOCITY (M/S)
- ! below for wrf-chem
- REAL, DIMENSION(KTS:KTE) :: nc3d
- REAL, DIMENSION(KTS:KTE) :: nc3dten
- integer, intent(in) :: iinum
- ! HM ADDED GRAUPEL VARIABLES
- REAL, DIMENSION(KTS:KTE) :: QG3DTEN ! GRAUPEL MIX RATIO TENDENCY (KG/KG/S)
- REAL, DIMENSION(KTS:KTE) :: NG3DTEN ! GRAUPEL NUMB CONC TENDENCY (1/KG/S)
- REAL, DIMENSION(KTS:KTE) :: QG3D ! GRAUPEL MIX RATIO (KG/KG)
- REAL, DIMENSION(KTS:KTE) :: NG3D ! GRAUPEL NUMBER CONC (1/KG)
- ! HM, ADD 1/16/07, SEDIMENTATION TENDENCIES FOR MIXING RATIO
- REAL, DIMENSION(KTS:KTE) :: QGSTEN ! GRAUPEL SED TEND (KG/KG/S)
- REAL, DIMENSION(KTS:KTE) :: QRSTEN ! RAIN SED TEND (KG/KG/S)
- REAL, DIMENSION(KTS:KTE) :: QISTEN ! CLOUD ICE SED TEND (KG/KG/S)
- REAL, DIMENSION(KTS:KTE) :: QNISTEN ! SNOW SED TEND (KG/KG/S)
- REAL, DIMENSION(KTS:KTE) :: QCSTEN ! CLOUD WAT SED TEND (KG/KG/S)
- ! hm add cumulus tendencies for precip
- REAL, DIMENSION(KTS:KTE) :: qrcu1d
- REAL, DIMENSION(KTS:KTE) :: qscu1d
- REAL, DIMENSION(KTS:KTE) :: qicu1d
- ! OUTPUT VARIABLES
- REAL PRECRT ! TOTAL PRECIP PER TIME STEP (mm)
- REAL SNOWRT ! SNOW PER TIME STEP (mm)
- REAL, DIMENSION(KTS:KTE) :: EFFC ! DROPLET EFFECTIVE RADIUS (MICRON)
- REAL, DIMENSION(KTS:KTE) :: EFFI ! CLOUD ICE EFFECTIVE RADIUS (MICRON)
- REAL, DIMENSION(KTS:KTE) :: EFFS ! SNOW EFFECTIVE RADIUS (MICRON)
- REAL, DIMENSION(KTS:KTE) :: EFFR ! RAIN EFFECTIVE RADIUS (MICRON)
- REAL, DIMENSION(KTS:KTE) :: EFFG ! GRAUPEL EFFECTIVE RADIUS (MICRON)
- ! MODEL INPUT PARAMETERS (FORMERLY IN COMMON BLOCKS)
- REAL DT ! MODEL TIME STEP (SEC)
- !.....................................................................................................
- ! LOCAL VARIABLES: ALL PARAMETERS BELOW ARE LOCAL TO SCHEME AND DON'T NEED TO COMMUNICATE WITH THE
- ! REST OF THE MODEL.
- ! SIZE PARAMETER VARIABLES
- REAL, DIMENSION(KTS:KTE) :: LAMC ! SLOPE PARAMETER FOR DROPLETS (M-1)
- REAL, DIMENSION(KTS:KTE) :: LAMI ! SLOPE PARAMETER FOR CLOUD ICE (M-1)
- REAL, DIMENSION(KTS:KTE) :: LAMS ! SLOPE PARAMETER FOR SNOW (M-1)
- REAL, DIMENSION(KTS:KTE) :: LAMR ! SLOPE PARAMETER FOR RAIN (M-1)
- REAL, DIMENSION(KTS:KTE) :: LAMG ! SLOPE PARAMETER FOR GRAUPEL (M-1)
- REAL, DIMENSION(KTS:KTE) :: CDIST1 ! PSD PARAMETER FOR DROPLETS
- REAL, DIMENSION(KTS:KTE) :: N0I ! INTERCEPT PARAMETER FOR CLOUD ICE (KG-1 M-1)
- REAL, DIMENSION(KTS:KTE) :: N0S ! INTERCEPT PARAMETER FOR SNOW (KG-1 M-1)
- REAL, DIMENSION(KTS:KTE) :: N0RR ! INTERCEPT PARAMETER FOR RAIN (KG-1 M-1)
- REAL, DIMENSION(KTS:KTE) :: N0G ! INTERCEPT PARAMETER FOR GRAUPEL (KG-1 M-1)
- REAL, DIMENSION(KTS:KTE) :: PGAM ! SPECTRAL SHAPE PARAMETER FOR DROPLETS
- ! MICROPHYSICAL PROCESSES
- REAL, DIMENSION(KTS:KTE) :: NSUBC ! LOSS OF NC DURING EVAP
- REAL, DIMENSION(KTS:KTE) :: NSUBI ! LOSS OF NI DURING SUB.
- REAL, DIMENSION(KTS:KTE) :: NSUBS ! LOSS OF NS DURING SUB.
- REAL, DIMENSION(KTS:KTE) :: NSUBR ! LOSS OF NR DURING EVAP
- REAL, DIMENSION(KTS:KTE) :: PRD ! DEP CLOUD ICE
- REAL, DIMENSION(KTS:KTE) :: PRE ! EVAP OF RAIN
- REAL, DIMENSION(KTS:KTE) :: PRDS ! DEP SNOW
- REAL, DIMENSION(KTS:KTE) :: NNUCCC ! CHANGE N DUE TO CONTACT FREEZ DROPLETS
- REAL, DIMENSION(KTS:KTE) :: MNUCCC ! CHANGE Q DUE TO CONTACT FREEZ DROPLETS
- REAL, DIMENSION(KTS:KTE) :: PRA ! ACCRETION DROPLETS BY RAIN
- REAL, DIMENSION(KTS:KTE) :: PRC ! AUTOCONVERSION DROPLETS
- REAL, DIMENSION(KTS:KTE) :: PCC ! COND/EVAP DROPLETS
- REAL, DIMENSION(KTS:KTE) :: NNUCCD ! CHANGE N FREEZING AEROSOL (PRIM ICE NUCLEATION)
- REAL, DIMENSION(KTS:KTE) :: MNUCCD ! CHANGE Q FREEZING AEROSOL (PRIM ICE NUCLEATION)
- REAL, DIMENSION(KTS:KTE) :: MNUCCR ! CHANGE Q DUE TO CONTACT FREEZ RAIN
- REAL, DIMENSION(KTS:KTE) :: NNUCCR ! CHANGE N DUE TO CONTACT FREEZ RAIN
- REAL, DIMENSION(KTS:KTE) :: NPRA ! CHANGE IN N DUE TO DROPLET ACC BY RAIN
- REAL, DIMENSION(KTS:KTE) :: NRAGG ! SELF-COLLECTION OF RAIN
- REAL, DIMENSION(KTS:KTE) :: NSAGG ! SELF-COLLECTION OF SNOW
- REAL, DIMENSION(KTS:KTE) :: NPRC ! CHANGE NC AUTOCONVERSION DROPLETS
- REAL, DIMENSION(KTS:KTE) :: NPRC1 ! CHANGE NR AUTOCONVERSION DROPLETS
- REAL, DIMENSION(KTS:KTE) :: PRAI ! CHANGE Q AUTOCONVERSION CLOUD ICE
- REAL, DIMENSION(KTS:KTE) :: PRCI ! CHANGE Q ACCRETION CLOUD ICE BY SNOW
- REAL, DIMENSION(KTS:KTE) :: PSACWS ! CHANGE Q DROPLET ACCRETION BY SNOW
- REAL, DIMENSION(KTS:KTE) :: NPSACWS ! CHANGE N DROPLET ACCRETION BY SNOW
- REAL, DIMENSION(KTS:KTE) :: PSACWI ! CHANGE Q DROPLET ACCRETION BY CLOUD ICE
- REAL, DIMENSION(KTS:KTE) :: NPSACWI ! CHANGE N DROPLET ACCRETION BY CLOUD ICE
- REAL, DIMENSION(KTS:KTE) :: NPRCI ! CHANGE N AUTOCONVERSION CLOUD ICE BY SNOW
- REAL, DIMENSION(KTS:KTE) :: NPRAI ! CHANGE N ACCRETION CLOUD ICE
- REAL, DIMENSION(KTS:KTE) :: NMULTS ! ICE MULT DUE TO RIMING DROPLETS BY SNOW
- REAL, DIMENSION(KTS:KTE) :: NMULTR ! ICE MULT DUE TO RIMING RAIN BY SNOW
- REAL, DIMENSION(KTS:KTE) :: QMULTS ! CHANGE Q DUE TO ICE MULT DROPLETS/SNOW
- REAL, DIMENSION(KTS:KTE) :: QMULTR ! CHANGE Q DUE TO ICE RAIN/SNOW
- REAL, DIMENSION(KTS:KTE) :: PRACS ! CHANGE Q RAIN-SNOW COLLECTION
- REAL, DIMENSION(KTS:KTE) :: NPRACS ! CHANGE N RAIN-SNOW COLLECTION
- REAL, DIMENSION(KTS:KTE) :: PCCN ! CHANGE Q DROPLET ACTIVATION
- REAL, DIMENSION(KTS:KTE) :: PSMLT ! CHANGE Q MELTING SNOW TO RAIN
- REAL, DIMENSION(KTS:KTE) :: EVPMS ! CHNAGE Q MELTING SNOW EVAPORATING
- REAL, DIMENSION(KTS:KTE) :: NSMLTS ! CHANGE N MELTING SNOW
- REAL, DIMENSION(KTS:KTE) :: NSMLTR ! CHANGE N MELTING SNOW TO RAIN
- ! HM ADDED 12/13/06
- REAL, DIMENSION(KTS:KTE) :: PIACR ! CHANGE QR, ICE-RAIN COLLECTION
- REAL, DIMENSION(KTS:KTE) :: NIACR ! CHANGE N, ICE-RAIN COLLECTION
- REAL, DIMENSION(KTS:KTE) :: PRACI ! CHANGE QI, ICE-RAIN COLLECTION
- REAL, DIMENSION(KTS:KTE) :: PIACRS ! CHANGE QR, ICE RAIN COLLISION, ADDED TO SNOW
- REAL, DIMENSION(KTS:KTE) :: NIACRS ! CHANGE N, ICE RAIN COLLISION, ADDED TO SNOW
- REAL, DIMENSION(KTS:KTE) :: PRACIS ! CHANGE QI, ICE RAIN COLLISION, ADDED TO SNOW
- REAL, DIMENSION(KTS:KTE) :: EPRD ! SUBLIMATION CLOUD ICE
- REAL, DIMENSION(KTS:KTE) :: EPRDS ! SUBLIMATION SNOW
- ! HM ADDED GRAUPEL PROCESSES
- REAL, DIMENSION(KTS:KTE) :: PRACG ! CHANGE IN Q COLLECTION RAIN BY GRAUPEL
- REAL, DIMENSION(KTS:KTE) :: PSACWG ! CHANGE IN Q COLLECTION DROPLETS BY GRAUPEL
- REAL, DIMENSION(KTS:KTE) :: PGSACW ! CONVERSION Q TO GRAUPEL DUE TO COLLECTION DROPLETS BY SNOW
- REAL, DIMENSION(KTS:KTE) :: PGRACS ! CONVERSION Q TO GRAUPEL DUE TO COLLECTION RAIN BY SNOW
- REAL, DIMENSION(KTS:KTE) :: PRDG ! DEP OF GRAUPEL
- REAL, DIMENSION(KTS:KTE) :: EPRDG ! SUB OF GRAUPEL
- REAL, DIMENSION(KTS:KTE) :: EVPMG ! CHANGE Q MELTING OF GRAUPEL AND EVAPORATION
- REAL, DIMENSION(KTS:KTE) :: PGMLT ! CHANGE Q MELTING OF GRAUPEL
- REAL, DIMENSION(KTS:KTE) :: NPRACG ! CHANGE N COLLECTION RAIN BY GRAUPEL
- REAL, DIMENSION(KTS:KTE) :: NPSACWG ! CHANGE N COLLECTION DROPLETS BY GRAUPEL
- REAL, DIMENSION(KTS:KTE) :: NSCNG ! CHANGE N CONVERSION TO GRAUPEL DUE TO COLLECTION DROPLETS BY SNOW
- REAL, DIMENSION(KTS:KTE) :: NGRACS ! CHANGE N CONVERSION TO GRAUPEL DUE TO COLLECTION RAIN BY SNOW
- REAL, DIMENSION(KTS:KTE) :: NGMLTG ! CHANGE N MELTING GRAUPEL
- REAL, DIMENSION(KTS:KTE) :: NGMLTR ! CHANGE N MELTING GRAUPEL TO RAIN
- REAL, DIMENSION(KTS:KTE) :: NSUBG ! CHANGE N SUB/DEP OF GRAUPEL
- REAL, DIMENSION(KTS:KTE) :: PSACR ! CONVERSION DUE TO COLL OF SNOW BY RAIN
- REAL, DIMENSION(KTS:KTE) :: NMULTG ! ICE MULT DUE TO ACC DROPLETS BY GRAUPEL
- REAL, DIMENSION(KTS:KTE) :: NMULTRG ! ICE MULT DUE TO ACC RAIN BY GRAUPEL
- REAL, DIMENSION(KTS:KTE) :: QMULTG ! CHANGE Q DUE TO ICE MULT DROPLETS/GRAUPEL
- REAL, DIMENSION(KTS:KTE) :: QMULTRG ! CHANGE Q DUE TO ICE MULT RAIN/GRAUPEL
- ! TIME-VARYING ATMOSPHERIC PARAMETERS
- REAL, DIMENSION(KTS:KTE) :: KAP ! THERMAL CONDUCTIVITY OF AIR
- REAL, DIMENSION(KTS:KTE) :: EVS ! SATURATION VAPOR PRESSURE
- REAL, DIMENSION(KTS:KTE) :: EIS ! ICE SATURATION VAPOR PRESSURE
- REAL, DIMENSION(KTS:KTE) :: QVS ! SATURATION MIXING RATIO
- REAL, DIMENSION(KTS:KTE) :: QVI ! ICE SATURATION MIXING RATIO
- REAL, DIMENSION(KTS:KTE) :: QVQVS ! SAUTRATION RATIO
- REAL, DIMENSION(KTS:KTE) :: QVQVSI! ICE SATURAION RATIO
- REAL, DIMENSION(KTS:KTE) :: DV ! DIFFUSIVITY OF WATER VAPOR IN AIR
- REAL, DIMENSION(KTS:KTE) :: XXLS ! LATENT HEAT OF SUBLIMATION
- REAL, DIMENSION(KTS:KTE) :: XXLV ! LATENT HEAT OF VAPORIZATION
- REAL, DIMENSION(KTS:KTE) :: CPM ! SPECIFIC HEAT AT CONST PRESSURE FOR MOIST AIR
- REAL, DIMENSION(KTS:KTE) :: MU ! VISCOCITY OF AIR
- REAL, DIMENSION(KTS:KTE) :: SC ! SCHMIDT NUMBER
- REAL, DIMENSION(KTS:KTE) :: XLF ! LATENT HEAT OF FREEZING
- REAL, DIMENSION(KTS:KTE) :: RHO ! AIR DENSITY
- REAL, DIMENSION(KTS:KTE) :: AB ! CORRECTION TO CONDENSATION RATE DUE TO LATENT HEATING
- REAL, DIMENSION(KTS:KTE) :: ABI ! CORRECTION TO DEPOSITION RATE DUE TO LATENT HEATING
- ! TIME-VARYING MICROPHYSICS PARAMETERS
- REAL, DIMENSION(KTS:KTE) :: DAP ! DIFFUSIVITY OF AEROSOL
- REAL NACNT ! NUMBER OF CONTACT IN
- REAL FMULT ! TEMP.-DEP. PARAMETER FOR RIME-SPLINTERING
- REAL COFFI ! ICE AUTOCONVERSION PARAMETER
- ! FALL SPEED WORKING VARIABLES (DEFINED IN CODE)
- REAL, DIMENSION(KTS:KTE) :: DUMI,DUMR,DUMFNI,DUMG,DUMFNG
- REAL UNI, UMI,UMR
- REAL, DIMENSION(KTS:KTE) :: FR, FI, FNI,FG,FNG
- REAL RGVM
- REAL, DIMENSION(KTS:KTE) :: FALOUTR,FALOUTI,FALOUTNI
- REAL FALTNDR,FALTNDI,FALTNDNI,RHO2
- REAL, DIMENSION(KTS:KTE) :: DUMQS,DUMFNS
- REAL UMS,UNS
- REAL, DIMENSION(KTS:KTE) :: FS,FNS, FALOUTS,FALOUTNS,FALOUTG,FALOUTNG
- REAL FALTNDS,FALTNDNS,UNR,FALTNDG,FALTNDNG
- REAL, DIMENSION(KTS:KTE) :: DUMC,DUMFNC
- REAL UNC,UMC,UNG,UMG
- REAL, DIMENSION(KTS:KTE) :: FC,FALOUTC,FALOUTNC
- REAL FALTNDC,FALTNDNC
- REAL, DIMENSION(KTS:KTE) :: FNC,DUMFNR,FALOUTNR
- REAL FALTNDNR
- REAL, DIMENSION(KTS:KTE) :: FNR
- ! FALL-SPEED PARAMETER 'A' WITH AIR DENSITY CORRECTION
- REAL, DIMENSION(KTS:KTE) :: AIN,ARN,ASN,ACN,AGN
- ! EXTERNAL FUNCTION CALL RETURN VARIABLES
- ! REAL GAMMA, ! EULER GAMMA FUNCTION
- ! REAL POLYSVP, ! SAT. PRESSURE FUNCTION
- ! REAL DERF1 ! ERROR FUNCTION
- ! DUMMY VARIABLES
- REAL DUM,DUM1,DUM2,DUMT,DUMQV,DUMQSS,DUMQSI,DUMS
- ! PROGNOSTIC SUPERSATURATION
- REAL DQSDT ! CHANGE OF SAT. MIX. RAT. WITH TEMPERATURE
- REAL DQSIDT ! CHANGE IN ICE SAT. MIXING RAT. WITH T
- REAL EPSI ! 1/PHASE REL. TIME (SEE M2005), ICE
- REAL EPSS ! 1/PHASE REL. TIME (SEE M2005), SNOW
- REAL EPSR ! 1/PHASE REL. TIME (SEE M2005), RAIN
- REAL EPSG ! 1/PHASE REL. TIME (SEE M2005), GRAUPEL
- ! NEW DROPLET ACTIVATION VARIABLES
- REAL TAUC ! PHASE REL. TIME (SEE M2005), DROPLETS
- REAL TAUR ! PHASE REL. TIME (SEE M2005), RAIN
- REAL TAUI ! PHASE REL. TIME (SEE M2005), CLOUD ICE
- REAL TAUS ! PHASE REL. TIME (SEE M2005), SNOW
- REAL TAUG ! PHASE REL. TIME (SEE M2005), GRAUPEL
- REAL DUMACT,DUM3
- ! COUNTING/INDEX VARIABLES
- INTEGER K,NSTEP,N ! ,I
- ! LTRUE IS ONLY USED TO SPEED UP THE CODE !!
- ! LTRUE, SWITCH = 0, NO HYDROMETEORS IN COLUMN,
- ! = 1, HYDROMETEORS IN COLUMN
- INTEGER LTRUE
- ! DROPLET ACTIVATION/FREEZING AEROSOL
- REAL CT ! DROPLET ACTIVATION PARAMETER
- REAL TEMP1 ! DUMMY TEMPERATURE
- REAL SAT1 ! DUMMY SATURATION
- REAL SIGVL ! SURFACE TENSION LIQ/VAPOR
- REAL KEL ! KELVIN PARAMETER
- REAL KC2 ! TOTAL ICE NUCLEATION RATE
- REAL CRY,KRY ! AEROSOL ACTIVATION PARAMETERS
- ! MORE WORKING/DUMMY VARIABLES
- REAL DUMQI,DUMNI,DC0,DS0,DG0
- REAL DUMQC,DUMQR,RATIO,SUM_DEP,FUDGEF
- ! EFFECTIVE VERTICAL VELOCITY (M/S)
- REAL WEF
- ! WORKING PARAMETERS FOR ICE NUCLEATION
- REAL ANUC,BNUC
- ! WORKING PARAMETERS FOR AEROSOL ACTIVATION
- REAL AACT,GAMM,GG,PSI,ETA1,ETA2,SM1,SM2,SMAX,UU1,UU2,ALPHA
- ! DUMMY SIZE DISTRIBUTION PARAMETERS
- REAL DLAMS,DLAMR,DLAMI,DLAMC,DLAMG,LAMMAX,LAMMIN
- INTEGER IDROP
- ! FOR WRF-CHEM
- REAL, DIMENSION(KTS:KTE)::C2PREC,CSED,ISED,SSED,GSED,RSED
- ! comment lines for wrf-chem since these are intent(in) in that case
- ! REAL, DIMENSION(KTS:KTE) :: NC3DTEN ! CLOUD DROPLET NUMBER CONCENTRATION (1/KG/S)
- ! REAL, DIMENSION(KTS:KTE) :: NC3D ! CLOUD DROPLET NUMBER CONCENTRATION (1/KG)
- !CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
- ! SET LTRUE INITIALLY TO 0
- LTRUE = 0
- ! ATMOSPHERIC PARAMETERS THAT VARY IN TIME AND HEIGHT
- DO K = KTS,KTE
- ! NC3DTEN LOCAL ARRAY INITIALIZED
- NC3DTEN(K) = 0.
- ! INITIALIZE VARIABLES FOR WRF-CHEM OUTPUT TO ZERO
- C2PREC(K)=0.
- CSED(K)=0.
- ISED(K)=0.
- SSED(K)=0.
- GSED(K)=0.
- RSED(K)=0.
- ! LATENT HEAT OF VAPORATION
- XXLV(K) = 3.1484E6-2370.*T3D(K)
- ! LATENT HEAT OF SUBLIMATION
- XXLS(K) = 3.15E6-2370.*T3D(K)+0.3337E6
- CPM(K) = CP*(1.+0.887*QV3D(K))
- ! SATURATION VAPOR PRESSURE AND MIXING RATIO
- ! hm, add fix for low pressure, 5/12/10
- EVS(K) = min(0.99*pres(k),POLYSVP(T3D(K),0)) ! PA
- EIS(K) = min(0.99*pres(k),POLYSVP(T3D(K),1)) ! PA
- ! MAKE SURE ICE SATURATION DOESN'T EXCEED WATER SAT. NEAR FREEZING
- IF (EIS(K).GT.EVS(K)) EIS(K) = EVS(K)
- QVS(K) = EP_2*EVS(K)/(PRES(K)-EVS(K))
- QVI(K) = EP_2*EIS(K)/(PRES(K)-EIS(K))
- QVQVS(K) = QV3D(K)/QVS(K)
- QVQVSI(K) = QV3D(K)/QVI(K)
- ! AIR DENSITY
- RHO(K) = PRES(K)/(R*T3D(K))
- ! ADD NUMBER CONCENTRATION DUE TO CUMULUS TENDENCY
- ! ASSUME N0 ASSOCIATED WITH CUMULUS PARAM RAIN IS 10^7 M^-4
- ! ASSUME N0 ASSOCIATED WITH CUMULUS PARAM SNOW IS 2 X 10^7 M^-4
- ! FOR DETRAINED CLOUD ICE, ASSUME MEAN VOLUME DIAM OF 80 MICRON
- IF (QRCU1D(K).GE.1.E-10) THEN
- DUM=1.8e5*(QRCU1D(K)*DT/(PI*RHOW*RHO(K)**3))**0.25
- NR3D(K)=NR3D(K)+DUM
- END IF
- IF (QSCU1D(K).GE.1.E-10) THEN
- DUM=3.e5*(QSCU1D(K)*DT/(CONS1*RHO(K)**3))**(1./(DS+1.))
- NS3D(K)=NS3D(K)+DUM
- …
Large files files are truncated, but you can click here to view the full file