Merge branch 'master' into devel
[wrffire.git] / wrfv2_fire / chem / module_data_mosaic_asect.F
blob619544b3e54aabc2446a68a42c47bb004361d2b9
1 !**********************************************************************************  
2 ! This computer software was prepared by Battelle Memorial Institute, hereinafter
3 ! the Contractor, under Contract No. DE-AC05-76RL0 1830 with the Department of 
4 ! Energy (DOE). NEITHER THE GOVERNMENT NOR THE CONTRACTOR MAKES ANY WARRANTY,
5 ! EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY FOR THE USE OF THIS SOFTWARE.
7 ! MOSAIC module: see module_mosaic_driver.F for references and terms of use
8 !**********************************************************************************  
9         module module_data_mosaic_asect
12         implicit none
15 !-----------------------------------------------------------------------
17 !   The variables in this module provide a means of organizing and accessing
18 !   aerosol species in the "chem" array by their chemical component, 
19 !   size bin (or mode), "type", and "phase"
21 !   Their purpose is to allow flexible coding of process modules, 
22 !   compared to "hard-coding" using the chem array p_xxx indices
23 !   (e.g., p_so4_a01, p_so4_a02, ...; p_num_a01, ...)
25 !-----------------------------------------------------------------------
27 !   rce & sg 2004-dec-03 - added phase and type capability,
28 !       which changed this module almost completely
30 !-----------------------------------------------------------------------
32 !   maxd_atype = maximum allowable number of aerosol types
33 !   maxd_asize = maximum allowable number of aerosol size bins
34 !   maxd_acomp = maximum allowable number of chemical components
35 !       in each aerosol size bin
36 !   maxd_aphase = maximum allowable number of aerosol phases 
37 !       (gas, cloud, ice, rain, ...)
39 !   ntype_aer = number of aerosol types
40 !       The aerosol type will allow treatment of an externally mixed 
41 !       aerosol.  The current MOSAIC code has only 1 type, with the implicit
42 !       assumption of internal mixing.  Eventually, multiple types 
43 !       could treat fresh primary BC/OC, fresh SO4 from nucleation, 
44 !       aged BC/OC/SO4/... mixture, soil dust, sea salt, ... 
46 !   nphase_aer = number of aerosol phases
48 !   ai_phase = phase (p) index for interstitial (unactivated) aerosol particles
49 !   cw_phase = phase (p) index for aerosol particles in cloud water
50 !   ci_phase = phase (p) index for aerosol particles in cloud ice
51 !   rn_phase = phase (p) index for aerosol particles in rain
52 !   sn_phase = phase (p) index for aerosol particles in snow
53 !   gr_phase = phase (p) index for aerosol particles in graupel
54 !   [Note:  the value of "xx_phase" will be between 1 and nphase_aer 
55 !       for phases that are active in a simulation.  The others
56 !       will have non-positive values.]
58 !   nsize_aer(t) = number of aerosol size bins for aerosol type t
60 !   ncomp_aer(t) = number of "regular" chemical components for aerosol type t
61 !   ncomp_plustracer_aer(t) = number of "regular" plus "tracer"
62 !       chemical components for aerosol type t
63 !   [Note:  only "regular" components are used for calculating
64 !       aerosol physical (mass, volume) and chemical properties.
65 !       "Tracer" components are optional, and can be used to track source 
66 !       regions, source mechanisms, etc.]
67 !   [Note:  for aerosol type t, all phases have the same number of size
68 !       bins, and all size bins have the same number of 
69 !       both regular and tracer components.]
71 !   ntot_mastercomp_aer = number of aerosol chemical components defined
72 !       in the "master component list".
73 !   [Note:  each aerosol type will use some but not necessarily all
74 !       of the components in the "master component list".]
76 !   mastercompptr_aer(c,t) = the position/index/i.d. in the 
77 !       "master component list" for chemical component c of aerosol type t.
78 !       (1=sulfate, others to be defined by user.)
80 !   massptr_aer(c,s,t,p) = the position/index in the chem array for mixing- 
81 !       ratio for chemical component c, size bin s, type t, and phase p.
83 !   lptr_so4_aer(s,t,p) = the position/index in the chem array for mixing-
84 !       ratio for sulfate for aerosol size bin s, type t, and phase p
85 !   (similar lptr's are defined for no3, cl, msa, co3, 
86 !       nh4, na, ca, oin, oc, bc, ...)
87 !   [Note:  the massptr_aer allow you to loop over all species of 
88 !       an aerosol type.  The lptr_so4_aer, etc., allow you to access
89 !       a specific chemical component.]
91 !   waterptr_aer(s,t) = the position/index in the chem array for mixing-
92 !       ratio of aerosol water content for size bin s, type t.
93 !       [Note:  water content is only carried for the interstitial aerosol
94 !       phase, so there is no p dimension.]
96 !   hyswptr_aer(s,t) = the position/index in the chem array for mixing-
97 !       ratio of aerosol "hysteresis water" content for size bin s, type t.
98 !       This is used to determine if aerosol is in the dry or wet state, when
99 !       the ambient RH is between the crystallization and deliquescence RH.
100 !       [Note:  hysteresis water content is only carried for the 
101 !       interstitial aerosol phase, so there is no p dimension.]
103 !   numptr_aer(s,t,p) = the position/index in the chem array for mixing- 
104 !       ratio of particle number for size bin s, type t, and phase p.
106 !   mprognum_aer(s,t,p) - if positive, number mixing-ratio for size s, type t,
107 !       and phase p will be prognosed.  Otherwise, it is diagnosed using
108 !       mass mixing-ratio add assumed/prescribed size.
110 !       mixing ratio (moles-water/mole-air) for water
111 !       associated with aerosol size bin s and type t
114 !   mastercompindx_so4_aer = the position/index in the 
115 !       "master component list" for sulfate.  
116 !   (similar lptr's are defined for no3, cl, msa, co3, 
117 !       nh4, na, ca, oin, oc, bc, ...)
118 !   [Note:  the mastercompindx_xxx_aer are used primarily in 
119 !       initialization routines, and generally aren't needed elsewhere.]
121 !-----------------------------------------------------------------------
123 !   dens_mastercomp_aer(mc) = dry density (g/cm^3) of component mc 
124 !       of the master component list.
125 !   dens_aer(c,t) = dry density (g/cm^3) of aerosol chemical component 
126 !       c of type t
127 !   [Note:  dens_aer(c,t) == dens_mastercomp_aer(mastercompptr_aer(c,t))
128 !       The dens_mastercomp_aer is used in some initialization routines.
129 !       The dens_aer is used in most other places because of convenience.]
131 !   mw_mastercomp_aer(mc) = molecular weight (g/mole) of component mc 
132 !       of the master component list.
133 !   mw_aer(c,t) = molecular weight (g/mole) of aerosol chemical component 
134 !       c of type t
135 !   [Note:  mw_aer(c,t) == mw_mastercomp_aer(mastercompptr_aer(c,t)) ]
137 !   name_mastercomp_aer(mc) = name of component mc of the 
138 !       master component list (e.g., "sulfate", "nitrate", ...).
139 !   name_aer(c,t) = molecular weight (g/mole) of aerosol chemical component 
140 !       c of type t
141 !   [Note:  name_aer(c,t) == name_mastercomp_aer(mastercompptr_aer(c,t)) ]
143 !   hygro_mastercomp_aer(mc) = bulk hygroscopicity (--) at dilute conditions
144 !       (RH near 100%) of component mc of the master component list.
145 !   hygro_aer(c,t) = bulk hygroscopicity (--) at dilute conditions 
146 !       (RH near 100%) of aerosol chemical component c of type t
147 !   [For definition of bulk hygroscopicity, 
148 !       see Abdul-Razzak and Ghan, 2004, J Geophys Res, V105, p. 6837-6844.]
149 !   [Note:  hygro_aer(c,t) == hygro_mastercomp_aer(mastercompptr_aer(c,t)) ]
151 !-----------------------------------------------------------------------
153 !   volumlo_sect(s,t) = 1-particle volume (cm^3) at lower boundary of section m
154 !   volumhi_sect(s,t) = 1-particle volume (cm^3) at upper boundary of section m
155 !   volumcen_sect(s,t)= 1-particle volume (cm^3) at "center" of section m
157 !   dlo_sect(s,t) = 1-particle diameter (cm) at lower boundary of section m
158 !   dhi_sect(s,t) = 1-particle diameter (cm) at upper boundary of section m
159 !   dcen_sect(s,t) = 1-particle diameter (cm) at "center" section m
161 !   [Note:  the "center" values are defined as follows:
162 !       volumcen_sect == 0.5*(volumlo_sect + volumhi_sect)
163 !                     == (pi/6) * (dcen_sect**3) ]
165 !-----------------------------------------------------------------------
167 !   msectional - if positive, each aerosol size bin is a section.
168 !   if equals 10, use jacobson moving center
169 !   if equals 20, use tzivion mass-number advection 
170 !       if zero/negative, each size bin is a mode (aitken, accumulation, ...)
172 !   maerosolincw - if positive, both unactivated/interstitial and activated
173 !       aerosol species are simulated.  if zero/negative, only the
174 !       unactivated are simulated.  [maerosolincw>0 only when cw_phase>0]
176 !   maerocoag - if positive, aerosol coagulation is done.
177 !       If zero/negative, it is skipped.
178 !       (This is not yet implemented in WRF-Chem.)
180 !   maerchem - if positive, aerosol gas-particle condensation/evaporation
181 !       of inorganic species is done.  If zero/negative, it is skipped.
182 !       (This is not yet implemented in WRF-Chem.)
184 !   maerchem_boxtest_output - if positive, "boxtest" output is done from
185 !       the aerchemistry routine.  If zero/negative, it is skipped.
186 !       (This is not yet implemented in WRF-Chem.)
188 !   maeroptical - if positive, aerosol optical properties are calculated. 
189 !       If zero/negative, it is skipped.
190 !       (This is not yet implemented in WRF-Chem.)
192 !-----------------------------------------------------------------------
194         integer, parameter :: maxd_atype = 1
195         integer, parameter :: maxd_asize = 8
196         integer, parameter :: maxd_acomp = 120 ! for additional SOA species changed by Manish Shrivastava on 01/25/10
197         integer, parameter :: maxd_aphase = 2
199         integer, save :: ai_phase = -999888777
200         integer, save :: cw_phase = -999888777
201         integer, save :: ci_phase = -999888777
202         integer, save :: rn_phase = -999888777
203         integer, save :: sn_phase = -999888777
204         integer, save :: gr_phase = -999888777
206         integer, save :: ntype_aer = 0 ! number of types
207         integer, save :: ntot_mastercomp_aer = 0 ! number of master components
208         integer, save :: nphase_aer = 0 ! number of phases
210         integer, save ::   &
211           nsize_aer( maxd_atype ),   & ! number of size bins
212           ncomp_aer( maxd_atype ),   & ! number of chemical components
213           ncomp_plustracer_aer( maxd_atype ),   &
214           mastercompptr_aer(maxd_acomp, maxd_atype), &   !  mastercomp index
215           massptr_aer( maxd_acomp, maxd_asize, maxd_atype, maxd_aphase ), & 
216                 ! index for mixing ratio
217           waterptr_aer( maxd_asize, maxd_atype ), & ! index for aerosol water
218           hyswptr_aer( maxd_asize, maxd_atype ), &
219           numptr_aer( maxd_asize, maxd_atype, maxd_aphase ), & 
220                 ! index for the number mixing ratio
221           mprognum_aer(maxd_asize,maxd_atype,maxd_aphase)
224 !   these indices give the location in the "mastercomp list" of
225 !   the different aerosol chemical (or tracer) components
226         integer, save :: mastercompindx_so4_aer = -999888777
227         integer, save :: mastercompindx_no3_aer = -999888777
228         integer, save :: mastercompindx_cl_aer  = -999888777
229         integer, save :: mastercompindx_msa_aer = -999888777
230         integer, save :: mastercompindx_co3_aer = -999888777
231         integer, save :: mastercompindx_nh4_aer = -999888777
232         integer, save :: mastercompindx_na_aer  = -999888777
233         integer, save :: mastercompindx_ca_aer  = -999888777
234         integer, save :: mastercompindx_oin_aer = -999888777
235         integer, save :: mastercompindx_oc_aer  = -999888777
236         integer, save :: mastercompindx_bc_aer  = -999888777
237         integer, save :: mastercompindx_pcg1_b_c_aer = -999888777
238         integer, save :: mastercompindx_pcg2_b_c_aer = -999888777
239         integer, save :: mastercompindx_pcg3_b_c_aer = -999888777
240         integer, save :: mastercompindx_pcg4_b_c_aer = -999888777
241         integer, save :: mastercompindx_pcg5_b_c_aer = -999888777
242         integer, save :: mastercompindx_pcg6_b_c_aer = -999888777
243         integer, save :: mastercompindx_pcg7_b_c_aer = -999888777
244         integer, save :: mastercompindx_pcg8_b_c_aer = -999888777
245         integer, save :: mastercompindx_pcg9_b_c_aer = -999888777
246         integer, save :: mastercompindx_pcg1_b_o_aer = -999888777
247         integer, save :: mastercompindx_pcg2_b_o_aer = -999888777
248         integer, save :: mastercompindx_pcg3_b_o_aer = -999888777
249         integer, save :: mastercompindx_pcg4_b_o_aer = -999888777
250         integer, save :: mastercompindx_pcg5_b_o_aer = -999888777
251         integer, save :: mastercompindx_pcg6_b_o_aer = -999888777
252         integer, save :: mastercompindx_pcg7_b_o_aer = -999888777
253         integer, save :: mastercompindx_pcg8_b_o_aer = -999888777
254         integer, save :: mastercompindx_pcg9_b_o_aer = -999888777
255         integer, save :: mastercompindx_opcg1_b_c_aer = -999888777
256         integer, save :: mastercompindx_opcg2_b_c_aer = -999888777
257         integer, save :: mastercompindx_opcg3_b_c_aer = -999888777
258         integer, save :: mastercompindx_opcg4_b_c_aer = -999888777
259         integer, save :: mastercompindx_opcg5_b_c_aer = -999888777
260         integer, save :: mastercompindx_opcg6_b_c_aer = -999888777
261         integer, save :: mastercompindx_opcg7_b_c_aer = -999888777
262         integer, save :: mastercompindx_opcg8_b_c_aer = -999888777
263         integer, save :: mastercompindx_opcg1_b_o_aer = -999888777
264         integer, save :: mastercompindx_opcg2_b_o_aer = -999888777
265         integer, save :: mastercompindx_opcg3_b_o_aer = -999888777
266         integer, save :: mastercompindx_opcg4_b_o_aer = -999888777
267         integer, save :: mastercompindx_opcg5_b_o_aer = -999888777
268         integer, save :: mastercompindx_opcg6_b_o_aer = -999888777
269         integer, save :: mastercompindx_opcg7_b_o_aer = -999888777
270         integer, save :: mastercompindx_opcg8_b_o_aer = -999888777
271         integer, save :: mastercompindx_pcg1_f_c_aer = -999888777
272         integer, save :: mastercompindx_pcg2_f_c_aer = -999888777
273         integer, save :: mastercompindx_pcg3_f_c_aer = -999888777
274         integer, save :: mastercompindx_pcg4_f_c_aer = -999888777
275         integer, save :: mastercompindx_pcg5_f_c_aer = -999888777
276         integer, save :: mastercompindx_pcg6_f_c_aer = -999888777
277         integer, save :: mastercompindx_pcg7_f_c_aer = -999888777
278         integer, save :: mastercompindx_pcg8_f_c_aer = -999888777
279         integer, save :: mastercompindx_pcg9_f_c_aer = -999888777
280         integer, save :: mastercompindx_pcg1_f_o_aer = -999888777
281         integer, save :: mastercompindx_pcg2_f_o_aer = -999888777
282         integer, save :: mastercompindx_pcg3_f_o_aer = -999888777
283         integer, save :: mastercompindx_pcg4_f_o_aer = -999888777
284         integer, save :: mastercompindx_pcg5_f_o_aer = -999888777
285         integer, save :: mastercompindx_pcg6_f_o_aer = -999888777
286         integer, save :: mastercompindx_pcg7_f_o_aer = -999888777
287         integer, save :: mastercompindx_pcg8_f_o_aer = -999888777
288         integer, save :: mastercompindx_pcg9_f_o_aer = -999888777
289         integer, save :: mastercompindx_opcg1_f_c_aer = -999888777
290         integer, save :: mastercompindx_opcg2_f_c_aer = -999888777
291         integer, save :: mastercompindx_opcg3_f_c_aer = -999888777
292         integer, save :: mastercompindx_opcg4_f_c_aer = -999888777
293         integer, save :: mastercompindx_opcg5_f_c_aer = -999888777
294         integer, save :: mastercompindx_opcg6_f_c_aer = -999888777
295         integer, save :: mastercompindx_opcg7_f_c_aer = -999888777
296         integer, save :: mastercompindx_opcg8_f_c_aer = -999888777
297         integer, save :: mastercompindx_opcg1_f_o_aer = -999888777
298         integer, save :: mastercompindx_opcg2_f_o_aer = -999888777
299         integer, save :: mastercompindx_opcg3_f_o_aer = -999888777
300         integer, save :: mastercompindx_opcg4_f_o_aer = -999888777
301         integer, save :: mastercompindx_opcg5_f_o_aer = -999888777
302         integer, save :: mastercompindx_opcg6_f_o_aer = -999888777
303         integer, save :: mastercompindx_opcg7_f_o_aer = -999888777
304         integer, save :: mastercompindx_opcg8_f_o_aer = -999888777
305         integer, save :: mastercompindx_smpa_aer = -999888777
306         integer, save :: mastercompindx_smpbb_aer = -999888777
307         integer, save :: mastercompindx_ant1_c_aer = -999888777
308         integer, save :: mastercompindx_ant2_c_aer = -999888777
309         integer, save :: mastercompindx_ant3_c_aer = -999888777
310         integer, save :: mastercompindx_ant4_c_aer = -999888777
311         integer, save :: mastercompindx_ant1_o_aer = -999888777
312         integer, save :: mastercompindx_ant2_o_aer = -999888777
313         integer, save :: mastercompindx_ant3_o_aer = -999888777
314         integer, save :: mastercompindx_ant4_o_aer = -999888777
315         integer, save :: mastercompindx_biog1_c_aer = -999888777
316         integer, save :: mastercompindx_biog2_c_aer = -999888777
317         integer, save :: mastercompindx_biog3_c_aer = -999888777
318         integer, save :: mastercompindx_biog4_c_aer = -999888777
319         integer, save :: mastercompindx_biog1_o_aer = -999888777
320         integer, save :: mastercompindx_biog2_o_aer = -999888777
321         integer, save :: mastercompindx_biog3_o_aer = -999888777
322         integer, save :: mastercompindx_biog4_o_aer = -999888777
325         real, save ::   &
326           dens_aer( maxd_acomp, maxd_atype ),  &
327           dens_mastercomp_aer( maxd_acomp ),   &
328           mw_mastercomp_aer( maxd_acomp ),     &
329           mw_aer( maxd_acomp, maxd_atype ),    &
330           hygro_mastercomp_aer( maxd_acomp ),  &
331           hygro_aer( maxd_acomp, maxd_atype )
333         real, save ::   &
334           volumcen_sect( maxd_asize, maxd_atype ),  &
335           volumlo_sect( maxd_asize, maxd_atype ),   &
336           volumhi_sect( maxd_asize, maxd_atype ),   &
337           dcen_sect( maxd_asize, maxd_atype ),      &
338           dlo_sect( maxd_asize, maxd_atype ),       &
339           dhi_sect( maxd_asize, maxd_atype ),       &
340           sigmag_aer(maxd_asize, maxd_atype)
342         character*10, save ::   &
343           name_mastercomp_aer( maxd_acomp ),  &
344           name_aer( maxd_acomp, maxd_atype )
346         integer, save ::                     &
347           lptr_so4_aer(maxd_asize, maxd_atype, maxd_aphase),      &
348           lptr_msa_aer(maxd_asize, maxd_atype, maxd_aphase),      &
349           lptr_no3_aer(maxd_asize, maxd_atype, maxd_aphase),      &
350           lptr_cl_aer(maxd_asize, maxd_atype, maxd_aphase),       &
351           lptr_co3_aer(maxd_asize, maxd_atype, maxd_aphase),      &
352           lptr_nh4_aer(maxd_asize, maxd_atype, maxd_aphase),      &
353           lptr_na_aer(maxd_asize, maxd_atype, maxd_aphase),       &
354           lptr_ca_aer(maxd_asize, maxd_atype, maxd_aphase),       &
355           lptr_oin_aer(maxd_asize, maxd_atype, maxd_aphase),      &
356           lptr_oc_aer(maxd_asize, maxd_atype, maxd_aphase),       &
357           lptr_bc_aer(maxd_asize, maxd_atype, maxd_aphase),       &
358           lptr_pcg1_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
359           lptr_pcg2_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
360           lptr_pcg3_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
361           lptr_pcg4_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
362           lptr_pcg5_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
363           lptr_pcg6_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
364           lptr_pcg7_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
365           lptr_pcg8_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
366           lptr_pcg9_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
367           lptr_pcg1_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
368           lptr_pcg2_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
369           lptr_pcg3_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
370           lptr_pcg4_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
371           lptr_pcg5_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
372           lptr_pcg6_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
373           lptr_pcg7_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
374           lptr_pcg8_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
375           lptr_pcg9_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
376           lptr_opcg1_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
377           lptr_opcg2_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
378           lptr_opcg3_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
379           lptr_opcg4_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
380           lptr_opcg5_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
381           lptr_opcg6_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
382           lptr_opcg7_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
383           lptr_opcg8_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
384           lptr_opcg1_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
385           lptr_opcg2_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
386           lptr_opcg3_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
387           lptr_opcg4_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
388           lptr_opcg5_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
389           lptr_opcg6_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
390           lptr_opcg7_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
391           lptr_opcg8_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
392           lptr_pcg1_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
393           lptr_pcg2_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
394           lptr_pcg3_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
395           lptr_pcg4_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
396           lptr_pcg5_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
397           lptr_pcg6_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
398           lptr_pcg7_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
399           lptr_pcg8_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
400           lptr_pcg9_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
401           lptr_pcg1_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
402           lptr_pcg2_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
403           lptr_pcg3_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
404           lptr_pcg4_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
405           lptr_pcg5_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
406           lptr_pcg6_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
407           lptr_pcg7_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
408           lptr_pcg8_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
409           lptr_pcg9_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
410           lptr_opcg1_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
411           lptr_opcg2_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
412           lptr_opcg3_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
413           lptr_opcg4_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
414           lptr_opcg5_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
415           lptr_opcg6_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
416           lptr_opcg7_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
417           lptr_opcg8_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
418           lptr_opcg1_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
419           lptr_opcg2_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
420           lptr_opcg3_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
421           lptr_opcg4_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
422           lptr_opcg5_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
423           lptr_opcg6_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
424           lptr_opcg7_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
425           lptr_opcg8_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
426           lptr_smpa_aer(maxd_asize, maxd_atype, maxd_aphase),    &
427           lptr_smpbb_aer(maxd_asize, maxd_atype, maxd_aphase),    &
428           lptr_ant1_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
429           lptr_ant2_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
430           lptr_ant3_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
431           lptr_ant4_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
432           lptr_ant1_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
433           lptr_ant2_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
434           lptr_ant3_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
435           lptr_ant4_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
436           lptr_biog1_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
437           lptr_biog2_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
438           lptr_biog3_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
439           lptr_biog4_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
440           lptr_biog1_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
441           lptr_biog2_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
442           lptr_biog3_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
443           lptr_biog4_o_aer(maxd_asize, maxd_atype, maxd_aphase)
450 ! rce 11-sep-2004 - eliminated all of the "..._wrfch" pointers
451 !    so now there is only one set of pointers ("..._amode")
452 ! sg/rce nov-2004 - totally new pointer system  - "..._aer"
455 !   molecular weights (g/mol)
456         real, parameter :: mw_so4_aer = 96.066
457         real, parameter :: mw_no3_aer = 62.007
458         real, parameter :: mw_cl_aer  = 35.450
459         real, parameter :: mw_msa_aer = 96.109
460         real, parameter :: mw_co3_aer = 60.007
461         real, parameter :: mw_nh4_aer = 18.042
462         real, parameter :: mw_na_aer  = 22.990
463         real, parameter :: mw_ca_aer  = 40.080
464         real, parameter :: mw_oin_aer = 1.0
465         real, parameter :: mw_oc_aer  = 250.0
466         real, parameter :: mw_bc_aer  = 1.0
467         real, parameter :: mw_water_aer  = 18.016
468         real, parameter :: mw_pcg1_b_c_aer = 250.0
469         real, parameter :: mw_pcg2_b_c_aer = 250.0
470         real, parameter :: mw_pcg3_b_c_aer = 250.0
471         real, parameter :: mw_pcg4_b_c_aer = 250.0
472         real, parameter :: mw_pcg5_b_c_aer = 250.0
473         real, parameter :: mw_pcg6_b_c_aer = 250.0
474         real, parameter :: mw_pcg7_b_c_aer = 250.0
475         real, parameter :: mw_pcg8_b_c_aer = 250.0
476         real, parameter :: mw_pcg9_b_c_aer = 250.0
477         real, parameter :: mw_pcg1_b_o_aer = 250.0
478         real, parameter :: mw_pcg2_b_o_aer = 250.0
479         real, parameter :: mw_pcg3_b_o_aer = 250.0
480         real, parameter :: mw_pcg4_b_o_aer = 250.0
481         real, parameter :: mw_pcg5_b_o_aer = 250.0
482         real, parameter :: mw_pcg6_b_o_aer = 250.0
483         real, parameter :: mw_pcg7_b_o_aer = 250.0
484         real, parameter :: mw_pcg8_b_o_aer = 250.0
485         real, parameter :: mw_pcg9_b_o_aer = 250.0
486         real, parameter :: mw_opcg1_b_c_aer = 250.0
487         real, parameter :: mw_opcg2_b_c_aer = 250.0
488         real, parameter :: mw_opcg3_b_c_aer = 250.0
489         real, parameter :: mw_opcg4_b_c_aer = 250.0
490         real, parameter :: mw_opcg5_b_c_aer = 250.0
491         real, parameter :: mw_opcg6_b_c_aer = 250.0
492         real, parameter :: mw_opcg7_b_c_aer = 250.0
493         real, parameter :: mw_opcg8_b_c_aer = 250.0
494         real, parameter :: mw_opcg1_b_o_aer = 250.0
495         real, parameter :: mw_opcg2_b_o_aer = 250.0
496         real, parameter :: mw_opcg3_b_o_aer = 250.0
497         real, parameter :: mw_opcg4_b_o_aer = 250.0
498         real, parameter :: mw_opcg5_b_o_aer = 250.0
499         real, parameter :: mw_opcg6_b_o_aer = 250.0
500         real, parameter :: mw_opcg7_b_o_aer = 250.0
501         real, parameter :: mw_opcg8_b_o_aer = 250.0
502         real, parameter :: mw_pcg1_f_c_aer = 250.0
503         real, parameter :: mw_pcg2_f_c_aer = 250.0
504         real, parameter :: mw_pcg3_f_c_aer = 250.0
505         real, parameter :: mw_pcg4_f_c_aer = 250.0
506         real, parameter :: mw_pcg5_f_c_aer = 250.0
507         real, parameter :: mw_pcg6_f_c_aer = 250.0
508         real, parameter :: mw_pcg7_f_c_aer = 250.0
509         real, parameter :: mw_pcg8_f_c_aer = 250.0
510         real, parameter :: mw_pcg9_f_c_aer = 250.0
511         real, parameter :: mw_pcg1_f_o_aer = 250.0
512         real, parameter :: mw_pcg2_f_o_aer = 250.0
513         real, parameter :: mw_pcg3_f_o_aer = 250.0
514         real, parameter :: mw_pcg4_f_o_aer = 250.0
515         real, parameter :: mw_pcg5_f_o_aer = 250.0
516         real, parameter :: mw_pcg6_f_o_aer = 250.0
517         real, parameter :: mw_pcg7_f_o_aer = 250.0
518         real, parameter :: mw_pcg8_f_o_aer = 250.0
519         real, parameter :: mw_pcg9_f_o_aer = 250.0
520         real, parameter :: mw_opcg1_f_c_aer = 250.0
521         real, parameter :: mw_opcg2_f_c_aer = 250.0
522         real, parameter :: mw_opcg3_f_c_aer = 250.0
523         real, parameter :: mw_opcg4_f_c_aer = 250.0
524         real, parameter :: mw_opcg5_f_c_aer = 250.0
525         real, parameter :: mw_opcg6_f_c_aer = 250.0
526         real, parameter :: mw_opcg7_f_c_aer = 250.0
527         real, parameter :: mw_opcg8_f_c_aer = 250.0
528         real, parameter :: mw_opcg1_f_o_aer = 250.0
529         real, parameter :: mw_opcg2_f_o_aer = 250.0
530         real, parameter :: mw_opcg3_f_o_aer = 250.0
531         real, parameter :: mw_opcg4_f_o_aer = 250.0
532         real, parameter :: mw_opcg5_f_o_aer = 250.0
533         real, parameter :: mw_opcg6_f_o_aer = 250.0
534         real, parameter :: mw_opcg7_f_o_aer = 250.0
535         real, parameter :: mw_opcg8_f_o_aer = 250.0
536         real, parameter :: mw_smpa_aer = 250
537         real, parameter :: mw_smpbb_aer = 250
538         real, parameter :: mw_ant1_c_aer = 250
539         real, parameter :: mw_ant2_c_aer = 250
540         real, parameter :: mw_ant3_c_aer = 250
541         real, parameter :: mw_ant4_c_aer = 250
542         real, parameter :: mw_ant1_o_aer = 250
543         real, parameter :: mw_ant2_o_aer = 250
544         real, parameter :: mw_ant3_o_aer = 250
545         real, parameter :: mw_ant4_o_aer = 250
546         real, parameter :: mw_biog1_c_aer = 250.0
547         real, parameter :: mw_biog2_c_aer = 250.0
548         real, parameter :: mw_biog3_c_aer = 250.0
549         real, parameter :: mw_biog4_c_aer = 250.0
550         real, parameter :: mw_biog1_o_aer = 250.0
551         real, parameter :: mw_biog2_o_aer = 250.0
552         real, parameter :: mw_biog3_o_aer = 250.0
553         real, parameter :: mw_biog4_o_aer = 250.0
557         
558 !   dry densities (g/cm3)
559         real, parameter :: dens_so4_aer = 1.80
560         real, parameter :: dens_no3_aer = 1.80
561         real, parameter :: dens_cl_aer  = 2.20
562         real, parameter :: dens_msa_aer = 1.80
563         real, parameter :: dens_co3_aer = 2.60
564         real, parameter :: dens_nh4_aer = 1.80
565         real, parameter :: dens_na_aer  = 2.20
566         real, parameter :: dens_ca_aer  = 2.60
567         real, parameter :: dens_oin_aer = 2.60
568         real, parameter :: dens_oc_aer  = 1.00
569         real, parameter :: dens_bc_aer  = 1.70
570         real, parameter :: dens_pcg1_b_c_aer = 1.0
571         real, parameter :: dens_pcg2_b_c_aer = 1.0
572         real, parameter :: dens_pcg3_b_c_aer = 1.0
573         real, parameter :: dens_pcg4_b_c_aer = 1.0
574         real, parameter :: dens_pcg5_b_c_aer = 1.0
575         real, parameter :: dens_pcg6_b_c_aer = 1.0
576         real, parameter :: dens_pcg7_b_c_aer = 1.0
577         real, parameter :: dens_pcg8_b_c_aer = 1.0
578         real, parameter :: dens_pcg9_b_c_aer = 1.0
579         real, parameter :: dens_pcg1_b_o_aer = 1.0
580         real, parameter :: dens_pcg2_b_o_aer = 1.0
581         real, parameter :: dens_pcg3_b_o_aer = 1.0
582         real, parameter :: dens_pcg4_b_o_aer = 1.0
583         real, parameter :: dens_pcg5_b_o_aer = 1.0
584         real, parameter :: dens_pcg6_b_o_aer = 1.0
585         real, parameter :: dens_pcg7_b_o_aer = 1.0
586         real, parameter :: dens_pcg8_b_o_aer = 1.0
587         real, parameter :: dens_pcg9_b_o_aer = 1.0
588         real, parameter :: dens_opcg1_b_c_aer = 1.0
589         real, parameter :: dens_opcg2_b_c_aer = 1.0
590         real, parameter :: dens_opcg3_b_c_aer = 1.0
591         real, parameter :: dens_opcg4_b_c_aer = 1.0
592         real, parameter :: dens_opcg5_b_c_aer = 1.0
593         real, parameter :: dens_opcg6_b_c_aer = 1.0
594         real, parameter :: dens_opcg7_b_c_aer = 1.0
595         real, parameter :: dens_opcg8_b_c_aer = 1.0
596         real, parameter :: dens_opcg1_b_o_aer = 1.0
597         real, parameter :: dens_opcg2_b_o_aer = 1.0
598         real, parameter :: dens_opcg3_b_o_aer = 1.0
599         real, parameter :: dens_opcg4_b_o_aer = 1.0
600         real, parameter :: dens_opcg5_b_o_aer = 1.0
601         real, parameter :: dens_opcg6_b_o_aer = 1.0
602         real, parameter :: dens_opcg7_b_o_aer = 1.0
603         real, parameter :: dens_opcg8_b_o_aer = 1.0
604         real, parameter :: dens_pcg1_f_c_aer = 1.0
605         real, parameter :: dens_pcg2_f_c_aer = 1.0
606         real, parameter :: dens_pcg3_f_c_aer = 1.0
607         real, parameter :: dens_pcg4_f_c_aer = 1.0
608         real, parameter :: dens_pcg5_f_c_aer = 1.0
609         real, parameter :: dens_pcg6_f_c_aer = 1.0
610         real, parameter :: dens_pcg7_f_c_aer = 1.0
611         real, parameter :: dens_pcg8_f_c_aer = 1.0
612         real, parameter :: dens_pcg9_f_c_aer = 1.0
613         real, parameter :: dens_pcg1_f_o_aer = 1.0
614         real, parameter :: dens_pcg2_f_o_aer = 1.0
615         real, parameter :: dens_pcg3_f_o_aer = 1.0
616         real, parameter :: dens_pcg4_f_o_aer = 1.0
617         real, parameter :: dens_pcg5_f_o_aer = 1.0
618         real, parameter :: dens_pcg6_f_o_aer = 1.0
619         real, parameter :: dens_pcg7_f_o_aer = 1.0
620         real, parameter :: dens_pcg8_f_o_aer = 1.0
621         real, parameter :: dens_pcg9_f_o_aer = 1.0
622         real, parameter :: dens_opcg1_f_c_aer = 1.0
623         real, parameter :: dens_opcg2_f_c_aer = 1.0
624         real, parameter :: dens_opcg3_f_c_aer = 1.0
625         real, parameter :: dens_opcg4_f_c_aer = 1.0
626         real, parameter :: dens_opcg5_f_c_aer = 1.0
627         real, parameter :: dens_opcg6_f_c_aer = 1.0
628         real, parameter :: dens_opcg7_f_c_aer = 1.0
629         real, parameter :: dens_opcg8_f_c_aer = 1.0
630         real, parameter :: dens_opcg1_f_o_aer = 1.0
631         real, parameter :: dens_opcg2_f_o_aer = 1.0
632         real, parameter :: dens_opcg3_f_o_aer = 1.0
633         real, parameter :: dens_opcg4_f_o_aer = 1.0
634         real, parameter :: dens_opcg5_f_o_aer = 1.0
635         real, parameter :: dens_opcg6_f_o_aer = 1.0
636         real, parameter :: dens_opcg7_f_o_aer = 1.0
637         real, parameter :: dens_opcg8_f_o_aer = 1.0
638         real, parameter :: dens_smpa_aer = 1.0
639         real, parameter :: dens_smpbb_aer = 1.0
640         real, parameter :: dens_ant1_c_aer = 1.0
641         real, parameter :: dens_ant2_c_aer = 1.0
642         real, parameter :: dens_ant3_c_aer = 1.0
643         real, parameter :: dens_ant4_c_aer = 1.0
644         real, parameter :: dens_ant1_o_aer = 1.0
645         real, parameter :: dens_ant2_o_aer = 1.0
646         real, parameter :: dens_ant3_o_aer = 1.0
647         real, parameter :: dens_ant4_o_aer = 1.0
648         real, parameter :: dens_biog1_c_aer = 1.0
649         real, parameter :: dens_biog2_c_aer = 1.0
650         real, parameter :: dens_biog3_c_aer = 1.0
651         real, parameter :: dens_biog4_c_aer = 1.0
652         real, parameter :: dens_biog1_o_aer = 1.0
653         real, parameter :: dens_biog2_o_aer = 1.0
654         real, parameter :: dens_biog3_o_aer = 1.0
655         real, parameter :: dens_biog4_o_aer = 1.0
659 !   water density (g/cm3)
660 !       real, parameter :: dens_water_asize  = 1.0
661         real, parameter :: dens_water_aer  = 1.0
663 !   hygroscopicities (dimensionless)
664         real, parameter :: hygro_so4_aer = 0.5
665         real, parameter :: hygro_no3_aer = 0.5
666         real, parameter :: hygro_ca_aer  = 0.1
667         real, parameter :: hygro_co3_aer = 0.1
668         real, parameter :: hygro_nh4_aer = 0.5
669         real, parameter :: hygro_msa_aer = 0.58
670         real, parameter :: hygro_cl_aer  = 1.16
671         real, parameter :: hygro_na_aer  = 1.16
672         real, parameter :: hygro_oin_aer = 0.14
673         real, parameter :: hygro_oc_aer  = 0.14
674         real, parameter :: hygro_bc_aer  = 1.e-6
675         real, parameter :: hygro_pcg1_b_c_aer = 0.14
676         real, parameter :: hygro_pcg2_b_c_aer = 0.14
677         real, parameter :: hygro_pcg3_b_c_aer = 0.14
678         real, parameter :: hygro_pcg4_b_c_aer = 0.14
679         real, parameter :: hygro_pcg5_b_c_aer = 0.14
680         real, parameter :: hygro_pcg6_b_c_aer = 0.14
681         real, parameter :: hygro_pcg7_b_c_aer = 0.14
682         real, parameter :: hygro_pcg8_b_c_aer = 0.14
683         real, parameter :: hygro_pcg9_b_c_aer = 0.14
684         real, parameter :: hygro_pcg1_b_o_aer = 0.14
685         real, parameter :: hygro_pcg2_b_o_aer = 0.14
686         real, parameter :: hygro_pcg3_b_o_aer = 0.14
687         real, parameter :: hygro_pcg4_b_o_aer = 0.14
688         real, parameter :: hygro_pcg5_b_o_aer = 0.14
689         real, parameter :: hygro_pcg6_b_o_aer = 0.14
690         real, parameter :: hygro_pcg7_b_o_aer = 0.14
691         real, parameter :: hygro_pcg8_b_o_aer = 0.14
692         real, parameter :: hygro_pcg9_b_o_aer = 0.14
693         real, parameter :: hygro_opcg1_b_c_aer = 0.14
694         real, parameter :: hygro_opcg2_b_c_aer = 0.14
695         real, parameter :: hygro_opcg3_b_c_aer = 0.14
696         real, parameter :: hygro_opcg4_b_c_aer = 0.14
697         real, parameter :: hygro_opcg5_b_c_aer = 0.14
698         real, parameter :: hygro_opcg6_b_c_aer = 0.14
699         real, parameter :: hygro_opcg7_b_c_aer = 0.14
700         real, parameter :: hygro_opcg8_b_c_aer = 0.14
701         real, parameter :: hygro_opcg1_b_o_aer = 0.14
702         real, parameter :: hygro_opcg2_b_o_aer = 0.14
703         real, parameter :: hygro_opcg3_b_o_aer = 0.14
704         real, parameter :: hygro_opcg4_b_o_aer = 0.14
705         real, parameter :: hygro_opcg5_b_o_aer = 0.14
706         real, parameter :: hygro_opcg6_b_o_aer = 0.14
707         real, parameter :: hygro_opcg7_b_o_aer = 0.14
708         real, parameter :: hygro_opcg8_b_o_aer = 0.14
709         real, parameter :: hygro_pcg1_f_c_aer = 0.14
710         real, parameter :: hygro_pcg2_f_c_aer = 0.14
711         real, parameter :: hygro_pcg3_f_c_aer = 0.14
712         real, parameter :: hygro_pcg4_f_c_aer = 0.14
713         real, parameter :: hygro_pcg5_f_c_aer = 0.14
714         real, parameter :: hygro_pcg6_f_c_aer = 0.14
715         real, parameter :: hygro_pcg7_f_c_aer = 0.14
716         real, parameter :: hygro_pcg8_f_c_aer = 0.14
717         real, parameter :: hygro_pcg9_f_c_aer = 0.14
718         real, parameter :: hygro_pcg1_f_o_aer = 0.14
719         real, parameter :: hygro_pcg2_f_o_aer = 0.14
720         real, parameter :: hygro_pcg3_f_o_aer = 0.14
721         real, parameter :: hygro_pcg4_f_o_aer = 0.14
722         real, parameter :: hygro_pcg5_f_o_aer = 0.14
723         real, parameter :: hygro_pcg6_f_o_aer = 0.14
724         real, parameter :: hygro_pcg7_f_o_aer = 0.14
725         real, parameter :: hygro_pcg8_f_o_aer = 0.14
726         real, parameter :: hygro_pcg9_f_o_aer = 0.14
727         real, parameter :: hygro_opcg1_f_c_aer = 0.14
728         real, parameter :: hygro_opcg2_f_c_aer = 0.14
729         real, parameter :: hygro_opcg3_f_c_aer = 0.14
730         real, parameter :: hygro_opcg4_f_c_aer = 0.14
731         real, parameter :: hygro_opcg5_f_c_aer = 0.14
732         real, parameter :: hygro_opcg6_f_c_aer = 0.14
733         real, parameter :: hygro_opcg7_f_c_aer = 0.14
734         real, parameter :: hygro_opcg8_f_c_aer = 0.14
735         real, parameter :: hygro_opcg1_f_o_aer = 0.14
736         real, parameter :: hygro_opcg2_f_o_aer = 0.14
737         real, parameter :: hygro_opcg3_f_o_aer = 0.14
738         real, parameter :: hygro_opcg4_f_o_aer = 0.14
739         real, parameter :: hygro_opcg5_f_o_aer = 0.14
740         real, parameter :: hygro_opcg6_f_o_aer = 0.14
741         real, parameter :: hygro_opcg7_f_o_aer = 0.14
742         real, parameter :: hygro_opcg8_f_o_aer = 0.14
743         real, parameter :: hygro_smpa_aer = 0.14
744         real, parameter :: hygro_smpbb_aer = 0.14
745         real, parameter :: hygro_ant1_c_aer = 0.14
746         real, parameter :: hygro_ant2_c_aer = 0.14
747         real, parameter :: hygro_ant3_c_aer = 0.14
748         real, parameter :: hygro_ant4_c_aer = 0.14
749         real, parameter :: hygro_ant1_o_aer = 0.14
750         real, parameter :: hygro_ant2_o_aer = 0.14
751         real, parameter :: hygro_ant3_o_aer = 0.14
752         real, parameter :: hygro_ant4_o_aer = 0.14
753         real, parameter :: hygro_biog1_c_aer = 0.14
754         real, parameter :: hygro_biog2_c_aer = 0.14
755         real, parameter :: hygro_biog3_c_aer = 0.14
756         real, parameter :: hygro_biog4_c_aer = 0.14
757         real, parameter :: hygro_biog1_o_aer = 0.14
758         real, parameter :: hygro_biog2_o_aer = 0.14
759         real, parameter :: hygro_biog3_o_aer = 0.14
760         real, parameter :: hygro_biog4_o_aer = 0.14
764         integer, save ::   &
765           msectional, maerosolincw,   &
766           maerocoag, maerchem, maeroptical, maerchem_boxtest_output
769 !-----------------------------------------------------------------------
770 !   the following arrays are used during "column calculations" within
771 !       mosaic modules
773 !   aqvoldry_sub(n,k,m) = dry-volume (cm^3-aerosol/mole-air) for mode n,
774 !                       layer k, subarea m
775 !   aqmassdry_sub(n,k,m) = dry-mass (g-aerosol/mole-air) for mode n, ...
776 !   adrydens_sub(n,k,m) = dry-density (g-aerosol/cm^3-aerosol) for mode n, ...
777 !                       == amassdry_sub/avoldry_sub
778 !   awetdens_sub(n,k,m) = wet-density (g-aerosol/cm^3-aerosol) for mode n, ...
780 !   admeandry_sub(n,k,m) = current mean dry-diameter (cm) 
781 !       for unactivated aerosol in mode n, layer k, subarea m.  
782 !       (Used in sectional code)
783 !   admeanwet_sub(n,k,m) = current mean wet-diameter (cm) 
784 !       for unactivated aerosol in mode n, layer k, subarea m.  
785 !       (Used in sectional code)
787 !   awetdens_sfc(n,i,j) = wet-density for mode n and k=1.  This value is 
788 !       saved after the second pass thru subr. aerosol_wetsize 
789 !       for use in subr. bounds
790 !   admeanwet_sfc(n,i,j) = mean wet-diameter for mode n and k=1.  
791 !       This value is saved after the second pass thru 
792 !       subr. aerosol_wetsize for use in subr. bounds
795 !   following are used in aerosol growth routine and are locally
796 !   defined for the current layer (k) and subarea (m)
797 !       drymass_pregrow(n) = dry-mass (g/mole-air) for section n
798 !                       before the aerosol growth
799 !       drymass_aftgrow(n) = dry-mass (g/mole-air) for section n
800 !                       after the growth but before inter-section transfer
801 !       drydens_pregrow(n) = dry-density (g/cm3) for section n
802 !                       before the aerosol growth
803 !       drydens_aftgrow(n) = dry-density (g/cm3) for section n
804 !                       after the growth but before inter-section transfer
806 !-----------------------------------------------------------------------
808 !       integer, parameter :: imaxd_asize = 78
809 !       integer, parameter :: jmaxd_asize = 28
810         integer, parameter :: kmaxd_asize = 100
811         integer, parameter :: nsubareamaxd_asize = 5
813 ! rce 22-jul-2006 - added maxd_atype dimension to following 6 arrays
814 !    and changed avoldry_sub,amassdry_sub to aqvoldry_sub,aqmassdry_sub
815         real, save :: aqvoldry_sub( maxd_asize,maxd_atype,kmaxd_asize,nsubareamaxd_asize)
816         real, save :: aqmassdry_sub(maxd_asize,maxd_atype,kmaxd_asize,nsubareamaxd_asize)
817         real, save :: adrydens_sub( maxd_asize,maxd_atype,kmaxd_asize,nsubareamaxd_asize)
818         real, save :: awetdens_sub( maxd_asize,maxd_atype,kmaxd_asize,nsubareamaxd_asize)
819         real, save :: admeandry_sub(maxd_asize,maxd_atype,kmaxd_asize,nsubareamaxd_asize)
820         real, save :: admeanwet_sub(maxd_asize,maxd_atype,kmaxd_asize,nsubareamaxd_asize)
822 !       real, save :: awetdens_sfc(maxd_asize,imaxd_asize,jmaxd_asize)
823 !       real, save :: admeanwet_sfc(maxd_asize,imaxd_asize,jmaxd_asize)
825         real, save :: drymass_pregrow(maxd_asize,maxd_atype)
826         real, save :: drydens_pregrow(maxd_asize,maxd_atype)
827         real, save :: drymass_aftgrow(maxd_asize,maxd_atype)
828         real, save :: drydens_aftgrow(maxd_asize,maxd_atype)
830 ! table lookup of aerosol impaction/interception
831 ! scavenging rates
832         real dlndg_nimptblgrow
833         integer nimptblgrow_mind, nimptblgrow_maxd
834         parameter (nimptblgrow_mind=-7, nimptblgrow_maxd=12)
835         real scavimptblnum(4, nimptblgrow_mind:nimptblgrow_maxd, maxd_asize, maxd_atype), &
836              scavimptblvol(4, nimptblgrow_mind:nimptblgrow_maxd, maxd_asize, maxd_atype)
839         end module module_data_mosaic_asect