updated top-level README and version_decl for V4.5 (#1847)
[WRF.git] / chem / module_data_mosaic_asect.F
blob72a73fdc4bd9c17fa5db7272a6ea86be23c3472e
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_acomp = 400 ! for additional SOA species changed by Manish Shrivastava on 01/25/10
198         integer, parameter :: maxd_aphase = 2
200         integer, save :: ai_phase = -999888777
201         integer, save :: cw_phase = -999888777
202         integer, save :: ci_phase = -999888777
203         integer, save :: rn_phase = -999888777
204         integer, save :: sn_phase = -999888777
205         integer, save :: gr_phase = -999888777
207         integer, save :: ntype_aer = 0 ! number of types
208         integer, save :: ntot_mastercomp_aer = 0 ! number of master components
209         integer, save :: nphase_aer = 0 ! number of phases
211         integer, save ::   &
212           nsize_aer( maxd_atype ),   & ! number of size bins
213           ncomp_aer( maxd_atype ),   & ! number of chemical components
214           ncomp_plustracer_aer( maxd_atype ),   &
215           mastercompptr_aer(maxd_acomp, maxd_atype), &   !  mastercomp index
216           massptr_aer( maxd_acomp, maxd_asize, maxd_atype, maxd_aphase ), & 
217                 ! index for mixing ratio
218           waterptr_aer( maxd_asize, maxd_atype ), & ! index for aerosol water
219           hyswptr_aer( maxd_asize, maxd_atype ), &
220           numptr_aer( maxd_asize, maxd_atype, maxd_aphase ), & 
221                 ! index for the number mixing ratio
222           mprognum_aer(maxd_asize,maxd_atype,maxd_aphase)
225         real, save ::   &
226           dens_aer( maxd_acomp, maxd_atype ),  &
227           dens_mastercomp_aer( maxd_acomp ),   &
228           mw_mastercomp_aer( maxd_acomp ),     &
229           mw_aer( maxd_acomp, maxd_atype ),    &
230           hygro_mastercomp_aer( maxd_acomp ),  &
231           hygro_aer( maxd_acomp, maxd_atype )
233         real, save ::   &
234           volumcen_sect( maxd_asize, maxd_atype ),  &
235           volumlo_sect( maxd_asize, maxd_atype ),   &
236           volumhi_sect( maxd_asize, maxd_atype ),   &
237           dcen_sect( maxd_asize, maxd_atype ),      &
238           dlo_sect( maxd_asize, maxd_atype ),       &
239           dhi_sect( maxd_asize, maxd_atype ),       &
240           sigmag_aer(maxd_asize, maxd_atype)
242         character*20, save ::   &
243           name_mastercomp_aer( maxd_acomp ),  &
244           name_aer( maxd_acomp, maxd_atype )
249 ! rce 11-sep-2004 - eliminated all of the "..._wrfch" pointers
250 !    so now there is only one set of pointers ("..._amode")
251 ! sg/rce nov-2004 - totally new pointer system  - "..._aer"
254         
255         integer, save ::   &
256           msectional, maerosolincw,   &
257           maerocoag, maerchem, maeroptical, maerchem_boxtest_output
260 !-----------------------------------------------------------------------
261 !   the following arrays are used during "column calculations" within
262 !       mosaic modules
264 !   aqvoldry_sub(n,k,m) = dry-volume (cm^3-aerosol/mole-air) for mode n,
265 !                       layer k, subarea m
266 !   aqmassdry_sub(n,k,m) = dry-mass (g-aerosol/mole-air) for mode n, ...
267 !   adrydens_sub(n,k,m) = dry-density (g-aerosol/cm^3-aerosol) for mode n, ...
268 !                       == amassdry_sub/avoldry_sub
269 !   awetdens_sub(n,k,m) = wet-density (g-aerosol/cm^3-aerosol) for mode n, ...
271 !   admeandry_sub(n,k,m) = current mean dry-diameter (cm) 
272 !       for unactivated aerosol in mode n, layer k, subarea m.  
273 !       (Used in sectional code)
274 !   admeanwet_sub(n,k,m) = current mean wet-diameter (cm) 
275 !       for unactivated aerosol in mode n, layer k, subarea m.  
276 !       (Used in sectional code)
278 !   awetdens_sfc(n,i,j) = wet-density for mode n and k=1.  This value is 
279 !       saved after the second pass thru subr. aerosol_wetsize 
280 !       for use in subr. bounds
281 !   admeanwet_sfc(n,i,j) = mean wet-diameter for mode n and k=1.  
282 !       This value is saved after the second pass thru 
283 !       subr. aerosol_wetsize for use in subr. bounds
286 !   following are used in aerosol growth routine and are locally
287 !   defined for the current layer (k) and subarea (m)
288 !       drymass_pregrow(n) = dry-mass (g/mole-air) for section n
289 !                       before the aerosol growth
290 !       drymass_aftgrow(n) = dry-mass (g/mole-air) for section n
291 !                       after the growth but before inter-section transfer
292 !       drydens_pregrow(n) = dry-density (g/cm3) for section n
293 !                       before the aerosol growth
294 !       drydens_aftgrow(n) = dry-density (g/cm3) for section n
295 !                       after the growth but before inter-section transfer
297 !-----------------------------------------------------------------------
299 !       integer, parameter :: imaxd_asize = 78
300 !       integer, parameter :: jmaxd_asize = 28
301         integer, parameter :: kmaxd_asize = 100
302         integer, parameter :: nsubareamaxd_asize = 5
304 ! rce 22-jul-2006 - added maxd_atype dimension to following 6 arrays
305 !    and changed avoldry_sub,amassdry_sub to aqvoldry_sub,aqmassdry_sub
306         real, save :: aqvoldry_sub( maxd_asize,maxd_atype,kmaxd_asize,nsubareamaxd_asize)
307         real, save :: aqmassdry_sub(maxd_asize,maxd_atype,kmaxd_asize,nsubareamaxd_asize)
308         real, save :: adrydens_sub( maxd_asize,maxd_atype,kmaxd_asize,nsubareamaxd_asize)
309         real, save :: awetdens_sub( maxd_asize,maxd_atype,kmaxd_asize,nsubareamaxd_asize)
310         real, save :: admeandry_sub(maxd_asize,maxd_atype,kmaxd_asize,nsubareamaxd_asize)
311         real, save :: admeanwet_sub(maxd_asize,maxd_atype,kmaxd_asize,nsubareamaxd_asize)
313 !       real, save :: awetdens_sfc(maxd_asize,imaxd_asize,jmaxd_asize)
314 !       real, save :: admeanwet_sfc(maxd_asize,imaxd_asize,jmaxd_asize)
316         real, save :: drymass_pregrow(maxd_asize,maxd_atype)
317         real, save :: drydens_pregrow(maxd_asize,maxd_atype)
318         real, save :: drymass_aftgrow(maxd_asize,maxd_atype)
319         real, save :: drydens_aftgrow(maxd_asize,maxd_atype)
321 ! table lookup of aerosol impaction/interception
322 ! scavenging rates
323         real dlndg_nimptblgrow
324         integer nimptblgrow_mind, nimptblgrow_maxd
325         parameter (nimptblgrow_mind=-7, nimptblgrow_maxd=12)
326         real scavimptblnum(4, nimptblgrow_mind:nimptblgrow_maxd, maxd_asize, maxd_atype), &
327              scavimptblvol(4, nimptblgrow_mind:nimptblgrow_maxd, maxd_asize, maxd_atype)
331 !   water density (g/cm3)
332 !       real, parameter :: dens_water_asize  = 1.0
333         real, parameter :: dens_water_aer  = 1.0
335 !   dry densities (g/cm3)
336         real, parameter :: dens_so4_aer = 1.80
337         real, parameter :: dens_no3_aer = 1.80
338         real, parameter :: dens_cl_aer  = 2.20
339         real, parameter :: dens_msa_aer = 1.80
340         real, parameter :: dens_co3_aer = 2.60
341         real, parameter :: dens_nh4_aer = 1.80
342         real, parameter :: dens_na_aer  = 2.20
343         real, parameter :: dens_ca_aer  = 2.60
344         real, parameter :: dens_oin_aer = 2.60
345         real, parameter :: dens_oc_aer  = 1.00
346         real, parameter :: dens_bc_aer  = 1.70
347         real, parameter :: dens_pcg1_b_c_aer = 1.0
348         real, parameter :: dens_pcg2_b_c_aer = 1.0
349         real, parameter :: dens_pcg3_b_c_aer = 1.0
350         real, parameter :: dens_pcg4_b_c_aer = 1.0
351         real, parameter :: dens_pcg5_b_c_aer = 1.0
352         real, parameter :: dens_pcg6_b_c_aer = 1.0
353         real, parameter :: dens_pcg7_b_c_aer = 1.0
354         real, parameter :: dens_pcg8_b_c_aer = 1.0
355         real, parameter :: dens_pcg9_b_c_aer = 1.0
356         real, parameter :: dens_pcg1_b_o_aer = 1.0
357         real, parameter :: dens_pcg2_b_o_aer = 1.0
358         real, parameter :: dens_pcg3_b_o_aer = 1.0
359         real, parameter :: dens_pcg4_b_o_aer = 1.0
360         real, parameter :: dens_pcg5_b_o_aer = 1.0
361         real, parameter :: dens_pcg6_b_o_aer = 1.0
362         real, parameter :: dens_pcg7_b_o_aer = 1.0
363         real, parameter :: dens_pcg8_b_o_aer = 1.0
364         real, parameter :: dens_pcg9_b_o_aer = 1.0
365         real, parameter :: dens_opcg1_b_c_aer = 1.0
366         real, parameter :: dens_opcg2_b_c_aer = 1.0
367         real, parameter :: dens_opcg3_b_c_aer = 1.0
368         real, parameter :: dens_opcg4_b_c_aer = 1.0
369         real, parameter :: dens_opcg5_b_c_aer = 1.0
370         real, parameter :: dens_opcg6_b_c_aer = 1.0
371         real, parameter :: dens_opcg7_b_c_aer = 1.0
372         real, parameter :: dens_opcg8_b_c_aer = 1.0
373         real, parameter :: dens_opcg1_b_o_aer = 1.0
374         real, parameter :: dens_opcg2_b_o_aer = 1.0
375         real, parameter :: dens_opcg3_b_o_aer = 1.0
376         real, parameter :: dens_opcg4_b_o_aer = 1.0
377         real, parameter :: dens_opcg5_b_o_aer = 1.0
378         real, parameter :: dens_opcg6_b_o_aer = 1.0
379         real, parameter :: dens_opcg7_b_o_aer = 1.0
380         real, parameter :: dens_opcg8_b_o_aer = 1.0
381         real, parameter :: dens_pcg1_f_c_aer = 1.0
382         real, parameter :: dens_pcg2_f_c_aer = 1.0
383         real, parameter :: dens_pcg3_f_c_aer = 1.0
384         real, parameter :: dens_pcg4_f_c_aer = 1.0
385         real, parameter :: dens_pcg5_f_c_aer = 1.0
386         real, parameter :: dens_pcg6_f_c_aer = 1.0
387         real, parameter :: dens_pcg7_f_c_aer = 1.0
388         real, parameter :: dens_pcg8_f_c_aer = 1.0
389         real, parameter :: dens_pcg9_f_c_aer = 1.0
390         real, parameter :: dens_pcg1_f_o_aer = 1.0
391         real, parameter :: dens_pcg2_f_o_aer = 1.0
392         real, parameter :: dens_pcg3_f_o_aer = 1.0
393         real, parameter :: dens_pcg4_f_o_aer = 1.0
394         real, parameter :: dens_pcg5_f_o_aer = 1.0
395         real, parameter :: dens_pcg6_f_o_aer = 1.0
396         real, parameter :: dens_pcg7_f_o_aer = 1.0
397         real, parameter :: dens_pcg8_f_o_aer = 1.0
398         real, parameter :: dens_pcg9_f_o_aer = 1.0
399         real, parameter :: dens_opcg1_f_c_aer = 1.0
400         real, parameter :: dens_opcg2_f_c_aer = 1.0
401         real, parameter :: dens_opcg3_f_c_aer = 1.0
402         real, parameter :: dens_opcg4_f_c_aer = 1.0
403         real, parameter :: dens_opcg5_f_c_aer = 1.0
404         real, parameter :: dens_opcg6_f_c_aer = 1.0
405         real, parameter :: dens_opcg7_f_c_aer = 1.0
406         real, parameter :: dens_opcg8_f_c_aer = 1.0
407         real, parameter :: dens_opcg1_f_o_aer = 1.0
408         real, parameter :: dens_opcg2_f_o_aer = 1.0
409         real, parameter :: dens_opcg3_f_o_aer = 1.0
410         real, parameter :: dens_opcg4_f_o_aer = 1.0
411         real, parameter :: dens_opcg5_f_o_aer = 1.0
412         real, parameter :: dens_opcg6_f_o_aer = 1.0
413         real, parameter :: dens_opcg7_f_o_aer = 1.0
414         real, parameter :: dens_opcg8_f_o_aer = 1.0
415         real, parameter :: dens_smpa_aer = 1.0
416         real, parameter :: dens_smpbb_aer = 1.0
418         real, parameter :: dens_glysoa_r1_aer   = 1.0
419         real, parameter :: dens_glysoa_r2_aer   = 1.0
420         real, parameter :: dens_glysoa_oh_aer   = 1.0
421         real, parameter :: dens_glysoa_nh4_aer   = 1.0
422         real, parameter :: dens_glysoa_sfc_aer   = 1.0
424         real, parameter :: dens_ant1_c_aer = 1.0
425         real, parameter :: dens_ant2_c_aer = 1.0
426         real, parameter :: dens_ant3_c_aer = 1.0
427         real, parameter :: dens_ant4_c_aer = 1.0
428         real, parameter :: dens_ant1_o_aer = 1.0
429         real, parameter :: dens_ant2_o_aer = 1.0
430         real, parameter :: dens_ant3_o_aer = 1.0
431         real, parameter :: dens_ant4_o_aer = 1.0
432         real, parameter :: dens_biog1_c_aer = 1.0
433         real, parameter :: dens_biog2_c_aer = 1.0
434         real, parameter :: dens_biog3_c_aer = 1.0
435         real, parameter :: dens_biog4_c_aer = 1.0
436         real, parameter :: dens_biog1_o_aer = 1.0
437         real, parameter :: dens_biog2_o_aer = 1.0
438         real, parameter :: dens_biog3_o_aer = 1.0
439         real, parameter :: dens_biog4_o_aer = 1.0
441 ! dens based on Murphy and Pandis, ES&T, 2009
442         real, parameter :: dens_asoaX_aer = 1.5
443         real, parameter :: dens_asoa1_aer = 1.5
444         real, parameter :: dens_asoa2_aer = 1.5
445         real, parameter :: dens_asoa3_aer = 1.5
446         real, parameter :: dens_asoa4_aer = 1.5
447         real, parameter :: dens_bsoaX_aer = 1.5
448         real, parameter :: dens_bsoa1_aer = 1.5
449         real, parameter :: dens_bsoa2_aer = 1.5
450         real, parameter :: dens_bsoa3_aer = 1.5
451         real, parameter :: dens_bsoa4_aer = 1.5
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.0
537         real, parameter :: mw_smpbb_aer = 250.0
539         real, parameter :: mw_glysoa_r1_aer   = 250.0
540         real, parameter :: mw_glysoa_r2_aer   = 250.0
541         real, parameter :: mw_glysoa_oh_aer   = 250.0
542         real, parameter :: mw_glysoa_nh4_aer   = 250.0
543         real, parameter :: mw_glysoa_sfc_aer   = 250.0
545         real, parameter :: mw_ant1_c_aer = 250.0
546         real, parameter :: mw_ant2_c_aer = 250.0
547         real, parameter :: mw_ant3_c_aer = 250.0
548         real, parameter :: mw_ant4_c_aer = 250.0
549         real, parameter :: mw_ant1_o_aer = 250.0
550         real, parameter :: mw_ant2_o_aer = 250.0
551         real, parameter :: mw_ant3_o_aer = 250.0
552         real, parameter :: mw_ant4_o_aer = 250.0
553         real, parameter :: mw_biog1_c_aer = 250.0
554         real, parameter :: mw_biog2_c_aer = 250.0
555         real, parameter :: mw_biog3_c_aer = 250.0
556         real, parameter :: mw_biog4_c_aer = 250.0
557         real, parameter :: mw_biog1_o_aer = 250.0
558         real, parameter :: mw_biog2_o_aer = 250.0
559         real, parameter :: mw_biog3_o_aer = 250.0
560         real, parameter :: mw_biog4_o_aer = 250.0
562         real, parameter :: mw_asoaX_aer = 250.0
563         real, parameter :: mw_asoa1_aer = 250.0
564         real, parameter :: mw_asoa2_aer = 250.0
565         real, parameter :: mw_asoa3_aer = 250.0
566         real, parameter :: mw_asoa4_aer = 250.0
567         real, parameter :: mw_bsoaX_aer = 250.0
568         real, parameter :: mw_bsoa1_aer = 250.0
569         real, parameter :: mw_bsoa2_aer = 250.0
570         real, parameter :: mw_bsoa3_aer = 250.0
571         real, parameter :: mw_bsoa4_aer = 250.0
575 !   hygroscopicities (dimensionless)
576         real, parameter :: hygro_so4_aer = 0.5
577         real, parameter :: hygro_no3_aer = 0.5
578         real, parameter :: hygro_ca_aer  = 0.1
579         real, parameter :: hygro_co3_aer = 0.1
580         real, parameter :: hygro_nh4_aer = 0.5
581         real, parameter :: hygro_msa_aer = 0.58
582         real, parameter :: hygro_cl_aer  = 1.16
583         real, parameter :: hygro_na_aer  = 1.16
584         real, parameter :: hygro_oin_aer = 0.068  ! = cam5/mam value, previously 0.14
585         real, parameter :: hygro_oc_aer  = 1.0e-4 ! previously 0.20
586         real, parameter :: hygro_bc_aer  = 1.e-6
587         real, parameter :: hygro_pcg1_b_c_aer = 0.04
588         real, parameter :: hygro_pcg2_b_c_aer = 0.04
589         real, parameter :: hygro_pcg3_b_c_aer = 0.04
590         real, parameter :: hygro_pcg4_b_c_aer = 0.04
591         real, parameter :: hygro_pcg5_b_c_aer = 0.04
592         real, parameter :: hygro_pcg6_b_c_aer = 0.04
593         real, parameter :: hygro_pcg7_b_c_aer = 0.04
594         real, parameter :: hygro_pcg8_b_c_aer = 0.04
595         real, parameter :: hygro_pcg9_b_c_aer = 0.04
596         real, parameter :: hygro_pcg1_b_o_aer = 0.04
597         real, parameter :: hygro_pcg2_b_o_aer = 0.04
598         real, parameter :: hygro_pcg3_b_o_aer = 0.04
599         real, parameter :: hygro_pcg4_b_o_aer = 0.04
600         real, parameter :: hygro_pcg5_b_o_aer = 0.04
601         real, parameter :: hygro_pcg6_b_o_aer = 0.04
602         real, parameter :: hygro_pcg7_b_o_aer = 0.04
603         real, parameter :: hygro_pcg8_b_o_aer = 0.04
604         real, parameter :: hygro_pcg9_b_o_aer = 0.04
605         real, parameter :: hygro_opcg1_b_c_aer = 0.10
606         real, parameter :: hygro_opcg2_b_c_aer = 0.10
607         real, parameter :: hygro_opcg3_b_c_aer = 0.10
608         real, parameter :: hygro_opcg4_b_c_aer = 0.10
609         real, parameter :: hygro_opcg5_b_c_aer = 0.10
610         real, parameter :: hygro_opcg6_b_c_aer = 0.10
611         real, parameter :: hygro_opcg7_b_c_aer = 0.10
612         real, parameter :: hygro_opcg8_b_c_aer = 0.10
613         real, parameter :: hygro_opcg1_b_o_aer = 0.10
614         real, parameter :: hygro_opcg2_b_o_aer = 0.10
615         real, parameter :: hygro_opcg3_b_o_aer = 0.10
616         real, parameter :: hygro_opcg4_b_o_aer = 0.10
617         real, parameter :: hygro_opcg5_b_o_aer = 0.10
618         real, parameter :: hygro_opcg6_b_o_aer = 0.10
619         real, parameter :: hygro_opcg7_b_o_aer = 0.10
620         real, parameter :: hygro_opcg8_b_o_aer = 0.10
621         real, parameter :: hygro_pcg1_f_c_aer = 1.0e-6
622         real, parameter :: hygro_pcg2_f_c_aer = 1.0e-6
623         real, parameter :: hygro_pcg3_f_c_aer = 1.0e-6
624         real, parameter :: hygro_pcg4_f_c_aer = 1.0e-6
625         real, parameter :: hygro_pcg5_f_c_aer = 1.0e-6
626         real, parameter :: hygro_pcg6_f_c_aer = 1.0e-6
627         real, parameter :: hygro_pcg7_f_c_aer = 1.0e-6
628         real, parameter :: hygro_pcg8_f_c_aer = 1.0e-6
629         real, parameter :: hygro_pcg9_f_c_aer = 1.0e-6
630         real, parameter :: hygro_pcg1_f_o_aer = 1.0e-6
631         real, parameter :: hygro_pcg2_f_o_aer = 1.0e-6
632         real, parameter :: hygro_pcg3_f_o_aer = 1.0e-6
633         real, parameter :: hygro_pcg4_f_o_aer = 1.0e-6
634         real, parameter :: hygro_pcg5_f_o_aer = 1.0e-6
635         real, parameter :: hygro_pcg6_f_o_aer = 1.0e-6
636         real, parameter :: hygro_pcg7_f_o_aer = 1.0e-6
637         real, parameter :: hygro_pcg8_f_o_aer = 1.0e-6
638         real, parameter :: hygro_pcg9_f_o_aer = 1.0e-6
639         real, parameter :: hygro_opcg1_f_c_aer = 0.10
640         real, parameter :: hygro_opcg2_f_c_aer = 0.10
641         real, parameter :: hygro_opcg3_f_c_aer = 0.10
642         real, parameter :: hygro_opcg4_f_c_aer = 0.10
643         real, parameter :: hygro_opcg5_f_c_aer = 0.10
644         real, parameter :: hygro_opcg6_f_c_aer = 0.10
645         real, parameter :: hygro_opcg7_f_c_aer = 0.10
646         real, parameter :: hygro_opcg8_f_c_aer = 0.10
647         real, parameter :: hygro_opcg1_f_o_aer = 0.10
648         real, parameter :: hygro_opcg2_f_o_aer = 0.10
649         real, parameter :: hygro_opcg3_f_o_aer = 0.10
650         real, parameter :: hygro_opcg4_f_o_aer = 0.10
651         real, parameter :: hygro_opcg5_f_o_aer = 0.10
652         real, parameter :: hygro_opcg6_f_o_aer = 0.10
653         real, parameter :: hygro_opcg7_f_o_aer = 0.10
654         real, parameter :: hygro_opcg8_f_o_aer = 0.10
655         real, parameter :: hygro_smpa_aer = 0.10
656         real, parameter :: hygro_smpbb_aer = 0.140
658         real, parameter :: hygro_glysoa_r1_aer   = 0.14
659         real, parameter :: hygro_glysoa_r2_aer   = 0.14
660         real, parameter :: hygro_glysoa_oh_aer   = 0.14
661         real, parameter :: hygro_glysoa_nh4_aer   = 0.14
662         real, parameter :: hygro_glysoa_sfc_aer   = 0.14
664         real, parameter :: hygro_ant1_c_aer = 0.10
665         real, parameter :: hygro_ant2_c_aer = 0.10
666         real, parameter :: hygro_ant3_c_aer = 0.10
667         real, parameter :: hygro_ant4_c_aer = 0.10
668         real, parameter :: hygro_ant1_o_aer = 0.10
669         real, parameter :: hygro_ant2_o_aer = 0.10
670         real, parameter :: hygro_ant3_o_aer = 0.10
671         real, parameter :: hygro_ant4_o_aer = 0.10
672         real, parameter :: hygro_biog1_c_aer = 0.10
673         real, parameter :: hygro_biog2_c_aer = 0.10
674         real, parameter :: hygro_biog3_c_aer = 0.10
675         real, parameter :: hygro_biog4_c_aer = 0.10
676         real, parameter :: hygro_biog1_o_aer = 0.10
677         real, parameter :: hygro_biog2_o_aer = 0.10
678         real, parameter :: hygro_biog3_o_aer = 0.10
679         real, parameter :: hygro_biog4_o_aer = 0.10
681         real, parameter :: hygro_asoaX_aer = 0.14
682         real, parameter :: hygro_asoa1_aer = 0.14
683         real, parameter :: hygro_asoa2_aer = 0.14
684         real, parameter :: hygro_asoa3_aer = 0.14
685         real, parameter :: hygro_asoa4_aer = 0.14
686         real, parameter :: hygro_bsoaX_aer = 0.14
687         real, parameter :: hygro_bsoa1_aer = 0.14
688         real, parameter :: hygro_bsoa2_aer = 0.14
689         real, parameter :: hygro_bsoa3_aer = 0.14
690         real, parameter :: hygro_bsoa4_aer = 0.14
694 !   these indices give the location in the "mastercomp list" of
695 !   the different aerosol chemical (or tracer) components
696         integer, save :: mastercompindx_so4_aer = -999888777
697         integer, save :: mastercompindx_no3_aer = -999888777
698         integer, save :: mastercompindx_cl_aer  = -999888777
699         integer, save :: mastercompindx_msa_aer = -999888777
700         integer, save :: mastercompindx_co3_aer = -999888777
701         integer, save :: mastercompindx_nh4_aer = -999888777
702         integer, save :: mastercompindx_na_aer  = -999888777
703         integer, save :: mastercompindx_ca_aer  = -999888777
704         integer, save :: mastercompindx_oin_aer = -999888777
705         integer, save :: mastercompindx_oc_aer  = -999888777
706         integer, save :: mastercompindx_bc_aer  = -999888777
707         integer, save :: mastercompindx_pcg1_b_c_aer = -999888777
708         integer, save :: mastercompindx_pcg2_b_c_aer = -999888777
709         integer, save :: mastercompindx_pcg3_b_c_aer = -999888777
710         integer, save :: mastercompindx_pcg4_b_c_aer = -999888777
711         integer, save :: mastercompindx_pcg5_b_c_aer = -999888777
712         integer, save :: mastercompindx_pcg6_b_c_aer = -999888777
713         integer, save :: mastercompindx_pcg7_b_c_aer = -999888777
714         integer, save :: mastercompindx_pcg8_b_c_aer = -999888777
715         integer, save :: mastercompindx_pcg9_b_c_aer = -999888777
716         integer, save :: mastercompindx_pcg1_b_o_aer = -999888777
717         integer, save :: mastercompindx_pcg2_b_o_aer = -999888777
718         integer, save :: mastercompindx_pcg3_b_o_aer = -999888777
719         integer, save :: mastercompindx_pcg4_b_o_aer = -999888777
720         integer, save :: mastercompindx_pcg5_b_o_aer = -999888777
721         integer, save :: mastercompindx_pcg6_b_o_aer = -999888777
722         integer, save :: mastercompindx_pcg7_b_o_aer = -999888777
723         integer, save :: mastercompindx_pcg8_b_o_aer = -999888777
724         integer, save :: mastercompindx_pcg9_b_o_aer = -999888777
725         integer, save :: mastercompindx_opcg1_b_c_aer = -999888777
726         integer, save :: mastercompindx_opcg2_b_c_aer = -999888777
727         integer, save :: mastercompindx_opcg3_b_c_aer = -999888777
728         integer, save :: mastercompindx_opcg4_b_c_aer = -999888777
729         integer, save :: mastercompindx_opcg5_b_c_aer = -999888777
730         integer, save :: mastercompindx_opcg6_b_c_aer = -999888777
731         integer, save :: mastercompindx_opcg7_b_c_aer = -999888777
732         integer, save :: mastercompindx_opcg8_b_c_aer = -999888777
733         integer, save :: mastercompindx_opcg1_b_o_aer = -999888777
734         integer, save :: mastercompindx_opcg2_b_o_aer = -999888777
735         integer, save :: mastercompindx_opcg3_b_o_aer = -999888777
736         integer, save :: mastercompindx_opcg4_b_o_aer = -999888777
737         integer, save :: mastercompindx_opcg5_b_o_aer = -999888777
738         integer, save :: mastercompindx_opcg6_b_o_aer = -999888777
739         integer, save :: mastercompindx_opcg7_b_o_aer = -999888777
740         integer, save :: mastercompindx_opcg8_b_o_aer = -999888777
741         integer, save :: mastercompindx_pcg1_f_c_aer = -999888777
742         integer, save :: mastercompindx_pcg2_f_c_aer = -999888777
743         integer, save :: mastercompindx_pcg3_f_c_aer = -999888777
744         integer, save :: mastercompindx_pcg4_f_c_aer = -999888777
745         integer, save :: mastercompindx_pcg5_f_c_aer = -999888777
746         integer, save :: mastercompindx_pcg6_f_c_aer = -999888777
747         integer, save :: mastercompindx_pcg7_f_c_aer = -999888777
748         integer, save :: mastercompindx_pcg8_f_c_aer = -999888777
749         integer, save :: mastercompindx_pcg9_f_c_aer = -999888777
750         integer, save :: mastercompindx_pcg1_f_o_aer = -999888777
751         integer, save :: mastercompindx_pcg2_f_o_aer = -999888777
752         integer, save :: mastercompindx_pcg3_f_o_aer = -999888777
753         integer, save :: mastercompindx_pcg4_f_o_aer = -999888777
754         integer, save :: mastercompindx_pcg5_f_o_aer = -999888777
755         integer, save :: mastercompindx_pcg6_f_o_aer = -999888777
756         integer, save :: mastercompindx_pcg7_f_o_aer = -999888777
757         integer, save :: mastercompindx_pcg8_f_o_aer = -999888777
758         integer, save :: mastercompindx_pcg9_f_o_aer = -999888777
759         integer, save :: mastercompindx_opcg1_f_c_aer = -999888777
760         integer, save :: mastercompindx_opcg2_f_c_aer = -999888777
761         integer, save :: mastercompindx_opcg3_f_c_aer = -999888777
762         integer, save :: mastercompindx_opcg4_f_c_aer = -999888777
763         integer, save :: mastercompindx_opcg5_f_c_aer = -999888777
764         integer, save :: mastercompindx_opcg6_f_c_aer = -999888777
765         integer, save :: mastercompindx_opcg7_f_c_aer = -999888777
766         integer, save :: mastercompindx_opcg8_f_c_aer = -999888777
767         integer, save :: mastercompindx_opcg1_f_o_aer = -999888777
768         integer, save :: mastercompindx_opcg2_f_o_aer = -999888777
769         integer, save :: mastercompindx_opcg3_f_o_aer = -999888777
770         integer, save :: mastercompindx_opcg4_f_o_aer = -999888777
771         integer, save :: mastercompindx_opcg5_f_o_aer = -999888777
772         integer, save :: mastercompindx_opcg6_f_o_aer = -999888777
773         integer, save :: mastercompindx_opcg7_f_o_aer = -999888777
774         integer, save :: mastercompindx_opcg8_f_o_aer = -999888777
775         integer, save :: mastercompindx_smpa_aer = -999888777
776         integer, save :: mastercompindx_smpbb_aer = -999888777
778         integer, save :: mastercompindx_glysoa_r1_aer = -999888777
779         integer, save :: mastercompindx_glysoa_r2_aer = -999888777
780         integer, save :: mastercompindx_glysoa_oh_aer = -999888777
781         integer, save :: mastercompindx_glysoa_nh4_aer = -999888777
782         integer, save :: mastercompindx_glysoa_sfc_aer = -999888777
784         integer, save :: mastercompindx_ant1_c_aer = -999888777
785         integer, save :: mastercompindx_ant2_c_aer = -999888777
786         integer, save :: mastercompindx_ant3_c_aer = -999888777
787         integer, save :: mastercompindx_ant4_c_aer = -999888777
788         integer, save :: mastercompindx_ant1_o_aer = -999888777
789         integer, save :: mastercompindx_ant2_o_aer = -999888777
790         integer, save :: mastercompindx_ant3_o_aer = -999888777
791         integer, save :: mastercompindx_ant4_o_aer = -999888777
792         integer, save :: mastercompindx_biog1_c_aer = -999888777
793         integer, save :: mastercompindx_biog2_c_aer = -999888777
794         integer, save :: mastercompindx_biog3_c_aer = -999888777
795         integer, save :: mastercompindx_biog4_c_aer = -999888777
796         integer, save :: mastercompindx_biog1_o_aer = -999888777
797         integer, save :: mastercompindx_biog2_o_aer = -999888777
798         integer, save :: mastercompindx_biog3_o_aer = -999888777
799         integer, save :: mastercompindx_biog4_o_aer = -999888777
801         integer, save :: mastercompindx_asoaX_aer = -999888777
802         integer, save :: mastercompindx_asoa1_aer = -999888777
803         integer, save :: mastercompindx_asoa2_aer = -999888777
804         integer, save :: mastercompindx_asoa3_aer = -999888777
805         integer, save :: mastercompindx_asoa4_aer = -999888777
806         integer, save :: mastercompindx_bsoaX_aer = -999888777
807         integer, save :: mastercompindx_bsoa1_aer = -999888777
808         integer, save :: mastercompindx_bsoa2_aer = -999888777
809         integer, save :: mastercompindx_bsoa3_aer = -999888777
810         integer, save :: mastercompindx_bsoa4_aer = -999888777
814         integer, save ::                     &
815           lptr_so4_aer(maxd_asize, maxd_atype, maxd_aphase),      &
816           lptr_msa_aer(maxd_asize, maxd_atype, maxd_aphase),      &
817           lptr_no3_aer(maxd_asize, maxd_atype, maxd_aphase),      &
818           lptr_cl_aer(maxd_asize, maxd_atype, maxd_aphase),       &
819           lptr_co3_aer(maxd_asize, maxd_atype, maxd_aphase),      &
820           lptr_nh4_aer(maxd_asize, maxd_atype, maxd_aphase),      &
821           lptr_na_aer(maxd_asize, maxd_atype, maxd_aphase),       &
822           lptr_ca_aer(maxd_asize, maxd_atype, maxd_aphase),       &
823           lptr_oin_aer(maxd_asize, maxd_atype, maxd_aphase),      &
824           lptr_oc_aer(maxd_asize, maxd_atype, maxd_aphase),       &
825           lptr_bc_aer(maxd_asize, maxd_atype, maxd_aphase),       &
826           lptr_pcg1_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
827           lptr_pcg2_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
828           lptr_pcg3_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
829           lptr_pcg4_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
830           lptr_pcg5_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
831           lptr_pcg6_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
832           lptr_pcg7_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
833           lptr_pcg8_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
834           lptr_pcg9_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
835           lptr_pcg1_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
836           lptr_pcg2_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
837           lptr_pcg3_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
838           lptr_pcg4_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
839           lptr_pcg5_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
840           lptr_pcg6_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
841           lptr_pcg7_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
842           lptr_pcg8_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
843           lptr_pcg9_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
844           lptr_opcg1_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
845           lptr_opcg2_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
846           lptr_opcg3_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
847           lptr_opcg4_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
848           lptr_opcg5_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
849           lptr_opcg6_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
850           lptr_opcg7_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
851           lptr_opcg8_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
852           lptr_opcg1_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
853           lptr_opcg2_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
854           lptr_opcg3_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
855           lptr_opcg4_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
856           lptr_opcg5_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
857           lptr_opcg6_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
858           lptr_opcg7_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
859           lptr_opcg8_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
860           lptr_pcg1_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
861           lptr_pcg2_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
862           lptr_pcg3_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
863           lptr_pcg4_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
864           lptr_pcg5_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
865           lptr_pcg6_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
866           lptr_pcg7_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
867           lptr_pcg8_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
868           lptr_pcg9_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
869           lptr_pcg1_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
870           lptr_pcg2_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
871           lptr_pcg3_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
872           lptr_pcg4_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
873           lptr_pcg5_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
874           lptr_pcg6_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
875           lptr_pcg7_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
876           lptr_pcg8_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
877           lptr_pcg9_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
878           lptr_opcg1_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
879           lptr_opcg2_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
880           lptr_opcg3_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
881           lptr_opcg4_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
882           lptr_opcg5_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
883           lptr_opcg6_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
884           lptr_opcg7_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
885           lptr_opcg8_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
886           lptr_opcg1_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
887           lptr_opcg2_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
888           lptr_opcg3_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
889           lptr_opcg4_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
890           lptr_opcg5_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
891           lptr_opcg6_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
892           lptr_opcg7_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
893           lptr_opcg8_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
894           lptr_smpa_aer(maxd_asize, maxd_atype, maxd_aphase),    &
895           lptr_smpbb_aer(maxd_asize, maxd_atype, maxd_aphase),    &
897           lptr_glysoa_r1_aer(maxd_asize, maxd_atype, maxd_aphase),   &
898           lptr_glysoa_r2_aer(maxd_asize, maxd_atype, maxd_aphase),   &
899           lptr_glysoa_oh_aer(maxd_asize, maxd_atype, maxd_aphase),   &
900           lptr_glysoa_nh4_aer(maxd_asize, maxd_atype, maxd_aphase),   &
901           lptr_glysoa_sfc_aer(maxd_asize, maxd_atype, maxd_aphase),   &
903           lptr_ant1_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
904           lptr_ant2_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
905           lptr_ant3_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
906           lptr_ant4_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
907           lptr_ant1_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
908           lptr_ant2_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
909           lptr_ant3_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
910           lptr_ant4_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
911           lptr_biog1_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
912           lptr_biog2_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
913           lptr_biog3_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
914           lptr_biog4_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
915           lptr_biog1_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
916           lptr_biog2_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
917           lptr_biog3_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
918           lptr_biog4_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
920           lptr_asoaX_aer(maxd_asize, maxd_atype, maxd_aphase),    &
921           lptr_asoa1_aer(maxd_asize, maxd_atype, maxd_aphase),    &
922           lptr_asoa2_aer(maxd_asize, maxd_atype, maxd_aphase),    &
923           lptr_asoa3_aer(maxd_asize, maxd_atype, maxd_aphase),    &
924           lptr_asoa4_aer(maxd_asize, maxd_atype, maxd_aphase),    &
925           lptr_bsoaX_aer(maxd_asize, maxd_atype, maxd_aphase),    &
926           lptr_bsoa1_aer(maxd_asize, maxd_atype, maxd_aphase),    &
927           lptr_bsoa2_aer(maxd_asize, maxd_atype, maxd_aphase),    &
928           lptr_bsoa3_aer(maxd_asize, maxd_atype, maxd_aphase),    &
929           lptr_bsoa4_aer(maxd_asize, maxd_atype, maxd_aphase)
933         end module module_data_mosaic_asect