Update version info for release v4.6.1 (#2122)
[WRF.git] / chem / module_dep_simple.F
blob8fdd765560b9b4e9b46c7b8e8e6a059d6cd2b8ff
1     MODULE module_dep_simple
3       IMPLICIT NONE
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, &
21                                                     4, 3, 3, 3, 3, &
22                                                     4, 5, 4, 5, 6, &
23                                                     7, 9, 6, 8, 9, &
24                                                     6, 6, 8, 0, 0 /)
25       real, parameter    :: wh2o = 18.0153
26       real, parameter    :: wpan = 121.04793
27       character(len=4), parameter :: mminlu = 'USGS'
29       INTEGER :: month = 0
30       INTEGER :: ixxxlu(nlu)
31 !     include modis landuse 
32       INTEGER, allocatable :: luse2usgs(:)
33       INTEGER, allocatable :: HL_ndx(:)
34 !--
36       REAL    :: kpart(nlu)
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)
40       REAL    :: ri_pan(5,11)
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)
52       type wesely_pft
53         integer          :: npft
54         integer          :: months
55         INTEGER, pointer :: seasonal_wes(:,:,:,:)
56         logical          :: is_allocated
57       end type wesely_pft
59       type(wesely_pft), allocatable :: seasonal_pft(:)
61 !--------------------------------------------------
62 ! .. Default Accessibility ..
63 !--------------------------------------------------
64     PUBLIC
65     PRIVATE :: HL_init
67     logical, allocatable :: is_aerosol(:) ! true if field is aerosol (any phase)
69     CONTAINS
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 
85   USE module_configure
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 ) :: &
101                                                       moist  
102 !--------------------------------------------------
103 ! advected chemical species
104 !--------------------------------------------------
105    REAL, DIMENSION( ims:ime, kms:kme, jms:jme, num_chem ), INTENT(IN )    :: &
106                                                       chem
107 !--------------------------------------------------
108 ! deposition velocities
109 !--------------------------------------------------
110    REAL, DIMENSION( its:ite, jts:jte, num_chem ), INTENT(INOUT ) ::      &
111                                                       ddvel                     
112 !--------------------------------------------------
113 ! input from met model
114 !--------------------------------------------------
115    REAL,  DIMENSION( ims:ime , kms:kme , jms:jme ), INTENT(IN   ) ::      &
116                                                       t_phy,              &
117                                                       p_phy,              &
118                                                       dz8w,               &
119                                                       z,                  &
120                                                       t8w,                &
121                                                       p8w,                &
122                                                       z_at_w,             &
123                                                       rho_phy
124    INTEGER,DIMENSION( ims:ime , jms:jme ), INTENT(IN   ) ::               &
125                                                      ivgtyp
126    REAL,  DIMENSION( ims:ime , jms:jme ), INTENT(INOUT   ) ::             &
127                                                      rmol
128    REAL,  DIMENSION( ims:ime , jms:jme ), INTENT(IN )      ::             &
129                                                      tsk,                 &
130                                                      gsw,                 &
131                                                      vegfra,              &
132                                                      pbl,                 &
133                                                      ust,                 &
134                                                      xlat,                &
135                                                      xlong,               &
136                                                      raincv,              &
137                                                      znt
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 !--------------------------------------------------
144 ! .. Local Scalars
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 !--------------------------------------------------
152 ! .. Local Arrays
153 !--------------------------------------------------
154       REAL :: p(kts:kte)
155       REAL :: srfres(numgas)
156       REAL :: ddvel0d(numgas)
158 !-----------------------------------------------------------
159 ! necessary for aerosols (module dependent)         
160 !-----------------------------------------------------------
161       real :: rcx(numgas)
163 !-----------------------------------------------------------
164 ! .. Intrinsic Functions
165 !-----------------------------------------------------------
166       INTRINSIC max, min                             
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
180             iseason = 2
181             CALL wrf_debug(15,'setting iseason to 2')
182          else
183             iseason = 1
184          endif
185       end if
188 tile_lat_loop : &
189       do j = jts,jte 
190 tile_lon_loop : &
191          do i = its,ite 
192             iprt  = 0
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)
200                else
201                   iseason = 4
202                endif
203             end if
204             ta    = tsk(i,j)
205             rad   = gsw(i,j)
206             vegfrac = vegfra(i,j)
207             pa      = .01*p_phy(i,kts,j)
208             clwchem = moist(i,kts,j,p_qc)
209             ustar = ust(i,j)
210             zntt  = znt(i,j)
211             z1    = z_at_w(i,kts+1,j) - z_at_w(i,kts,j)
212 !-----------------------------------------------------------
213 !     Set logical default values
214 !-----------------------------------------------------------
215             rainflag = .FALSE.
216             wetflag  = .FALSE.
217             highnh3  = .FALSE.
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
220                   rainflag = .true.
221                endif
222             endif
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
230                   highnh3 = .true.
231                endif
232             endif
234 !-----------------------------------------------------------
235 !--- deposition
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.
245             else
246                srfres(1:numgas) = rcx(1:numgas)
247             end if
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)
265             end if
266          end do tile_lon_loop
267       end do tile_lat_loop
268      
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
290          do j=jts,jte
291             do i=its,ite
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)
299                ddvel(i,j,p_to2)         = 0
300                ddvel(i,j,p_cro)         = 0
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
304                ddvel(i,j,p_ro2)         = 0
305                ddvel(i,j,p_ano2)        = 0
306                ddvel(i,j,p_nap)         = 0
307                ddvel(i,j,p_xo2)         = 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
318                   ddvel(i,j,p_dms)         = 0
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
328                   ddvel(i,j,p_mtf)         = 0
329                end if
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
335                end if
336             end do
337          end do
338       end if
339 !!!!TUCCELLA
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
343          do j=jts,jte
344             do i=its,ite
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.
357             end do
358          end do
359       end if
361      if  (config_flags%chem_opt == RACM_SOA_VBS_HET_KPP) then
362          do j=jts,jte
363             do i=its,ite
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
372             end do
373          end do
374       end if
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
379 ! unimportant.
380 !-----------------------------------------------------------
381       if  (config_flags%chem_opt == CBM4_KPP          )   then
382          do j=jts,jte
383             do i=its,ite
384                ddvel(i,j,p_open)        = ddvel(i,j,p_xyl)
385                ddvel(i,j,p_ro2)         = 0
386                ddvel(i,j,p_xo2)         = 0
387                ddvel(i,j,p_ald2)        = ddvel(i,j,p_ald)
388                ddvel(i,j,p_iso)        = 0
389             end do
390          end do
391       end if
394       if  (config_flags%chem_opt == CBMZ_MOSAIC_KPP  )   then
395          do j=jts,jte
396             do i=its,ite
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
405                ddvel(i,j,p_api)        = 0
406                ddvel(i,j,p_lim)        = 0
408             end do
409          end do
410       end if
414 ! For gocartracm,radm
415 !-----------------------------------------------------------
416       if  ((config_flags%chem_opt == GOCARTRACM_KPP)  .OR.     &
417            (config_flags%chem_opt == GOCARTRADM2))   then
418          do j=jts,jte
419             do i=its,ite
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)
425                end if
426             end do
427          end do
428       end if
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
433          do j=jts,jte
434             do i=its,ite
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.
438             end do
439          end do
440       end if
441 !-----------------------------------------------------------
442 ! For mozart
443 !-----------------------------------------------------------
444       if( chm_is_moz ) then
445          do j=jts,jte
446             do i=its,ite
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)
451                ddvel(i,j,p_o)       = 0.
452                ddvel(i,j,p_o1d_cb4) = 0.
453                ddvel(i,j,p_no3)     = 0.
454                ddvel(i,j,p_n2o5)    = 0.
455                ddvel(i,j,p_ho)      = 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.
460                ddvel(i,j,p_h2)      = 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.
473                ddvel(i,j,p_eo)      = 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.
529                  ENDIF
530                ENDIF
531             end do
532          end do
533          IF ( config_flags%chem_opt /= T1_MOZCART_KPP) THEN
534            do j=jts,jte
535              ddvel(its:ite,j,p_iso2)    = 0.
536            end do
537          ELSE
538            do j=jts,jte
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)
568            end do
569          ENDIF
570          IF( config_flags%chem_opt == MOZART_KPP .or. config_flags%chem_opt == MOZCART_KPP ) THEN
571            do j=jts,jte
572              ddvel(its:ite,j,p_c10h16)  = 0.
573              ddvel(its:ite,j,p_xoh)     = 0.
574            end do
575          ENDIF
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
579            do j=jts,jte
580              ddvel(its:ite,j,p_sulf) = 0.
581            end do
582          ENDIF
583          IF( p_o1d > param_first_scalar ) then
584            do j=jts,jte
585              ddvel(its:ite,j,p_o1d) = 0.
586            end do
587          ENDIF
588          IF( p_o1d_cb4 > param_first_scalar ) then
589            do j=jts,jte
590              ddvel(its:ite,j,p_o1d_cb4) = 0.
591            end do
592          ENDIF
593       end if
595       
596 !-----------------------------------------------------------
597 ! For CRI
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
602          do j=jts,jte
603             do i=its,ite
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)  
652                ddvel(i,j,p_h2)    = 0.  
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.
668                ddvel(i,j,p_ho) = 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. 
720                
722             end do
723          end do
724       end if
726 !-----------------------------------------------------------
727 ! For cb05
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
735          do j=jts,jte
736             do i=its,ite
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.
750                ddvel(i,j,p_o)           = 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.
792                ddvel(i,j,p_cl)          = 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
798                else
799                   ddvel(i,j,p_hg0)      = 0.01e-2
800                end if
801                ddvel(i,j,p_hg2)         = 0.50e-2
802                end do
803          end do
804       else if ( (config_flags%chem_opt == CB05_SORG_VBS_AQ_KPP) ) then
805          do j=jts,jte
806             do i=its,ite
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.
820                ddvel(i,j,p_o)           = 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.
862                ddvel(i,j,p_cl)          = 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
868                else
869                   ddvel(i,j,p_hg0)      = 0.01e-2
870                end if
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)
881                end do
882          end do
883       end if
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
893 !     TO THE MODEL OF
894 !     M. L. WESELY,
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
901 !                    FOR MM5 VERSION 3
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
925         INTEGER :: lt, n
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
929         REAL    :: crs, tc
930         REAL    :: rs_pan, tc_pan
931         LOGICAL :: has_dew
932 !----------------------------------------------------------------------
933 ! .. Local Arrays ..
934 !----------------------------------------------------------------------
935         REAL :: hstary(numgas)
937 !----------------------------------------------------------------------
938 ! .. Intrinsic Functions ..
939 !----------------------------------------------------------------------
940         INTRINSIC exp
942         rcx(1:numgas) = 1.
944         tc = t - 273.15
945         rdtheta = 0.
947         z = 200./(rad+0.1)
949 !!!  HARDWIRE VALUES FOR TESTING
950 !       z=0.4727409
951 !       tc=22.76083
952 !       t=tc+273.15
953 !       rad = 412.8426
954 !       rainflag=.false.
955 !       wetflag=.false.
957         IF ( tc<=0. .OR. tc>=40. ) THEN
958           rs = 9999.
959         ELSE
960           rs = ri(iland,iseason)*(1+z*z)*(400./(tc*(40.-tc)))
961         END IF
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)
969         DO n = 1, numgas
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
979                     hstary(n) = 32.e5
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)
984                  end if
985              endif is_mozart
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)
997                     qs = ws/(1. + ws)
998                     has_dew = .false.
999                     if( qs <= spec_hum ) then
1000                       has_dew = .true.
1001                     end if
1002                     if( t < tmelt ) then
1003                        has_dew = .false.
1004                     end if
1005                     if( has_dew .or. rainflag ) then
1006                        dewm = 3.
1007                     else
1008                        dewm = 1.
1009                     endif
1010                     drat   = wpan/wh2o
1011                     tc_pan = t - tmelt
1012                     if( t > tmelt .and. t < 313.15 ) then
1013                        crs = (1. + (200./(rad + .1))**2) * (400./(tc_pan*(40. - tc_pan)))
1014                     else
1015                        crs = large_value
1016                     end if
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
1021                        rsmx = 1./dv_pan
1022                     end if
1023                 endif
1024              endif
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
1030              IF( wetflag ) THEN
1031                rlux = 1./(1./(3.*rlu(iland,iseason)) + 1.e-7*hstary(n) + f0(n)/rluo1)
1032              END IF
1033              IF( rainflag ) THEN
1034                rlux = 1./(1./(3.*rlu(iland,iseason)) + 1.e-7*hstary(n) + f0(n)/rluo2)
1035              END IF
1036              rcx(n) = 1./(1./rsmx + 1./rlux + 1./(rdc + rclx) + 1./(rac(iland,iseason) + rgsx))
1037              rcx(n) = max( 1.,rcx(n) )
1038           end IF
1039         END DO
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
1053            rcx(p_o3) = 1. &
1054                        /(1./rsmx+1./rlux+1./(rdc+rclx)+1./(min(100.,rac(iland,iseason))+rgsx))
1055            rcx(p_o3) = max( 1.,rcx(p_o3) )
1056         endif
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))
1063 !    &       +RESICE
1064 !       RCLX=RCLS(ILAND,ISEASON)+RESICE
1065 !       RGSX=RGSS(ILAND,ISEASON)+RESICE
1066 !       IF ((wetflag).OR.(RAINFLAG)) THEN
1067 !         IF (ILAND.EQ.1) THEN
1068 !           RLUX=50.
1069 !         ELSE
1070 !           RLUX=100.
1071 !         END IF
1072 !       END IF
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
1079 !       R_STOM
1080 !--------------------------------------------------
1081 is_so2 : &
1082      if( p_so2 >= param_first_scalar ) then
1083         rsmx = rs*dratio(p_so2)
1084 !--------------------------------------------------
1085 !       R_EXT
1086 !--------------------------------------------------
1087         IF (tc> -1. ) THEN
1088           IF (rh<81.3) THEN
1089             rlux = 25000.*exp(-0.0693*rh)
1090           ELSE
1091             rlux = 0.58E12*exp(-0.278*rh)
1092           END IF
1093         END IF
1094         IF (((wetflag) .OR. (rainflag)) .AND. (tc> -1. )) THEN
1095           rlux = 1.
1096         END IF
1097         IF ((tc>= -5. ) .AND. (tc<= -1. )) THEN
1098           rlux = 200.
1099         END IF
1100         IF (tc< -5. ) THEN
1101           rlux = 500.
1102         END IF
1103 !--------------------------------------------------
1104 !       INSTEAD OF R_INC R_CL and R_DC of Wesely are used
1105 !--------------------------------------------------
1106         rclx = rcls(iland,iseason)
1107 !--------------------------------------------------
1108 !       DRY SURFACE
1109 !--------------------------------------------------
1110         rgsx = 1000.
1111 !--------------------------------------------------
1112 !       WET SURFACE
1113 !--------------------------------------------------
1114         IF ((wetflag) .OR. (rainflag)) THEN
1115           IF (highnh3) THEN
1116             rgsx = 0.
1117           ELSE
1118             rgsx = 500.
1119           END IF
1120         END IF
1121 !--------------------------------------------------
1122 !       WATER
1123 !--------------------------------------------------
1124         IF (iland==iswater_temp) THEN
1125           rgsx = 0.
1126         END IF
1127 !--------------------------------------------------
1128 !       SNOW
1129 !--------------------------------------------------
1130         IF( iseason==4 .OR. iland==isice_temp ) THEN
1131           IF( tc > 2. ) THEN
1132             rgsx = 0.
1133           else IF ( tc >= -1. .AND. tc <= 2. ) THEN
1134             rgsx = 70.*(2. - tc)
1135           else IF ( tc < -1. ) THEN
1136             rgsx = 500.
1137           END IF
1138         END IF
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))
1145         ELSE
1146           rcx(p_so2) = rgsx
1147         END IF
1148         rcx(p_so2) = max( 1.,rcx(p_so2) )
1149      end if is_so2
1150 !--------------------------------------------------
1151 !     NH3 according to Erisman et al. 1994
1152 !       R_STOM
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 !--------------------------------------------------
1162 !           SUMMER
1163 !--------------------------------------------------
1164             rcx(p_nh3) = 1000.
1165           END IF
1166           IF ((iseason==2) .OR. (iseason==3) .OR. (iseason==5)) THEN
1167 !--------------------------------------------------
1168 !           WINTER, NO SNOW
1169 !--------------------------------------------------
1170             IF (tc>-1.) THEN
1171               IF (rad/=0.) THEN
1172                 rcx(p_nh3) = 50.
1173               ELSE
1174                 rcx(p_nh3) = 100.
1175               END IF
1176               IF ((wetflag) .OR. (rainflag)) THEN
1177                 rcx(p_nh3) = 20.
1178               END IF
1179             END IF
1180             IF ((tc>=(-5.)) .AND. (tc<=-1.)) THEN
1181               rcx(p_nh3) = 200.
1182             END IF
1183             IF (tc<(-5.)) THEN
1184               rcx(p_nh3) = 500.
1185             END IF
1186           END IF
1187         END IF
1188 !--------------------------------------------------
1189 !       AGRICULTURAL LAND (CROPS AND UNGRAZED PASTURE)
1190 !--------------------------------------------------
1191         IF (ixxxlu(iland)==2) THEN
1192           IF (iseason==1) THEN
1193 !--------------------------------------------------
1194 !           SUMMER
1195 !--------------------------------------------------
1196             IF (rad/=0.) THEN
1197               rcx(p_nh3) = rsmx
1198             ELSE
1199               rcx(p_nh3) = 200.
1200             END IF
1201             IF ((wetflag) .OR. (rainflag)) THEN
1202               rcx(p_nh3) = 50.
1203             END IF
1204           END IF
1205           IF ((iseason==2) .OR. (iseason==3) .OR. (iseason==5)) THEN
1206 !--------------------------------------------------
1207 !           WINTER, NO SNOW
1208 !--------------------------------------------------
1209             IF (tc>-1.) THEN
1210               IF (rad/=0.) THEN
1211                 rcx(p_nh3) = rsmx
1212               ELSE
1213                 rcx(p_nh3) = 300.
1214               END IF
1215               IF ((wetflag) .OR. (rainflag)) THEN
1216                 rcx(p_nh3) = 100.
1217               END IF
1218             END IF
1219             IF ((tc>=(-5.)) .AND. (tc<=-1.)) THEN
1220               rcx(p_nh3) = 200.
1221             END IF
1222             IF (tc<(-5.)) THEN
1223               rcx(p_nh3) = 500.
1224             END IF
1225           END IF
1226         END IF
1227 !--------------------------------------------------
1228 !       SEMI-NATURAL ECOSYSTEMS AND FORESTS
1229 !--------------------------------------------------
1230         IF ((ixxxlu(iland)==4) .OR. (ixxxlu(iland)==5) .OR. (ixxxlu( &
1231             iland)==6)) THEN
1232           IF (rad/=0.) THEN
1233             rcx(p_nh3) = 500.
1234           ELSE
1235             rcx(p_nh3) = 1000.
1236           END IF
1237           IF ((wetflag) .OR. (rainflag)) THEN
1238             IF (highnh3) THEN
1239               rcx(p_nh3) = 100.
1240             ELSE
1241               rcx(p_nh3) = 0.
1242             END IF
1243           END IF
1244           IF ((iseason==2) .OR. (iseason==3) .OR. (iseason==5)) THEN
1245 !--------------------------------------------------
1246 !           WINTER, NO SNOW
1247 !--------------------------------------------------
1248             IF ((tc>=(-5.)) .AND. (tc<=-1.)) THEN
1249               rcx(p_nh3) = 200.
1250             END IF
1251             IF (tc<(-5.)) THEN
1252               rcx(p_nh3) = 500.
1253             END IF
1254           END IF
1255         END IF
1256 !--------------------------------------------------
1257 !       WATER
1258 !--------------------------------------------------
1259         IF (iland==iswater_temp) THEN
1260           rcx(p_nh3) = 0.
1261         END IF
1262 !--------------------------------------------------
1263 !       URBAN AND DESERT (SOIL SURFACES)
1264 !--------------------------------------------------
1265         IF (ixxxlu(iland)==1) THEN
1266           IF ( .NOT. wetflag) THEN
1267             rcx(p_nh3) = 50.
1268           ELSE
1269             rcx(p_nh3) = 0.
1270           END IF
1271         END IF
1272 !--------------------------------------------------
1273 !       SNOW COVERED SURFACES OR PERMANENT ICE
1274 !--------------------------------------------------
1275         IF ((iseason==4) .OR. (iland==isice_temp)) THEN
1276           IF (tc>2.) THEN
1277             rcx(p_nh3) = 0.
1278           END IF
1279           IF ((tc>=(-1.)) .AND. (tc<=2.)) THEN
1280             rcx(p_nh3) = 70.*(2.-tc)
1281           END IF
1282           IF (tc<(-1.)) THEN
1283             rcx(p_nh3) = 500.
1284           END IF
1285         END IF
1286         rcx(p_nh3) = max( 1.,rcx(p_nh3) )
1287         endif is_nh3
1288       END SUBROUTINE rc
1290       SUBROUTINE deppart( rmol, ustar, rh, clw, iland, &
1291                           dvpart, dvfog )
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
1299 !            FOR MM5 VERSION 3
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 !--------------------------------------------------
1312         INTRINSIC exp
1314         dvpart = ustar/kpart(iland)
1315         IF (rmol<0.) THEN
1316 !--------------------------------------------------
1317 !         UNSTABLE LAYERING CORRECTION
1318 !--------------------------------------------------
1319           dvpart = dvpart*(1.+(-300.*rmol)**0.66667)
1320         END IF
1321         IF (rh>80.) THEN
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.))
1328         END IF
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 !--------------------------------------------------
1335         dvfog = 0.06*clw
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
1343         END IF
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
1365 !     Inputs:
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
1372 !     Outputs:
1373 !        Vgs    : Array of species and landuse specific deposition
1374 !                 velocities (m/s)
1375 !        Vg     : Cell-average deposition velocity by species (m/s)
1376 !     Variables used:
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 !--------------------------------------------------
1403         INTEGER :: jspec
1404         REAL    :: vgp, vgpart, zr
1405         REAL    :: rmol_tmp
1406 !--------------------------------------------------
1407 ! .. Local Arrays ..
1408 !--------------------------------------------------
1409         REAL :: vgspec(numgas)
1411 !--------------------------------------------------
1412 !   Calculate aerodynamic resistance for reference
1413 !   height = layer center
1414 !--------------------------------------------------
1415         zr = zz*.5
1416         rmol_tmp = rmol
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 !--------------------------------------------------
1422 !       zr = 10.0
1423         zr = 2.0
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
1435 !   of the two
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))
1446         END DO
1447         vgs(p_sulf) = vgp
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
1465 !     DZ       - CELL 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 !--------------------------------------------------
1484         INTEGER :: nss
1485         REAL    :: a, fac, pdz, pzr, vk
1486 !--------------------------------------------------
1487 ! .. Intrinsic Functions ..
1488 !--------------------------------------------------
1489         INTRINSIC alog, sqrt
1491 !--------------------------------------------------
1492 !     Set the von Karman constant
1493 !--------------------------------------------------
1494         vk = karman
1496 !--------------------------------------------------
1497 !     DETERMINE THE STABILITY BASED ON THE CONDITIONS
1498 !             1/L < 0 UNSTABLE
1499 !             1/L = 0 NEUTRAL
1500 !             1/L > 0 STABLE
1501 !--------------------------------------------------
1502         DO nss = 1, nspec
1503           IF (rmol < 0.) THEN
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)
1510           ELSE
1511             a = 0.74*(dz*alog(dz/zr) - dz + zr) + (2.35*rmol)*(dz - zr)**2
1512           END IF
1513 !--------------------------------------------------
1514 !     CALCULATE THE DEPOSITION VELOCITIY
1515 !--------------------------------------------------
1516           vgtemp(nss) = vgtemp(nss)/(1.0 + vgtemp(nss)*a/(vk*ustar*(dz - zr)))
1517         END DO
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
1541 !.....REFERENCES...
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 !--------------------------------------------------
1573         INTEGER :: l
1574         REAL    :: ao, ar, polint, vk
1575 !--------------------------------------------------
1576 ! .. Intrinsic Functions ..
1577 !--------------------------------------------------
1578         INTRINSIC alog
1579 !--------------------------------------------------
1580 !     Set the von Karman constant
1581 !--------------------------------------------------
1582         vk = karman
1584 !--------------------------------------------------
1585 !     Calculate the diffusion correction factor
1586 !     SCPR23 is calculated as (Sc/Pr)**(2/3) using Sc= 1.15 and Pr= 1.0
1587 !     SCPR23 = 1.10
1588 !--------------------------------------------------
1589 !     DETERMINE THE STABILITY BASED ON THE CONDITIONS
1590 !             1/L < 0 UNSTABLE
1591 !             1/L = 0 NEUTRAL
1592 !             1/L > 0 STABLE
1593 !--------------------------------------------------
1595         if(abs(rmol) < 1.E-6 ) rmol = 0.
1597         IF (rmol<0) THEN
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)
1603         ELSE
1604           polint = 0.74*alog(zr/z0) + 4.7*rmol*(zr-z0)
1605         END IF
1607 !--------------------------------------------------
1608 !     CALCULATE THE Maximum DEPOSITION VELOCITY
1609 !--------------------------------------------------
1610         DO l = 1, numgas
1611           depv(l) = ustar*vk/(2.0*scpr23(l)+polint)
1612         END DO
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 !--------------------------------------------------
1642 ! .. Local Scalars
1643 !--------------------------------------------------
1644         INTEGER :: iland, iseason, l, m
1645         integer :: iprt
1646         integer :: astat
1647         integer :: ncid
1648         integer :: dimid
1649         integer :: varid
1650         integer :: max_dom
1651         integer :: cpos, slen
1652         integer :: lon_e, lat_e
1653         integer :: iend, jend
1654         integer, allocatable :: input_wes_seasonal(:,:,:,:)
1655         REAL    :: sc
1656         character(len=128) :: err_msg
1657         character(len=128) :: filename
1658         character(len=3)   :: id_num
1659         LOGICAL :: chm_is_moz
1660 !--------------------------------------------------
1661 ! .. Local Arrays
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)
1668 #ifdef NETCDF
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'
1673 #else
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' )
1680          call wrf_abort
1681       end if
1682 #endif
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
1687 !    array locations.
1688 !--------------------------------------------------
1689         call nl_get_sf_surface_physics(id,l)
1690         if( l == 0 ) &
1691              call wrf_error_fatal("ERROR: Cannot use dry deposition without using a soil model.")
1693 ! ..
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/
1719 ! ..
1720         IF (nlu/=25) THEN
1721           call wrf_debug(0, 'number of land use classifications not correct ')
1722           CALL wrf_error_fatal ( "LAND USE CLASSIFICATIONS NOT 25")
1723         END IF
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")
1727         END IF
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
1739 !     Land use types:
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
1747 !      7: Grassland                            3
1748 !      8: Shrubland                            3
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
1765 !     25: No data                              8
1768 !     Order of data:
1769 !      |
1770 !      |   seasonal category
1771 !     \|/
1772 !     ---> landuse type
1773 !     1       2       3       4       5       6       7       8       9
1774 !     RLU for outer surfaces in the upper canopy
1775         DO iseason = 1, dep_seasons
1776            ri(1:nlu,iseason) = dat1(1:nlu,iseason)
1777         END DO
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)
1803         END DO
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)
1830         END DO
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)
1857         END DO
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)
1884         END DO
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)
1911         END DO
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)
1939         END DO
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.
1954         dhr(1:numgas)    = 0.
1955         f0(1:numgas)     = 0.
1956         dvj(1:numgas)    = 99.
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' )
1962           end if
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 /)
1968           endif
1969         endif
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 !--------------------------------------------------
1982 is_cbm4_kpp : &
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
1988               hstar(p_co)      = 1.e-3
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
1994               hstar(p_acet)    = 27.
1995               hstar(p_paa)     = 837.
1996               hstar(p_c3h6ooh) = 220.
1997               hstar(p_pan)     = 5.
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
2030               endif
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
2046                 endif
2047               end if
2048               
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
2053               hstar(p_co)      = 1.e-3
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
2059               hstar(p_ket)    = 27.
2060               hstar(p_paa)     = 837.
2061                hstar(p_c2h5co3h)    = 837.
2062                hstar(p_hoch2co3h)    = 837.               
2063 !              hstar(p_c3h6ooh) = 220.
2064               hstar(p_pan)     = 5.
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 
2174         
2175            else
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
2180               hstar(p_pan)  = 2.97
2181               hstar(p_paa)  = 473.
2182               hstar(p_onit) = 1.13
2183            end if
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
2218            dhr(p_ch4)   = 0.
2219            f0(p_ch4)    = 0.
2220            dvj(p_ch4)   = 0.250
2221         end if
2222         if(p_co2 >= param_first_scalar) then 
2223            hstar(p_co2) = 1.86E-1
2224            dhr(p_co2)   = 1636.
2225            f0(p_co2)    = 0.
2226            dvj(p_co2)   = 0.151
2227         end if
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
2239            DHR(p_ETE )=    0.
2240            DHR(p_API )=    0.
2241            DHR(p_LIM )=    0.
2242            DHR(p_DIEN)=    0.
2243            DHR(p_MACR)= 6266.
2244            DHR(p_UDD )=    0.
2245            DHR(p_HKET)=    0.
2246            F0(p_ETE )=0.
2247            F0(p_API )=0.
2248            F0(p_LIM )=0.
2249            F0(p_DIEN)=0.
2250            F0(p_MACR)=0.
2251            F0(p_UDD )=0.
2252            F0(p_HKET)=0.
2253            DVJ(p_ETE )=0.189
2254            DVJ(p_API )=0.086
2255            DVJ(p_LIM )=0.086
2256            DVJ(p_DIEN)=0.136
2257            DVJ(p_MACR)=0.120
2258            DVJ(p_UDD )=0.092
2259            DVJ(p_HKET)=0.116
2260         endif
2261 !--------------------------------------------------
2262 !     -DH/R (for temperature correction)
2263 !     [-DH/R]=K
2264 !--------------------------------------------------
2265         if( chm_is_moz ) then
2266            dhr(p_o3)      = 2560.
2267            dhr(p_h2o2)    = 7379.
2268            dhr(p_hcho)    = 6425.
2269            dhr(p_ch3ooh)  = 5241.
2270            dhr(p_ch3oh)   = 4934.
2271            dhr(p_ch3cooh) = 6425.
2272            dhr(p_acet)    = 5300.
2273            dhr(p_paa)     = 5308.
2274            dhr(p_c3h6ooh) = 5653.
2275            dhr(p_pan)     = 0.
2276            dhr(p_mpan)    = 2560.
2277            dhr(p_c2h5oh)  = 6500.
2278            dhr(p_etooh)   = 5995.
2279            dhr(p_prooh)   = 5995.
2280            dhr(p_acetp)   = 5995.
2281            dhr(p_onit)    = 6000.
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
2291              dhr(p_alknit)   = 0.
2292              dhr(p_ch3cn)    = 4100.
2293              dhr(p_eooh)     = 9700.
2294              dhr(p_hcn)      = 5000.
2295              dhr(p_honitr)   = 0.
2296              dhr(p_hpald)    = 0.
2297              dhr(p_iepox)    = 0.
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.
2304              dhr(p_nc4cho)   = 0.
2305              dhr(p_noa)      = 0.
2306              dhr(p_nterpooh) = 0.
2307              dhr(p_terpnit)  = 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
2311            end if
2313            if (config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP ) then
2314              dhr(p_cvasoaX) = 0.
2315              dhr(p_cvasoa1) = 6014.
2316              dhr(p_cvasoa2) = 6014.
2317              dhr(p_cvasoa3) = 6014.
2318              dhr(p_cvasoa4) = 6014.
2319              dhr(p_cvbsoaX) = 0.
2320              dhr(p_cvbsoa1) = 6014.
2321              dhr(p_cvbsoa2) = 6014.
2322              dhr(p_cvbsoa3) = 6014.
2323              dhr(p_cvbsoa4) = 6014.
2324            endif
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
2329            dhr(p_o3)      = 2560.
2330            dhr(p_h2o2)    = 7379.
2331            dhr(p_hcho)    = 6425.
2332            dhr(p_ch3ooh)  = 5241.
2333            dhr(p_ch3oh)   = 4934.
2334            dhr(p_ch3cooh) = 6425.
2335            dhr(p_ket)    = 5300.
2336            dhr(p_paa)     = 5308.
2337             dhr(p_c2h5co3h)    = 5308.
2338             dhr(p_hoch2co3h)    = 5308.           
2339 !           dhr(p_c3h6ooh) = 5653.
2340            dhr(p_pan)     = 0.
2341            dhr(p_mpan)    = 2560.
2342            dhr(p_ru12pan)    = 2560.
2343            dhr(p_rtn26pan)    = 2560.
2344            dhr(p_phan)    = 2560. 
2345            dhr(p_ppn)    = 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.
2452         else
2453            dhr(p_o3)   = 2300.
2454            dhr(p_h2o2) = 6615.
2455            dhr(p_hcho) = 7190.
2456            dhr(p_pan)  = 5760.
2457            dhr(p_onit) = 5487.
2458            dhr(p_paa)  = 6170.
2459         end if
2460         dhr(p_no2)  = 2500.
2461         dhr(p_no)   = 1480.
2462         dhr(p_aco3) = 6266.
2463         dhr(p_tpan) = 5760.
2464         dhr(p_hono) = 3775.
2465         dhr(p_no3) = 0.
2466         dhr(p_hno4) = 0.
2467         dhr(p_co)  = 0.
2468         dhr(p_ald) = 6266.
2469         dhr(p_op1) = 5607.
2470         dhr(p_op2) = 10240.
2471         dhr(p_ket) = 5773.
2472         dhr(p_gly) = 0.
2473         dhr(p_mgly) = 7541.
2474         dhr(p_dcb) = 0.
2475         dhr(p_so2) = 5816.
2476         dhr(p_eth) = 0.
2477         dhr(p_hc3) = 0.
2478         dhr(p_hc5) = 0.
2479         dhr(p_hc8) = 0.
2480         dhr(p_olt) = 0.
2481         dhr(p_oli) = 0.
2482         dhr(p_tol) = 0.
2483         dhr(p_csl) = 0.
2484         dhr(p_xyl) = 0.
2485         dhr(p_iso) = 0.
2486         dhr(p_hno3) = 8684.
2487         dhr(p_ora1) = 5716.
2488         dhr(p_ora2) = 8374.
2489         dhr(p_nh3)  = 3660.
2490         dhr(p_n2o5) = 0.
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
2495 !     [f0]=1
2496 !--------------------------------------------------
2497         if( chm_is_moz ) then
2498            f0(p_hcho)    = small_value
2499            f0(p_ch3ooh)  = .1
2500            f0(p_ch3oh)   = small_value
2501            f0(p_ch3cooh) = small_value
2502            f0(p_acet)    = small_value
2503            f0(p_c3h6ooh) = .1
2504            f0(p_mpan)    = 1.
2505            f0(p_c2h5oh)  = small_value
2506            f0(p_etooh)   = .1
2507            f0(p_prooh)   = .1
2508            f0(p_acetp)   = .1
2509            f0(p_onit)    = .1
2510            f0(p_onitr)   = .1
2511            f0(p_acetol)  = small_value
2512            f0(p_glyald)  = small_value
2513            f0(p_hydrald) = small_value
2514            f0(p_alkooh)  = .1
2515            f0(p_mekooh)  = .1
2516            f0(p_tolooh)  = .1
2517            f0(p_terpooh) = .1
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
2523              f0(p_sulf) = 0.
2524            end if
2525            
2526            if (config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP ) then
2527              f0(p_cvasoaX) = 0.
2528              f0(p_cvasoa1) = 0.
2529              f0(p_cvasoa2) = 0.
2530              f0(p_cvasoa3) = 0.
2531              f0(p_cvasoa4) = 0.
2532              f0(p_cvbsoaX) = 0.
2533              f0(p_cvbsoa1) = 0.
2534              f0(p_cvbsoa2) = 0.
2535              f0(p_cvbsoa3) = 0.
2536              f0(p_cvbsoa4) = 0.
2537            endif
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
2545            f0(p_ch3ooh)  = .1
2546            f0(p_ch3oh)   = small_value
2547            f0(p_ch3cooh) = small_value
2548            f0(p_ket)    = small_value
2550 !           f0(p_c3h6ooh) = .1
2552            f0(p_mpan)    = .1
2553            f0(p_ru12pan)    = .1
2554            f0(p_rtn26pan)    = .1
2555            f0(p_phan)    = .1
2556            f0(p_ppn)    = .1           
2557            f0(p_c2h5oh)  = small_value
2558 !              f0(p_c3h6ooh) = .1
2559            f0(p_c2h5ooh)   = .1
2560 !           f0(p_ic3h7ooh)   = .1
2561 !           f0(p_acetp)   = .1
2562 !           f0(p_onit)    = .1
2563 !           f0(p_onitr)   = .1
2564 !           f0(p_acetol)  = .1
2565 !           f0(p_glyald)  = .1
2566 !           f0(p_hydrald) = .1
2568                f0(p_hcooh) = .1
2569                f0(p_prooh) = .1
2570                f0(p_hoc2h4ooh) = .1
2571                f0(p_rn10ooh) = .1
2572                f0(p_rn13ooh) = .1
2573                f0(p_rn16ooh) = .1
2574                f0(p_rn19ooh) = .1
2575                f0(p_rn8ooh) = .1
2576                f0(p_rn11ooh) = .1
2577                f0(p_rn14ooh) = .1
2578                f0(p_rn17ooh) = .1
2579                f0(p_rn9ooh) = .1
2580                f0(p_rn12ooh) = .1
2581                f0(p_rn15ooh) = .1
2582                f0(p_rn18ooh) = .1
2583                f0(p_nrn6ooh) = .1
2584                f0(p_nrn9ooh) = .1
2585                f0(p_nrn12ooh) = .1
2586                f0(p_ru14ooh) = .1
2587                f0(p_ru12ooh) = .1
2588                f0(p_ru10ooh) = .1
2589                f0(p_nru14ooh) = .1
2590                f0(p_nru12ooh) = .1
2591                f0(p_ra13ooh) = .1
2592                f0(p_ra16ooh) = .1
2593                f0(p_ra19ooh) = .1
2594                f0(p_rtn28ooh) = .1
2595                f0(p_rtn26ooh) = .1
2596                f0(p_nrtn28ooh) = .1
2597                f0(p_rtn25ooh) = .1
2598                f0(p_rtn24ooh) = .1
2599                f0(p_rtn23ooh) = .1
2600                f0(p_rtn14ooh) = .1
2601                f0(p_rtn10ooh) = .1
2602                f0(p_rcooh25) = .1
2603                f0(p_rtx28ooh) = .1
2604                f0(p_rtx24ooh) = .1
2605                f0(p_rtx22ooh) = .1
2606                f0(p_nrtx28ooh) = .1
2607                f0(p_ra22ooh) = .1
2608                f0(p_ra25ooh) = .1
2609                f0(p_ch3no3) = .1
2610                f0(p_c2h5no3) = .1
2611                f0(p_hoc2h4no3) = .1
2612                f0(p_rn10no3) = .1
2613                f0(p_rn13no3) = .1
2614                f0(p_rn19no3) = .1
2615                f0(p_rn9no3) = .1
2616                f0(p_rn12no3) = .1
2617                f0(p_rn15no3) = .1
2618                f0(p_rn18no3) = .1
2619                f0(p_rn16no3) = .1
2620                f0(p_ru14no3) = .1
2621                f0(p_ra13no3) = .1
2622                f0(p_ra16no3) = .1
2623                f0(p_ra19no3) = .1
2624                f0(p_rtn28no3) = .1
2625                f0(p_rtn25no3) = .1
2626                f0(p_rtx28no3) = .1
2627                f0(p_rtx24no3) = .1
2628                f0(p_rtx22no3) = .1
2629                f0(p_rtn23no3) = .1
2630                f0(p_ra22no3) = .1
2631                f0(p_ra25no3) = .1
2632                f0(p_ic3h7no3) = .1
2633                f0(p_ch3cho)    = 0.
2634                f0(p_c2h5cho)    = 0.
2635                f0(p_hoch2cho)    = 0.
2636                f0(p_carb14)    = 0.
2637                f0(p_carb17)    = 0.     
2638                f0(p_carb7)    = 0.      
2639                f0(p_carb10)    = 0.     
2640                f0(p_carb13)    = 0.     
2641                f0(p_carb16)    = 0.  
2642                f0(p_carb3)    = 0.      
2643                f0(p_carb6)    = 0.      
2644                f0(p_carb9)    = 0.
2645                f0(p_carb12)    = 0.     
2646                f0(p_carb15)    = 0.   
2647                f0(p_ccarb12)    = 0. 
2648                f0(p_ucarb12)    = 0.
2649                f0(p_ucarb10)    = 0.
2650                f0(p_nucarb12)    = 0.
2651                f0(p_udcarb8)    = 0. 
2652                f0(p_udcarb11)    = 0.  
2653                f0(p_udcarb14)    = 0. 
2654                f0(p_tncarb26)    = 0.
2655                f0(p_tncarb10)    = 0. 
2656                f0(p_tncarb15)    = 0.
2657                f0(p_txcarb24)    = 0. 
2658                f0(p_txcarb22)    = 0.
2659                f0(p_carb11a)    = 0.
2660                f0(p_tncarb12)    = 0.
2661                f0(p_tncarb11)    = 0.
2662                f0(p_udcarb17)    = 0.
2663         
2664         else
2665            f0(p_hcho) = 0.
2666            f0(p_onit) = 0.
2667         end if
2668         f0(p_no2)  = 0.1
2669         f0(p_no)   = 0.
2670         f0(p_pan)  = 0.1
2671         f0(p_o3)   = 1.
2672         f0(p_aco3) = 1.
2673         f0(p_tpan) = 0.1
2674         f0(p_hono) = 0.1
2675         f0(p_no3)  = 1.
2676         f0(p_hno4) = 0.1
2677         f0(p_h2o2) = 1.
2678         f0(p_co)   = 0.
2679         f0(p_ald) = 0.
2680         f0(p_op1) = 0.1
2681         f0(p_op2) = 0.1
2682         f0(p_paa) = 0.1
2683         f0(p_ket) = 0.
2684         f0(p_gly) = 0.
2685         f0(p_mgly) = 0.
2686         f0(p_dcb)  = 0.
2687         f0(p_so2) = 0.
2688         f0(p_eth) = 0.
2689         f0(p_hc3) = 0.
2690         f0(p_hc5) = 0.
2691         f0(p_hc8) = 0.
2692         f0(p_olt) = 0.
2693         f0(p_oli) = 0.
2694         f0(p_tol) = 0.
2695         f0(p_csl) = 0.
2696         f0(p_xyl) = 0.
2697         f0(p_iso) = 0.
2698         f0(p_hno3) = 0.
2699         f0(p_ora1) = 0.
2700         f0(p_ora2) = 0.
2701         f0(p_nh3) = 0.
2702         f0(p_n2o5) = 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
2710            dvj(p_o3)      = 0.144
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
2717            dvj(p_paa)     = 0.1147
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
2737            end if
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 ! ??
2750            endif
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
2755            dvj(p_o3)      = 0.144
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
2761            dvj(p_ket)    = 0.1312
2762            dvj(p_paa)     = 0.1147
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
2770             dvj(p_ppn)    = 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
2878         
2879         else
2880            dvj(p_o3)   = 0.175
2881            dvj(p_h2o2) = 0.171
2882            dvj(p_hcho) = 0.183
2883            dvj(p_paa)  = 0.115
2884            dvj(p_onit) = 0.092
2885         end if
2886         dvj(p_no2)  = 0.147
2887         dvj(p_no)   = 0.183
2888         dvj(p_pan)  = 0.091
2889         dvj(p_aco3) = 0.115
2890         dvj(p_tpan) = 0.082
2891         dvj(p_hono) = 0.153
2892         dvj(p_no3)  = 0.127
2893         dvj(p_hno4) = 0.113
2894         dvj(p_co) = 0.189
2895         dvj(p_ald) = 0.151
2896         dvj(p_op1) = 0.144
2897         dvj(p_op2) = 0.127
2898         dvj(p_ket) = 0.118
2899         dvj(p_gly) = 0.131
2900         dvj(p_mgly) = 0.118
2901         dvj(p_dcb)  = 0.107
2902         dvj(p_so2) = 0.126
2903         dvj(p_eth) = 0.183
2904         dvj(p_hc3) = 0.151
2905         dvj(p_hc5) = 0.118
2906         dvj(p_hc8) = 0.094
2907         dvj(p_olt) = 0.154
2908         dvj(p_oli) = 0.121
2909         dvj(p_tol) = 0.104
2910         dvj(p_csl) = 0.096
2911         dvj(p_xyl) = 0.097
2912         dvj(p_iso) = 0.121
2913         dvj(p_hno3) = 0.126
2914         dvj(p_ora1) = 0.153
2915         dvj(p_ora2) = 0.124
2916         dvj(p_nh3) = 0.227
2917         dvj(p_n2o5) = 0.110
2918         dvj(p_ho) = 0.243
2919         dvj(p_ho2) = 0.174
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
2927         f0(p_iepox)=1.0
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
2930         endif
2932         if (p_isopooh.gt.1) then
2933         hstar(p_isopooh)=1.7e6 ! mole/L/atm, based on GEOS-CHem corresponds to RIP
2934         f0(p_isopooh)=1.0
2935         dhr(p_isopooh)=6013.95 !50000/8.314 i.e. 50kJ/mol/8.314
2936         dvj(p_isopooh) =  1.0E-1 !cm2/s
2937         endif
2940 ! HSTAR
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
2987 ! DHR
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
3034 ! F0
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
3081 ! DVJ
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
3128           endif
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
3477         DO l = 1, numgas
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 #)**
3489         END DO
3491 ! start of addition
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
3528         dhr(p_no2) = 2500.
3529         dhr(p_no) = 1480.
3530         dhr(p_pan) = 5760.
3531         dhr(p_o3) = 2300.
3532         dhr(p_form) = 7190.
3533         dhr(p_cxo3) = 6266.
3534         dhr(p_hono) = 3775.
3535         dhr(p_no3) = 0.
3536         dhr(p_pna) = 0.
3537         dhr(p_h2o2) = 6615.
3538         dhr(p_co) = 0.
3539         dhr(p_ald2) = 6266.
3540         dhr(p_aldx) = 6266.
3541         dhr(p_mepx) = 5607.
3542         dhr(p_rooh) = 10240.
3543         dhr(p_pacd) = 6170.
3544         dhr(p_mgly) = 7541.
3545         dhr(p_ntr) = 5487.
3546         dhr(p_so2) = 5816.
3547         dhr(p_etha) = 0.
3548         dhr(p_ole) = 0.
3549         dhr(p_iole) = 0.
3550         dhr(p_tol) = 0.
3551         dhr(p_cres) = 0.
3552         dhr(p_xyl) = 0.
3553         dhr(p_isop) = 0.
3554         dhr(p_hno3) = 8684.
3555         dhr(p_facd) = 5716.
3556         dhr(p_aacd) = 8374.
3557         dhr(p_nh3) = 3660.
3558         dhr(p_n2o5) = 0.
3559         dhr(p_eth) = 0.
3560         dhr(p_par) = 0.   !wig, 1-May-2007: for CB05
3562         f0(p_no2) = 0.1
3563         f0(p_no) = 0.
3564         f0(p_pan) = 0.1
3565         f0(p_o3) = 1.
3566         f0(p_form) = 0.
3567         f0(p_cxo3) = 1.
3568         f0(p_hono) = 0.1
3569         f0(p_no3) = 1.
3570         f0(p_pna) = 0.1
3571         f0(p_h2o2) = 1.
3572         f0(p_co) = 0.
3573         f0(p_ald2) = 0.
3574         f0(p_aldx) = 0.
3575         f0(p_mepx) = 0.1
3576         f0(p_rooh) = 0.1
3577         f0(p_pacd) = 0.1
3578         f0(p_mgly) = 0.
3579         f0(p_ntr) = 0.
3580         f0(p_so2) = 0.
3581         f0(p_etha) = 0.
3582         f0(p_ole) = 0.
3583         f0(p_iole) = 0.
3584         f0(p_tol) = 0.
3585         f0(p_cres) = 0.
3586         f0(p_xyl) = 0.
3587         f0(p_isop) = 0.
3588         f0(p_hno3) = 0.
3589         f0(p_facd) = 0.
3590         f0(p_aacd) = 0.
3591         f0(p_nh3) = 0.
3592         f0(p_n2o5) = 1.
3593         f0(p_eth) = 0.
3594         f0(p_par) = 0.   !wig, 1-May-2007: for CB05
3595         dvj(p_no2) = 0.147
3596         dvj(p_no) = 0.183
3597         dvj(p_pan) = 0.091
3598         dvj(p_o3)   = 0.175
3599         dvj(p_form) = 0.183
3600         dvj(p_cxo3) = 0.115
3601         dvj(p_hono) = 0.153
3602         dvj(p_no3) = 0.127
3603         dvj(p_pna) = 0.113
3604         dvj(p_h2o2) = 0.171
3605         dvj(p_co) = 0.189
3606         dvj(p_ald2) = 0.151
3607         dvj(p_aldx) = 0.151
3608         dvj(p_mepx) = 0.144
3609         dvj(p_rooh) = 0.127
3610         dvj(p_pacd) = 0.115
3611         dvj(p_mgly) = 0.118
3612         dvj(p_ntr) = 0.092
3613         dvj(p_so2) = 0.126
3614         dvj(p_etha) = 0.183
3615         dvj(p_ole) = 0.154
3616         dvj(p_iole) = 0.121
3617         dvj(p_tol) = 0.104
3618         dvj(p_cres) = 0.096
3619         dvj(p_xyl) = 0.097
3620         dvj(p_isop) = 0.121
3621         dvj(p_hno3) = 0.126
3622         dvj(p_facd) = 0.153
3623         dvj(p_aacd) = 0.124
3624         dvj(p_nh3) = 0.227
3625         dvj(p_n2o5) = 0.110
3626         dvj(p_ho) = 0.243
3627         dvj(p_ho2) = 0.174
3628         dvj(p_eth) = 0.189
3629         dvj(p_par) = 0.118   !wig, 1-May-2007: for CB05
3631         DO l = 1, numgas
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 #)**
3639         END DO
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
3677         dhr(p_no2) = 2500.
3678         dhr(p_no) = 1480.
3679         dhr(p_pan) = 5760.
3680         dhr(p_o3) = 2300.
3681         dhr(p_form) = 7190.
3682         dhr(p_cxo3) = 6266.
3683         dhr(p_hono) = 3775.
3684         dhr(p_no3) = 0.
3685         dhr(p_pna) = 0.
3686         dhr(p_h2o2) = 6615.
3687         dhr(p_co) = 0.
3688         dhr(p_ald2) = 6266.
3689         dhr(p_aldx) = 6266.
3690         dhr(p_mepx) = 5607.
3691         dhr(p_rooh) = 10240.
3692         dhr(p_pacd) = 6170.
3693         dhr(p_mgly) = 7541.
3694         dhr(p_ntr) = 5487.
3695         dhr(p_so2) = 5816.
3696         dhr(p_etha) = 0.
3697         dhr(p_ole) = 0.
3698         dhr(p_iole) = 0.
3699         dhr(p_tol) = 0.
3700         dhr(p_cres) = 0.
3701         dhr(p_xyl) = 0.
3702         dhr(p_isop) = 0.
3703         dhr(p_hno3) = 8684.
3704         dhr(p_facd) = 5716.
3705         dhr(p_aacd) = 8374.
3706         dhr(p_nh3) = 3660.
3707         dhr(p_n2o5) = 0.
3708         dhr(p_eth) = 0.
3709         dhr(p_par) = 0.   !wig, 1-May-2007: for CB05
3711         f0(p_no2) = 0.1
3712         f0(p_no) = 0.
3713         f0(p_pan) = 0.1
3714         f0(p_o3) = 1.
3715         f0(p_form) = 0.
3716         f0(p_cxo3) = 1.
3717         f0(p_hono) = 0.1
3718         f0(p_no3) = 1.
3719         f0(p_pna) = 0.1
3720         f0(p_h2o2) = 1.
3721         f0(p_co) = 0.
3722         f0(p_ald2) = 0.
3723         f0(p_aldx) = 0.
3724         f0(p_mepx) = 0.1
3725         f0(p_rooh) = 0.1
3726         f0(p_pacd) = 0.1
3727         f0(p_mgly) = 0.
3728         f0(p_ntr) = 0.
3729         f0(p_so2) = 0.
3730         f0(p_etha) = 0.
3731         f0(p_ole) = 0.
3732         f0(p_iole) = 0.
3733         f0(p_tol) = 0.
3734         f0(p_cres) = 0.
3735         f0(p_xyl) = 0.
3736         f0(p_isop) = 0.
3737         f0(p_hno3) = 0.
3738         f0(p_facd) = 0.
3739         f0(p_aacd) = 0.
3740         f0(p_nh3) = 0.
3741         f0(p_n2o5) = 1.
3742         f0(p_eth) = 0.
3743         f0(p_par) = 0.   !wig, 1-May-2007: for CB05
3744         dvj(p_no2) = 0.147
3745         dvj(p_no) = 0.183
3746         dvj(p_pan) = 0.091
3747         dvj(p_o3)   = 0.175
3748         dvj(p_form) = 0.183
3749         dvj(p_cxo3) = 0.115
3750         dvj(p_hono) = 0.153
3751         dvj(p_no3) = 0.127
3752         dvj(p_pna) = 0.113
3753         dvj(p_h2o2) = 0.171
3754         dvj(p_co) = 0.189
3755         dvj(p_ald2) = 0.151
3756         dvj(p_aldx) = 0.151
3757         dvj(p_mepx) = 0.144
3758         dvj(p_rooh) = 0.127
3759         dvj(p_pacd) = 0.115
3760         dvj(p_mgly) = 0.118
3761         dvj(p_ntr) = 0.092
3762         dvj(p_so2) = 0.126
3763         dvj(p_etha) = 0.183
3764         dvj(p_ole) = 0.154
3765         dvj(p_iole) = 0.121
3766         dvj(p_tol) = 0.104
3767         dvj(p_cres) = 0.096
3768         dvj(p_xyl) = 0.097
3769         dvj(p_isop) = 0.121
3770         dvj(p_hno3) = 0.126
3771         dvj(p_facd) = 0.153
3772         dvj(p_aacd) = 0.124
3773         dvj(p_nh3) = 0.227
3774         dvj(p_n2o5) = 0.110
3775         dvj(p_ho) = 0.243
3776         dvj(p_ho2) = 0.174
3777         dvj(p_eth) = 0.189
3778         dvj(p_par) = 0.118   !wig, 1-May-2007: for CB05
3780         DO l = 1, numgas
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 #)**
3788         END DO
3790 ! end of addition
3792         else is_cbm4_kpp
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)
3818 !     [-DH/R]=K
3820         dhr(p_no2)  = 2500.
3821         dhr(p_no)   = 1480.
3822         dhr(p_pan)  = 5760.
3823         dhr(p_o3)   = 2300.
3824         dhr(p_hcho) = 7190.
3825         dhr(p_hono) = 3775.
3826         dhr(p_no3)  = 0.
3827         dhr(p_h2o2) = 6615.
3828         dhr(p_co)   = 0.
3829         dhr(p_ald2) = 6266.
3830         dhr(p_onit) = 5487.
3831         dhr(p_so2)  = 5816.
3832         dhr(p_eth) = 0.
3833         dhr(p_ole)  = 0.
3834         dhr(p_tol)  = 0.
3835         dhr(p_cres) = 0.
3836         dhr(p_xyl)  = 0.
3837         dhr(p_iso)  = 0.
3838         dhr(p_hno3) = 8684.
3839         dhr(p_nh3)  = 3660.
3840         dhr(p_n2o5) = 0.
3841         dhr(p_par)  = 0.  
3842 !     REACTIVITY FACTORS
3843 !     [f0]=1
3845         f0(p_no2)  = 0.1
3846         f0(p_no)   = 0.
3847         f0(p_pan)  = 0.1
3848         f0(p_o3)   = 1.
3849         f0(p_hcho) = 0.
3850         f0(p_hono) = 0.1
3851         f0(p_no3)  = 1.
3852         f0(p_h2o2) = 1.
3853         f0(p_co)   = 0.
3854         f0(p_ald2) = 0.
3855         f0(p_onit) = 0.
3856         f0(p_so2)  = 0.
3857         f0(p_eth)  = 0.
3858         f0(p_ole)  = 0.
3859         f0(p_tol)  = 0.
3860         f0(p_csl)  = 0.
3861         f0(p_xyl)  = 0.
3862         f0(p_iso)  = 0.
3863         f0(p_hno3) = 0.
3864         f0(p_nh3)  = 0.
3865         f0(p_n2o5) = 1.
3866         f0(p_par)  = 0.   
3867 !     DIFFUSION COEFFICIENTS
3868 !     [DV]=cm2/s (assumed: 1/SQRT(molar mass) when not known)
3870         dvj(p_no2)  = 0.147
3871         dvj(p_no)   = 0.183
3872         dvj(p_pan)  = 0.091
3873         dvj(p_o3)   = 0.175
3874         dvj(p_hcho) = 0.183
3875         dvj(p_hono) = 0.153
3876         dvj(p_no3)  = 0.127
3877         dvj(p_h2o2) = 0.171
3878         dvj(p_co)   = 0.189
3879         dvj(p_ald2) = 0.151
3880         dvj(p_onit) = 0.092
3881         dvj(p_so2)  = 0.126
3882         dvj(p_eth)  = 0.183
3883         dvj(p_ole)  = 0.135
3884         dvj(p_tol)  = 0.104
3885         dvj(p_csl)  = 0.096
3886         dvj(p_xyl)  = 0.097
3887         dvj(p_iso)  = 0.121
3888         dvj(p_hno3) = 0.126
3889         dvj(p_nh3)  = 0.227
3890         dvj(p_n2o5) = 0.110
3891         dvj(p_par)  = 0.118  
3892         DO l = 1, numgas
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 #)**
3901        end DO
3902     end if is_cbm4_kpp
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                  
3914         kpart(1) = 500.
3915 ! dryland cropland and pasture             
3916         kpart(2) = 500.
3917 ! irrigated cropland and pasture           
3918         kpart(3) = 500.
3919 ! mixed dryland/irrigated cropland and past
3920         kpart(4) = 500.
3921 ! cropland/grassland mosaic                
3922         kpart(5) = 500.
3923 ! cropland/woodland mosaic                 
3924         kpart(6) = 100.
3925 ! grassland                                
3926         kpart(7) = 500.
3927 ! shrubland                                
3928         kpart(8) = 500.
3929 ! mixed shrubland/grassland                
3930         kpart(9) = 500.
3931 ! savanna                                  
3932         kpart(10) = 500.
3933 ! deciduous broadleaf forest               
3934         kpart(11) = 100.
3935 ! deciduous needleleaf forest              
3936         kpart(12) = 100.
3937 ! evergreen broadleaf forest               
3938         kpart(13) = 100.
3939 ! evergreen needleleaf forest              
3940         kpart(14) = 100.
3941 ! mixed forest                             
3942         kpart(15) = 100.
3943 ! water bodies                             
3944         kpart(16) = 500.
3945 ! herbaceous wetland                       
3946         kpart(17) = 500.
3947 ! wooded wetland                           
3948         kpart(18) = 500.
3949 ! barren or sparsely vegetated             
3950         kpart(19) = 500.
3951 ! herbaceous tundra                        
3952         kpart(20) = 500.
3953 ! wooded tundra                            
3954         kpart(21) = 100.
3955 ! mixed tundra                             
3956         kpart(22) = 500.
3957 ! bare ground tundra                       
3958         kpart(23) = 500.
3959 ! snow or ice                              
3960         kpart(24) = 500.
3961 !     Comments:
3962         kpart(25) = 500.
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
3967 !     on bare soil by
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
3974 !     pp. 381-390
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
3989 !     the value of 500.
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
4004 !     - A Review
4005 !     JAPCA 37 (1987), 125-134
4006 ! no data                                  
4007 !       WRITE (0,*) ' return from rcread '
4008 !     *********************************************************
4010 !     Simplified landuse scheme for deposition and biogenic emission
4011 !     subroutines
4012 !     (ISWATER and ISICE are already defined elsewhere,
4013 !     therefore water and ice are not considered here)
4015 !     1 urban or bare soil
4016 !     2 agricultural
4017 !     3 grassland
4018 !     4 deciduous forest
4019 !     5 coniferous and mixed forest
4020 !     6 other natural landuse categories
4023         IF (mminlu=='OLD ') THEN
4024           ixxxlu(1) = 1
4025           ixxxlu(2) = 2
4026           ixxxlu(3) = 3
4027           ixxxlu(4) = 4
4028           ixxxlu(5) = 5
4029           ixxxlu(6) = 5
4030           ixxxlu(7) = 0
4031           ixxxlu(8) = 6
4032           ixxxlu(9) = 1
4033           ixxxlu(10) = 6
4034           ixxxlu(11) = 0
4035           ixxxlu(12) = 4
4036           ixxxlu(13) = 6
4037         END IF
4038         IF (mminlu=='USGS') THEN
4039           ixxxlu(1) = 1
4040           ixxxlu(2) = 2
4041           ixxxlu(3) = 2
4042           ixxxlu(4) = 2
4043           ixxxlu(5) = 2
4044           ixxxlu(6) = 4
4045           ixxxlu(7) = 3
4046           ixxxlu(8) = 6
4047           ixxxlu(9) = 3
4048           ixxxlu(10) = 6
4049           ixxxlu(11) = 4
4050           ixxxlu(12) = 5
4051           ixxxlu(13) = 4
4052           ixxxlu(14) = 5
4053           ixxxlu(15) = 5
4054           ixxxlu(16) = 0
4055           ixxxlu(17) = 6
4056           ixxxlu(18) = 4
4057           ixxxlu(19) = 1
4058           ixxxlu(20) = 6
4059           ixxxlu(21) = 4
4060           ixxxlu(22) = 6
4061           ixxxlu(23) = 1
4062           ixxxlu(24) = 0
4063           ixxxlu(25) = 1
4064         END IF
4065         IF (mminlu=='SiB ') THEN
4066           ixxxlu(1) = 4
4067           ixxxlu(2) = 4
4068           ixxxlu(3) = 4
4069           ixxxlu(4) = 5
4070           ixxxlu(5) = 5
4071           ixxxlu(6) = 6
4072           ixxxlu(7) = 3
4073           ixxxlu(8) = 6
4074           ixxxlu(9) = 6
4075           ixxxlu(10) = 6
4076           ixxxlu(11) = 1
4077           ixxxlu(12) = 2
4078           ixxxlu(13) = 6
4079           ixxxlu(14) = 1
4080           ixxxlu(15) = 0
4081           ixxxlu(16) = 0
4082           ixxxlu(17) = 1
4083         END IF
4085 #ifdef NETCDF
4086 !--------------------------------------------------
4087 !       ... check for mozart chemistry
4088 !--------------------------------------------------
4089 !---------------------------------------------------------------------
4090 !       ... open wesely pft netcdf file
4091 !---------------------------------------------------------------------
4092 is_mozart : &
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' )
4102             CALL wrf_abort
4103           endif
4104           write(err_msg,*) 'dep_init: initializing for ',max_dom,' domains'
4105           CALL wrf_message( trim(err_msg) )
4106           seasonal_pft(:)%is_allocated = .false.
4107         endif
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>' )
4115          if( cpos > 0 ) then
4116            filename = ' '
4117            filename = config_flags%wes_seasonal_inname(:cpos-1) // 'd' // id_num(2:3)
4118            cpos = cpos + 8
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)
4122            endif
4123          else
4124            filename = trim( config_flags%wes_seasonal_inname )
4125          endif
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) )
4147         end IF
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' )
4163             call wrf_abort
4164          end if
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' )
4168             call wrf_abort
4169          end if
4170          seasonal_pft(id)%is_allocated = .true.
4171 !---------------------------------------------------------------------
4172 !       ... read array
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) )
4184         end if
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
4192       endif is_mozart
4193 #endif
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 !----------------------------------------------------------------------
4206 !  local variables
4207 !----------------------------------------------------------------------
4208       integer :: m, m1
4209       integer :: astat
4210       character(len=64) :: HL_tbl_name
4211       character(len=64) :: wrf_spc_name
4213 is_allocated : &
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")
4221         endif
4222         HL_ndx(:) = 0
4223         do m = param_first_scalar,numgas
4224           wrf_spc_name = chem_dname_table(1,m)
4225           call upcase( wrf_spc_name )
4226           do m1 = 1,nHLC
4227             HL_tbl_name = HLC(m1)%name
4228             call upcase( HL_tbl_name )
4229             if( trim(HL_tbl_name) == trim(wrf_spc_name) ) then
4230               HL_ndx(m) = m1
4231               exit
4232             endif
4233           end do
4234         end do
4235       endif is_allocated
4237       END SUBROUTINE HL_init
4239 #ifdef NETCDF
4241       subroutine handle_ncerr( ret, mes )
4242 !---------------------------------------------------------------------
4243 !       ... netcdf error handling routine
4244 !---------------------------------------------------------------------
4246       implicit none
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)) )
4259          call wrf_abort
4260       end if
4262       end subroutine handle_ncerr
4263 #endif
4265     END MODULE module_dep_simple