1 MODULE module_dep_simple
5 !--------------------------------------------------
6 ! many of these parameters will depend on the RADM mechanism!
7 ! if you change it, lets talk about it and get it done!!!
8 !--------------------------------------------------
10 INTEGER, PARAMETER :: dep_seasons = 5
11 INTEGER, PARAMETER :: nlu = 25
12 REAL, parameter :: small_value = 1.e-36
13 REAL, parameter :: large_value = 1.e36
15 !--------------------------------------------------
16 ! following currently hardwired to USGS
17 !--------------------------------------------------
18 integer, parameter :: isice_temp = 24
19 integer, parameter :: iswater_temp = 16
20 integer, parameter :: wrf2mz_lt_map(nlu) = (/ 1, 2, 2, 2, 2, &
25 real, parameter :: wh2o = 18.0153
26 real, parameter :: wpan = 121.04793
27 character(len=4), parameter :: mminlu = 'USGS'
30 INTEGER :: ixxxlu(nlu)
31 ! include modis landuse
32 INTEGER, allocatable :: luse2usgs(:)
33 INTEGER, allocatable :: HL_ndx(:)
37 REAL :: rac(nlu,dep_seasons), rclo(nlu,dep_seasons), rcls(nlu,dep_seasons)
38 REAL :: rgso(nlu,dep_seasons), rgss(nlu,dep_seasons)
39 REAL :: ri(nlu,dep_seasons), rlu(nlu,dep_seasons)
41 real :: c0_pan(11) = (/ 0.000, 0.006, 0.002, 0.009, 0.015, &
42 0.006, 0.000, 0.000, 0.000, 0.002, 0.002 /)
43 real :: k_pan (11) = (/ 0.000, 0.010, 0.005, 0.004, 0.003, &
44 0.005, 0.000, 0.000, 0.000, 0.075, 0.002 /)
46 !--------------------------------------------------
47 ! NO MORE THAN 1000 SPECIES FOR DEPOSITION
48 !--------------------------------------------------
49 REAL :: dratio(1000), hstar(1000), hstar4(1000)
50 REAL :: f0(1000), dhr(1000), scpr23(1000)
55 INTEGER, pointer :: seasonal_wes(:,:,:,:)
56 logical :: is_allocated
59 type(wesely_pft), allocatable :: seasonal_pft(:)
61 !--------------------------------------------------
62 ! .. Default Accessibility ..
63 !--------------------------------------------------
67 logical, allocatable :: is_aerosol(:) ! true if field is aerosol (any phase)
71 SUBROUTINE wesely_driver( id, ktau, dtstep, config_flags, current_month, &
72 gmt, julday, t_phy,moist, p8w, t8w, raincv, &
73 p_phy, chem, rho_phy, dz8w, ddvel, aer_res_def, &
74 aer_res_zcen, ivgtyp, tsk, gsw, vegfra, pbl, &
75 rmol, ust, znt, xlat, xlong, &
76 z, z_at_w, snowh, numgas, &
77 ids,ide, jds,jde, kds,kde, &
78 ims,ime, jms,jme, kms,kme, &
79 its,ite, jts,jte, kts,kte )
80 !--------------------------------------------------
81 ! Wesely dry dposition driver
82 !--------------------------------------------------
84 USE module_model_constants
86 USE module_state_description
87 USE module_data_sorgam
88 USE module_state_description, only: param_first_scalar
89 INTEGER, INTENT(IN ) :: id,julday, &
90 numgas, current_month, &
91 ids,ide, jds,jde, kds,kde, &
92 ims,ime, jms,jme, kms,kme, &
93 its,ite, jts,jte, kts,kte
94 INTEGER, INTENT(IN ) :: ktau
95 REAL, INTENT(IN ) :: dtstep,gmt
97 !--------------------------------------------------
98 ! advected moisture variables
99 !--------------------------------------------------
100 REAL, DIMENSION( ims:ime, kms:kme, jms:jme, num_moist ), INTENT(IN ) :: &
102 !--------------------------------------------------
103 ! advected chemical species
104 !--------------------------------------------------
105 REAL, DIMENSION( ims:ime, kms:kme, jms:jme, num_chem ), INTENT(IN ) :: &
107 !--------------------------------------------------
108 ! deposition velocities
109 !--------------------------------------------------
110 REAL, DIMENSION( its:ite, jts:jte, num_chem ), INTENT(INOUT ) :: &
112 !--------------------------------------------------
113 ! input from met model
114 !--------------------------------------------------
115 REAL, DIMENSION( ims:ime , kms:kme , jms:jme ), INTENT(IN ) :: &
124 INTEGER,DIMENSION( ims:ime , jms:jme ), INTENT(IN ) :: &
126 REAL, DIMENSION( ims:ime , jms:jme ), INTENT(INOUT ) :: &
128 REAL, DIMENSION( ims:ime , jms:jme ), INTENT(IN ) :: &
138 REAL, intent(inout) :: aer_res_def(its:ite,jts:jte)
139 REAL, intent(inout) :: aer_res_zcen(its:ite,jts:jte)
140 REAL, optional, INTENT(IN) :: snowh(ims:ime,jms:jme)
141 TYPE(grid_config_rec_type), INTENT(IN) :: config_flags
143 !--------------------------------------------------
145 !--------------------------------------------------
146 REAL :: clwchem, dvfog, dvpart, pa, rad, dep_vap
147 REAL :: rhchem, ta, ustar, vegfrac, z1, zntt
148 INTEGER :: i, iland, iprt, iseason, j, jce, jcs, n, nr, ipr,jpr,nvr
149 LOGICAL :: highnh3, rainflag, vegflag, wetflag
150 LOGICAL :: chm_is_moz
151 !--------------------------------------------------
153 !--------------------------------------------------
155 REAL :: srfres(numgas)
156 REAL :: ddvel0d(numgas)
158 !-----------------------------------------------------------
159 ! necessary for aerosols (module dependent)
160 !-----------------------------------------------------------
163 !-----------------------------------------------------------
164 ! .. Intrinsic Functions
165 !-----------------------------------------------------------
168 chm_is_moz = config_flags%chem_opt == MOZART_KPP .or. &
169 config_flags%chem_opt == MOZCART_KPP .or. &
170 config_flags%chem_opt == T1_MOZCART_KPP .or. &
171 config_flags%chem_opt == MOZART_MOSAIC_4BIN_KPP .or. &
172 config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP
174 dep_vap= config_flags%depo_fact
176 CALL wrf_debug(15,'in dry_dep_wesely')
178 if( .not. chm_is_moz ) then
179 if( julday < 90 .or. julday > 270 ) then
181 CALL wrf_debug(15,'setting iseason to 2')
194 iland = luse2usgs( ivgtyp(i,j) )
197 if( chm_is_moz ) then
198 if( snowh(i,j) < .01 ) then
199 iseason = seasonal_pft(id)%seasonal_wes(i,j,iland,current_month)
206 vegfrac = vegfra(i,j)
207 pa = .01*p_phy(i,kts,j)
208 clwchem = moist(i,kts,j,p_qc)
211 z1 = z_at_w(i,kts+1,j) - z_at_w(i,kts,j)
212 !-----------------------------------------------------------
213 ! Set logical default values
214 !-----------------------------------------------------------
218 if(p_qr >= param_first_scalar) then
219 if(moist(i,kts,j,p_qr) > 1.e-18 .or. raincv(i,j) > 0.) then
223 rhchem = MIN( 100.,100. * moist(i,kts,j,p_qv) / &
224 (3.80*exp(17.27*(t_phy(i,kts,j)-273.)/(t_phy(i,kts,j)-36.))/pa))
225 rhchem = MAX(5.,RHCHEM)
226 if (rhchem >= 95.) wetflag = .true.
228 if( p_nh3 >= param_first_scalar .and. p_so2 >= param_first_scalar ) then
229 if( chem(i,kts,j,p_nh3) > 2.*chem(i,kts,j,p_so2) ) then
234 !-----------------------------------------------------------
236 !-----------------------------------------------------------
237 ! if(snowc(i,j).gt.0.)iseason=4
238 CALL rc( rcx, ta, rad, rhchem, iland, &
239 iseason, numgas, wetflag, rainflag, highnh3, &
240 iprt, moist(i,kts,j,p_qv), p8w(i,kts,j), &
241 config_flags%chem_opt, chm_is_moz )
242 if( .not. chm_is_moz ) then
243 srfres(1:numgas-2) = rcx(1:numgas-2)
244 srfres(numgas-1:numgas) = 0.
246 srfres(1:numgas) = rcx(1:numgas)
248 CALL deppart( rmol(i,j), ustar, rhchem, clwchem, iland, dvpart, dvfog )
249 ddvel0d(1:numgas) = 0.
250 aer_res_def(i,j) = 0.
251 aer_res_zcen(i,j) = 0.
252 CALL landusevg( ddvel0d, ustar, rmol(i,j), zntt, z1, dvpart, iland, &
253 numgas, srfres, aer_res_def(i,j), aer_res_zcen(i,j), p_sulf )
255 !-----------------------------------------------------------
256 !wig: CBMZ does not have HO and HO2 last so need to copy all species
257 ! ddvel(i,j,1:numgas-2)=ddvel0d(1:numgas-2)
258 !-----------------------------------------------------------
259 ddvel(i,j,1:numgas) = ddvel0d(1:numgas)
260 if ( (config_flags%chem_opt == RADM2 ) .or. &
261 (config_flags%chem_opt == RADM2SORG ) .or. &
262 (config_flags%chem_opt == RADM2SORG_AQ ) .or. &
263 (config_flags%chem_opt == RADM2SORG_AQCHEM) ) then
264 ddvel(i,j,p_hcl) = ddvel(i,j,p_hno3)
269 !-----------------------------------------------------------
270 ! For the additional CBMZ species, assign similar RADM counter parts for
271 ! now. Short lived species get a zero velocity since dry dep should be
272 ! unimportant. **ALSO**, treat p_sulf as h2so4 vapor, not aerosol sulfate
273 !-----------------------------------------------------------
274 if ( (config_flags%chem_opt == CBMZ ) .or. &
275 (config_flags%chem_opt == CBMZ_BB ) .or. &
276 (config_flags%chem_opt == CBMZ_BB_KPP ) .or. &
277 (config_flags%chem_opt == CBMZ_MOSAIC_KPP ) .or. &
278 (config_flags%chem_opt == CBMZ_MOSAIC_4BIN_AQ) .or. &
279 (config_flags%chem_opt == CBMZ_MOSAIC_8BIN_AQ) .or. &
280 (config_flags%chem_opt == CBMZ_MOSAIC_4BIN) .or. &
281 (config_flags%chem_opt == CBMZ_MOSAIC_8BIN) .or. &
282 (config_flags%chem_opt == CBMZ_MOSAIC_DMS_4BIN_AQ) .or. &
283 (config_flags%chem_opt == CBMZ_MOSAIC_DMS_8BIN_AQ) .or. &
284 (config_flags%chem_opt == CBMZ_MOSAIC_DMS_4BIN) .or. &
285 (config_flags%chem_opt == CBMZ_MOSAIC_DMS_8BIN) .or. &
286 (config_flags%chem_opt == CBMZ_CAM_MAM3_NOAQ ) .or. &
287 (config_flags%chem_opt == CBMZ_CAM_MAM3_AQ ) .or. &
288 (config_flags%chem_opt == CBMZ_CAM_MAM7_NOAQ ) .or. &
289 (config_flags%chem_opt == CBMZ_CAM_MAM7_AQ ) ) then
292 ddvel(i,j,p_sulf) = ddvel(i,j,p_hno3)
293 ddvel(i,j,p_hcl) = ddvel(i,j,p_hno3)
294 ddvel(i,j,p_ch3o2) = 0
295 ddvel(i,j,p_ethp) = 0
296 ddvel(i,j,p_ch3oh) = ddvel(i,j,p_hcho)
297 ddvel(i,j,p_c2h5oh) = ddvel(i,j,p_hcho)
298 !wig, 1-May-2007 (added par to tables) ddvel(i,j,p_par) = ddvel(i,j,p_hc5)
301 ddvel(i,j,p_open) = ddvel(i,j,p_xyl)
302 ddvel(i,j,p_op3) = ddvel(i,j,p_op2)
303 ddvel(i,j,p_c2o3) = 0
305 ddvel(i,j,p_ano2) = 0
308 ddvel(i,j,p_xpar) = 0
309 ddvel(i,j,p_isoprd) = 0
310 ddvel(i,j,p_isopp) = 0
311 ddvel(i,j,p_isopn) = 0
312 ddvel(i,j,p_isopo2) = 0
313 if((config_flags%chem_opt == CBMZ ) .or. &
314 (config_flags%chem_opt == CBMZ_MOSAIC_DMS_4BIN) .or. &
315 (config_flags%chem_opt == CBMZ_MOSAIC_DMS_8BIN) .or. &
316 (config_flags%chem_opt == CBMZ_MOSAIC_DMS_4BIN_AQ) .or. &
317 (config_flags%chem_opt == CBMZ_MOSAIC_DMS_8BIN_AQ) ) then
319 ddvel(i,j,p_msa) = ddvel(i,j,p_hno3)
320 ddvel(i,j,p_dmso) = 0
321 ddvel(i,j,p_dmso2) = 0
322 ddvel(i,j,p_ch3so2h) = 0
323 ddvel(i,j,p_ch3sch2oo) = 0
324 ddvel(i,j,p_ch3so2) = 0
325 ddvel(i,j,p_ch3so3) = 0
326 ddvel(i,j,p_ch3so2oo) = 0
327 ddvel(i,j,p_ch3so2ch2oo) = 0
330 if( ( config_flags%chem_opt == CBMZ_CAM_MAM3_NOAQ ) .or. &
331 ( config_flags%chem_opt == CBMZ_CAM_MAM3_AQ ) .or. &
332 ( config_flags%chem_opt == CBMZ_CAM_MAM7_NOAQ ) .or. &
333 ( config_flags%chem_opt == CBMZ_CAM_MAM7_AQ ) ) then
334 ddvel(i,j,p_soag) = 0.0
340 if (config_flags%chem_opt == RACM_SOA_VBS_KPP .OR. &
341 config_flags%chem_opt == RACM_SOA_VBS_HET_KPP .OR. &
342 config_flags%chem_opt == RACM_SOA_VBS_AQCHEM_KPP) then
345 ddvel(i,j,p_cvasoa1) = dep_vap*ddvel(i,j,p_hno3)
346 ddvel(i,j,p_cvasoa2) = dep_vap*ddvel(i,j,p_hno3)
347 ddvel(i,j,p_cvasoa3) = dep_vap*ddvel(i,j,p_hno3)
348 ddvel(i,j,p_cvasoa4) = dep_vap*ddvel(i,j,p_hno3)
350 ddvel(i,j,p_cvbsoa1) = dep_vap*ddvel(i,j,p_hno3)
351 ddvel(i,j,p_cvbsoa2) = dep_vap*ddvel(i,j,p_hno3)
352 ddvel(i,j,p_cvbsoa3) = dep_vap*ddvel(i,j,p_hno3)
353 ddvel(i,j,p_cvbsoa4) = dep_vap*ddvel(i,j,p_hno3)
355 ddvel(i,j,p_sesq) = 0.
356 ddvel(i,j,p_mbo) = 0.
361 if (config_flags%chem_opt == RACM_SOA_VBS_HET_KPP) then
364 ddvel(i,j,p_hcl) = dep_vap*ddvel(i,j,p_hno3)
365 ddvel(i,j,p_clno2) = 0.0
366 ddvel(i,j,p_cl2) = 0.0
367 ddvel(i,j,p_fmcl) = 0.0
368 ddvel(i,j,p_cl) = 0.0
369 ddvel(i,j,p_clo) = 0.0
370 ddvel(i,j,p_hocl) = 0.0
371 ddvel(i,j,p_ch3cl) = 0.0
376 !-----------------------------------------------------------
377 ! For the additional CBM4 species, assign similar RADM counter parts for
378 ! now. Short lived species get a zero velocity since dry dep should be
380 !-----------------------------------------------------------
381 if (config_flags%chem_opt == CBM4_KPP ) then
384 ddvel(i,j,p_open) = ddvel(i,j,p_xyl)
387 ddvel(i,j,p_ald2) = ddvel(i,j,p_ald)
394 if (config_flags%chem_opt == CBMZ_MOSAIC_KPP ) then
397 ddvel(i,j,p_aro1) = 0
398 ddvel(i,j,p_aro2) = 0
399 ddvel(i,j,p_alk1) = 0
400 ddvel(i,j,p_ole1) = 0
401 ddvel(i,j,p_api1) = 0
402 ddvel(i,j,p_api2) = 0
403 ddvel(i,j,p_lim1) = 0
404 ddvel(i,j,p_lim2) = 0
414 ! For gocartracm,radm
415 !-----------------------------------------------------------
416 if ((config_flags%chem_opt == GOCARTRACM_KPP) .OR. &
417 (config_flags%chem_opt == GOCARTRADM2)) then
420 ddvel(i,j,p_sulf) = 0.
421 ddvel(i,j,p_dms) = 0.
422 ddvel(i,j,p_msa) = ddvel(i,j,p_hno3)
423 if( config_flags%chem_opt == GOCARTRADM2 ) then
424 ddvel(i,j,p_hcl) = ddvel(i,j,p_hno3)
429 !-----------------------------------------------------------
430 ! For gocartsimple : need msa. On the other hand sulf comes from aerosol routine
431 !-----------------------------------------------------------
432 if (config_flags%chem_opt == GOCART_SIMPLE ) then
435 ddvel(i,j,p_msa) = ddvel(i,j,p_sulf)
436 ddvel(i,j,p_sulf) = 0.
437 ddvel(i,j,p_dms) = 0.
441 !-----------------------------------------------------------
443 !-----------------------------------------------------------
444 if( chm_is_moz ) then
447 ddvel(i,j,p_mpan) = ddvel(i,j,p_mpan)/3.
448 ddvel(i,j,p_mvkooh) = ddvel(i,j,p_hno3)
449 ddvel(i,j,p_isooh) = ddvel(i,j,p_hno3)
450 ddvel(i,j,p_xooh) = ddvel(i,j,p_hno3)
452 ddvel(i,j,p_o1d_cb4) = 0.
453 ddvel(i,j,p_no3) = 0.
454 ddvel(i,j,p_n2o5) = 0.
456 ddvel(i,j,p_ho2) = 0.
457 ddvel(i,j,p_ch3o2) = 0.
458 ddvel(i,j,p_n2o) = 0.
459 ddvel(i,j,p_ch4) = 0.
461 ddvel(i,j,p_co2) = 0.
462 ddvel(i,j,p_c2h4) = 0.
463 ddvel(i,j,p_c2h6) = 0.
464 ddvel(i,j,p_c3h6) = 0.
465 ddvel(i,j,p_c3h8) = 0.
466 ddvel(i,j,p_aco3) = 0.
467 ddvel(i,j,p_gly) = 0.2 / 100. ! from Washenfelder et al., 2011
468 ddvel(i,j,p_mgly) = 0. !
469 ddvel(i,j,p_macr) = 0.
470 ddvel(i,j,p_mek) = 0.
471 ddvel(i,j,p_eto2) = 0.
472 ddvel(i,j,p_open) = 0.
474 ddvel(i,j,p_pro2) = 0.
475 ddvel(i,j,p_po2) = 0.
476 ddvel(i,j,p_aceto2) = 0.
477 ddvel(i,j,p_bigene) = 0.
478 ddvel(i,j,p_bigalk) = 0.
479 ddvel(i,j,p_eneo2) = 0.
480 ddvel(i,j,p_alko2) = 0.
481 ddvel(i,j,p_isopr) = 0.
482 ddvel(i,j,p_iso2) = 0.
483 ddvel(i,j,p_mvko2) = 0.
484 ddvel(i,j,p_xo2) = 0.
485 ddvel(i,j,p_c10h16) = 0.
486 ddvel(i,j,p_terpo2) = 0.
487 ddvel(i,j,p_tol) = 0.
488 ddvel(i,j,p_to2) = 0.
489 ddvel(i,j,p_xoh) = 0.
490 ddvel(i,j,p_isopn) = 0.
491 ddvel(i,j,p_meko2) = 0.
492 ddvel(i,j,p_dms) = 0.
493 IF ( config_flags%chem_opt == MOZART_MOSAIC_4BIN_KPP .OR. &
494 config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP) THEN
495 ddvel(i,j,p_benzene) = 0.
496 ddvel(i,j,p_phen) = 0.
497 ddvel(i,j,p_bepomuc) = 0.
498 ddvel(i,j,p_benzo2) = 0.
499 ddvel(i,j,p_pheno2) = 0.
500 ddvel(i,j,p_pheno) = 0.
501 ddvel(i,j,p_phenooh) = ddvel(i,j,p_h2o2)
502 ddvel(i,j,p_c6h5o2) = 0.
503 ddvel(i,j,p_c6h5ooh) = ddvel(i,j,p_h2o2)
504 ddvel(i,j,p_benzooh) = ddvel(i,j,p_h2o2)
505 ddvel(i,j,p_bigald1) = 0.
506 ddvel(i,j,p_bigald2) = 0.
507 ddvel(i,j,p_bigald3) = 0.
508 ddvel(i,j,p_bigald4) = 0.
509 ddvel(i,j,p_malo2) = 0.
510 ddvel(i,j,p_pbznit) = 0.
511 ddvel(i,j,p_tepomuc) = 0.
512 ddvel(i,j,p_bzoo) = 0.
513 ddvel(i,j,p_bzooh) = ddvel(i,j,p_h2o2)
514 ddvel(i,j,p_bald) = 0.
515 ddvel(i,j,p_acbzo2) = 0.
516 ddvel(i,j,p_dicarbo2) = 0.
517 ddvel(i,j,p_mdialo2) = 0.
518 ddvel(i,j,p_xyl) = 0.
519 ddvel(i,j,p_xylol) = 0.
520 ddvel(i,j,p_xylolo2) = 0.
521 ddvel(i,j,p_xylolooh) = ddvel(i,j,p_h2o2)
522 ddvel(i,j,p_xyleno2) = 0.
523 ddvel(i,j,p_xylenooh) = ddvel(i,j,p_h2o2)
524 IF ( config_flags%chem_opt == MOZART_MOSAIC_4BIN_KPP) THEN
525 ddvel(i,j,p_voca) = 0.
526 ddvel(i,j,p_vocbb) = 0.
527 ddvel(i,j,p_smpa) = 0.
528 ddvel(i,j,p_smpbb) = 0.
533 IF ( config_flags%chem_opt /= T1_MOZCART_KPP) THEN
535 ddvel(its:ite,j,p_iso2) = 0.
539 ddvel(its:ite,j,p_benzene) = 0.
540 ddvel(its:ite,j,p_bepomuc) = 0.
541 ddvel(its:ite,j,p_benzo2) = 0.
542 ddvel(its:ite,j,p_pheno2) = 0.
543 ddvel(its:ite,j,p_pheno) = 0.
544 ddvel(its:ite,j,p_phenol) = 0.
545 ddvel(its:ite,j,p_phenooh) = ddvel(its:ite,j,p_h2o2)
546 ddvel(its:ite,j,p_c6h5o2) = 0.
547 ddvel(its:ite,j,p_c6h5ooh) = ddvel(its:ite,j,p_h2o2)
548 ddvel(its:ite,j,p_benzooh) = ddvel(its:ite,j,p_h2o2)
549 ddvel(its:ite,j,p_bigald1) = 0.
550 ddvel(its:ite,j,p_bigald2) = 0.
551 ddvel(its:ite,j,p_bigald3) = 0.
552 ddvel(its:ite,j,p_bigald4) = 0.
553 ddvel(its:ite,j,p_bzald) = 0.
554 ddvel(its:ite,j,p_malo2) = 0.
555 ddvel(its:ite,j,p_pbznit) = 0.
556 ddvel(its:ite,j,p_tepomuc) = 0.
557 ddvel(its:ite,j,p_bzoo) = 0.
558 ddvel(its:ite,j,p_bzooh) = ddvel(its:ite,j,p_h2o2)
559 ddvel(its:ite,j,p_acbzo2) = 0.
560 ddvel(its:ite,j,p_dicarbo2) = 0.
561 ddvel(its:ite,j,p_mdialo2) = 0.
562 ddvel(its:ite,j,p_xylenes) = 0.
563 ddvel(its:ite,j,p_xylol) = 0.
564 ddvel(its:ite,j,p_xylolo2) = 0.
565 ddvel(its:ite,j,p_xylolooh) = ddvel(its:ite,j,p_h2o2)
566 ddvel(its:ite,j,p_xyleno2) = 0.
567 ddvel(its:ite,j,p_xylenooh) = ddvel(its:ite,j,p_h2o2)
570 IF( config_flags%chem_opt == MOZART_KPP .or. config_flags%chem_opt == MOZCART_KPP ) THEN
572 ddvel(its:ite,j,p_c10h16) = 0.
573 ddvel(its:ite,j,p_xoh) = 0.
577 IF( config_flags%chem_opt == MOZART_KPP .or. config_flags%chem_opt == MOZCART_KPP &
578 .or. config_flags%chem_opt == T1_MOZCART_KPP ) then
580 ddvel(its:ite,j,p_sulf) = 0.
583 IF( p_o1d > param_first_scalar ) then
585 ddvel(its:ite,j,p_o1d) = 0.
588 IF( p_o1d_cb4 > param_first_scalar ) then
590 ddvel(its:ite,j,p_o1d_cb4) = 0.
596 !-----------------------------------------------------------
598 !-----------------------------------------------------------
599 if( config_flags%chem_opt == crimech_kpp .or. &
600 config_flags%chem_opt == cri_mosaic_8bin_aq_kpp .or. &
601 config_flags%chem_opt == cri_mosaic_4bin_aq_kpp ) then
604 ! need to add deposition rates for crimech species here
606 ddvel(i,j,p_ch3co2h) = 0.
607 ddvel(i,j,p_clno2) = 0.
608 !ddvel(i,j,p_n2o5 ) = 0.
609 !ddvel(i,j,p_o1d) = 0.
610 !ddvel(i,j,p_o3p) = 0.
611 ddvel(i,j,p_c2h6) = 0.
612 ddvel(i,j,p_aco3) = 0.
613 !ddvel(i,j,p_ch3oo) = 0.
614 ddvel(i,j,p_hso3) = 0.
615 ddvel(i,j,p_so3) = 0.
616 ddvel(i,j,p_c3h8) = 0.
617 ddvel(i,j,p_nc4h10) = 0.
618 ddvel(i,j,p_c5h8) = 0.
619 ddvel(i,j,p_benzene) = 0.
620 ddvel(i,j,p_toluene) = 0.
621 ddvel(i,j,p_oxyl) = 0.
622 ddvel(i,j,p_npropol) = 0.
623 ddvel(i,j,p_c2h2) = 0.
624 ddvel(i,j,p_c3h6) = 0.
625 ddvel(i,j,p_c2h4) = 0.
626 ddvel(i,j,p_tbut2ene) = 0.
627 ddvel(i,j,p_mek) = 0.
628 ddvel(i,j,p_ipropol) = 0.
629 ddvel(i,j,p_apinene) = 0.
630 ddvel(i,j,p_bpinene) = 0.
631 !ddvel(i,j,p_c2h5co3) = 0.
632 !ddvel(i,j,p_hoch2co3) = 0.
633 ddvel(i,j,p_ch3cl) = 0.
634 ddvel(i,j,p_ch2cl2) = 0.
635 ddvel(i,j,p_chcl3) = 0.
636 ddvel(i,j,p_ch3ccl3) = 0.
637 ddvel(i,j,p_cdicleth) = 0.
638 ddvel(i,j,p_tdicleth) = 0.
639 ddvel(i,j,p_tricleth ) = 0.
640 ddvel(i,j,p_tce) = 0.
641 ddvel(i,j,p_noa) = 0.
642 ddvel(i,j,p_aroh14) = 0.
643 ddvel(i,j,p_raroh14) = 0.
644 ddvel(i,j,p_arnoh14) = 0.
645 ddvel(i,j,p_aroh17) = 0.
646 ddvel(i,j,p_raroh17) = 0.
647 ddvel(i,j,p_arnoh17) = 0.
648 ddvel(i,j,p_anhy) = 0.
649 ddvel(i,j,p_ch4) = 0.
650 ddvel(i,j,p_sulf) = ddvel(i,j,p_hno3)
651 ddvel(i,j,p_hcl) = ddvel(i,j,p_hno3)
653 ddvel(i,j,p_tm123b) = 0.
654 ddvel(i,j,p_tm124b) = 0.
655 ddvel(i,j,p_tm135b) = 0.
656 ddvel(i,j,p_oethtol) = 0.
657 ddvel(i,j,p_methtol) = 0.
658 ddvel(i,j,p_pethtol) = 0.
659 ddvel(i,j,p_dime35eb) = 0.
660 ddvel(i,j,p_dms) = 0.
661 ddvel(i,j,p_ch3sch2oo) = 0.
662 ddvel(i,j,p_dmso) = 0.
663 ddvel(i,j,p_ch3s) = 0.
664 ddvel(i,j,p_ch3so) = 0.
665 ddvel(i,j,p_ch3so3) = 0.
666 ddvel(i,j,p_msa) = 0.
667 ddvel(i,j,p_msia) = 0.
669 ddvel(i,j,p_ho2) = 0.
670 ddvel(i,j,p_ch3oo) = 0.
671 ddvel(i,j,p_c2h5o2) = 0.
672 ddvel(i,j,p_hoch2ch2o2) = 0.
673 ddvel(i,j,p_ic3h7o2) = 0.
674 ddvel(i,j,p_rn10o2) = 0.
675 ddvel(i,j,p_rn13o2) = 0.
676 ddvel(i,j,p_rn16o2) = 0.
677 ddvel(i,j,p_rn19o2) = 0.
678 ddvel(i,j,p_rn9o2) = 0.
679 ddvel(i,j,p_rn12o2) = 0.
680 ddvel(i,j,p_rn15o2) = 0.
681 ddvel(i,j,p_rn18o2) = 0.
682 ddvel(i,j,p_nrn6o2) = 0.
683 ddvel(i,j,p_nrn9o2) = 0.
684 ddvel(i,j,p_nrn12o2) = 0.
685 ddvel(i,j,p_rn11o2) = 0.
686 ddvel(i,j,p_rn14o2) = 0.
687 ddvel(i,j,p_rn8o2) = 0.
688 ddvel(i,j,p_rn17o2) = 0.
689 ddvel(i,j,p_rn13ao2) = 0.
690 ddvel(i,j,p_rn16ao2) = 0.
691 ddvel(i,j,p_rn15ao2) = 0.
692 ddvel(i,j,p_rn18ao2) = 0.
693 ddvel(i,j,p_ru14o2) = 0.
694 ddvel(i,j,p_ru12o2) = 0.
695 ddvel(i,j,p_ru10o2) = 0.
696 ddvel(i,j,p_nru14o2) = 0.
697 ddvel(i,j,p_nru12o2) = 0.
698 ddvel(i,j,p_ra13o2) = 0.
699 ddvel(i,j,p_ra16o2) = 0.
700 ddvel(i,j,p_ra19ao2) = 0.
701 ddvel(i,j,p_ra19co2) = 0.
702 ddvel(i,j,p_rtn28o2) = 0.
703 ddvel(i,j,p_rtn26o2) = 0.
704 ddvel(i,j,p_nrtn28o2) = 0.
705 ddvel(i,j,p_rtn25o2) = 0.
706 ddvel(i,j,p_rtn24o2) = 0.
707 ddvel(i,j,p_rtn23o2) = 0.
708 ddvel(i,j,p_rtn14o2) = 0.
709 ddvel(i,j,p_rtn10o2) = 0.
710 ddvel(i,j,p_rtx28o2) = 0.
711 ddvel(i,j,p_rtx24o2) = 0.
712 ddvel(i,j,p_rtx22o2) = 0.
713 ddvel(i,j,p_nrtx28o2) = 0.
714 ddvel(i,j,p_ch3o2no2) = 0.
715 ddvel(i,j,p_ra22ao2) = 0.
716 ddvel(i,j,p_ra22bo2) = 0.
717 ddvel(i,j,p_ra25o2) = 0.
718 ddvel(i,j,p_ch3so2) = 0.
719 ddvel(i,j,p_dmso2 ) = 0.
726 !-----------------------------------------------------------
728 !-----------------------------------------------------------
730 ! For the additional CB05 species, assign similar RADM counter parts for
731 ! now. Short lived species get a zero velocity since dry dep should be
732 ! unimportant. **ALSO**, treat p_sulf as h2so4 vapor, not aerosol sulfate
734 if ( (config_flags%chem_opt == CB05_SORG_AQ_KPP) ) then
737 ddvel(i,j,p_sulf) = ddvel(i,j,p_hno3)
738 ddvel(i,j,p_hcl) = ddvel(i,j,p_hno3)
739 ddvel(i,j,p_meo2) = 0.
740 ddvel(i,j,p_meoh) = ddvel(i,j,p_form)
741 ddvel(i,j,p_etoh) = ddvel(i,j,p_form)
742 ddvel(i,j,p_to2) = 0.
743 ddvel(i,j,p_cro) = 0.
744 ddvel(i,j,p_open) = ddvel(i,j,p_xyl)
745 ddvel(i,j,p_c2o3) = 0.
746 ddvel(i,j,p_xo2n) = 0.
747 ddvel(i,j,p_xo2) = 0.
748 ddvel(i,j,p_ispd) = 0.
749 ddvel(i,j,p_o1d) = 0.
751 ddvel(i,j,p_terp) = ddvel(i,j,p_isop)
752 ddvel(i,j,p_terpaer) = ddvel(i,j,p_isop)
753 ddvel(i,j,p_hum) = ddvel(i,j,p_isop)
754 ddvel(i,j,p_humaer) = ddvel(i,j,p_isop)
755 ddvel(i,j,p_lim) = ddvel(i,j,p_isop)
756 ddvel(i,j,p_limaer1) = ddvel(i,j,p_isop)
757 ddvel(i,j,p_limaer2) = ddvel(i,j,p_isop)
758 ddvel(i,j,p_oci) = ddvel(i,j,p_isop)
759 ddvel(i,j,p_ociaer1) = ddvel(i,j,p_isop)
760 ddvel(i,j,p_ociaer2) = ddvel(i,j,p_isop)
761 ddvel(i,j,p_apin) = ddvel(i,j,p_isop)
762 ddvel(i,j,p_apinaer1) = ddvel(i,j,p_isop)
763 ddvel(i,j,p_apinaer2) = ddvel(i,j,p_isop)
764 ddvel(i,j,p_apinaer3) = ddvel(i,j,p_isop)
765 ddvel(i,j,p_apinaer4) = ddvel(i,j,p_isop)
766 ddvel(i,j,p_bpin) = ddvel(i,j,p_isop)
767 ddvel(i,j,p_bpinaer1) = ddvel(i,j,p_isop)
768 ddvel(i,j,p_bpinaer2) = ddvel(i,j,p_isop)
769 ddvel(i,j,p_bpinaer3) = ddvel(i,j,p_isop)
770 ddvel(i,j,p_bpinaer4) = ddvel(i,j,p_isop)
771 ddvel(i,j,p_bpinaer5) = ddvel(i,j,p_isop)
772 ddvel(i,j,p_ter) = ddvel(i,j,p_isop)
773 ddvel(i,j,p_teraer1) = ddvel(i,j,p_isop)
774 ddvel(i,j,p_teraer2) = ddvel(i,j,p_isop)
775 ddvel(i,j,p_tolaer1) = ddvel(i,j,p_tol)
776 ddvel(i,j,p_tolaer2) = ddvel(i,j,p_tol)
777 ddvel(i,j,p_cslaer) = ddvel(i,j,p_cres)
778 ddvel(i,j,p_xylaer1) = ddvel(i,j,p_xyl)
779 ddvel(i,j,p_xylaer2) = ddvel(i,j,p_xyl)
780 ddvel(i,j,p_isoaer1) = ddvel(i,j,p_isop)
781 ddvel(i,j,p_isoaer2) = ddvel(i,j,p_isop)
782 ddvel(i,j,p_sulaer) = ddvel(i,j,p_hno3)
783 ddvel(i,j,p_panx) = ddvel(i,j,p_pan)
784 ddvel(i,j,p_hco3) = 0.
785 ddvel(i,j,p_ror) = 0.
786 ddvel(i,j,p_alkh) = ddvel(i,j,p_par)
787 ddvel(i,j,p_alkhaer1) = ddvel(i,j,p_par)
788 ddvel(i,j,p_pah) = 0.
789 ddvel(i,j,p_pahaer1) = 0.
790 ddvel(i,j,p_pahaer2) = 0.
791 ddvel(i,j,p_cl2) = 0.
793 ddvel(i,j,p_hocl) = 0.
794 ddvel(i,j,p_clo) = 0.
795 ddvel(i,j,p_fmcl) = 0.
796 if (ivgtyp(i,j).eq.iswater_temp) then
797 ddvel(i,j,p_hg0) = 0.00e-2
799 ddvel(i,j,p_hg0) = 0.01e-2
801 ddvel(i,j,p_hg2) = 0.50e-2
804 else if ( (config_flags%chem_opt == CB05_SORG_VBS_AQ_KPP) ) then
807 ddvel(i,j,p_sulf) = ddvel(i,j,p_hno3)
808 ddvel(i,j,p_hcl) = ddvel(i,j,p_hno3)
809 ddvel(i,j,p_meo2) = 0.
810 ddvel(i,j,p_meoh) = ddvel(i,j,p_form)
811 ddvel(i,j,p_etoh) = ddvel(i,j,p_form)
812 ddvel(i,j,p_to2) = 0.
813 ddvel(i,j,p_cro) = 0.
814 ddvel(i,j,p_open) = ddvel(i,j,p_xyl)
815 ddvel(i,j,p_c2o3) = 0.
816 ddvel(i,j,p_xo2n) = 0.
817 ddvel(i,j,p_xo2) = 0.
818 ddvel(i,j,p_ispd) = 0.
819 ddvel(i,j,p_o1d) = 0.
821 ddvel(i,j,p_terp) = ddvel(i,j,p_isop)
822 ddvel(i,j,p_terpaer) = ddvel(i,j,p_isop)
823 ddvel(i,j,p_hum) = ddvel(i,j,p_isop)
824 ddvel(i,j,p_humaer) = ddvel(i,j,p_isop)
825 ddvel(i,j,p_lim) = ddvel(i,j,p_isop)
826 ddvel(i,j,p_limaer1) = ddvel(i,j,p_isop)
827 ddvel(i,j,p_limaer2) = ddvel(i,j,p_isop)
828 ddvel(i,j,p_oci) = ddvel(i,j,p_isop)
829 ddvel(i,j,p_ociaer1) = ddvel(i,j,p_isop)
830 ddvel(i,j,p_ociaer2) = ddvel(i,j,p_isop)
831 ddvel(i,j,p_apin) = ddvel(i,j,p_isop)
832 ddvel(i,j,p_apinaer1) = ddvel(i,j,p_isop)
833 ddvel(i,j,p_apinaer2) = ddvel(i,j,p_isop)
834 ddvel(i,j,p_apinaer3) = ddvel(i,j,p_isop)
835 ddvel(i,j,p_apinaer4) = ddvel(i,j,p_isop)
836 ddvel(i,j,p_bpin) = ddvel(i,j,p_isop)
837 ddvel(i,j,p_bpinaer1) = ddvel(i,j,p_isop)
838 ddvel(i,j,p_bpinaer2) = ddvel(i,j,p_isop)
839 ddvel(i,j,p_bpinaer3) = ddvel(i,j,p_isop)
840 ddvel(i,j,p_bpinaer4) = ddvel(i,j,p_isop)
841 ddvel(i,j,p_bpinaer5) = ddvel(i,j,p_isop)
842 ddvel(i,j,p_ter) = ddvel(i,j,p_isop)
843 ddvel(i,j,p_teraer1) = ddvel(i,j,p_isop)
844 ddvel(i,j,p_teraer2) = ddvel(i,j,p_isop)
845 ddvel(i,j,p_tolaer1) = ddvel(i,j,p_tol)
846 ddvel(i,j,p_tolaer2) = ddvel(i,j,p_tol)
847 ddvel(i,j,p_cslaer) = ddvel(i,j,p_cres)
848 ddvel(i,j,p_xylaer1) = ddvel(i,j,p_xyl)
849 ddvel(i,j,p_xylaer2) = ddvel(i,j,p_xyl)
850 ddvel(i,j,p_isoaer1) = ddvel(i,j,p_isop)
851 ddvel(i,j,p_isoaer2) = ddvel(i,j,p_isop)
852 ddvel(i,j,p_sulaer) = ddvel(i,j,p_hno3)
853 ddvel(i,j,p_panx) = ddvel(i,j,p_pan)
854 ddvel(i,j,p_hco3) = 0.
855 ddvel(i,j,p_ror) = 0.
856 ddvel(i,j,p_alkh) = ddvel(i,j,p_par)
857 ddvel(i,j,p_alkhaer1) = ddvel(i,j,p_par)
858 ddvel(i,j,p_pah) = 0.
859 ddvel(i,j,p_pahaer1) = 0.
860 ddvel(i,j,p_pahaer2) = 0.
861 ddvel(i,j,p_cl2) = 0.
863 ddvel(i,j,p_hocl) = 0.
864 ddvel(i,j,p_clo) = 0.
865 ddvel(i,j,p_fmcl) = 0.
866 if (ivgtyp(i,j).eq.iswater_temp) then
867 ddvel(i,j,p_hg0) = 0.00e-2
869 ddvel(i,j,p_hg0) = 0.01e-2
871 ddvel(i,j,p_hg2) = 0.50e-2
872 ddvel(i,j,p_cvasoa1) = ddvel(i,j,p_hno3)
873 ddvel(i,j,p_cvasoa2) = ddvel(i,j,p_hno3)
874 ddvel(i,j,p_cvasoa3) = ddvel(i,j,p_hno3)
875 ddvel(i,j,p_cvasoa4) = ddvel(i,j,p_hno3)
877 ddvel(i,j,p_cvbsoa1) = ddvel(i,j,p_hno3)
878 ddvel(i,j,p_cvbsoa2) = ddvel(i,j,p_hno3)
879 ddvel(i,j,p_cvbsoa3) = ddvel(i,j,p_hno3)
880 ddvel(i,j,p_cvbsoa4) = ddvel(i,j,p_hno3)
886 END SUBROUTINE wesely_driver
888 SUBROUTINE rc( rcx, t, rad, rh, iland, &
889 iseason, numgas, wetflag, rainflag, highnh3, &
890 iprt, spec_hum, p_srf, chem_opt, chm_is_moz )
891 !----------------------------------------------------------------------
892 ! THIS SUBROUTINE CALCULATES SURFACE RESISTENCES ACCORDING
895 ! ATMOSPHERIC ENVIRONMENT 23 (1989), 1293-1304
896 ! WITH SOME ADDITIONS ACCORDING TO
897 ! J. W. ERISMAN, A. VAN PUL, AND P. WYERS,
898 ! ATMOSPHERIC ENVIRONMENT 28 (1994), 2595-2607
899 ! WRITTEN BY WINFRIED SEIDL, APRIL 1997
900 ! MODYFIED BY WINFRIED SEIDL, MARCH 2000
902 !----------------------------------------------------------------------
904 USE module_state_description
906 !----------------------------------------------------------------------
907 ! ... dummy arguments
908 !----------------------------------------------------------------------
909 INTEGER, intent(in) :: iland, iseason, numgas
910 INTEGER, intent(in) :: iprt
911 INTEGER, intent(in) :: chem_opt
912 REAL, intent(in) :: rad, rh
913 REAL, intent(in) :: t ! surface temp (K)
914 REAL, intent(in) :: p_srf ! surface pressure (Pa)
915 REAL, intent(in) :: spec_hum ! surface specific humidity (kg/kg)
916 real, intent(out) :: rcx(numgas)
917 LOGICAL, intent(in) :: highnh3, rainflag, wetflag
918 LOGICAL, intent(in) :: chm_is_moz
920 !----------------------------------------------------------------------
921 ! .. Local Scalars ..
922 !----------------------------------------------------------------------
923 REAL, parameter :: t0 = 298.
924 REAL, parameter :: tmelt = 273.16
926 REAL :: rclx, rdc, resice, rgsx, rluo1, rluo2
927 REAL :: rlux, rmx, rs, rsmx, rdtheta, z, wrk
928 REAL :: qs, es, ws, dewm, dv_pan, drat
930 REAL :: rs_pan, tc_pan
932 !----------------------------------------------------------------------
934 !----------------------------------------------------------------------
935 REAL :: hstary(numgas)
937 !----------------------------------------------------------------------
938 ! .. Intrinsic Functions ..
939 !----------------------------------------------------------------------
949 !!! HARDWIRE VALUES FOR TESTING
957 IF ( tc<=0. .OR. tc>=40. ) THEN
960 rs = ri(iland,iseason)*(1+z*z)*(400./(tc*(40.-tc)))
962 rdc = 100.*(1. + 1000./(rad + 10.))/(1. + 1000.*rdtheta)
963 rluo1 = 1./(1./3000. + 3./rlu(iland,iseason))
964 rluo2 = 1./(1./1000. + 3./rlu(iland,iseason))
965 resice = 1000.*exp( -(tc + 4.) )
966 wrk = (t0 - t)/(t0*t)
970 IF( hstar(n) /= 0. ) then
971 hstary(n) = hstar(n)*exp( dhr(n)*wrk )
972 !----------------------------------------------------------------------
973 ! SPECIAL TREATMENT FOR HNO3, HNO4, H2O2, PAA
974 !----------------------------------------------------------------------
975 is_mozart : if( chm_is_moz ) then
976 if( n == p_hno3 ) then
977 hstary(n) = 2.6e6*exp( 8700.*wrk )*1.e5
978 else if( n == p_hno4 ) then
980 else if( n == p_h2o2 ) then
981 hstary(n) = hstary(n)*(1. + 2.2e-12*exp( -3730.*wrk )*1.e5)
982 else if( n == p_paa ) then
983 hstary(n) = hstary(n)*(1. + 1.8e-4*exp( -1510.*wrk )*1.e5)
986 rmx = 1./(hstary(n)/3000. + 100.*f0(n))
987 rsmx = rs*dratio(n) + rmx
988 if( iseason /= 4 .and. p_pan >= param_first_scalar .and. chm_is_moz ) then
989 if( iland /= iswater_temp .and. n == p_pan ) then
990 !-------------------------------------------------------------------------------------
991 ! saturation vapor pressure (Pascals)
992 ! saturation mixing ratio
993 ! saturation specific humidity
994 !-------------------------------------------------------------------------------------
995 es = 611.*exp( 5414.77*(t - tmelt)/(tmelt*t) )
996 ws = .622*es/(p_srf - es)
999 if( qs <= spec_hum ) then
1002 if( t < tmelt ) then
1005 if( has_dew .or. rainflag ) then
1012 if( t > tmelt .and. t < 313.15 ) then
1013 crs = (1. + (200./(rad + .1))**2) * (400./(tc_pan*(40. - tc_pan)))
1017 lt = wrf2mz_lt_map(iland)
1018 rs_pan = ri_pan(iseason,lt)*crs
1019 dv_pan = c0_pan(lt) * (1. - exp( -k_pan(lt)*(dewm*rs_pan*drat)*1.e-2 ))
1020 if( dv_pan > 0. ) then
1025 rclx = 1./(1.e-5*hstary(n)/rcls(iland,iseason) &
1026 + f0(n)/rclo(iland,iseason)) + resice
1027 rgsx = 1./(1.e-5*hstary(n)/rgss(iland,iseason) &
1028 + f0(n)/rgso(iland,iseason)) + resice
1029 rlux = rlu(iland,iseason)/(1.e-5*hstary(n) + f0(n)) + resice
1031 rlux = 1./(1./(3.*rlu(iland,iseason)) + 1.e-7*hstary(n) + f0(n)/rluo1)
1034 rlux = 1./(1./(3.*rlu(iland,iseason)) + 1.e-7*hstary(n) + f0(n)/rluo2)
1036 rcx(n) = 1./(1./rsmx + 1./rlux + 1./(rdc + rclx) + 1./(rac(iland,iseason) + rgsx))
1037 rcx(n) = max( 1.,rcx(n) )
1041 !--------------------------------------------------
1042 ! SPECIAL TREATMENT FOR OZONE
1043 !--------------------------------------------------
1044 if(p_o3 >= param_first_scalar)then
1045 hstary(p_o3) = hstar(p_o3)*exp( dhr(p_o3)*(298. - t)/(298.*t) )
1046 rmx = 1./(hstary(p_o3)/3000.+100.*f0(p_o3))
1047 rsmx = rs*dratio(p_o3) + rmx
1048 rlux = rlu(iland,iseason)/(1.E-5*hstary(p_o3)+f0(p_o3)) + resice
1049 rclx = rclo(iland,iseason) + resice
1050 rgsx = rgso(iland,iseason) + resice
1051 IF (wetflag) rlux = rluo1
1052 IF (rainflag) rlux = rluo2
1054 /(1./rsmx+1./rlux+1./(rdc+rclx)+1./(min(100.,rac(iland,iseason))+rgsx))
1055 rcx(p_o3) = max( 1.,rcx(p_o3) )
1058 ! SPECIAL TREATMENT FOR SO2 (Wesely)
1059 ! HSTARY(P_SO2)=HSTAR(P_SO2)*EXP(DHR(P_SO2)*(1./T-1./298.))
1060 ! RMX=1./(HSTARY(P_SO2)/3000.+100.*F0(P_SO2))
1061 ! RSMX=RS*DRATIO(P_SO2)+RMX
1062 ! RLUX=RLU(ILAND,ISEASON)/(1.E-5*HSTARY(P_SO2)+F0(P_SO2))
1064 ! RCLX=RCLS(ILAND,ISEASON)+RESICE
1065 ! RGSX=RGSS(ILAND,ISEASON)+RESICE
1066 ! IF ((wetflag).OR.(RAINFLAG)) THEN
1067 ! IF (ILAND.EQ.1) THEN
1073 ! RCX(P_SO2)=1./(1./RSMX+1./RLUX+1./(RDC+RCLX)
1074 ! & +1./(RAC(ILAND,ISEASON)+RGSX))
1075 ! IF (RCX(P_SO2).LT.1.) RCX(P_SO2)=1.
1077 !--------------------------------------------------
1078 ! SO2 according to Erisman et al. 1994
1080 !--------------------------------------------------
1082 if( p_so2 >= param_first_scalar ) then
1083 rsmx = rs*dratio(p_so2)
1084 !--------------------------------------------------
1086 !--------------------------------------------------
1089 rlux = 25000.*exp(-0.0693*rh)
1091 rlux = 0.58E12*exp(-0.278*rh)
1094 IF (((wetflag) .OR. (rainflag)) .AND. (tc> -1. )) THEN
1097 IF ((tc>= -5. ) .AND. (tc<= -1. )) THEN
1103 !--------------------------------------------------
1104 ! INSTEAD OF R_INC R_CL and R_DC of Wesely are used
1105 !--------------------------------------------------
1106 rclx = rcls(iland,iseason)
1107 !--------------------------------------------------
1109 !--------------------------------------------------
1111 !--------------------------------------------------
1113 !--------------------------------------------------
1114 IF ((wetflag) .OR. (rainflag)) THEN
1121 !--------------------------------------------------
1123 !--------------------------------------------------
1124 IF (iland==iswater_temp) THEN
1127 !--------------------------------------------------
1129 !--------------------------------------------------
1130 IF( iseason==4 .OR. iland==isice_temp ) THEN
1133 else IF ( tc >= -1. .AND. tc <= 2. ) THEN
1134 rgsx = 70.*(2. - tc)
1135 else IF ( tc < -1. ) THEN
1139 !--------------------------------------------------
1140 ! TOTAL SURFACE RESISTENCE
1141 !--------------------------------------------------
1142 IF ((iseason/=4) .AND. (ixxxlu(iland)/=1) .AND. (iland/=iswater_temp) .AND. &
1143 (iland/=isice_temp)) THEN
1144 rcx(p_so2) = 1./(1./rsmx+1./rlux+1./(rclx+rdc+rgsx))
1148 rcx(p_so2) = max( 1.,rcx(p_so2) )
1150 !--------------------------------------------------
1151 ! NH3 according to Erisman et al. 1994
1153 !--------------------------------------------------
1154 is_nh3: if( p_nh3 >= param_first_scalar ) then
1155 rsmx = rs*dratio(p_nh3)
1156 !--------------------------------------------------
1157 ! GRASSLAND (PASTURE DURING GRAZING)
1158 !--------------------------------------------------
1159 IF (ixxxlu(iland)==3) THEN
1160 IF (iseason==1) THEN
1161 !--------------------------------------------------
1163 !--------------------------------------------------
1166 IF ((iseason==2) .OR. (iseason==3) .OR. (iseason==5)) THEN
1167 !--------------------------------------------------
1169 !--------------------------------------------------
1176 IF ((wetflag) .OR. (rainflag)) THEN
1180 IF ((tc>=(-5.)) .AND. (tc<=-1.)) THEN
1188 !--------------------------------------------------
1189 ! AGRICULTURAL LAND (CROPS AND UNGRAZED PASTURE)
1190 !--------------------------------------------------
1191 IF (ixxxlu(iland)==2) THEN
1192 IF (iseason==1) THEN
1193 !--------------------------------------------------
1195 !--------------------------------------------------
1201 IF ((wetflag) .OR. (rainflag)) THEN
1205 IF ((iseason==2) .OR. (iseason==3) .OR. (iseason==5)) THEN
1206 !--------------------------------------------------
1208 !--------------------------------------------------
1215 IF ((wetflag) .OR. (rainflag)) THEN
1219 IF ((tc>=(-5.)) .AND. (tc<=-1.)) THEN
1227 !--------------------------------------------------
1228 ! SEMI-NATURAL ECOSYSTEMS AND FORESTS
1229 !--------------------------------------------------
1230 IF ((ixxxlu(iland)==4) .OR. (ixxxlu(iland)==5) .OR. (ixxxlu( &
1237 IF ((wetflag) .OR. (rainflag)) THEN
1244 IF ((iseason==2) .OR. (iseason==3) .OR. (iseason==5)) THEN
1245 !--------------------------------------------------
1247 !--------------------------------------------------
1248 IF ((tc>=(-5.)) .AND. (tc<=-1.)) THEN
1256 !--------------------------------------------------
1258 !--------------------------------------------------
1259 IF (iland==iswater_temp) THEN
1262 !--------------------------------------------------
1263 ! URBAN AND DESERT (SOIL SURFACES)
1264 !--------------------------------------------------
1265 IF (ixxxlu(iland)==1) THEN
1266 IF ( .NOT. wetflag) THEN
1272 !--------------------------------------------------
1273 ! SNOW COVERED SURFACES OR PERMANENT ICE
1274 !--------------------------------------------------
1275 IF ((iseason==4) .OR. (iland==isice_temp)) THEN
1279 IF ((tc>=(-1.)) .AND. (tc<=2.)) THEN
1280 rcx(p_nh3) = 70.*(2.-tc)
1286 rcx(p_nh3) = max( 1.,rcx(p_nh3) )
1290 SUBROUTINE deppart( rmol, ustar, rh, clw, iland, &
1292 !--------------------------------------------------
1293 ! THIS SUBROUTINE CALCULATES SURFACE DEPOSITION VELOCITIES
1294 ! FOR FINE AEROSOL PARTICLES ACCORDING TO THE MODEL OF
1295 ! J. W. ERISMAN, A. VAN PUL, AND P. WYERS,
1296 ! ATMOSPHERIC ENVIRONMENT 28 (1994), 2595-2607
1297 ! WRITTEN BY WINFRIED SEIDL, APRIL 1997
1298 ! MODIFIED BY WINFRIED SEIDL, MARCH 2000
1300 !--------------------------------------------------
1302 !--------------------------------------------------
1303 ! .. Scalar Arguments ..
1304 !--------------------------------------------------
1305 INTEGER, intent(in) :: iland
1306 REAL, intent(in) :: clw, rh, rmol, ustar
1307 REAL, intent(out) :: dvfog, dvpart
1309 !--------------------------------------------------
1310 ! .. Intrinsic Functions ..
1311 !--------------------------------------------------
1314 dvpart = ustar/kpart(iland)
1316 !--------------------------------------------------
1317 ! UNSTABLE LAYERING CORRECTION
1318 !--------------------------------------------------
1319 dvpart = dvpart*(1.+(-300.*rmol)**0.66667)
1322 !--------------------------------------------------
1323 ! HIGH RELATIVE HUMIDITY CORRECTION
1324 ! ACCORDING TO J. W. ERISMAN ET AL.
1325 ! ATMOSPHERIC ENVIRONMENT 31 (1997), 321-332
1326 !--------------------------------------------------
1327 dvpart = dvpart*(1.+0.37*exp((rh-80.)/20.))
1330 !--------------------------------------------------
1331 ! SEDIMENTATION VELOCITY OF FOG WATER ACCORDING TO
1332 ! R. FORKEL, W. SEIDL, R. DLUGI AND E. DEIGELE
1333 ! J. GEOPHYS. RES. 95D (1990), 18501-18515
1334 !--------------------------------------------------
1336 IF (ixxxlu(iland)==5) THEN
1337 !--------------------------------------------------
1338 ! TURBULENT DEPOSITION OF FOG WATER IN CONIFEROUS FOREST ACCORDI
1339 ! A. T. VERMEULEN ET AL.
1340 ! ATMOSPHERIC ENVIRONMENT 31 (1997), 375-386
1341 !--------------------------------------------------
1342 dvfog = dvfog + 0.195*ustar*ustar
1345 END SUBROUTINE deppart
1347 SUBROUTINE landusevg( vgs, ustar, rmol, z0, zz, &
1348 dvparx, iland, numgas, srfres, aer_res_def, &
1349 aer_res_zcen, p_sulf )
1350 !--------------------------------------------------
1351 ! This subroutine calculates the species specific deposition velocit
1352 ! as a function of the local meteorology and land use. The depositi
1353 ! Velocity is also landuse specific.
1354 ! Reference: Hsieh, C.M., Wesely, M.L. and Walcek, C.J. (1986)
1355 ! A Dry Deposition Module for Regional Acid Deposition
1356 ! EPA report under agreement DW89930060-01
1357 ! Revised version by Darrell Winner (January 1991)
1358 ! Environmental Engineering Science 138-78
1359 ! California Institute of Technology
1360 ! Pasadena, CA 91125
1361 ! Modified by Winfried Seidl (August 1997)
1362 ! Fraunhofer-Institut fuer Atmosphaerische Umweltforschung
1363 ! Garmisch-Partenkirchen, D-82467
1364 ! for use of Wesely and Erisman surface resistances
1366 ! Ustar : The grid average friction velocity (m/s)
1367 ! Rmol : Reciprocal of the Monin-Obukhov length (1/m)
1368 ! Z0 : Surface roughness height for the grid square (m)
1369 ! SrfRes : Array of landuse/atmospheric/species resistances (s/m)
1370 ! Slist : Array of chemical species codes
1371 ! Dvparx : Array of surface deposition velocity of fine aerosol p
1373 ! Vgs : Array of species and landuse specific deposition
1375 ! Vg : Cell-average deposition velocity by species (m/s)
1377 ! SCPR23 : (Schmidt #/Prandtl #)**(2/3) Diffusion correction fac
1378 ! Zr : Reference Height (m)
1379 ! Iatmo : Parameter specifying the stabilty class (Function of
1380 ! Z0 : Surface roughness height (m)
1381 ! karman : Von Karman constant (from module_model_constants)
1382 !--------------------------------------------------
1384 USE module_model_constants, only: karman
1386 !--------------------------------------------------
1387 ! .. Scalar Arguments ..
1388 !--------------------------------------------------
1389 INTEGER, intent(in) :: iland, numgas, p_sulf
1390 REAL, intent(in) :: dvparx, ustar, z0, zz
1391 REAL, intent(inout) :: rmol
1392 REAL, intent(inout) :: aer_res_def
1393 REAL, intent(inout) :: aer_res_zcen
1394 !--------------------------------------------------
1395 ! .. Array Arguments ..
1396 !--------------------------------------------------
1397 REAL, intent(in) :: srfres(numgas)
1398 REAL, intent(out) :: vgs(numgas)
1400 !--------------------------------------------------
1401 ! .. Local Scalars ..
1402 !--------------------------------------------------
1404 REAL :: vgp, vgpart, zr
1406 !--------------------------------------------------
1407 ! .. Local Arrays ..
1408 !--------------------------------------------------
1409 REAL :: vgspec(numgas)
1411 !--------------------------------------------------
1412 ! Calculate aerodynamic resistance for reference
1413 ! height = layer center
1414 !--------------------------------------------------
1417 CALL depvel( numgas, rmol_tmp, zr, z0, ustar, &
1418 vgspec, vgpart, aer_res_zcen )
1419 !--------------------------------------------------
1420 ! Set the reference height (2.0 m)
1421 !--------------------------------------------------
1425 !--------------------------------------------------
1426 ! CALCULATE THE DEPOSITION VELOCITY without any surface
1427 ! resistance term, i.e. 1 / (ra + rb)
1428 !--------------------------------------------------
1429 CALL depvel( numgas, rmol, zr, z0, ustar, &
1430 vgspec, vgpart, aer_res_def )
1432 !--------------------------------------------------
1433 ! Calculate the deposition velocity for each species
1434 ! and grid cell by looping through all the possibile combinations
1436 !--------------------------------------------------
1437 vgp = 1.0/((1.0/vgpart)+(1.0/dvparx))
1438 !--------------------------------------------------
1439 ! Loop through the various species
1440 !--------------------------------------------------
1441 DO jspec = 1, numgas
1442 !--------------------------------------------------
1443 ! Add in the surface resistance term, rc (SrfRes)
1444 !--------------------------------------------------
1445 vgs(jspec) = 1.0/(1.0/vgspec(jspec) + srfres(jspec))
1449 CALL cellvg( vgs, ustar, zz, zr, rmol, numgas )
1451 END SUBROUTINE landusevg
1453 SUBROUTINE cellvg( vgtemp, ustar, dz, zr, rmol, nspec )
1454 !--------------------------------------------------
1455 ! THIS PROGRAM HAS BEEN DESIGNED TO CALCULATE THE CELL AVERAGE
1456 ! DEPOSITION VELOCITY GIVEN THE VALUE OF VG AT SOME REFERENCE
1457 ! HEIGHT ZR WHICH IS MUCH SMALLER THAN THE CELL HEIGHT DZ.
1458 ! PROGRAM WRITTEN BY GREGORY J.MCRAE (NOVEMBER 1977)
1459 ! Modified by Darrell A. Winner (February 1991)
1460 !.....PROGRAM VARIABLES...
1461 ! VgTemp - DEPOSITION VELOCITY AT THE REFERENCE HEIGHT
1462 ! USTAR - FRICTION VELOCITY
1463 ! RMOL - RECIPROCAL OF THE MONIN-OBUKHOV LENGTH
1464 ! ZR - REFERENCE HEIGHT
1466 ! CELLVG - CELL AVERAGE DEPOSITION VELOCITY
1467 ! VK - VON KARMAN CONSTANT
1468 !--------------------------------------------------
1470 USE module_model_constants, only: karman
1472 !--------------------------------------------------
1473 ! .. Scalar Arguments ..
1474 !--------------------------------------------------
1475 INTEGER, intent(in) :: nspec
1476 REAL, intent(in) :: dz, rmol, ustar, zr
1477 !--------------------------------------------------
1478 ! .. Array Arguments ..
1479 !--------------------------------------------------
1480 REAL, intent(out) :: vgtemp(nspec)
1481 !--------------------------------------------------
1482 ! .. Local Scalars ..
1483 !--------------------------------------------------
1485 REAL :: a, fac, pdz, pzr, vk
1486 !--------------------------------------------------
1487 ! .. Intrinsic Functions ..
1488 !--------------------------------------------------
1489 INTRINSIC alog, sqrt
1491 !--------------------------------------------------
1492 ! Set the von Karman constant
1493 !--------------------------------------------------
1496 !--------------------------------------------------
1497 ! DETERMINE THE STABILITY BASED ON THE CONDITIONS
1501 !--------------------------------------------------
1504 pdz = sqrt(1.0 - 9.0*dz*rmol)
1505 pzr = sqrt(1.0 - 9.0*zr*rmol)
1506 fac = ((pdz - 1.0)/(pzr - 1.0))*((pzr + 1.0)/(pdz + 1.0))
1507 a = 0.74*dz*alog(fac) + (0.164/rmol)*(pdz-pzr)
1508 ELSE IF (rmol == 0.) THEN
1509 a = 0.74*(dz*alog(dz/zr) - dz + zr)
1511 a = 0.74*(dz*alog(dz/zr) - dz + zr) + (2.35*rmol)*(dz - zr)**2
1513 !--------------------------------------------------
1514 ! CALCULATE THE DEPOSITION VELOCITIY
1515 !--------------------------------------------------
1516 vgtemp(nss) = vgtemp(nss)/(1.0 + vgtemp(nss)*a/(vk*ustar*(dz - zr)))
1519 END SUBROUTINE cellvg
1521 SUBROUTINE depvel( numgas, rmol, zr, z0, ustar, &
1522 depv, vgpart, aer_res )
1523 !--------------------------------------------------
1524 ! THIS FUNCTION HAS BEEN DESIGNED TO EVALUATE AN UPPER LIMIT
1525 ! FOR THE POLLUTANT DEPOSITION VELOCITY AS A FUNCTION OF THE
1526 ! SURFACE ROUGHNESS AND METEOROLOGICAL CONDITIONS.
1527 ! PROGRAM WRITTEN BY GREGORY J.MCRAE (NOVEMBER 1977)
1528 ! Modified by Darrell A. Winner (Feb. 1991)
1529 ! by Winfried Seidl (Aug. 1997)
1530 !.....PROGRAM VARIABLES...
1531 ! RMOL - RECIPROCAL OF THE MONIN-OBUKHOV LENGTH
1532 ! ZR - REFERENCE HEIGHT
1533 ! Z0 - SURFACE ROUGHNESS HEIGHT
1534 ! SCPR23 - (Schmidt #/Prandtl #)**(2/3) Diffusion correction fact
1535 ! UBAR - ABSOLUTE VALUE OF SURFACE WIND SPEED
1536 ! DEPVEL - POLLUTANT DEPOSITION VELOCITY
1537 ! Vk - VON KARMAN CONSTANT
1538 ! USTAR - FRICTION VELOCITY U*
1539 ! POLINT - POLLUTANT INTEGRAL
1540 ! AER_RES - AERODYNAMIC RESISTANCE
1542 ! MCRAE, G.J. ET AL. (1983) MATHEMATICAL MODELING OF PHOTOCHEMICAL
1543 ! AIR POLLUTION, ENVIRONMENTAL QUALITY LABORATORY REPORT 18,
1544 ! CALIFORNIA INSTITUTE OF TECHNOLOGY, PASADENA, CALIFORNIA.
1545 !.....RESTRICTIONS...
1546 ! 1. THE MODEL EDDY DIFFUSIVITIES ARE BASED ON MONIN-OBUKHOV
1547 ! SIMILARITY THEORY AND SO ARE ONLY APPLICABLE IN THE
1548 ! SURFACE LAYER, A HEIGHT OF O(30M).
1549 ! 2. ALL INPUT UNITS MUST BE CONSISTENT
1550 ! 3. THE PHI FUNCTIONS USED TO CALCULATE THE FRICTION
1551 ! VELOCITY U* AND THE POLLUTANT INTEGRALS ARE BASED
1552 ! ON THE WORK OF BUSINGER ET AL.(1971).
1553 ! 4. THE MOMENTUM AND POLLUTANT DIFFUSIVITIES ARE NOT
1554 ! THE SAME FOR THE CASES L<0 AND L>0.
1555 !--------------------------------------------------
1557 USE module_model_constants, only: karman
1559 !--------------------------------------------------
1560 ! .. Scalar Arguments ..
1561 !--------------------------------------------------
1562 INTEGER, intent(in) :: numgas
1563 REAL, intent(in) :: ustar, z0, zr
1564 REAL, intent(out) :: vgpart, aer_res
1565 REAL, intent(inout) :: rmol
1566 !--------------------------------------------------
1567 ! .. Array Arguments ..
1568 !--------------------------------------------------
1569 REAL, intent(out) :: depv(numgas)
1570 !--------------------------------------------------
1571 ! .. Local Scalars ..
1572 !--------------------------------------------------
1574 REAL :: ao, ar, polint, vk
1575 !--------------------------------------------------
1576 ! .. Intrinsic Functions ..
1577 !--------------------------------------------------
1579 !--------------------------------------------------
1580 ! Set the von Karman constant
1581 !--------------------------------------------------
1584 !--------------------------------------------------
1585 ! Calculate the diffusion correction factor
1586 ! SCPR23 is calculated as (Sc/Pr)**(2/3) using Sc= 1.15 and Pr= 1.0
1588 !--------------------------------------------------
1589 ! DETERMINE THE STABILITY BASED ON THE CONDITIONS
1593 !--------------------------------------------------
1595 if(abs(rmol) < 1.E-6 ) rmol = 0.
1598 ar = ((1.0-9.0*zr*rmol)**(0.25)+0.001)**2
1599 ao = ((1.0-9.0*z0*rmol)**(0.25)+0.001)**2
1600 polint = 0.74*(alog((ar-1.0)/(ar+1.0))-alog((ao-1.0)/(ao+1.0)))
1601 ELSE IF (rmol==0.) THEN
1602 polint = 0.74*alog(zr/z0)
1604 polint = 0.74*alog(zr/z0) + 4.7*rmol*(zr-z0)
1607 !--------------------------------------------------
1608 ! CALCULATE THE Maximum DEPOSITION VELOCITY
1609 !--------------------------------------------------
1611 depv(l) = ustar*vk/(2.0*scpr23(l)+polint)
1613 vgpart = ustar*vk/polint
1614 aer_res = polint/(karman*max(ustar,1.0e-4))
1616 END SUBROUTINE depvel
1618 SUBROUTINE dep_init( id, config_flags, numgas, mminlu_loc, &
1619 ips, ipe, jps, jpe, ide, jde )
1622 !--------------------------------------------------
1623 ! .. Initialize simple deposition velocity routine
1624 !--------------------------------------------------
1626 USE module_model_constants
1627 USE module_configure
1628 USE module_state_description
1630 TYPE (grid_config_rec_type) , INTENT (in) :: config_flags
1631 character(len=*), intent(in) :: mminlu_loc
1634 !--------------------------------------------------
1635 ! .. Scalar Arguments ..
1636 !--------------------------------------------------
1637 integer, intent(in) :: id, numgas
1638 integer, intent(in) :: ips, ipe, jps, jpe
1639 integer, intent(in) :: ide, jde
1641 !--------------------------------------------------
1643 !--------------------------------------------------
1644 INTEGER :: iland, iseason, l, m
1651 integer :: cpos, slen
1652 integer :: lon_e, lat_e
1653 integer :: iend, jend
1654 integer, allocatable :: input_wes_seasonal(:,:,:,:)
1656 character(len=128) :: err_msg
1657 character(len=128) :: filename
1658 character(len=3) :: id_num
1659 LOGICAL :: chm_is_moz
1660 !--------------------------------------------------
1662 !--------------------------------------------------
1663 REAL :: dat1(nlu,dep_seasons), dat2(nlu,dep_seasons), &
1664 dat3(nlu,dep_seasons), dat4(nlu,dep_seasons), &
1665 dat5(nlu,dep_seasons), dat6(nlu,dep_seasons), &
1666 dat7(nlu,dep_seasons), dvj(numgas)
1669 LOGICAL , EXTERNAL :: wrf_dm_on_monitor
1670 #define DM_BCAST_MACRO(A) CALL wrf_dm_bcast_bytes ( A , size ( A ) * IWORDSIZE )
1671 include 'netcdf.inc'
1674 if( config_flags%chem_opt == MOZART_KPP .or. &
1675 config_flags%chem_opt == MOZCART_KPP .or. &
1676 config_flags%chem_opt == T1_MOZCART_KPP .or. &
1677 config_flags%chem_opt == MOZART_MOSAIC_4BIN_KPP .or. &
1678 config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP ) then
1679 call wrf_message( 'dep_init: mozart,mozcart chem option requires netcdf' )
1684 !--------------------------------------------------
1685 ! .. Make sure that the model is being run with a soil model. Otherwise,
1686 ! iland will be zero in deppart, which will try to pull non-exisant
1688 !--------------------------------------------------
1689 call nl_get_sf_surface_physics(id,l)
1691 call wrf_error_fatal("ERROR: Cannot use dry deposition without using a soil model.")
1694 ! .. Data Statements ..
1695 ! RI for stomatal resistance
1696 ! data ((ri(ILAND,ISEASON),ILAND=1,nlu),ISEASON=1,dep_seasons)/0.10E+11, &
1697 DATA ((dat1(iland,iseason),iland=1,nlu),iseason=1,dep_seasons)/0.10E+11, &
1698 0.60E+02, 0.60E+02, 0.60E+02, 0.60E+02, 0.70E+02, 0.12E+03, &
1699 0.12E+03, 0.12E+03, 0.12E+03, 0.70E+02, 0.13E+03, 0.70E+02, &
1700 0.13E+03, 0.10E+03, 0.10E+11, 0.80E+02, 0.10E+03, 0.10E+11, &
1701 0.80E+02, 0.10E+03, 0.10E+03, 0.10E+11, 0.10E+11, 0.10E+11, &
1702 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, &
1703 0.10E+11, 0.10E+11, 0.10E+11, 0.12E+03, 0.10E+11, 0.10E+11, &
1704 0.70E+02, 0.25E+03, 0.50E+03, 0.10E+11, 0.10E+11, 0.50E+03, &
1705 0.10E+11, 0.10E+11, 0.50E+03, 0.50E+03, 0.10E+11, 0.10E+11, &
1706 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, &
1707 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.12E+03, 0.10E+11, &
1708 0.10E+11, 0.70E+02, 0.25E+03, 0.50E+03, 0.10E+11, 0.10E+11, &
1709 0.50E+03, 0.10E+11, 0.10E+11, 0.50E+03, 0.50E+03, 0.10E+11, &
1710 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, &
1711 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, &
1712 0.10E+11, 0.10E+11, 0.70E+02, 0.40E+03, 0.80E+03, 0.10E+11, &
1713 0.10E+11, 0.80E+03, 0.10E+11, 0.10E+11, 0.80E+03, 0.80E+03, &
1714 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.12E+03, 0.12E+03, &
1715 0.12E+03, 0.12E+03, 0.14E+03, 0.24E+03, 0.24E+03, 0.24E+03, &
1716 0.12E+03, 0.14E+03, 0.25E+03, 0.70E+02, 0.25E+03, 0.19E+03, &
1717 0.10E+11, 0.16E+03, 0.19E+03, 0.10E+11, 0.16E+03, 0.19E+03, &
1718 0.19E+03, 0.10E+11, 0.10E+11, 0.10E+11/
1721 call wrf_debug(0, 'number of land use classifications not correct ')
1722 CALL wrf_error_fatal ( "LAND USE CLASSIFICATIONS NOT 25")
1724 IF (dep_seasons/=5) THEN
1725 call wrf_debug(0, 'number of dep_seasons not correct ')
1726 CALL wrf_error_fatal ( "DEP_SEASONS NOT 5")
1729 ! SURFACE RESISTANCE DATA FOR DEPOSITION MODEL OF
1730 ! M. L. WESELY, ATMOSPHERIC ENVIRONMENT 23 (1989) 1293-1304
1732 ! Seasonal categories:
1733 ! 1: midsummer with lush vegetation
1734 ! 2: autumn with unharvested cropland
1735 ! 3: late autumn with frost, no snow
1736 ! 4: winter, snow on ground and subfreezing
1737 ! 5: transitional spring with partially green short annuals
1740 ! USGS type Wesely type
1741 ! 1: Urban and built-up land 1
1742 ! 2: Dryland cropland and pasture 2
1743 ! 3: Irrigated cropland and pasture 2
1744 ! 4: Mix. dry/irrg. cropland and pasture 2
1745 ! 5: Cropland/grassland mosaic 2
1746 ! 6: Cropland/woodland mosaic 4
1749 ! 9: Mixed shrubland/grassland 3
1750 ! 10: Savanna 3, always summer
1751 ! 11: Deciduous broadleaf forest 4
1752 ! 12: Deciduous needleleaf forest 5, autumn and winter modi
1753 ! 13: Evergreen broadleaf forest 4, always summer
1754 ! 14: Evergreen needleleaf forest 5
1755 ! 15: Mixed Forest 6
1756 ! 16: Water Bodies 7
1757 ! 17: Herbaceous wetland 9
1758 ! 18: Wooded wetland 6
1759 ! 19: Barren or sparsely vegetated 8
1760 ! 20: Herbaceous Tundra 9
1761 ! 21: Wooded Tundra 6
1762 ! 22: Mixed Tundra 6
1763 ! 23: Bare Ground Tundra 8
1764 ! 24: Snow or Ice -, always winter
1770 ! | seasonal category
1774 ! RLU for outer surfaces in the upper canopy
1775 DO iseason = 1, dep_seasons
1776 ri(1:nlu,iseason) = dat1(1:nlu,iseason)
1778 ! data ((rlu(ILAND,ISEASON),ILAND=1,25),ISEASON=1,5)/0.10E+11, &
1779 DATA ((dat2(iland,iseason),iland=1,nlu),iseason=1,dep_seasons)/0.10E+11, &
1780 0.20E+04, 0.20E+04, 0.20E+04, 0.20E+04, 0.20E+04, 0.20E+04, &
1781 0.20E+04, 0.20E+04, 0.20E+04, 0.20E+04, 0.20E+04, 0.20E+04, &
1782 0.20E+04, 0.20E+04, 0.10E+11, 0.25E+04, 0.20E+04, 0.10E+11, &
1783 0.25E+04, 0.20E+04, 0.20E+04, 0.10E+11, 0.10E+11, 0.10E+11, &
1784 0.10E+11, 0.90E+04, 0.90E+04, 0.90E+04, 0.90E+04, 0.90E+04, &
1785 0.90E+04, 0.90E+04, 0.90E+04, 0.20E+04, 0.90E+04, 0.90E+04, &
1786 0.20E+04, 0.40E+04, 0.80E+04, 0.10E+11, 0.90E+04, 0.80E+04, &
1787 0.10E+11, 0.90E+04, 0.80E+04, 0.80E+04, 0.10E+11, 0.10E+11, &
1788 0.10E+11, 0.10E+11, 0.90E+04, 0.90E+04, 0.90E+04, 0.90E+04, &
1789 0.90E+04, 0.90E+04, 0.90E+04, 0.90E+04, 0.20E+04, 0.90E+04, &
1790 0.90E+04, 0.20E+04, 0.40E+04, 0.80E+04, 0.10E+11, 0.90E+04, &
1791 0.80E+04, 0.10E+11, 0.90E+04, 0.80E+04, 0.80E+04, 0.10E+11, &
1792 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, &
1793 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, &
1794 0.10E+11, 0.10E+11, 0.20E+04, 0.60E+04, 0.90E+04, 0.10E+11, &
1795 0.90E+04, 0.90E+04, 0.10E+11, 0.90E+04, 0.90E+04, 0.90E+04, &
1796 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.40E+04, 0.40E+04, &
1797 0.40E+04, 0.40E+04, 0.40E+04, 0.40E+04, 0.40E+04, 0.40E+04, &
1798 0.20E+04, 0.40E+04, 0.20E+04, 0.20E+04, 0.20E+04, 0.30E+04, &
1799 0.10E+11, 0.40E+04, 0.30E+04, 0.10E+11, 0.40E+04, 0.30E+04, &
1800 0.30E+04, 0.10E+11, 0.10E+11, 0.10E+11/
1801 DO iseason = 1, dep_seasons
1802 rlu(1:nlu,iseason) = dat2(1:nlu,iseason)
1804 ! RAC for transfer that depends on canopy height and density
1805 ! data ((rac(ILAND,ISEASON),ILAND=1,25),ISEASON=1,5)/0.10E+03, &
1806 DATA ((dat3(iland,iseason),iland=1,nlu),iseason=1,dep_seasons)/0.10E+03, &
1807 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+04, 0.10E+03, &
1808 0.10E+03, 0.10E+03, 0.10E+03, 0.20E+04, 0.20E+04, 0.20E+04, &
1809 0.20E+04, 0.20E+04, 0.00E+00, 0.30E+03, 0.20E+04, 0.00E+00, &
1810 0.30E+03, 0.20E+04, 0.20E+04, 0.00E+00, 0.00E+00, 0.00E+00, &
1811 0.10E+03, 0.15E+03, 0.15E+03, 0.15E+03, 0.15E+03, 0.15E+04, &
1812 0.10E+03, 0.10E+03, 0.10E+03, 0.10E+03, 0.15E+04, 0.20E+04, &
1813 0.20E+04, 0.20E+04, 0.17E+04, 0.00E+00, 0.20E+03, 0.17E+04, &
1814 0.00E+00, 0.20E+03, 0.17E+04, 0.17E+04, 0.00E+00, 0.00E+00, &
1815 0.00E+00, 0.10E+03, 0.10E+02, 0.10E+02, 0.10E+02, 0.10E+02, &
1816 0.10E+04, 0.10E+03, 0.10E+03, 0.10E+03, 0.10E+03, 0.10E+04, &
1817 0.20E+04, 0.20E+04, 0.20E+04, 0.15E+04, 0.00E+00, 0.10E+03, &
1818 0.15E+04, 0.00E+00, 0.10E+03, 0.15E+04, 0.15E+04, 0.00E+00, &
1819 0.00E+00, 0.00E+00, 0.10E+03, 0.10E+02, 0.10E+02, 0.10E+02, &
1820 0.10E+02, 0.10E+04, 0.10E+02, 0.10E+02, 0.10E+02, 0.10E+02, &
1821 0.10E+04, 0.20E+04, 0.20E+04, 0.20E+04, 0.15E+04, 0.00E+00, &
1822 0.50E+02, 0.15E+04, 0.00E+00, 0.50E+02, 0.15E+04, 0.15E+04, &
1823 0.00E+00, 0.00E+00, 0.00E+00, 0.10E+03, 0.50E+02, 0.50E+02, &
1824 0.50E+02, 0.50E+02, 0.12E+04, 0.80E+02, 0.80E+02, 0.80E+02, &
1825 0.10E+03, 0.12E+04, 0.20E+04, 0.20E+04, 0.20E+04, 0.15E+04, &
1826 0.00E+00, 0.20E+03, 0.15E+04, 0.00E+00, 0.20E+03, 0.15E+04, &
1827 0.15E+04, 0.00E+00, 0.00E+00, 0.00E+00/
1828 DO iseason = 1, dep_seasons
1829 rac(1:nlu,iseason) = dat3(1:nlu,iseason)
1831 ! RGSS for ground surface SO2
1832 ! data ((rgss(ILAND,ISEASON),ILAND=1,25),ISEASON=1,5)/0.40E+03, &
1833 DATA ((dat4(iland,iseason),iland=1,nlu),iseason=1,dep_seasons)/0.40E+03, &
1834 0.15E+03, 0.15E+03, 0.15E+03, 0.15E+03, 0.50E+03, 0.35E+03, &
1835 0.35E+03, 0.35E+03, 0.35E+03, 0.50E+03, 0.50E+03, 0.50E+03, &
1836 0.50E+03, 0.10E+03, 0.10E+01, 0.10E+01, 0.10E+03, 0.10E+04, &
1837 0.10E+01, 0.10E+03, 0.10E+03, 0.10E+04, 0.10E+03, 0.10E+04, &
1838 0.40E+03, 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+03, 0.50E+03, &
1839 0.35E+03, 0.35E+03, 0.35E+03, 0.35E+03, 0.50E+03, 0.50E+03, &
1840 0.50E+03, 0.50E+03, 0.10E+03, 0.10E+01, 0.10E+01, 0.10E+03, &
1841 0.10E+04, 0.10E+01, 0.10E+03, 0.10E+03, 0.10E+04, 0.10E+03, &
1842 0.10E+04, 0.40E+03, 0.15E+03, 0.15E+03, 0.15E+03, 0.15E+03, &
1843 0.50E+03, 0.35E+03, 0.35E+03, 0.35E+03, 0.35E+03, 0.50E+03, &
1844 0.50E+03, 0.50E+03, 0.50E+03, 0.20E+03, 0.10E+01, 0.10E+01, &
1845 0.20E+03, 0.10E+04, 0.10E+01, 0.20E+03, 0.20E+03, 0.10E+04, &
1846 0.10E+03, 0.10E+04, 0.10E+03, 0.10E+03, 0.10E+03, 0.10E+03, &
1847 0.10E+03, 0.10E+03, 0.10E+03, 0.10E+03, 0.10E+03, 0.10E+03, &
1848 0.10E+03, 0.10E+03, 0.50E+03, 0.10E+03, 0.10E+03, 0.10E+01, &
1849 0.10E+03, 0.10E+03, 0.10E+04, 0.10E+03, 0.10E+03, 0.10E+03, &
1850 0.10E+04, 0.10E+03, 0.10E+04, 0.50E+03, 0.15E+03, 0.15E+03, &
1851 0.15E+03, 0.15E+03, 0.50E+03, 0.35E+03, 0.35E+03, 0.35E+03, &
1852 0.35E+03, 0.50E+03, 0.50E+03, 0.50E+03, 0.50E+03, 0.20E+03, &
1853 0.10E+01, 0.10E+01, 0.20E+03, 0.10E+04, 0.10E+01, 0.20E+03, &
1854 0.20E+03, 0.10E+04, 0.10E+03, 0.10E+04/
1855 DO iseason = 1, dep_seasons
1856 rgss(1:nlu,iseason) = dat4(1:nlu,iseason)
1858 ! RGSO for ground surface O3
1859 ! data ((rgso(ILAND,ISEASON),ILAND=1,25),ISEASON=1,5)/0.30E+03, &
1860 DATA ((dat5(iland,iseason),iland=1,nlu),iseason=1,dep_seasons)/0.30E+03, &
1861 0.15E+03, 0.15E+03, 0.15E+03, 0.15E+03, 0.20E+03, 0.20E+03, &
1862 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+03, &
1863 0.20E+03, 0.30E+03, 0.20E+04, 0.10E+04, 0.30E+03, 0.40E+03, &
1864 0.10E+04, 0.30E+03, 0.30E+03, 0.40E+03, 0.35E+04, 0.40E+03, &
1865 0.30E+03, 0.15E+03, 0.15E+03, 0.15E+03, 0.15E+03, 0.20E+03, &
1866 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+03, &
1867 0.20E+03, 0.20E+03, 0.30E+03, 0.20E+04, 0.80E+03, 0.30E+03, &
1868 0.40E+03, 0.80E+03, 0.30E+03, 0.30E+03, 0.40E+03, 0.35E+04, &
1869 0.40E+03, 0.30E+03, 0.15E+03, 0.15E+03, 0.15E+03, 0.15E+03, &
1870 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+03, &
1871 0.20E+03, 0.20E+03, 0.20E+03, 0.30E+03, 0.20E+04, 0.10E+04, &
1872 0.30E+03, 0.40E+03, 0.10E+04, 0.30E+03, 0.30E+03, 0.40E+03, &
1873 0.35E+04, 0.40E+03, 0.60E+03, 0.35E+04, 0.35E+04, 0.35E+04, &
1874 0.35E+04, 0.35E+04, 0.35E+04, 0.35E+04, 0.35E+04, 0.35E+04, &
1875 0.35E+04, 0.35E+04, 0.20E+03, 0.35E+04, 0.35E+04, 0.20E+04, &
1876 0.35E+04, 0.35E+04, 0.40E+03, 0.35E+04, 0.35E+04, 0.35E+04, &
1877 0.40E+03, 0.35E+04, 0.40E+03, 0.30E+03, 0.15E+03, 0.15E+03, &
1878 0.15E+03, 0.15E+03, 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+03, &
1879 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+03, 0.20E+03, 0.30E+03, &
1880 0.20E+04, 0.10E+04, 0.30E+03, 0.40E+03, 0.10E+04, 0.30E+03, &
1881 0.30E+03, 0.40E+03, 0.35E+04, 0.40E+03/
1882 DO iseason = 1, dep_seasons
1883 rgso(1:nlu,iseason) = dat5(1:nlu,iseason)
1885 ! RCLS for exposed surfaces in the lower canopy SO2
1886 ! data ((rcls(ILAND,ISEASON),ILAND=1,25),ISEASON=1,5)/0.10E+11, &
1887 DATA ((dat6(iland,iseason),iland=1,nlu),iseason=1,dep_seasons)/0.10E+11, &
1888 0.20E+04, 0.20E+04, 0.20E+04, 0.20E+04, 0.20E+04, 0.20E+04, &
1889 0.20E+04, 0.20E+04, 0.20E+04, 0.20E+04, 0.20E+04, 0.20E+04, &
1890 0.20E+04, 0.20E+04, 0.10E+11, 0.25E+04, 0.20E+04, 0.10E+11, &
1891 0.25E+04, 0.20E+04, 0.20E+04, 0.10E+11, 0.10E+11, 0.10E+11, &
1892 0.10E+11, 0.90E+04, 0.90E+04, 0.90E+04, 0.90E+04, 0.90E+04, &
1893 0.90E+04, 0.90E+04, 0.90E+04, 0.20E+04, 0.90E+04, 0.90E+04, &
1894 0.20E+04, 0.20E+04, 0.40E+04, 0.10E+11, 0.90E+04, 0.40E+04, &
1895 0.10E+11, 0.90E+04, 0.40E+04, 0.40E+04, 0.10E+11, 0.10E+11, &
1896 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, &
1897 0.90E+04, 0.90E+04, 0.90E+04, 0.90E+04, 0.20E+04, 0.90E+04, &
1898 0.90E+04, 0.20E+04, 0.30E+04, 0.60E+04, 0.10E+11, 0.90E+04, &
1899 0.60E+04, 0.10E+11, 0.90E+04, 0.60E+04, 0.60E+04, 0.10E+11, &
1900 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, &
1901 0.10E+11, 0.90E+04, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, &
1902 0.90E+04, 0.90E+04, 0.20E+04, 0.20E+03, 0.40E+03, 0.10E+11, &
1903 0.90E+04, 0.40E+03, 0.10E+11, 0.90E+04, 0.40E+03, 0.40E+03, &
1904 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.40E+04, 0.40E+04, &
1905 0.40E+04, 0.40E+04, 0.40E+04, 0.40E+04, 0.40E+04, 0.40E+04, &
1906 0.20E+04, 0.40E+04, 0.20E+04, 0.20E+04, 0.20E+04, 0.30E+04, &
1907 0.10E+11, 0.40E+04, 0.30E+04, 0.10E+11, 0.40E+04, 0.30E+04, &
1908 0.30E+04, 0.10E+11, 0.10E+11, 0.10E+11/
1909 DO iseason = 1, dep_seasons
1910 rcls(1:nlu,iseason) = dat6(1:nlu,iseason)
1912 ! RCLO for exposed surfaces in the lower canopy O3
1913 ! data ((rclo(ILAND,ISEASON),ILAND=1,25),ISEASON=1,5)/0.10E+11, &
1914 DATA ((dat7(iland,iseason),iland=1,nlu),iseason=1,dep_seasons)/0.10E+11, &
1915 0.10E+04, 0.10E+04, 0.10E+04, 0.10E+04, 0.10E+04, 0.10E+04, &
1916 0.10E+04, 0.10E+04, 0.10E+04, 0.10E+04, 0.10E+04, 0.10E+04, &
1917 0.10E+04, 0.10E+04, 0.10E+11, 0.10E+04, 0.10E+04, 0.10E+11, &
1918 0.10E+04, 0.10E+04, 0.10E+04, 0.10E+11, 0.10E+11, 0.10E+11, &
1919 0.10E+11, 0.40E+03, 0.40E+03, 0.40E+03, 0.40E+03, 0.40E+03, &
1920 0.40E+03, 0.40E+03, 0.40E+03, 0.10E+04, 0.40E+03, 0.40E+03, &
1921 0.10E+04, 0.10E+04, 0.60E+03, 0.10E+11, 0.40E+03, 0.60E+03, &
1922 0.10E+11, 0.40E+03, 0.60E+03, 0.60E+03, 0.10E+11, 0.10E+11, &
1923 0.10E+11, 0.10E+11, 0.10E+04, 0.10E+04, 0.10E+04, 0.10E+04, &
1924 0.40E+03, 0.40E+03, 0.40E+03, 0.40E+03, 0.10E+04, 0.40E+03, &
1925 0.40E+03, 0.10E+04, 0.10E+04, 0.60E+03, 0.10E+11, 0.80E+03, &
1926 0.60E+03, 0.10E+11, 0.80E+03, 0.60E+03, 0.60E+03, 0.10E+11, &
1927 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+04, 0.10E+04, 0.10E+04, &
1928 0.10E+04, 0.40E+03, 0.10E+04, 0.10E+04, 0.10E+04, 0.10E+04, &
1929 0.40E+03, 0.40E+03, 0.10E+04, 0.15E+04, 0.60E+03, 0.10E+11, &
1930 0.80E+03, 0.60E+03, 0.10E+11, 0.80E+03, 0.60E+03, 0.60E+03, &
1931 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+11, 0.10E+04, 0.10E+04, &
1932 0.10E+04, 0.10E+04, 0.50E+03, 0.50E+03, 0.50E+03, 0.50E+03, &
1933 0.10E+04, 0.50E+03, 0.15E+04, 0.10E+04, 0.15E+04, 0.70E+03, &
1934 0.10E+11, 0.60E+03, 0.70E+03, 0.10E+11, 0.60E+03, 0.70E+03, &
1935 0.70E+03, 0.10E+11, 0.10E+11, 0.10E+11/
1937 DO iseason = 1, dep_seasons
1938 rclo(1:nlu,iseason) = dat7(1:nlu,iseason)
1941 ! data ((dat8(iseason,iland),iseason=1,5),iland=1,11) / &
1942 ! 1.e36, 60., 120., 70., 130., 100.,1.e36,1.e36, 80., 100., 150., &
1943 ! 1.e36,1.e36,1.e36,1.e36, 250., 500.,1.e36,1.e36,1.e36,1.e36,1.e36, &
1944 ! 1.e36,1.e36,1.e36,1.e36, 250., 500.,1.e36,1.e36,1.e36,1.e36,1.e36, &
1945 ! 1.e36,1.e36,1.e36,1.e36, 400., 800.,1.e36,1.e36,1.e36,1.e36,1.e36, &
1946 ! 1.e36, 120., 240., 140., 250., 190.,1.e36,1.e36, 160., 200., 300. /
1947 ! ri_pan(:,:) = dat8(:,:)
1949 !--------------------------------------------------
1950 ! Initialize parameters
1951 !--------------------------------------------------
1952 hstar(1:numgas) = 0.
1953 hstar4(1:numgas) = 0.
1958 if( .not. allocated(luse2usgs) ) then
1959 allocate( luse2usgs(config_flags%num_land_cat),stat=astat )
1960 if( astat /= 0 ) then
1961 CALL wrf_error_fatal( 'dep_init: failed to allocate luse2usgs array' )
1963 if( trim(mminlu_loc) == 'USGS' ) then
1964 luse2usgs(:) = (/ (iland,iland=1,config_flags%num_land_cat) /)
1965 elseif( trim(mminlu_loc) == 'MODIFIED_IGBP_MODIS_NOAH' ) then
1966 luse2usgs(:) = (/ 14,13,12,11,15,8,9,10,10,7, &
1967 17,4,1,5,24,19,16,21,22,23 /)
1971 chm_is_moz = config_flags%chem_opt == MOZART_KPP .or. &
1972 config_flags%chem_opt == MOZCART_KPP .or. &
1973 config_flags%chem_opt == T1_MOZCART_KPP .or. &
1974 config_flags%chem_opt == MOZART_MOSAIC_4BIN_KPP .or. &
1975 config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP
1977 !--------------------------------------------------
1978 ! HENRY''S LAW COEFFICIENTS
1979 ! Effective Henry''s law coefficient at pH 7
1980 ! [KH298]=mole/(l atm)
1981 !--------------------------------------------------
1983 if( .not. (config_flags%chem_opt == CBM4_KPP .or. &
1984 config_flags%chem_opt == CB05_SORG_AQ_KPP .or. &
1985 config_flags%chem_opt == CB05_SORG_VBS_AQ_KPP) ) then
1986 if( chm_is_moz ) then
1987 hstar(p_o3) = 1.15E-2
1989 hstar(p_h2o2) = 8.33E+4
1990 hstar(p_hcho) = 6.3e3
1991 hstar(p_ch3ooh) = 311.
1992 hstar(p_ch3oh) = 220.
1993 hstar(p_ch3cooh) = 6.3e3
1996 hstar(p_c3h6ooh) = 220.
1998 hstar(p_mpan) = 1.15e-2
1999 hstar(p_c2h5oh) = 200.
2000 hstar(p_etooh) = 336.
2001 hstar(p_prooh) = 336.
2002 hstar(p_acetp) = 336.
2003 hstar(p_onit) = 1.e3
2004 hstar(p_onitr) = 7.51e3
2005 hstar(p_acetol) = 6.3e3
2006 hstar(p_glyald) = 4.14e4
2007 hstar(p_hydrald) = 70.
2008 hstar(p_alkooh) = 311.
2009 hstar(p_mekooh) = 311.
2010 hstar(p_tolooh) = 311.
2011 hstar(p_terpooh) = 311.
2012 if (config_flags%chem_opt == T1_MOZCART_KPP ) then
2013 hstar(p_alknit) = 1.0e+03
2014 hstar(p_ch3cn) = 5.3e+01
2015 hstar(p_eooh) = 1.7e+06
2016 hstar(p_hcn) = 1.2e+01
2017 hstar(p_honitr) = 1.0e+03
2018 hstar(p_hpald) = 9.5e+02
2019 hstar(p_iepox) = 3.0e+07
2020 hstar(p_isopao2) = 2.0e+03
2021 hstar(p_isopbo2) = 2.0e+03
2022 hstar(p_isopnita) = 9.5e+02
2023 hstar(p_isopnitb) = 9.5e+02
2024 hstar(p_isopnooh) = 3.4e+02
2025 hstar(p_nc4ch2oh) = 4.0e+04
2026 hstar(p_nc4cho) = 1.0e+03
2027 hstar(p_noa) = 1.0e+03
2028 hstar(p_nterpooh) = 1.0e+03
2029 hstar(p_terpnit) = 9.5e+02
2032 if( config_flags%chem_opt == MOZART_MOSAIC_4BIN_KPP .or. &
2033 config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP ) then
2034 hstar(p_sulf) = 2.600E+06
2035 if ( config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP ) then
2036 hstar(p_cvasoaX) = 0.0
2037 hstar(p_cvasoa1) = 1.06E+08
2038 hstar(p_cvasoa2) = 1.84E+07
2039 hstar(p_cvasoa3) = 3.18E+06
2040 hstar(p_cvasoa4) = 5.50E+05
2041 hstar(p_cvbsoaX) = 0.0
2042 hstar(p_cvbsoa1) = 5.25E+09
2043 hstar(p_cvbsoa2) = 7.00E+08
2044 hstar(p_cvbsoa3) = 9.33E+07
2045 hstar(p_cvbsoa4) = 1.24E+07
2049 else if( config_flags%chem_opt == crimech_kpp .or. &
2050 config_flags%chem_opt == cri_mosaic_8bin_aq_kpp .or. &
2051 config_flags%chem_opt == cri_mosaic_4bin_aq_kpp ) then
2052 hstar(p_o3) = 1.15E-2
2054 hstar(p_h2o2) = 8.33E+4
2055 hstar(p_hcho) = 6.3e3
2056 hstar(p_ch3ooh) = 311.
2057 hstar(p_ch3oh) = 220.
2058 hstar(p_ch3cooh) = 6.3e3
2061 hstar(p_c2h5co3h) = 837.
2062 hstar(p_hoch2co3h) = 837.
2063 ! hstar(p_c3h6ooh) = 220.
2065 hstar(p_mpan) = 1.15e-2
2066 hstar(p_ru12pan) = 1.15e-2
2067 hstar(p_rtn26pan) = 1.15e-2
2068 hstar(p_phan) = 1.15e-2
2069 hstar(p_ppn) = 1.15e-2
2070 hstar(p_c2h5oh) = 200.
2071 hstar(p_c2h5ooh) = 336.
2072 ! hstar(p_ic3h7ooh) = 336.
2073 ! hstar(p_acetp) = 336.
2074 ! hstar(p_onit) = 1.e3
2075 !! hstar(p_onitr) = 7.51e3
2076 ! hstar(p_acetol) = 6.3e3
2077 ! hstar(p_glyald) = 4.14e4
2078 ! hstar(p_hydrald) = 70.
2079 hstar(p_hcooh) = 311.
2080 hstar(p_prooh) = 311.
2081 hstar(p_hoc2h4ooh) = 311.
2082 hstar(p_rn10ooh) = 311.
2083 hstar(p_rn13ooh) = 311.
2084 hstar(p_rn16ooh) = 311.
2085 hstar(p_rn19ooh) = 311.
2086 hstar(p_rn8ooh) = 311.
2087 hstar(p_rn11ooh) = 311.
2088 hstar(p_rn14ooh) = 311.
2089 hstar(p_rn17ooh) = 311.
2090 hstar(p_rn9ooh) = 311.
2091 hstar(p_rn12ooh) = 311.
2092 hstar(p_rn15ooh) = 311.
2093 hstar(p_rn18ooh) = 311.
2094 hstar(p_nrn6ooh) = 311.
2095 hstar(p_nrn9ooh) = 311.
2096 hstar(p_nrn12ooh) = 311.
2097 hstar(p_ru14ooh) = 311.
2098 hstar(p_ru12ooh) = 311.
2099 hstar(p_ru10ooh) = 311.
2100 hstar(p_nru14ooh) = 311.
2101 hstar(p_nru12ooh) = 311.
2102 hstar(p_ra13ooh) = 311.
2103 hstar(p_ra16ooh) = 311.
2104 hstar(p_ra19ooh) = 311.
2105 hstar(p_rtn28ooh) = 311.
2106 hstar(p_rtn26ooh) = 311.
2107 hstar(p_nrtn28ooh) = 311.
2108 hstar(p_rtn25ooh) = 311.
2109 hstar(p_rtn24ooh) = 311.
2110 hstar(p_rtn23ooh) = 311.
2111 hstar(p_rtn14ooh) = 311.
2112 hstar(p_rtn10ooh) = 311.
2113 hstar(p_rcooh25) = 311.
2114 hstar(p_rtx28ooh) = 311.
2115 hstar(p_rtx24ooh) = 311.
2116 hstar(p_rtx22ooh) = 311.
2117 hstar(p_nrtx28ooh) = 311.
2118 hstar(p_ra22ooh) = 311.
2119 hstar(p_ra25ooh) = 311.
2120 hstar(p_ch3no3) = 1.e3
2121 hstar(p_c2h5no3) = 1.e3
2122 hstar(p_hoc2h4no3) = 1.e3
2123 hstar(p_rn10no3) = 1.e3
2124 hstar(p_rn13no3) = 1.e3
2125 hstar(p_rn19no3) = 1.e3
2126 hstar(p_rn9no3) = 1.e3
2127 hstar(p_rn12no3) = 1.e3
2128 hstar(p_rn15no3) = 1.e3
2129 hstar(p_rn18no3) = 1.e3
2130 hstar(p_rn16no3) = 1.e3
2131 hstar(p_ru14no3) = 1.e3
2132 hstar(p_ra13no3) = 1.e3
2133 hstar(p_ra16no3) = 1.e3
2134 hstar(p_ra19no3) = 1.e3
2135 hstar(p_rtn28no3) = 1.e3
2136 hstar(p_rtn25no3) = 1.e3
2137 hstar(p_rtx28no3) = 1.e3
2138 hstar(p_rtx24no3) = 1.e3
2139 hstar(p_rtx22no3) = 1.e3
2140 hstar(p_rtn23no3) = 1.e3
2141 hstar(p_ra22no3) = 1.e3
2142 hstar(p_ra25no3) = 1.e3
2143 hstar(p_ic3h7no3) = 1.e3
2144 hstar(p_ch3cho) = 1.14E+1
2145 hstar(p_c2h5cho) = 1.14E+1
2146 hstar(p_hoch2cho) = 1.14E+1
2147 hstar(p_carb14) = 1.14E+1
2148 hstar(p_carb17) = 1.14E+1
2149 hstar(p_carb7) = 1.14E+1
2150 hstar(p_carb10) = 1.14E+1
2151 hstar(p_carb13) = 1.14E+1
2152 hstar(p_carb16) = 1.14E+1
2153 hstar(p_carb3) = 1.14E+1
2154 hstar(p_carb6) = 1.14E+1
2155 hstar(p_carb9) = 1.14E+1
2156 hstar(p_carb12) = 1.14E+1
2157 hstar(p_carb15) = 1.14E+1
2158 hstar(p_ccarb12) = 1.14E+1
2159 hstar(p_ucarb12) = 1.14E+1
2160 hstar(p_ucarb10) = 1.14E+1
2161 hstar(p_nucarb12) = 1.14E+1
2162 hstar(p_udcarb8) = 1.14E+1
2163 hstar(p_udcarb11) = 1.14E+1
2164 hstar(p_udcarb14) = 1.14E+1
2165 hstar(p_tncarb26) = 1.14E+1
2166 hstar(p_tncarb10) = 1.14E+1
2167 hstar(p_tncarb15) = 1.14E+1
2168 hstar(p_txcarb24) = 1.14E+1
2169 hstar(p_txcarb22) = 1.14E+1
2170 hstar(p_carb11a) = 1.14E+1
2171 hstar(p_tncarb12) = 1.14E+1
2172 hstar(p_tncarb11) = 1.14E+1
2173 hstar(p_udcarb17) = 1.14E+1
2176 hstar(p_o3) = 1.13E-2
2177 hstar(p_co) = 8.20E-3
2178 hstar(p_h2o2) = 7.45E+4
2179 hstar(p_hcho) = 2.97E+3
2182 hstar(p_onit) = 1.13
2184 hstar(p_no2) = 6.40E-3
2185 hstar(p_no) = 1.90E-3
2186 hstar(p_aco3) = 1.14E+1
2187 hstar(p_tpan) = 2.97E+0
2188 hstar(p_hono) = 3.47E+5
2189 hstar(p_no3) = 1.50E+1
2190 hstar(p_hno4) = 2.00E+13
2191 hstar(p_ald) = 1.14E+1
2192 hstar(p_op1) = 2.21E+2
2193 hstar(p_op2) = 1.68E+6
2194 hstar(p_ket) = 3.30E+1
2195 hstar(p_gly) = 1.40E+6
2196 hstar(p_mgly) = 3.71E+3
2197 hstar(p_dcb) = 1.40E+6
2198 hstar(p_so2) = 2.53E+5
2199 hstar(p_eth) = 2.00E-3
2200 hstar(p_hc3) = 1.42E-3
2201 hstar(p_hc5) = 1.13E-3
2202 hstar(p_hc8) = 1.42E-3
2203 hstar(p_olt) = 4.76E-3
2204 hstar(p_oli) = 1.35E-3
2205 hstar(p_tol) = 1.51E-1
2206 hstar(p_csl) = 4.00E+5
2207 hstar(p_xyl) = 1.45E-1
2208 hstar(p_iso) = 4.76E-3
2209 hstar(p_hno3) = 2.69E+13
2210 hstar(p_ora1) = 9.85E+6
2211 hstar(p_ora2) = 9.63E+5
2212 hstar(p_nh3) = 1.04E+4
2213 hstar(p_n2o5) = 1.00E+10
2214 if(p_ol2 >= param_first_scalar) hstar(p_ol2) = 4.67E-3
2215 if(p_par >= param_first_scalar) hstar(p_par) = 1.13E-3 !wig, 1-May-2007: for CBMZ
2216 if(p_ch4 >= param_first_scalar) then
2217 hstar(p_ch4) = 1.50E-3
2222 if(p_co2 >= param_first_scalar) then
2223 hstar(p_co2) = 1.86E-1
2228 !--------------------------------------------------
2229 ! FOLLOWING FOR RACM
2230 !--------------------------------------------------
2231 if( p_ete >= param_first_scalar ) then
2232 HSTAR(p_ETE )=4.67E-3
2233 HSTAR(p_API )=4.76E-3
2234 HSTAR(p_LIM )=4.76E-3
2235 HSTAR(p_DIEN)=4.76E-3
2236 HSTAR(p_MACR)=1.14E+1
2237 HSTAR(p_UDD )=1.40E+6
2238 HSTAR(p_HKET)=7.80E+3
2261 !--------------------------------------------------
2262 ! -DH/R (for temperature correction)
2264 !--------------------------------------------------
2265 if( chm_is_moz ) then
2269 dhr(p_ch3ooh) = 5241.
2270 dhr(p_ch3oh) = 4934.
2271 dhr(p_ch3cooh) = 6425.
2274 dhr(p_c3h6ooh) = 5653.
2277 dhr(p_c2h5oh) = 6500.
2278 dhr(p_etooh) = 5995.
2279 dhr(p_prooh) = 5995.
2280 dhr(p_acetp) = 5995.
2282 dhr(p_onitr) = 6485.
2283 dhr(p_acetol) = 6425.
2284 dhr(p_glyald) = 4630.
2285 dhr(p_hydrald) = 6000.
2286 dhr(p_alkooh) = 5241.
2287 dhr(p_mekooh) = 5241.
2288 dhr(p_tolooh) = 5241.
2289 dhr(p_terpooh) = 5241.
2290 if (config_flags%chem_opt == T1_MOZCART_KPP ) then
2292 dhr(p_ch3cn) = 4100.
2298 dhr(p_isopao2) = 6600.
2299 dhr(p_isopbo2) = 6600.
2300 dhr(p_isopnita) = 0.
2301 dhr(p_isopnitb) = 0.
2302 dhr(p_isopnooh) = 6000.
2303 dhr(p_nc4ch2oh) = 8600.
2306 dhr(p_nterpooh) = 0.
2308 elseif( config_flags%chem_opt == MOZART_MOSAIC_4BIN_KPP .or. &
2309 config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP ) then
2310 dhr(p_sulf) = 0.000E+00
2313 if (config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP ) then
2315 dhr(p_cvasoa1) = 6014.
2316 dhr(p_cvasoa2) = 6014.
2317 dhr(p_cvasoa3) = 6014.
2318 dhr(p_cvasoa4) = 6014.
2320 dhr(p_cvbsoa1) = 6014.
2321 dhr(p_cvbsoa2) = 6014.
2322 dhr(p_cvbsoa3) = 6014.
2323 dhr(p_cvbsoa4) = 6014.
2326 else if( config_flags%chem_opt == crimech_kpp .or. &
2327 config_flags%chem_opt == cri_mosaic_8bin_aq_kpp .or. &
2328 config_flags%chem_opt == cri_mosaic_4bin_aq_kpp ) then
2332 dhr(p_ch3ooh) = 5241.
2333 dhr(p_ch3oh) = 4934.
2334 dhr(p_ch3cooh) = 6425.
2337 dhr(p_c2h5co3h) = 5308.
2338 dhr(p_hoch2co3h) = 5308.
2339 ! dhr(p_c3h6ooh) = 5653.
2342 dhr(p_ru12pan) = 2560.
2343 dhr(p_rtn26pan) = 2560.
2346 dhr(p_c2h5oh) = 6500.
2347 ! dhr(p_c3h6ooh) = 220.
2348 dhr(p_c2h5ooh) = 5995.
2349 ! dhr(p_ic3h7ooh) = 5995.
2350 ! dhr(p_acetp) = 5995.
2351 ! dhr(p_onit) = 6000.
2352 ! dhr(p_onitr) = 6485.
2353 ! dhr(p_acetol) = 6425.
2354 ! dhr(p_glyald) = 4630.
2355 ! dhr(p_hydrald) = 6000.
2357 dhr(p_hcooh) = 5241.
2358 dhr(p_prooh) = 5241.
2359 dhr(p_hoc2h4ooh) = 5241.
2360 dhr(p_rn10ooh) = 5241.
2361 dhr(p_rn13ooh) = 5241.
2362 dhr(p_rn16ooh) = 5241.
2363 dhr(p_rn19ooh) = 5241.
2364 dhr(p_rn8ooh) = 5241.
2365 dhr(p_rn11ooh) = 5241.
2366 dhr(p_rn14ooh) = 5241.
2367 dhr(p_rn17ooh) = 5241.
2368 dhr(p_rn9ooh) = 5241.
2369 dhr(p_rn12ooh) = 5241.
2370 dhr(p_rn15ooh) = 5241.
2371 dhr(p_rn18ooh) = 5241.
2372 dhr(p_nrn6ooh) = 5241.
2373 dhr(p_nrn9ooh) = 5241.
2374 dhr(p_nrn12ooh) = 5241.
2375 dhr(p_ru14ooh) = 5241.
2376 dhr(p_ru12ooh) = 5241.
2377 dhr(p_ru10ooh) = 5241.
2378 dhr(p_nru14ooh) = 5241.
2379 dhr(p_nru12ooh) = 5241.
2380 dhr(p_ra13ooh) = 5241.
2381 dhr(p_ra16ooh) = 5241.
2382 dhr(p_ra19ooh) = 5241.
2383 dhr(p_rtn28ooh) = 5241.
2384 dhr(p_rtn26ooh) = 5241.
2385 dhr(p_nrtn28ooh) = 5241.
2386 dhr(p_rtn25ooh) = 5241.
2387 dhr(p_rtn24ooh) = 5241.
2388 dhr(p_rtn23ooh) = 5241.
2389 dhr(p_rtn14ooh) = 5241.
2390 dhr(p_rtn10ooh) = 5241.
2391 dhr(p_rcooh25) = 5241.
2392 dhr(p_rtx28ooh) = 5241.
2393 dhr(p_rtx24ooh) = 5241.
2394 dhr(p_rtx22ooh) = 5241.
2395 dhr(p_nrtx28ooh) = 5241.
2396 dhr(p_ra22ooh) = 5241.
2397 dhr(p_ra25ooh) = 5241.
2398 dhr(p_ch3no3) = 6000.
2399 dhr(p_c2h5no3) = 6000.
2400 dhr(p_hoc2h4no3) = 6000.
2401 dhr(p_rn10no3) = 6000.
2402 dhr(p_rn13no3) = 6000.
2403 dhr(p_rn19no3) = 6000.
2404 dhr(p_rn9no3) = 6000.
2405 dhr(p_rn12no3) = 6000.
2406 dhr(p_rn15no3) = 6000.
2407 dhr(p_rn18no3) = 6000.
2408 dhr(p_rn16no3) = 6000.
2409 dhr(p_ru14no3) = 6000.
2410 dhr(p_ra13no3) = 6000.
2411 dhr(p_ra16no3) = 6000.
2412 dhr(p_ra19no3) = 6000.
2413 dhr(p_rtn28no3) = 6000.
2414 dhr(p_rtn25no3) = 6000.
2415 dhr(p_rtx28no3) = 6000.
2416 dhr(p_rtx24no3) = 6000.
2417 dhr(p_rtx22no3) = 6000.
2418 dhr(p_rtn23no3) = 6000.
2419 dhr(p_ra22no3) = 6000.
2420 dhr(p_ra25no3) = 6000.
2421 dhr(p_ic3h7no3) = 6000.
2422 dhr(p_ch3cho) = 6266.
2423 dhr(p_c2h5cho) = 6266.
2424 dhr(p_hoch2cho) = 6266.
2425 dhr(p_carb14) = 6266.
2426 dhr(p_carb17) = 6266.
2427 dhr(p_carb7) = 6266.
2428 dhr(p_carb10) = 6266.
2429 dhr(p_carb13) = 6266.
2430 dhr(p_carb16) = 6266.
2431 dhr(p_carb3) = 6266.
2432 dhr(p_carb6) = 6266.
2433 dhr(p_carb9) = 6266.
2434 dhr(p_carb12) = 6266.
2435 dhr(p_carb15) = 6266.
2436 dhr(p_ccarb12) = 6266.
2437 dhr(p_ucarb12) = 6266.
2438 dhr(p_ucarb10) = 6266.
2439 dhr(p_nucarb12) = 6266.
2440 dhr(p_udcarb8) = 6266.
2441 dhr(p_udcarb11) = 6266.
2442 dhr(p_udcarb14) = 6266.
2443 dhr(p_tncarb26) = 6266.
2444 dhr(p_tncarb10) = 6266.
2445 dhr(p_tncarb15) = 6266.
2446 dhr(p_txcarb24) = 6266.
2447 dhr(p_txcarb22) = 6266.
2448 dhr(p_carb11a) = 6266.
2449 dhr(p_tncarb12) = 6266.
2450 dhr(p_tncarb11) = 6266.
2451 dhr(p_udcarb17) = 6266.
2491 if(p_ol2 >= param_first_scalar) dhr(p_ol2) = 0.
2492 if(p_par >= param_first_scalar) dhr(p_par) = 0. !wig, 1-May-2007: for CBMZ
2493 !--------------------------------------------------
2494 ! REACTIVITY FACTORS
2496 !--------------------------------------------------
2497 if( chm_is_moz ) then
2498 f0(p_hcho) = small_value
2500 f0(p_ch3oh) = small_value
2501 f0(p_ch3cooh) = small_value
2502 f0(p_acet) = small_value
2505 f0(p_c2h5oh) = small_value
2511 f0(p_acetol) = small_value
2512 f0(p_glyald) = small_value
2513 f0(p_hydrald) = small_value
2518 if (config_flags%chem_opt == T1_MOZCART_KPP ) then
2519 f0(p_eooh) = f0(p_hcho)
2520 f0(p_honitr) = f0(p_h2o2)
2521 elseif( config_flags%chem_opt == MOZART_MOSAIC_4BIN_KPP .or. &
2522 config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP ) then
2526 if (config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP ) then
2539 else if( config_flags%chem_opt == crimech_kpp .or. &
2540 config_flags%chem_opt == cri_mosaic_8bin_aq_kpp .or. &
2541 config_flags%chem_opt == cri_mosaic_4bin_aq_kpp ) then
2544 f0(p_hcho) = small_value
2546 f0(p_ch3oh) = small_value
2547 f0(p_ch3cooh) = small_value
2548 f0(p_ket) = small_value
2550 ! f0(p_c3h6ooh) = .1
2557 f0(p_c2h5oh) = small_value
2558 ! f0(p_c3h6ooh) = .1
2560 ! f0(p_ic3h7ooh) = .1
2566 ! f0(p_hydrald) = .1
2570 f0(p_hoc2h4ooh) = .1
2596 f0(p_nrtn28ooh) = .1
2606 f0(p_nrtx28ooh) = .1
2611 f0(p_hoc2h4no3) = .1
2703 if(p_ol2 >= param_first_scalar) f0(p_ol2) = 0.
2704 if(p_par >= param_first_scalar) f0(p_par) = 0. !wig, 1-May-2007: for CBMZ
2705 !--------------------------------------------------
2706 ! DIFFUSION COEFFICIENTS
2707 ! [DV]=cm2/s (assumed: 1/SQRT(molar mass) when not known)
2708 !--------------------------------------------------
2709 if( chm_is_moz ) then
2711 dvj(p_h2o2) = 0.1715
2712 dvj(p_hcho) = 0.1825
2713 dvj(p_ch3ooh) = 0.144
2714 dvj(p_ch3oh) = 0.1767
2715 dvj(p_ch3cooh) = 0.129
2716 dvj(p_acet) = 0.1312
2718 dvj(p_c3h6ooh) = 0.1042
2719 dvj(p_mpan) = 0.0825
2720 dvj(p_c2h5oh) = 0.1473
2721 dvj(p_etooh) = 0.127
2722 dvj(p_prooh) = 0.1146
2723 dvj(p_acetp) = 0.1054
2724 dvj(p_onit) = 0.0916
2725 dvj(p_onitr) = 0.0824
2726 dvj(p_acetol) = 0.116
2727 dvj(p_glyald) = 0.129
2728 dvj(p_hydrald) = 0.0999
2729 dvj(p_alkooh) = 0.098
2730 dvj(p_mekooh) = 0.098
2731 dvj(p_tolooh) = 0.084
2732 dvj(p_terpooh) = 0.073
2734 if( config_flags%chem_opt == MOZART_MOSAIC_4BIN_KPP .or. &
2735 config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP ) then
2736 dvj(p_sulf) = 1.200E-01
2739 if (config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP ) then
2740 dvj(p_cvasoaX) = 0.120 ! ??
2741 dvj(p_cvasoa1) = 0.120 ! ??
2742 dvj(p_cvasoa2) = 0.120 ! ??
2743 dvj(p_cvasoa3) = 0.120 ! ??
2744 dvj(p_cvasoa4) = 0.120 ! ??
2745 dvj(p_cvbsoaX) = 0.120 ! ??
2746 dvj(p_cvbsoa1) = 0.120 ! ??
2747 dvj(p_cvbsoa2) = 0.120 ! ??
2748 dvj(p_cvbsoa3) = 0.120 ! ??
2749 dvj(p_cvbsoa4) = 0.120 ! ??
2752 else if( config_flags%chem_opt == crimech_kpp .or. &
2753 config_flags%chem_opt == cri_mosaic_8bin_aq_kpp .or. &
2754 config_flags%chem_opt == cri_mosaic_4bin_aq_kpp ) then
2756 dvj(p_h2o2) = 0.1715
2757 dvj(p_hcho) = 0.1825
2758 dvj(p_ch3ooh) = 0.144
2759 dvj(p_ch3oh) = 0.1767
2760 dvj(p_ch3cooh) = 0.129
2763 dvj(p_c2h5co3h) = 0.1147
2764 dvj(p_hoch2co3h) = 0.1147
2765 ! dvj(p_c3h6ooh) = 0.1042
2766 dvj(p_mpan) = 0.0825
2767 dvj(p_ru12pan) = 0.0825
2768 dvj(p_rtn26pan) = 0.0825
2769 dvj(p_phan) = 0.0825
2771 dvj(p_c2h5oh) = 0.1473
2773 ! dvj(p_c3h6ooh) = 0.0916
2774 dvj(p_c2h5ooh) = 0.091627
2775 ! dvj(p_ic3h7ooh) = 0.0916146
2776 ! dvj(p_acetp) = 0.1054
2777 ! dvj(p_onit) = 0.0916
2778 ! dvj(p_onitr) = 0.0824
2779 ! dvj(p_acetol) = 0.116
2780 ! dvj(p_glyald) = 0.129
2781 ! dvj(p_hydrald) = 0.0999
2783 dvj(p_hcooh) = 0.098
2784 dvj(p_prooh) = 0.098
2785 dvj(p_hoc2h4ooh) = 0.098
2786 dvj(p_rn10ooh) = 0.098
2787 dvj(p_rn13ooh) = 0.098
2788 dvj(p_rn16ooh) = 0.098
2789 dvj(p_rn19ooh) = 0.098
2790 dvj(p_rn8ooh) = 0.098
2791 dvj(p_rn11ooh) = 0.098
2792 dvj(p_rn14ooh) = 0.098
2793 dvj(p_rn17ooh) = 0.098
2794 dvj(p_rn9ooh) = 0.098
2795 dvj(p_rn12ooh) = 0.098
2796 dvj(p_rn15ooh) = 0.098
2797 dvj(p_rn18ooh) = 0.098
2798 dvj(p_nrn6ooh) = 0.098
2799 dvj(p_nrn9ooh) = 0.098
2800 dvj(p_nrn12ooh) = 0.098
2801 dvj(p_ru14ooh) = 0.098
2802 dvj(p_ru12ooh) = 0.098
2803 dvj(p_ru10ooh) = 0.098
2804 dvj(p_nru14ooh) = 0.098
2805 dvj(p_nru12ooh) = 0.098
2806 dvj(p_ra13ooh) = 0.084
2807 dvj(p_ra16ooh) = 0.084
2808 dvj(p_ra19ooh) = 0.084
2809 dvj(p_rtn28ooh) = 0.073
2810 dvj(p_rtn26ooh) = 0.073
2811 dvj(p_nrtn28ooh) = 0.073
2812 dvj(p_rtn25ooh) = 0.073
2813 dvj(p_rtn24ooh) = 0.073
2814 dvj(p_rtn23ooh) = 0.073
2815 dvj(p_rtn14ooh) = 0.073
2816 dvj(p_rtn10ooh) = 0.073
2817 dvj(p_rcooh25) = 0.073
2818 dvj(p_rtx28ooh) = 0.073
2819 dvj(p_rtx24ooh) = 0.073
2820 dvj(p_rtx22ooh) = 0.073
2821 dvj(p_nrtx28ooh) = 0.073
2822 dvj(p_ra22ooh) = 0.084
2823 dvj(p_ra25ooh) = 0.084
2824 dvj(p_ch3no3) = 0.0916
2825 dvj(p_c2h5no3) = 0.0916
2826 dvj(p_hoc2h4no3) = 0.0916
2827 dvj(p_rn10no3) = 0.0916
2828 dvj(p_rn13no3) = 0.0916
2829 dvj(p_rn19no3) = 0.0916
2830 dvj(p_rn9no3) = 0.0916
2831 dvj(p_rn12no3) = 0.0916
2832 dvj(p_rn15no3) = 0.0916
2833 dvj(p_rn18no3) = 0.0916
2834 dvj(p_rn16no3) = 0.0916
2835 dvj(p_ru14no3) = 0.0916
2836 dvj(p_ra13no3) = 0.0916
2837 dvj(p_ra16no3) = 0.0916
2838 dvj(p_ra19no3) = 0.0916
2839 dvj(p_rtn28no3) = 0.0916
2840 dvj(p_rtn25no3) = 0.0916
2841 dvj(p_rtx28no3) = 0.0916
2842 dvj(p_rtx24no3) = 0.0916
2843 dvj(p_rtx22no3) = 0.0916
2844 dvj(p_rtn23no3) = 0.0916
2845 dvj(p_ra22no3) = 0.0916
2846 dvj(p_ra25no3) = 0.0916
2847 dvj(p_ic3h7no3) = 0.0916
2848 dvj(p_ch3cho) = 0.151
2849 dvj(p_c2h5cho) = 0.151
2850 dvj(p_hoch2cho) = 0.151
2851 dvj(p_carb14) = 0.151
2852 dvj(p_carb17) = 0.151
2853 dvj(p_carb7) = 0.151
2854 dvj(p_carb10) = 0.151
2855 dvj(p_carb13) = 0.151
2856 dvj(p_carb16) = 0.151
2857 dvj(p_carb3) = 0.151
2858 dvj(p_carb6) = 0.151
2859 dvj(p_carb9) = 0.151
2860 dvj(p_carb12) = 0.151
2861 dvj(p_carb15) = 0.151
2862 dvj(p_ccarb12) = 0.151
2863 dvj(p_ucarb12) = 0.151
2864 dvj(p_ucarb10) = 0.151
2865 dvj(p_nucarb12) = 0.151
2866 dvj(p_udcarb8) = 0.151
2867 dvj(p_udcarb11) = 0.151
2868 dvj(p_udcarb14) = 0.151
2869 dvj(p_tncarb26) = 0.151
2870 dvj(p_tncarb10) = 0.151
2871 dvj(p_tncarb15) = 0.151
2872 dvj(p_txcarb24) = 0.151
2873 dvj(p_txcarb22) = 0.151
2874 dvj(p_carb11a) = 0.151
2875 dvj(p_tncarb12) = 0.151
2876 dvj(p_tncarb11) = 0.151
2877 dvj(p_udcarb17) = 0.151
2920 if(p_ol2 >= param_first_scalar) dvj(p_ol2) = 0.189
2921 if(p_par >= param_first_scalar) dvj(p_par) = 0.118 !wig, 1-May-2007: for CBMZ
2922 ! Dep constants for SAPRCNOV, produced automatically using create_WRF_dep.m script,05-Oct-2009 pablosaide@uiowa.edu
2923 if(p_methacro.ge.param_first_scalar)then
2925 if (p_iepox.gt.1) then
2926 hstar(p_iepox)=1.7e8 ! mole/L/atm
2928 dhr(p_iepox)=6013.95 !50000/8.314 i.e. 50kJ/mol/8.314
2929 dvj(p_iepox) = 1.9 * 0.118**(-2.0/3.0) / 100.0 !cm2/s
2932 if (p_isopooh.gt.1) then
2933 hstar(p_isopooh)=1.7e6 ! mole/L/atm, based on GEOS-CHem corresponds to RIP
2935 dhr(p_isopooh)=6013.95 !50000/8.314 i.e. 50kJ/mol/8.314
2936 dvj(p_isopooh) = 1.0E-1 !cm2/s
2941 hstar(p_h2so4) = 2.600E+06
2942 hstar(p_ccho) = 1.700E+01
2943 hstar(p_rcho) = 4.200E+03
2944 hstar(p_etoh) = 2.200E+02
2945 hstar(p_cco_oh) = 4.100E+03
2946 hstar(p_rco_oh) = 4.100E+03
2947 hstar(p_bacl) = 2.700E+01
2948 hstar(p_bald) = 4.200E+01
2949 hstar(p_isoprod) = 1.300E-02
2950 hstar(p_methacro) = 6.500E+00
2951 hstar(p_prod2) = 2.000E+01
2952 hstar(p_dcb1) = 4.200E+03
2953 hstar(p_dcb2) = 4.200E+03
2954 hstar(p_dcb3) = 4.200E+03
2955 hstar(p_ethene) = 4.700E-03
2956 hstar(p_isoprene) = 1.300E-02
2957 hstar(p_c2h2) = 1.000E-03
2958 hstar(p_alk3) = 1.200E-03
2959 hstar(p_alk4) = 1.200E-03
2960 hstar(p_alk5) = 1.200E-03
2961 hstar(p_aro1) = 2.100E-01
2962 hstar(p_aro2) = 2.100E-01
2963 hstar(p_ole1) = 1.300E-02
2964 hstar(p_ole2) = 1.300E-02
2965 hstar(p_terp) = 1.200E-03
2966 hstar(p_sesq) = 1.200E-03
2967 hstar(p_rno3) = 2.000E+00
2968 hstar(p_nphe) = 2.100E-01
2969 hstar(p_phen) = 1.900E+03
2970 hstar(p_pan2) = 2.900E+00
2971 hstar(p_pbzn) = 2.900E+00
2972 hstar(p_ma_pan) = 2.900E+00
2973 hstar(p_cco_ooh) = 3.100E+02
2974 hstar(p_rco_o2) = 4.100E+03
2975 hstar(p_rco_ooh) = 3.100E+02
2976 hstar(p_xn) = 1.000E+00
2977 hstar(p_xc) = 1.000E+00
2978 hstar(p_c_o2) = 4.000E+03
2979 hstar(p_cooh) = 3.100E+02
2980 hstar(p_rooh) = 3.400E+02
2981 hstar(p_ro2_r) = 4.000E+03
2982 hstar(p_r2o2) = 4.000E+03
2983 hstar(p_ro2_n) = 4.000E+03
2984 hstar(p_cco_o2) = 1.700E+01
2985 hstar(p_bzco_o2) = 2.100E-01
2986 hstar(p_ma_rco3) = 6.500E+00
2988 dhr(p_h2so4) = 0.000E+00
2989 dhr(p_ccho) = 5.000E+03
2990 dhr(p_rcho) = 0.000E+00
2991 dhr(p_etoh) = 5.200E+03
2992 dhr(p_cco_oh) = 6.300E+03
2993 dhr(p_rco_oh) = 6.300E+03
2994 dhr(p_bacl) = 0.000E+00
2995 dhr(p_bald) = 4.600E+03
2996 dhr(p_isoprod) = 0.000E+00
2997 dhr(p_methacro) = 0.000E+00
2998 dhr(p_prod2) = 5.000E+03
2999 dhr(p_dcb1) = 0.000E+00
3000 dhr(p_dcb2) = 0.000E+00
3001 dhr(p_dcb3) = 0.000E+00
3002 dhr(p_ethene) = 1.800E+03
3003 dhr(p_isoprene) = 0.000E+00
3004 dhr(p_c2h2) = 0.000E+00
3005 dhr(p_alk3) = 3.100E+03
3006 dhr(p_alk4) = 3.100E+03
3007 dhr(p_alk5) = 3.100E+03
3008 dhr(p_aro1) = 3.600E+03
3009 dhr(p_aro2) = 3.600E+03
3010 dhr(p_ole1) = 6.400E+03
3011 dhr(p_ole2) = 6.400E+03
3012 dhr(p_terp) = 3.100E+03
3013 dhr(p_sesq) = 3.100E+03
3014 dhr(p_rno3) = 2.000E+03
3015 dhr(p_nphe) = 3.600E+03
3016 dhr(p_phen) = 7.300E+03
3017 dhr(p_pan2) = 0.000E+00
3018 dhr(p_pbzn) = 5.900E+03
3019 dhr(p_ma_pan) = 0.000E+00
3020 dhr(p_cco_ooh) = 5.200E+03
3021 dhr(p_rco_o2) = 6.300E+03
3022 dhr(p_rco_ooh) = 5.200E+03
3023 dhr(p_xn) = 1.000E+00
3024 dhr(p_xc) = 1.000E+00
3025 dhr(p_c_o2) = 5.900E+03
3026 dhr(p_cooh) = 5.200E+03
3027 dhr(p_rooh) = 6.000E+03
3028 dhr(p_ro2_r) = 5.900E+03
3029 dhr(p_r2o2) = 5.900E+03
3030 dhr(p_ro2_n) = 5.900E+03
3031 dhr(p_cco_o2) = 5.000E+03
3032 dhr(p_bzco_o2) = 3.600E+03
3033 dhr(p_ma_rco3) = 0.000E+00
3035 f0(p_h2so4) = 0.000E+00
3036 f0(p_ccho) = 0.000E+00
3037 f0(p_rcho) = 0.000E+00
3038 f0(p_etoh) = 0.000E+00
3039 f0(p_cco_oh) = 0.000E+00
3040 f0(p_rco_oh) = 0.000E+00
3041 f0(p_bacl) = 0.000E+00
3042 f0(p_bald) = 0.000E+00
3043 f0(p_isoprod) = 0.000E+00
3044 f0(p_methacro) = 0.000E+00
3045 f0(p_prod2) = 0.000E+00
3046 f0(p_dcb1) = 0.000E+00
3047 f0(p_dcb2) = 0.000E+00
3048 f0(p_dcb3) = 0.000E+00
3049 f0(p_ethene) = 0.000E+00
3050 f0(p_isoprene) = 0.000E+00
3051 f0(p_c2h2) = 0.000E+00
3052 f0(p_alk3) = 0.000E+00
3053 f0(p_alk4) = 0.000E+00
3054 f0(p_alk5) = 0.000E+00
3055 f0(p_aro1) = 0.000E+00
3056 f0(p_aro2) = 0.000E+00
3057 f0(p_ole1) = 0.000E+00
3058 f0(p_ole2) = 0.000E+00
3059 f0(p_terp) = 0.000E+00
3060 f0(p_sesq) = 0.000E+00
3061 f0(p_rno3) = 0.000E+00
3062 f0(p_nphe) = 0.000E+00
3063 f0(p_phen) = 0.000E+00
3064 f0(p_pan2) = 0.000E+00
3065 f0(p_pbzn) = 0.000E+00
3066 f0(p_ma_pan) = 0.000E+00
3067 f0(p_cco_ooh) = 0.000E+00
3068 f0(p_rco_o2) = 0.000E+00
3069 f0(p_rco_ooh) = 0.000E+00
3070 f0(p_xn) = 0.000E+00
3071 f0(p_xc) = 0.000E+00
3072 f0(p_c_o2) = 0.000E+00
3073 f0(p_cooh) = 0.000E+00
3074 f0(p_rooh) = 0.000E+00
3075 f0(p_ro2_r) = 0.000E+00
3076 f0(p_r2o2) = 0.000E+00
3077 f0(p_ro2_n) = 0.000E+00
3078 f0(p_cco_o2) = 0.000E+00
3079 f0(p_bzco_o2) = 0.000E+00
3080 f0(p_ma_rco3) = 0.000E+00
3082 dvj(p_h2so4) = 1.200E-01
3083 dvj(p_ccho) = 1.420E-01
3084 dvj(p_rcho) = 1.420E-01
3085 dvj(p_etoh) = 1.280E-01
3086 dvj(p_cco_oh) = 1.000E-01
3087 dvj(p_rco_oh) = 1.000E-01
3088 dvj(p_bacl) = 1.000E-01
3089 dvj(p_bald) = 1.420E-01
3090 dvj(p_isoprod) = 1.000E-01
3091 dvj(p_methacro) = 1.420E-01
3092 dvj(p_prod2) = 9.800E-02
3093 dvj(p_dcb1) = 1.420E-01
3094 dvj(p_dcb2) = 1.420E-01
3095 dvj(p_dcb3) = 1.420E-01
3096 dvj(p_ethene) = 1.780E-01
3097 dvj(p_isoprene) = 1.000E-01
3098 dvj(p_c2h2) = 1.000E-01
3099 dvj(p_alk3) = 2.000E-01
3100 dvj(p_alk4) = 2.000E-01
3101 dvj(p_alk5) = 2.000E-01
3102 dvj(p_aro1) = 9.800E-02
3103 dvj(p_aro2) = 9.800E-02
3104 dvj(p_ole1) = 1.780E-01
3105 dvj(p_ole2) = 1.780E-01
3106 dvj(p_terp) = 1.000E-01
3107 dvj(p_sesq) = 1.000E-01
3108 dvj(p_rno3) = 1.390E-01
3109 dvj(p_nphe) = 1.000E-01
3110 dvj(p_phen) = 1.000E-01
3111 dvj(p_pan2) = 3.600E-02
3112 dvj(p_pbzn) = 3.600E-02
3113 dvj(p_ma_pan) = 3.600E-02
3114 dvj(p_cco_ooh) = 1.500E-01
3115 dvj(p_rco_o2) = 1.000E-01
3116 dvj(p_rco_ooh) = 1.500E-01
3117 dvj(p_xn) = 1.000E-01
3118 dvj(p_xc) = 1.000E-01
3119 dvj(p_c_o2) = 1.760E-01
3120 dvj(p_cooh) = 1.500E-01
3121 dvj(p_rooh) = 1.500E-01
3122 dvj(p_ro2_r) = 1.000E-01
3123 dvj(p_r2o2) = 1.760E-01
3124 dvj(p_ro2_n) = 1.000E-01
3125 dvj(p_cco_o2) = 1.000E-01
3126 dvj(p_bzco_o2) = 1.000E-01
3127 dvj(p_ma_rco3) = 1.420E-01
3130 !hstar for SOA species assumed 2700 following CMU approach
3131 if(p_pcg1_b_c.gt.1) hstar(p_pcg1_b_c) =2.7E+3
3132 if(p_pcg2_b_c.gt.1) hstar(p_pcg2_b_c) =2.7E+3
3133 if(p_pcg3_b_c.gt.1) hstar(p_pcg3_b_c)=2.7E+3
3134 if(p_pcg4_b_c.gt.1) hstar(p_pcg4_b_c)=2.7E+3
3135 if(p_pcg5_b_c.gt.1) hstar(p_pcg5_b_c)=2.7E+3
3136 if(p_pcg6_b_c.gt.1) hstar(p_pcg6_b_c)=2.7E+3
3137 if(p_pcg7_b_c.gt.1) hstar(p_pcg7_b_c)=2.7E+3
3138 if(p_pcg8_b_c.gt.1) hstar(p_pcg8_b_c)=2.7E+3
3139 if(p_pcg9_b_c.gt.1) hstar(p_pcg9_b_c)=2.7E+3
3140 if(p_opcg1_b_c.gt.1) hstar(p_opcg1_b_c) =2.7E+3
3141 if(p_opcg2_b_c.gt.1) hstar(p_opcg2_b_c) =2.7E+3
3142 if(p_opcg3_b_c.gt.1) hstar(p_opcg3_b_c)=2.7E+3
3143 if(p_opcg4_b_c.gt.1) hstar(p_opcg4_b_c)=2.7E+3
3144 if(p_opcg5_b_c.gt.1) hstar(p_opcg5_b_c)=2.7E+3
3145 if(p_opcg6_b_c.gt.1) hstar(p_opcg6_b_c)=2.7E+3
3146 if(p_opcg7_b_c.gt.1) hstar(p_opcg7_b_c)=2.7E+3
3147 if(p_opcg8_b_c.gt.1) hstar(p_opcg8_b_c)=2.7E+3
3148 if(p_pcg1_b_o.gt.1) hstar(p_pcg1_b_o) =2.7E+3
3149 if(p_pcg2_b_o.gt.1) hstar(p_pcg2_b_o) =2.7E+3
3150 if(p_pcg3_b_o.gt.1) hstar(p_pcg3_b_o)=2.7E+3
3151 if(p_pcg4_b_o.gt.1) hstar(p_pcg4_b_o)=2.7E+3
3152 if(p_pcg5_b_o.gt.1) hstar(p_pcg5_b_o)=2.7E+3
3153 if(p_pcg6_b_o.gt.1) hstar(p_pcg6_b_o)=2.7E+3
3154 if(p_pcg7_b_o.gt.1) hstar(p_pcg7_b_o)=2.7E+3
3155 if(p_pcg8_b_o.gt.1) hstar(p_pcg8_b_o)=2.7E+3
3156 if(p_pcg9_b_o.gt.1) hstar(p_pcg9_b_o)=2.7E+3
3157 if(p_opcg1_b_o.gt.1) hstar(p_opcg1_b_o) =2.7E+3
3158 if(p_opcg2_b_o.gt.1) hstar(p_opcg2_b_o) =2.7E+3
3159 if(p_opcg3_b_o.gt.1) hstar(p_opcg3_b_o)=2.7E+3
3160 if(p_opcg4_b_o.gt.1) hstar(p_opcg4_b_o)=2.7E+3
3161 if(p_opcg5_b_o.gt.1) hstar(p_opcg5_b_o)=2.7E+3
3162 if(p_opcg6_b_o.gt.1) hstar(p_opcg6_b_o)=2.7E+3
3163 if(p_opcg7_b_o.gt.1) hstar(p_opcg7_b_o)=2.7E+3
3164 if(p_opcg8_b_o.gt.1) hstar(p_opcg8_b_o)=2.7E+3
3165 if(p_pcg1_f_c.gt.1) hstar(p_pcg1_f_c) =2.7E+3
3166 if(p_pcg2_f_c.gt.1) hstar(p_pcg2_f_c) =2.7E+3
3167 if(p_pcg3_f_c.gt.1) hstar(p_pcg3_f_c)=2.7E+3
3168 if(p_pcg4_f_c.gt.1) hstar(p_pcg4_f_c)=2.7E+3
3169 if(p_pcg5_f_c.gt.1) hstar(p_pcg5_f_c)=2.7E+3
3170 if(p_pcg6_f_c.gt.1) hstar(p_pcg6_f_c)=2.7E+3
3171 if(p_pcg7_f_c.gt.1) hstar(p_pcg7_f_c)=2.7E+3
3172 if(p_pcg8_f_c.gt.1) hstar(p_pcg8_f_c)=2.7E+3
3173 if(p_pcg9_f_c.gt.1) hstar(p_pcg9_f_c)=2.7E+3
3174 if(p_opcg1_f_c.gt.1) hstar(p_opcg1_f_c) =2.7E+3
3175 if(p_opcg2_f_c.gt.1) hstar(p_opcg2_f_c) =2.7E+3
3176 if(p_opcg3_f_c.gt.1) hstar(p_opcg3_f_c)=2.7E+3
3177 if(p_opcg4_f_c.gt.1) hstar(p_opcg4_f_c)=2.7E+3
3178 if(p_opcg5_f_c.gt.1) hstar(p_opcg5_f_c)=2.7E+3
3179 if(p_opcg6_f_c.gt.1) hstar(p_opcg6_f_c)=2.7E+3
3180 if(p_opcg7_f_c.gt.1) hstar(p_opcg7_f_c)=2.7E+3
3181 if(p_opcg8_f_c.gt.1) hstar(p_opcg8_f_c)=2.7E+3
3182 if(p_pcg1_f_o.gt.1) hstar(p_pcg1_f_o) =2.7E+3
3183 if(p_pcg2_f_o.gt.1) hstar(p_pcg2_f_o) =2.7E+3
3184 if(p_pcg3_f_o.gt.1) hstar(p_pcg3_f_o)=2.7E+3
3185 if(p_pcg4_f_o.gt.1) hstar(p_pcg4_f_o)=2.7E+3
3186 if(p_pcg5_f_o.gt.1) hstar(p_pcg5_f_o)=2.7E+3
3187 if(p_pcg6_f_o.gt.1) hstar(p_pcg6_f_o)=2.7E+3
3188 if(p_pcg7_f_o.gt.1) hstar(p_pcg7_f_o)=2.7E+3
3189 if(p_pcg8_f_o.gt.1) hstar(p_pcg8_f_o)=2.7E+3
3190 if(p_pcg9_f_o.gt.1) hstar(p_pcg9_f_o)=2.7E+3
3191 if(p_opcg1_f_o.gt.1) hstar(p_opcg1_f_o) =2.7E+3
3192 if(p_opcg2_f_o.gt.1) hstar(p_opcg2_f_o) =2.7E+3
3193 if(p_opcg3_f_o.gt.1) hstar(p_opcg3_f_o)=2.7E+3
3194 if(p_opcg4_f_o.gt.1) hstar(p_opcg4_f_o)=2.7E+3
3195 if(p_opcg5_f_o.gt.1) hstar(p_opcg5_f_o)=2.7E+3
3196 if(p_opcg6_f_o.gt.1) hstar(p_opcg6_f_o)=2.7E+3
3197 if(p_opcg7_f_o.gt.1) hstar(p_opcg7_f_o)=2.7E+3
3198 if(p_opcg8_f_o.gt.1) hstar(p_opcg8_f_o)=2.7E+3
3199 if(p_ant1_c.gt.1) hstar(p_ant1_c)=2.7E+3
3200 if(p_ant2_c.gt.1) hstar(p_ant2_c)=2.7E+3
3201 if(p_ant3_c.gt.1) hstar(p_ant3_c)=2.7E+3
3202 if(p_ant4_c.gt.1) hstar(p_ant4_c)=2.7E+3
3203 if(p_ant1_o.gt.1) hstar(p_ant1_o)=2.7E+3
3204 if(p_ant2_o.gt.1) hstar(p_ant2_o)=2.7E+3
3205 if(p_ant3_o.gt.1) hstar(p_ant3_o)=2.7E+3
3206 if(p_ant4_o.gt.1) hstar(p_ant4_o)=2.7E+3
3207 if(p_biog1_c.gt.1) hstar(p_biog1_c)=2.7E+3
3208 if(p_biog2_c.gt.1) hstar(p_biog2_c)=2.7E+3
3209 if(p_biog3_c.gt.1) hstar(p_biog3_c)=2.7E+3
3210 if(p_biog4_c.gt.1) hstar(p_biog4_c)=2.7E+3
3211 if(p_biog1_o.gt.1) hstar(p_biog1_o)=2.7E+3
3212 if(p_biog2_o.gt.1) hstar(p_biog2_o)=2.7E+3
3213 if(p_biog3_o.gt.1) hstar(p_biog3_o)=2.7E+3
3214 if(p_biog4_o.gt.1) hstar(p_biog4_o)=2.7E+3
3216 if(p_pcg1_b_c.gt.1) dhr(p_pcg1_b_c) =6.4E+3
3217 if(p_pcg2_b_c.gt.1) dhr(p_pcg2_b_c) =6.4E+3
3218 if(p_pcg3_b_c.gt.1) dhr(p_pcg3_b_c)=6.4E+3
3219 if(p_pcg4_b_c.gt.1) dhr(p_pcg4_b_c)=6.4E+3
3220 if(p_pcg5_b_c.gt.1) dhr(p_pcg5_b_c)=6.4E+3
3221 if(p_pcg6_b_c.gt.1) dhr(p_pcg6_b_c)=6.4E+3
3222 if(p_pcg7_b_c.gt.1) dhr(p_pcg7_b_c)=6.4E+3
3223 if(p_pcg8_b_c.gt.1) dhr(p_pcg8_b_c)=6.4E+3
3224 if(p_pcg9_b_c.gt.1) dhr(p_pcg9_b_c)=6.4E+3
3225 if(p_opcg1_b_c.gt.1) dhr(p_opcg1_b_c) =6.4E+3
3226 if(p_opcg2_b_c.gt.1) dhr(p_opcg2_b_c) =6.4E+3
3227 if(p_opcg3_b_c.gt.1) dhr(p_opcg3_b_c)=6.4E+3
3228 if(p_opcg4_b_c.gt.1) dhr(p_opcg4_b_c)=6.4E+3
3229 if(p_opcg5_b_c.gt.1) dhr(p_opcg5_b_c)=6.4E+3
3230 if(p_opcg6_b_c.gt.1) dhr(p_opcg6_b_c)=6.4E+3
3231 if(p_opcg7_b_c.gt.1) dhr(p_opcg7_b_c)=6.4E+3
3232 if(p_opcg8_b_c.gt.1) dhr(p_opcg8_b_c)=6.4E+3
3233 if(p_pcg1_b_o.gt.1) dhr(p_pcg1_b_o) =6.4E+3
3234 if(p_pcg2_b_o.gt.1) dhr(p_pcg2_b_o) =6.4E+3
3235 if(p_pcg3_b_o.gt.1) dhr(p_pcg3_b_o)=6.4E+3
3236 if(p_pcg4_b_o.gt.1) dhr(p_pcg4_b_o)=6.4E+3
3237 if(p_pcg5_b_o.gt.1) dhr(p_pcg5_b_o)=6.4E+3
3238 if(p_pcg6_b_o.gt.1) dhr(p_pcg6_b_o)=6.4E+3
3239 if(p_pcg7_b_o.gt.1) dhr(p_pcg7_b_o)=6.4E+3
3240 if(p_pcg8_b_o.gt.1) dhr(p_pcg8_b_o)=6.4E+3
3241 if(p_pcg9_b_o.gt.1) dhr(p_pcg9_b_o)=6.4E+3
3242 if(p_opcg1_b_o.gt.1) dhr(p_opcg1_b_o) =6.4E+3
3243 if(p_opcg2_b_o.gt.1) dhr(p_opcg2_b_o) =6.4E+3
3244 if(p_opcg3_b_o.gt.1) dhr(p_opcg3_b_o)=6.4E+3
3245 if(p_opcg4_b_o.gt.1) dhr(p_opcg4_b_o)=6.4E+3
3246 if(p_opcg5_b_o.gt.1) dhr(p_opcg5_b_o)=6.4E+3
3247 if(p_opcg6_b_o.gt.1) dhr(p_opcg6_b_o)=6.4E+3
3248 if(p_opcg7_b_o.gt.1) dhr(p_opcg7_b_o)=6.4E+3
3249 if(p_opcg8_b_o.gt.1) dhr(p_opcg8_b_o)=6.4E+3
3250 if(p_pcg1_f_c.gt.1) dhr(p_pcg1_f_c) =6.4E+3
3251 if(p_pcg2_f_c.gt.1) dhr(p_pcg2_f_c) =6.4E+3
3252 if(p_pcg3_f_c.gt.1) dhr(p_pcg3_f_c)=6.4E+3
3253 if(p_pcg4_f_c.gt.1) dhr(p_pcg4_f_c)=6.4E+3
3254 if(p_pcg5_f_c.gt.1) dhr(p_pcg5_f_c)=6.4E+3
3255 if(p_pcg6_f_c.gt.1) dhr(p_pcg6_f_c)=6.4E+3
3256 if(p_pcg7_f_c.gt.1) dhr(p_pcg7_f_c)=6.4E+3
3257 if(p_pcg8_f_c.gt.1) dhr(p_pcg8_f_c)=6.4E+3
3258 if(p_pcg9_f_c.gt.1) dhr(p_pcg9_f_c)=6.4E+3
3259 if(p_opcg1_f_c.gt.1) dhr(p_opcg1_f_c) =6.4E+3
3260 if(p_opcg2_f_c.gt.1) dhr(p_opcg2_f_c) =6.4E+3
3261 if(p_opcg3_f_c.gt.1) dhr(p_opcg3_f_c)=6.4E+3
3262 if(p_opcg4_f_c.gt.1) dhr(p_opcg4_f_c)=6.4E+3
3263 if(p_opcg5_f_c.gt.1) dhr(p_opcg5_f_c)=6.4E+3
3264 if(p_opcg6_f_c.gt.1) dhr(p_opcg6_f_c)=6.4E+3
3265 if(p_opcg7_f_c.gt.1) dhr(p_opcg7_f_c)=6.4E+3
3266 if(p_opcg8_f_c.gt.1) dhr(p_opcg8_f_c)=6.4E+3
3267 if(p_pcg1_f_o.gt.1) dhr(p_pcg1_f_o) =6.4E+3
3268 if(p_pcg2_f_o.gt.1) dhr(p_pcg2_f_o) =6.4E+3
3269 if(p_pcg3_f_o.gt.1) dhr(p_pcg3_f_o)=6.4E+3
3270 if(p_pcg4_f_o.gt.1) dhr(p_pcg4_f_o)=6.4E+3
3271 if(p_pcg5_f_o.gt.1) dhr(p_pcg5_f_o)=6.4E+3
3272 if(p_pcg6_f_o.gt.1) dhr(p_pcg6_f_o)=6.4E+3
3273 if(p_pcg7_f_o.gt.1) dhr(p_pcg7_f_o)=6.4E+3
3274 if(p_pcg8_f_o.gt.1) dhr(p_pcg8_f_o)=6.4E+3
3275 if(p_pcg9_f_o.gt.1) dhr(p_pcg9_f_o)=6.4E+3
3276 if(p_opcg1_f_o.gt.1) dhr(p_opcg1_f_o) =6.4E+3
3277 if(p_opcg2_f_o.gt.1) dhr(p_opcg2_f_o) =6.4E+3
3278 if(p_opcg3_f_o.gt.1) dhr(p_opcg3_f_o)=6.4E+3
3279 if(p_opcg4_f_o.gt.1) dhr(p_opcg4_f_o)=6.4E+3
3280 if(p_opcg5_f_o.gt.1) dhr(p_opcg5_f_o)=6.4E+3
3281 if(p_opcg6_f_o.gt.1) dhr(p_opcg6_f_o)=6.4E+3
3282 if(p_opcg7_f_o.gt.1) dhr(p_opcg7_f_o)=6.4E+3
3283 if(p_opcg8_f_o.gt.1) dhr(p_opcg8_f_o)=6.4E+3
3284 if(p_ant1_c.gt.1) dhr(p_ant1_c)=6.4E+3
3285 if(p_ant2_c.gt.1) dhr(p_ant2_c)=6.4E+3
3286 if(p_ant3_c.gt.1) dhr(p_ant3_c)=6.4E+3
3287 if(p_ant4_c.gt.1) dhr(p_ant4_c)=6.4E+3
3288 if(p_ant1_o.gt.1) dhr(p_ant1_o)=6.4E+3
3289 if(p_ant2_o.gt.1) dhr(p_ant2_o)=6.4E+3
3290 if(p_ant3_o.gt.1) dhr(p_ant3_o)=6.4E+3
3291 if(p_ant4_o.gt.1) dhr(p_ant4_o)=6.4E+3
3292 if(p_biog1_c.gt.1) dhr(p_biog1_c)=6.4E+3
3293 if(p_biog2_c.gt.1) dhr(p_biog2_c)=6.4E+3
3294 if(p_biog3_c.gt.1) dhr(p_biog3_c)=6.4E+3
3295 if(p_biog4_c.gt.1) dhr(p_biog4_c)=6.4E+3
3296 if(p_biog1_o.gt.1) dhr(p_biog1_o)=6.4E+3
3297 if(p_biog2_o.gt.1) dhr(p_biog2_o)=6.4E+3
3298 if(p_biog3_o.gt.1) dhr(p_biog3_o)=6.4E+3
3299 if(p_biog4_o.gt.1) dhr(p_biog4_o)=6.4E+3
3301 !Assume reactivity =0 for SOA species
3303 if(p_pcg1_b_c.gt.1) f0(p_pcg1_b_c) =0.0000
3304 if(p_pcg2_b_c.gt.1) f0(p_pcg2_b_c) =0.0000
3305 if(p_pcg3_b_c.gt.1) f0(p_pcg3_b_c)=0.0000
3306 if(p_pcg4_b_c.gt.1) f0(p_pcg4_b_c)=0.0000
3307 if(p_pcg5_b_c.gt.1) f0(p_pcg5_b_c)=0.0000
3308 if(p_pcg6_b_c.gt.1) f0(p_pcg6_b_c)=0.0000
3309 if(p_pcg7_b_c.gt.1) f0(p_pcg7_b_c)=0.0000
3310 if(p_pcg8_b_c.gt.1) f0(p_pcg8_b_c)=0.0000
3311 if(p_pcg9_b_c.gt.1) f0(p_pcg9_b_c)=0.0000
3312 if(p_opcg1_b_c.gt.1) f0(p_opcg1_b_c) =0.0000
3313 if(p_opcg2_b_c.gt.1) f0(p_opcg2_b_c) =0.0000
3314 if(p_opcg3_b_c.gt.1) f0(p_opcg3_b_c)=0.0000
3315 if(p_opcg4_b_c.gt.1) f0(p_opcg4_b_c)=0.0000
3316 if(p_opcg5_b_c.gt.1) f0(p_opcg5_b_c)=0.0000
3317 if(p_opcg6_b_c.gt.1) f0(p_opcg6_b_c)=0.0000
3318 if(p_opcg7_b_c.gt.1) f0(p_opcg7_b_c)=0.0000
3319 if(p_opcg8_b_c.gt.1) f0(p_opcg8_b_c)=0.0000
3320 if(p_pcg1_b_o.gt.1) f0(p_pcg1_b_o) =0.0000
3321 if(p_pcg2_b_o.gt.1) f0(p_pcg2_b_o) =0.0000
3322 if(p_pcg3_b_o.gt.1) f0(p_pcg3_b_o)=0.0000
3323 if(p_pcg4_b_o.gt.1) f0(p_pcg4_b_o)=0.0000
3324 if(p_pcg5_b_o.gt.1) f0(p_pcg5_b_o)=0.0000
3325 if(p_pcg6_b_o.gt.1) f0(p_pcg6_b_o)=0.0000
3326 if(p_pcg7_b_o.gt.1) f0(p_pcg7_b_o)=0.0000
3327 if(p_pcg8_b_o.gt.1) f0(p_pcg8_b_o)=0.0000
3328 if(p_pcg9_b_o.gt.1) f0(p_pcg9_b_o)=0.0000
3329 if(p_opcg1_b_o.gt.1) f0(p_opcg1_b_o) =0.0000
3330 if(p_opcg2_b_o.gt.1) f0(p_opcg2_b_o) =0.0000
3331 if(p_opcg3_b_o.gt.1) f0(p_opcg3_b_o)=0.0000
3332 if(p_opcg4_b_o.gt.1) f0(p_opcg4_b_o)=0.0000
3333 if(p_opcg5_b_o.gt.1) f0(p_opcg5_b_o)=0.0000
3334 if(p_opcg6_b_o.gt.1) f0(p_opcg6_b_o)=0.0000
3335 if(p_opcg7_b_o.gt.1) f0(p_opcg7_b_o)=0.0000
3336 if(p_opcg8_b_o.gt.1) f0(p_opcg8_b_o)=0.0000
3337 if(p_pcg1_f_c.gt.1) f0(p_pcg1_f_c) =0.0000
3338 if(p_pcg2_f_c.gt.1) f0(p_pcg2_f_c) =0.0000
3339 if(p_pcg3_f_c.gt.1) f0(p_pcg3_f_c)=0.0000
3340 if(p_pcg4_f_c.gt.1) f0(p_pcg4_f_c)=0.0000
3341 if(p_pcg5_f_c.gt.1) f0(p_pcg5_f_c)=0.0000
3342 if(p_pcg6_f_c.gt.1) f0(p_pcg6_f_c)=0.0000
3343 if(p_pcg7_f_c.gt.1) f0(p_pcg7_f_c)=0.0000
3344 if(p_pcg8_f_c.gt.1) f0(p_pcg8_f_c)=0.0000
3345 if(p_pcg9_f_c.gt.1) f0(p_pcg9_f_c)=0.0000
3346 if(p_opcg1_f_c.gt.1) f0(p_opcg1_f_c) =0.0000
3347 if(p_opcg2_f_c.gt.1) f0(p_opcg2_f_c) =0.0000
3348 if(p_opcg3_f_c.gt.1) f0(p_opcg3_f_c)=0.0000
3349 if(p_opcg4_f_c.gt.1) f0(p_opcg4_f_c)=0.0000
3350 if(p_opcg5_f_c.gt.1) f0(p_opcg5_f_c)=0.0000
3351 if(p_opcg6_f_c.gt.1) f0(p_opcg6_f_c)=0.0000
3352 if(p_opcg7_f_c.gt.1) f0(p_opcg7_f_c)=0.0000
3353 if(p_opcg8_f_c.gt.1) f0(p_opcg8_f_c)=0.0000
3354 if(p_pcg1_f_o.gt.1) f0(p_pcg1_f_o) =0.0000
3355 if(p_pcg2_f_o.gt.1) f0(p_pcg2_f_o) =0.0000
3356 if(p_pcg3_f_o.gt.1) f0(p_pcg3_f_o)=0.0000
3357 if(p_pcg4_f_o.gt.1) f0(p_pcg4_f_o)=0.0000
3358 if(p_pcg5_f_o.gt.1) f0(p_pcg5_f_o)=0.0000
3359 if(p_pcg6_f_o.gt.1) f0(p_pcg6_f_o)=0.0000
3360 if(p_pcg7_f_o.gt.1) f0(p_pcg7_f_o)=0.0000
3361 if(p_pcg8_f_o.gt.1) f0(p_pcg8_f_o)=0.0000
3362 if(p_pcg9_f_o.gt.1) f0(p_pcg9_f_o)=0.0000
3363 if(p_opcg1_f_o.gt.1) f0(p_opcg1_f_o) =0.0000
3364 if(p_opcg2_f_o.gt.1) f0(p_opcg2_f_o) =0.0000
3365 if(p_opcg3_f_o.gt.1) f0(p_opcg3_f_o)=0.0000
3366 if(p_opcg4_f_o.gt.1) f0(p_opcg4_f_o)=0.0000
3367 if(p_opcg5_f_o.gt.1) f0(p_opcg5_f_o)=0.0000
3368 if(p_opcg6_f_o.gt.1) f0(p_opcg6_f_o)=0.0000
3369 if(p_opcg7_f_o.gt.1) f0(p_opcg7_f_o)=0.0000
3370 if(p_opcg8_f_o.gt.1) f0(p_opcg8_f_o)=0.0000
3371 if(p_ant1_c.gt.1) f0(p_ant1_c)=0.0000
3372 if(p_ant2_c.gt.1) f0(p_ant2_c)=0.0000
3373 if(p_ant3_c.gt.1) f0(p_ant3_c)=0.0000
3374 if(p_ant4_c.gt.1) f0(p_ant4_c)=0.0000
3375 if(p_ant1_o.gt.1) f0(p_ant1_o)=0.0000
3376 if(p_ant2_o.gt.1) f0(p_ant2_o)=0.0000
3377 if(p_ant3_o.gt.1) f0(p_ant3_o)=0.0000
3378 if(p_ant4_o.gt.1) f0(p_ant4_o)=0.0000
3379 if(p_biog1_c.gt.1) f0(p_biog1_c)=0.0000
3380 if(p_biog2_c.gt.1) f0(p_biog2_c)=0.0000
3381 if(p_biog3_c.gt.1) f0(p_biog3_c)=0.0000
3382 if(p_biog4_c.gt.1) f0(p_biog4_c)=0.0000
3383 if(p_biog1_o.gt.1) f0(p_biog1_o)=0.0000
3384 if(p_biog2_o.gt.1) f0(p_biog2_o)=0.0000
3385 if(p_biog3_o.gt.1) f0(p_biog3_o)=0.0000
3386 if(p_biog4_o.gt.1) f0(p_biog4_o)=0.0000
3389 !Diffusion coefficients of SOA species
3390 if(p_pcg1_b_c.gt.1) dvj(p_pcg1_b_c) =1.0E-1
3391 if(p_pcg2_b_c.gt.1) dvj(p_pcg2_b_c) =1.0E-1
3392 if(p_pcg3_b_c.gt.1) dvj(p_pcg3_b_c)=1.0E-1
3393 if(p_pcg4_b_c.gt.1) dvj(p_pcg4_b_c)=1.0E-1
3394 if(p_pcg5_b_c.gt.1) dvj(p_pcg5_b_c)=1.0E-1
3395 if(p_pcg6_b_c.gt.1) dvj(p_pcg6_b_c)=1.0E-1
3396 if(p_pcg7_b_c.gt.1) dvj(p_pcg7_b_c)=1.0E-1
3397 if(p_pcg8_b_c.gt.1) dvj(p_pcg8_b_c)=1.0E-1
3398 if(p_pcg9_b_c.gt.1) dvj(p_pcg9_b_c)=1.0E-1
3399 if(p_opcg1_b_c.gt.1) dvj(p_opcg1_b_c) =1.0E-1
3400 if(p_opcg2_b_c.gt.1) dvj(p_opcg2_b_c) =1.0E-1
3401 if(p_opcg3_b_c.gt.1) dvj(p_opcg3_b_c)=1.0E-1
3402 if(p_opcg4_b_c.gt.1) dvj(p_opcg4_b_c)=1.0E-1
3403 if(p_opcg5_b_c.gt.1) dvj(p_opcg5_b_c)=1.0E-1
3404 if(p_opcg6_b_c.gt.1) dvj(p_opcg6_b_c)=1.0E-1
3405 if(p_opcg7_b_c.gt.1) dvj(p_opcg7_b_c)=1.0E-1
3406 if(p_opcg8_b_c.gt.1) dvj(p_opcg8_b_c)=1.0E-1
3407 if(p_pcg1_b_o.gt.1) dvj(p_pcg1_b_o) =1.0E-1
3408 if(p_pcg2_b_o.gt.1) dvj(p_pcg2_b_o) =1.0E-1
3409 if(p_pcg3_b_o.gt.1) dvj(p_pcg3_b_o)=1.0E-1
3410 if(p_pcg4_b_o.gt.1) dvj(p_pcg4_b_o)=1.0E-1
3411 if(p_pcg5_b_o.gt.1) dvj(p_pcg5_b_o)=1.0E-1
3412 if(p_pcg6_b_o.gt.1) dvj(p_pcg6_b_o)=1.0E-1
3413 if(p_pcg7_b_o.gt.1) dvj(p_pcg7_b_o)=1.0E-1
3414 if(p_pcg8_b_o.gt.1) dvj(p_pcg8_b_o)=1.0E-1
3415 if(p_pcg9_b_o.gt.1) dvj(p_pcg9_b_o)=1.0E-1
3416 if(p_opcg1_b_o.gt.1) dvj(p_opcg1_b_o) =1.0E-1
3417 if(p_opcg2_b_o.gt.1) dvj(p_opcg2_b_o) =1.0E-1
3418 if(p_opcg3_b_o.gt.1) dvj(p_opcg3_b_o)=1.0E-1
3419 if(p_opcg4_b_o.gt.1) dvj(p_opcg4_b_o)=1.0E-1
3420 if(p_opcg5_b_o.gt.1) dvj(p_opcg5_b_o)=1.0E-1
3421 if(p_opcg6_b_o.gt.1) dvj(p_opcg6_b_o)=1.0E-1
3422 if(p_opcg7_b_o.gt.1) dvj(p_opcg7_b_o)=1.0E-1
3423 if(p_opcg8_b_o.gt.1) dvj(p_opcg8_b_o)=1.0E-1
3424 if(p_pcg1_f_c.gt.1) dvj(p_pcg1_f_c) =1.0E-1
3425 if(p_pcg2_f_c.gt.1) dvj(p_pcg2_f_c) =1.0E-1
3426 if(p_pcg3_f_c.gt.1) dvj(p_pcg3_f_c)=1.0E-1
3427 if(p_pcg4_f_c.gt.1) dvj(p_pcg4_f_c)=1.0E-1
3428 if(p_pcg5_f_c.gt.1) dvj(p_pcg5_f_c)=1.0E-1
3429 if(p_pcg6_f_c.gt.1) dvj(p_pcg6_f_c)=1.0E-1
3430 if(p_pcg7_f_c.gt.1) dvj(p_pcg7_f_c)=1.0E-1
3431 if(p_pcg8_f_c.gt.1) dvj(p_pcg8_f_c)=1.0E-1
3432 if(p_pcg9_f_c.gt.1) dvj(p_pcg9_f_c)=1.0E-1
3433 if(p_opcg1_f_c.gt.1) dvj(p_opcg1_f_c) =1.0E-1
3434 if(p_opcg2_f_c.gt.1) dvj(p_opcg2_f_c) =1.0E-1
3435 if(p_opcg3_f_c.gt.1) dvj(p_opcg3_f_c)=1.0E-1
3436 if(p_opcg4_f_c.gt.1) dvj(p_opcg4_f_c)=1.0E-1
3437 if(p_opcg5_f_c.gt.1) dvj(p_opcg5_f_c)=1.0E-1
3438 if(p_opcg6_f_c.gt.1) dvj(p_opcg6_f_c)=1.0E-1
3439 if(p_opcg7_f_c.gt.1) dvj(p_opcg7_f_c)=1.0E-1
3440 if(p_opcg8_f_c.gt.1) dvj(p_opcg8_f_c)=1.0E-1
3441 if(p_pcg1_f_o.gt.1) dvj(p_pcg1_f_o) =1.0E-1
3442 if(p_pcg2_f_o.gt.1) dvj(p_pcg2_f_o) =1.0E-1
3443 if(p_pcg3_f_o.gt.1) dvj(p_pcg3_f_o)=1.0E-1
3444 if(p_pcg4_f_o.gt.1) dvj(p_pcg4_f_o)=1.0E-1
3445 if(p_pcg5_f_o.gt.1) dvj(p_pcg5_f_o)=1.0E-1
3446 if(p_pcg6_f_o.gt.1) dvj(p_pcg6_f_o)=1.0E-1
3447 if(p_pcg7_f_o.gt.1) dvj(p_pcg7_f_o)=1.0E-1
3448 if(p_pcg8_f_o.gt.1) dvj(p_pcg8_f_o)=1.0E-1
3449 if(p_pcg9_f_o.gt.1) dvj(p_pcg9_f_o)=1.0E-1
3450 if(p_opcg1_f_o.gt.1) dvj(p_opcg1_f_o) =1.0E-1
3451 if(p_opcg2_f_o.gt.1) dvj(p_opcg2_f_o) =1.0E-1
3452 if(p_opcg3_f_o.gt.1) dvj(p_opcg3_f_o)=1.0E-1
3453 if(p_opcg4_f_o.gt.1) dvj(p_opcg4_f_o)=1.0E-1
3454 if(p_opcg5_f_o.gt.1) dvj(p_opcg5_f_o)=1.0E-1
3455 if(p_opcg6_f_o.gt.1) dvj(p_opcg6_f_o)=1.0E-1
3456 if(p_opcg7_f_o.gt.1) dvj(p_opcg7_f_o)=1.0E-1
3457 if(p_opcg8_f_o.gt.1) dvj(p_opcg8_f_o)=1.0E-1
3458 if(p_ant1_c.gt.1) dvj(p_ant1_c)=1.0E-1
3459 if(p_ant2_c.gt.1) dvj(p_ant2_c)=1.0E-1
3460 if(p_ant3_c.gt.1) dvj(p_ant3_c)=1.0E-1
3461 if(p_ant4_c.gt.1) dvj(p_ant4_c)=1.0E-1
3462 if(p_ant1_o.gt.1) dvj(p_ant1_o)=1.0E-1
3463 if(p_ant2_o.gt.1) dvj(p_ant2_o)=1.0E-1
3464 if(p_ant3_o.gt.1) dvj(p_ant3_o)=1.0E-1
3465 if(p_ant4_o.gt.1) dvj(p_ant4_o)=1.0E-1
3466 if(p_biog1_c.gt.1) dvj(p_biog1_c)=1.0E-1
3467 if(p_biog2_c.gt.1) dvj(p_biog2_c)=1.0E-1
3468 if(p_biog3_c.gt.1) dvj(p_biog3_c)=1.0E-1
3469 if(p_biog4_c.gt.1) dvj(p_biog4_c)=1.0E-1
3470 if(p_biog1_o.gt.1) dvj(p_biog1_o)=1.0E-1
3471 if(p_biog2_o.gt.1) dvj(p_biog2_o)=1.0E-1
3472 if(p_biog3_o.gt.1) dvj(p_biog3_o)=1.0E-1
3473 if(p_biog4_o.gt.1) dvj(p_biog4_o)=1.0E-1
3478 hstar4(l) = hstar(l) ! preliminary
3479 !--------------------------------------------------
3480 ! Correction of diff. coefficient
3481 !--------------------------------------------------
3482 dvj(l) = dvj(l)*(293.15/298.15)**1.75
3483 sc = 0.15/dvj(l) ! Schmidt Number at 20C
3484 dratio(l) = 0.242/dvj(l) ! of water vapor and gas at
3485 !--------------------------------------------------
3486 ! Ratio of diffusion coefficient
3487 !--------------------------------------------------
3488 scpr23(l) = (sc/0.72)**(2./3.) ! (Schmidt # / Prandtl #)**
3492 else if ( (config_flags%chem_opt == CB05_SORG_AQ_KPP) ) then is_cbm4_kpp
3494 hstar(p_no2) = 6.40E-3
3495 hstar(p_no) = 1.90E-3
3496 hstar(p_pan) = 2.97E+0
3497 hstar(p_o3) = 1.13E-2
3498 hstar(p_form) = 2.97E+3
3499 hstar(p_cxo3) = 1.14E+1
3500 hstar(p_hono) = 3.47E+5
3501 hstar(p_no3) = 1.50E+1
3502 hstar(p_pna) = 2.00E+13
3503 hstar(p_h2o2) = 7.45E+4
3504 hstar(p_co) = 8.20E-3
3505 hstar(p_ald2) = 1.14E+1
3506 hstar(p_aldx) = 1.14E+1
3507 hstar(p_mepx) = 2.21E+2
3508 hstar(p_rooh) = 1.68E+6
3509 hstar(p_pacd) = 4.73E+2
3510 hstar(p_mgly) = 3.71E+3
3511 hstar(p_ntr) = 1.13E+0
3512 hstar(p_so2) = 2.53E+5
3513 hstar(p_etha) = 2.00E-3
3514 hstar(p_ole) = 4.76E-3
3515 hstar(p_iole) = 1.35E-3
3516 hstar(p_tol) = 1.51E-1
3517 hstar(p_cres) = 4.00E+5
3518 hstar(p_xyl) = 1.45E-1
3519 hstar(p_isop) = 4.76E-3
3520 hstar(p_hno3) = 2.69E+13
3521 hstar(p_facd) = 9.85E+6
3522 hstar(p_aacd) = 9.63E+5
3523 hstar(p_nh3) = 1.04E+4
3524 hstar(p_n2o5) = 1.00E+10
3525 hstar(p_eth) = 4.67E-3
3526 hstar(p_par) = 1.13E-3 !wig, 1-May-2007: for CB05
3542 dhr(p_rooh) = 10240.
3560 dhr(p_par) = 0. !wig, 1-May-2007: for CB05
3594 f0(p_par) = 0. !wig, 1-May-2007: for CB05
3629 dvj(p_par) = 0.118 !wig, 1-May-2007: for CB05
3632 hstar4(l) = hstar(l) ! preliminary
3633 ! Correction of diff. coeff
3634 dvj(l) = dvj(l)*(293.15/298.15)**1.75
3635 sc = 0.15/dvj(l) ! Schmidt Number at 20degC
3636 dratio(l) = 0.242/dvj(l) ! ! of water vapor and gas at
3637 ! Ratio of diffusion coeffi
3638 scpr23(l) = (sc/0.72)**(2./3.) ! (Schmidt # / Prandtl #)**
3641 else if ( (config_flags%chem_opt == CB05_SORG_VBS_AQ_KPP) ) then is_cbm4_kpp
3643 hstar(p_no2) = 6.40E-3
3644 hstar(p_no) = 1.90E-3
3645 hstar(p_pan) = 2.97E+0
3646 hstar(p_o3) = 1.13E-2
3647 hstar(p_form) = 2.97E+3
3648 hstar(p_cxo3) = 1.14E+1
3649 hstar(p_hono) = 3.47E+5
3650 hstar(p_no3) = 1.50E+1
3651 hstar(p_pna) = 2.00E+13
3652 hstar(p_h2o2) = 7.45E+4
3653 hstar(p_co) = 8.20E-3
3654 hstar(p_ald2) = 1.14E+1
3655 hstar(p_aldx) = 1.14E+1
3656 hstar(p_mepx) = 2.21E+2
3657 hstar(p_rooh) = 1.68E+6
3658 hstar(p_pacd) = 4.73E+2
3659 hstar(p_mgly) = 3.71E+3
3660 hstar(p_ntr) = 1.13E+0
3661 hstar(p_so2) = 2.53E+5
3662 hstar(p_etha) = 2.00E-3
3663 hstar(p_ole) = 4.76E-3
3664 hstar(p_iole) = 1.35E-3
3665 hstar(p_tol) = 1.51E-1
3666 hstar(p_cres) = 4.00E+5
3667 hstar(p_xyl) = 1.45E-1
3668 hstar(p_isop) = 4.76E-3
3669 hstar(p_hno3) = 2.69E+13
3670 hstar(p_facd) = 9.85E+6
3671 hstar(p_aacd) = 9.63E+5
3672 hstar(p_nh3) = 1.04E+4
3673 hstar(p_n2o5) = 1.00E+10
3674 hstar(p_eth) = 4.67E-3
3675 hstar(p_par) = 1.13E-3 !wig, 1-May-2007: for CB05
3691 dhr(p_rooh) = 10240.
3709 dhr(p_par) = 0. !wig, 1-May-2007: for CB05
3743 f0(p_par) = 0. !wig, 1-May-2007: for CB05
3778 dvj(p_par) = 0.118 !wig, 1-May-2007: for CB05
3781 hstar4(l) = hstar(l) ! preliminary
3782 ! Correction of diff. coeff
3783 dvj(l) = dvj(l)*(293.15/298.15)**1.75
3784 sc = 0.15/dvj(l) ! Schmidt Number at 20degC
3785 dratio(l) = 0.242/dvj(l) ! ! of water vapor and gas at
3786 ! Ratio of diffusion coeffi
3787 scpr23(l) = (sc/0.72)**(2./3.) ! (Schmidt # / Prandtl #)**
3794 hstar(p_no2) = 6.40E-3
3795 hstar(p_no) = 1.90E-3
3796 hstar(p_pan) = 2.97E+0
3797 hstar(p_o3) = 1.13E-2
3798 hstar(p_hcho) = 2.97E+3
3799 hstar(p_hono) = 3.47E+5
3800 hstar(p_no3) = 1.50E+1
3801 hstar(p_h2o2) = 7.45E+4
3802 hstar(p_co) = 8.20E-3
3803 hstar(p_ald2) = 1.14E+1
3804 hstar(p_onit) = 1.13E+0
3805 hstar(p_so2) = 2.53E+5
3806 hstar(p_eth) = 2.00E-3
3807 hstar(p_ole) = 3.05E-3 !(average of oli and olt)
3808 hstar(p_tol) = 1.51E-1
3809 hstar(p_cres) = 4.00E+5
3810 hstar(p_xyl) = 1.45E-1
3811 hstar(p_iso) = 4.76E-3
3812 hstar(p_hno3) = 2.69E+13
3813 hstar(p_nh3) = 1.04E+4
3814 hstar(p_n2o5) = 1.00E+10
3815 hstar(p_par) = 1.13E-3
3817 ! -DH/R (for temperature correction)
3842 ! REACTIVITY FACTORS
3867 ! DIFFUSION COEFFICIENTS
3868 ! [DV]=cm2/s (assumed: 1/SQRT(molar mass) when not known)
3893 hstar4(l) = hstar(l) ! preliminary
3894 ! Correction of diff. coeff
3895 dvj(l) = dvj(l)*(293.15/298.15)**1.75
3896 sc = 0.15/dvj(l) ! Schmidt Number at 20C
3897 dratio(l) = 0.242/dvj(l) ! ! of water vapor and gas at
3898 ! Ratio of diffusion coeffi
3899 scpr23(l) = (sc/0.72)**(2./3.) ! (Schmidt # / Prandtl #)**
3906 ! DATA FOR AEROSOL PARTICLE DEPOSITION FOR THE MODEL OF
3907 ! J. W. ERISMAN, A. VAN PUL AND P. WYERS
3908 ! ATMOSPHERIC ENVIRONMENT 28 (1994), 2595-2607
3910 ! vd = (u* / k) * CORRECTION FACTORS
3912 ! CONSTANT K FOR LANDUSE TYPES:
3913 ! urban and built-up land
3915 ! dryland cropland and pasture
3917 ! irrigated cropland and pasture
3919 ! mixed dryland/irrigated cropland and past
3921 ! cropland/grassland mosaic
3923 ! cropland/woodland mosaic
3929 ! mixed shrubland/grassland
3933 ! deciduous broadleaf forest
3935 ! deciduous needleleaf forest
3937 ! evergreen broadleaf forest
3939 ! evergreen needleleaf forest
3945 ! herbaceous wetland
3949 ! barren or sparsely vegetated
3957 ! bare ground tundra
3963 ! Erisman et al. (1994) give
3964 ! k = 500 for low vegetation and k = 100 for forests.
3966 ! For desert k = 500 is taken according to measurements
3968 ! J. Fontan, A. Lopez, E. Lamaud and A. Druilhet (1997)
3969 ! Vertical Flux Measurements of the Submicronic Aerosol Particles
3970 ! and Parametrisation of the Dry Deposition Velocity
3971 ! in: Biosphere-Atmosphere Exchange of Pollutants
3972 ! and Trace Substances
3973 ! Editor: S. Slanina. Springer-Verlag Berlin, Heidelberg, 1997
3976 ! For coniferous forest the Erisman value of k = 100 is taken.
3977 ! Measurements of Erisman et al. (1997) in a coniferous forest
3978 ! in the Netherlands, lead to values of k between 20 and 38
3979 ! (Atmospheric Environment 31 (1997), 321-332).
3980 ! However, these high values of vd may be reached during
3981 ! instable cases. The eddy correlation measurements
3982 ! of Gallagher et al. (1997) made during the same experiment
3983 ! show for stable cases (L>0) values of k between 200 and 250
3984 ! at minimum (Atmospheric Environment 31 (1997), 359-373).
3985 ! Fontan et al. (1997) found k = 250 in a forest
3986 ! of maritime pine in southwestern France.
3988 ! For gras, model calculations of Davidson et al. support
3990 ! C. I. Davidson, J. M. Miller and M. A. Pleskov
3991 ! The Influence of Surface Structure on Predicted Particles
3992 ! Dry Deposition to Natural Gras Canopies
3993 ! Water, Air, and Soil Pollution 18 (1982) 25-43
3995 ! Snow covered surface: The experiment of Ibrahim et al. (1983)
3996 ! gives k = 436 for 0.7 um diameter particles.
3997 ! The deposition velocity of Milford and Davidson (1987)
3998 ! gives k = 154 for continental sulfate aerosol.
3999 ! M. Ibrahim, L. A. Barrie and F. Fanaki
4000 ! Atmospheric Environment 17 (1983), 781-788
4002 ! J. B. Milford and C. I. Davidson
4003 ! The Sizes of Particulate Sulfate and Nitrate in the Atmosphere
4005 ! JAPCA 37 (1987), 125-134
4007 ! WRITE (0,*) ' return from rcread '
4008 ! *********************************************************
4010 ! Simplified landuse scheme for deposition and biogenic emission
4012 ! (ISWATER and ISICE are already defined elsewhere,
4013 ! therefore water and ice are not considered here)
4015 ! 1 urban or bare soil
4018 ! 4 deciduous forest
4019 ! 5 coniferous and mixed forest
4020 ! 6 other natural landuse categories
4023 IF (mminlu=='OLD ') THEN
4038 IF (mminlu=='USGS') THEN
4065 IF (mminlu=='SiB ') THEN
4086 !--------------------------------------------------
4087 ! ... check for mozart chemistry
4088 !--------------------------------------------------
4089 !---------------------------------------------------------------------
4090 ! ... open wesely pft netcdf file
4091 !---------------------------------------------------------------------
4093 if( chm_is_moz ) then
4094 !---------------------------------------------------------------------
4095 ! ... allocate column_density type
4096 !---------------------------------------------------------------------
4097 if( id == 1 .and. .not. allocated(seasonal_pft) ) then
4098 CALL nl_get_max_dom( 1,max_dom )
4099 allocate( seasonal_pft(max_dom),stat=astat )
4100 if( astat /= 0 ) then
4101 CALL wrf_message( 'dep_init: failed to allocate wesely_pft type seasonal_pft' )
4104 write(err_msg,*) 'dep_init: initializing for ',max_dom,' domains'
4105 CALL wrf_message( trim(err_msg) )
4106 seasonal_pft(:)%is_allocated = .false.
4108 seasonal_pft_allocated : &
4109 IF( .not. seasonal_pft(id)%is_allocated ) then
4110 IF( wrf_dm_on_monitor() ) THEN
4111 write(id_num,'(i3)') 100+id
4112 err_msg = 'dep_init: initializing domain ' // id_num(2:3)
4113 CALL wrf_message( trim(err_msg) )
4114 cpos = index( config_flags%wes_seasonal_inname, '<domain>' )
4117 filename = config_flags%wes_seasonal_inname(:cpos-1) // 'd' // id_num(2:3)
4119 slen = len_trim( config_flags%wes_seasonal_inname )
4120 if( cpos < slen ) then
4121 filename(len_trim(filename)+1:) = config_flags%wes_seasonal_inname(cpos:slen)
4124 filename = trim( config_flags%wes_seasonal_inname )
4126 err_msg = 'dep_init: failed to open file ' // trim(filename)
4127 call handle_ncerr( nf_open( trim(filename), nf_noclobber, ncid ), trim(err_msg) )
4128 !---------------------------------------------------------------------
4129 ! ... get dimensions
4130 !---------------------------------------------------------------------
4131 err_msg = 'dep_init: failed to get npft id'
4132 call handle_ncerr( nf_inq_dimid( ncid, 'npft', dimid ), trim(err_msg) )
4133 err_msg = 'dep_init: failed to npft'
4134 call handle_ncerr( nf_inq_dimlen( ncid, dimid, seasonal_pft(id)%npft ), trim(err_msg) )
4135 err_msg = 'dep_init: failed to get months year id'
4136 call handle_ncerr( nf_inq_dimid( ncid, 'months', dimid ), trim(err_msg) )
4137 err_msg = 'dep_init: failed to get months'
4138 call handle_ncerr( nf_inq_dimlen( ncid, dimid, seasonal_pft(id)%months ), trim(err_msg) )
4139 err_msg = 'ftuv_init: failed to get west_east id'
4140 call handle_ncerr( nf_inq_dimid( ncid, 'west_east', dimid ), trim(err_msg) )
4141 err_msg = 'ftuv_init: failed to get west_east'
4142 call handle_ncerr( nf_inq_dimlen( ncid, dimid, lon_e ), trim(err_msg) )
4143 err_msg = 'ftuv_init: failed to get south_north id'
4144 call handle_ncerr( nf_inq_dimid( ncid, 'south_north', dimid ), trim(err_msg) )
4145 err_msg = 'ftuv_init: failed to get south_north'
4146 call handle_ncerr( nf_inq_dimlen( ncid, dimid, lat_e ), trim(err_msg) )
4148 !---------------------------------------------------------------------
4149 ! ... bcast the dimensions
4150 !---------------------------------------------------------------------
4151 CALL wrf_dm_bcast_bytes ( seasonal_pft(id)%npft , IWORDSIZE )
4152 CALL wrf_dm_bcast_bytes ( seasonal_pft(id)%months , IWORDSIZE )
4153 CALL wrf_dm_bcast_bytes ( lon_e , IWORDSIZE )
4154 CALL wrf_dm_bcast_bytes ( lat_e , IWORDSIZE )
4155 !---------------------------------------------------------------------
4156 ! ... allocate arrays
4157 !---------------------------------------------------------------------
4158 iend = min( ipe,ide-1 )
4159 jend = min( jpe,jde-1 )
4160 allocate( input_wes_seasonal(lon_e,lat_e,seasonal_pft(id)%npft,seasonal_pft(id)%months), stat=astat )
4161 if( astat /= 0 ) then
4162 call wrf_message( 'dep_init: failed to allocate input_wes_seasonal' )
4165 allocate( seasonal_pft(id)%seasonal_wes(ips:iend,jps:jend,seasonal_pft(id)%npft,seasonal_pft(id)%months), stat=astat )
4166 if( astat /= 0 ) then
4167 call wrf_message( 'dep_init: failed to allocate seasonal_wes' )
4170 seasonal_pft(id)%is_allocated = .true.
4171 !---------------------------------------------------------------------
4173 !---------------------------------------------------------------------
4174 IF ( wrf_dm_on_monitor() ) THEN
4175 err_msg = 'dep_init: failed to get seasonal_wes variable id'
4176 call handle_ncerr( nf_inq_varid( ncid, 'seasonal_wes', varid ), trim(err_msg) )
4177 err_msg = 'dep_init: failed to read seasonal_wes variable'
4178 call handle_ncerr( nf_get_var_int( ncid, varid, input_wes_seasonal ), trim(err_msg) )
4179 !---------------------------------------------------------------------
4180 ! ... close netcdf file
4181 !---------------------------------------------------------------------
4182 err_msg = 'dep_init: failed to close file wrf_season_wes_usgs.nc'
4183 call handle_ncerr( nf_close( ncid ), trim(err_msg) )
4186 DM_BCAST_MACRO(input_wes_seasonal)
4188 seasonal_pft(id)%seasonal_wes(ips:iend,jps:jend,:seasonal_pft(id)%npft,:seasonal_pft(id)%months) = &
4189 input_wes_seasonal(ips:iend,jps:jend,:seasonal_pft(id)%npft,:seasonal_pft(id)%months)
4190 deallocate( input_wes_seasonal )
4191 endif seasonal_pft_allocated
4194 END SUBROUTINE dep_init
4196 SUBROUTINE HL_init( numgas )
4198 use module_state_description, only : param_first_scalar
4199 use module_scalar_tables, only : chem_dname_table
4200 use module_chem_utilities, only : UPCASE
4201 use module_HLawConst
4203 integer, intent(in) :: numgas
4205 !----------------------------------------------------------------------
4207 !----------------------------------------------------------------------
4210 character(len=64) :: HL_tbl_name
4211 character(len=64) :: wrf_spc_name
4214 if( .not. allocated( HL_ndx ) ) then
4215 !----------------------------------------------------------------------
4216 ! scan HLawConst table for match with chem_opt scheme gas phase species
4217 !----------------------------------------------------------------------
4218 allocate( HL_ndx(numgas),stat=astat )
4219 if( astat /= 0 ) then
4220 call wrf_error_fatal("HL_init: failed to allocate HL_ndx")
4223 do m = param_first_scalar,numgas
4224 wrf_spc_name = chem_dname_table(1,m)
4225 call upcase( wrf_spc_name )
4227 HL_tbl_name = HLC(m1)%name
4228 call upcase( HL_tbl_name )
4229 if( trim(HL_tbl_name) == trim(wrf_spc_name) ) then
4237 END SUBROUTINE HL_init
4241 subroutine handle_ncerr( ret, mes )
4242 !---------------------------------------------------------------------
4243 ! ... netcdf error handling routine
4244 !---------------------------------------------------------------------
4248 !---------------------------------------------------------------------
4249 ! ... dummy arguments
4250 !---------------------------------------------------------------------
4251 integer, intent(in) :: ret
4252 character(len=*), intent(in) :: mes
4254 include 'netcdf.inc'
4256 if( ret /= nf_noerr ) then
4257 call wrf_message( trim(mes) )
4258 call wrf_message( trim(nf_strerror(ret)) )
4262 end subroutine handle_ncerr
4265 END MODULE module_dep_simple