Update version info for release v4.6.1 (#2122)
[WRF.git] / chem / module_data_mosaic_asecthp.F
blob8435b535ccd11a11ad8e968e963ea245d663db20
1       module module_data_mosaic_asecthp
2 !-----------------------------------------------------------------------
4 ! 2015-06-09 r.c.easter - changes to the MOSAIC box model version for use in WRF-Chem  
6 !-----------------------------------------------------------------------
8       use module_data_mosaic_kind, only:  r8
9       use module_data_mosaic_aero, only:  naer, nbin_a_max, ngas_aerchtot
11       implicit none
13 !-----------------------------------------------------------------------
15 !   The variables in this module provide a means of organizing and accessing
16 !   aerosol species in the "chem" array by their chemical component, 
17 !   size bin (or mode), "type", and "phase"
19 !   Their purpose is to allow flexible coding of process modules, 
20 !   compared to "hard-coding" using the chem array p_xxx indices
21 !   (e.g., p_so4_a01, p_so4_a02, ...; p_num_a01, ...)
23 !-----------------------------------------------------------------------
25 !   rce & sg 2004-dec-03 - added phase and type capability,
26 !       which changed this module almost completely
28 !-----------------------------------------------------------------------
30 !   maxd_atype = maximum allowable number of aerosol types
31 !   maxd_asize = maximum allowable number of aerosol size bins
32 !   maxd_acomp = maximum allowable number of chemical components
33 !       in each aerosol size bin
34 !   maxd_aphase = maximum allowable number of aerosol phases 
35 !       (gas, cloud, ice, rain, ...)
37 !   ntype_aer = number of aerosol types
38 !       The aerosol type will allow treatment of an externally mixed 
39 !       aerosol.  The current MOSAIC code has only 1 type, with the implicit
40 !       assumption of internal mixing.  Eventually, multiple types 
41 !       could treat fresh primary BC/OC, fresh SO4 from nucleation, 
42 !       aged BC/OC/SO4/... mixture, soil dust, sea salt, ... 
44 !   nphase_aer = number of aerosol phases
46 !   ai_phase = phase (p) index for interstitial (unactivated) aerosol particles
47 !   cw_phase = phase (p) index for aerosol particles in cloud water
48 !   ci_phase = phase (p) index for aerosol particles in cloud ice
49 !   rn_phase = phase (p) index for aerosol particles in rain
50 !   sn_phase = phase (p) index for aerosol particles in snow
51 !   gr_phase = phase (p) index for aerosol particles in graupel
52 !   [Note:  the value of "xx_phase" will be between 1 and nphase_aer 
53 !       for phases that are active in a simulation.  The others
54 !       will have non-positive values.]
56 !   nsize_aer(t) = number of aerosol size bins for aerosol type t
58 !   ncomp_aer(t) = number of "regular" chemical components for aerosol type t
59 !   ncomp_plustracer_aer(t) = number of "regular" plus "tracer"
60 !       chemical components for aerosol type t
61 !   [Note:  only "regular" components are used for calculating
62 !       aerosol physical (mass, volume) and chemical properties.
63 !       "Tracer" components are optional, and can be used to track source 
64 !       regions, source mechanisms, etc.]
65 !   [Note:  for aerosol type t, all phases have the same number of size
66 !       bins, and all size bins have the same number of 
67 !       both regular and tracer components.]
69 !   ntot_mastercomp_aer = number of aerosol chemical components defined
70 !       in the "master component list".
71 !   [Note:  each aerosol type will use some but not necessarily all
72 !       of the components in the "master component list".]
74 !   mastercompptr_aer(c,t) = the position/index/i.d. in the 
75 !       "master component list" for chemical component c of aerosol type t.
76 !       (1=sulfate, others to be defined by user.)
78 !   massptr_aer(c,s,t,p) = the position/index in the chem array for mixing- 
79 !       ratio for chemical component c, size bin s, type t, and phase p.
81 !   lptr_so4_aer(s,t,p) = the position/index in the chem array for mixing-
82 !       ratio for sulfate for aerosol size bin s, type t, and phase p
83 !   (similar lptr's are defined for no3, cl, msa, co3, 
84 !       nh4, na, ca, oin, oc, bc, ...)
85 !   [Note:  the massptr_aer allow you to loop over all species of 
86 !       an aerosol type.  The lptr_so4_aer, etc., allow you to access
87 !       a specific chemical component.]
89 !   waterptr_aer(s,t) = the position/index in the chem array for mixing-
90 !       ratio of aerosol water content for size bin s, type t.
91 !       [Note:  water content is only carried for the interstitial aerosol
92 !       phase, so there is no p dimension.]
94 !   hyswptr_aer(s,t) = the position/index in the chem array for mixing-
95 !       ratio of aerosol "hysteresis water" content for size bin s, type t.
96 !       This is used to determine if aerosol is in the dry or wet state, when
97 !       the ambient RH is between the crystallization and deliquescence RH.
98 !       [Note:  hysteresis water content is only carried for the 
99 !       interstitial aerosol phase, so there is no p dimension.]
101 !   numptr_aer(s,t,p) = the position/index in the chem array for mixing- 
102 !       ratio of particle number for size bin s, type t, and phase p.
104 !   mprognum_aer(s,t,p) - if positive, number mixing-ratio for size s, type t,
105 !       and phase p will be prognosed.  Otherwise, it is diagnosed using
106 !       mass mixing-ratio add assumed/prescribed size.
108 !       mixing ratio (moles-water/mole-air) for water
109 !       associated with aerosol size bin s and type t
112 !   mastercompindx_so4_aer = the position/index in the 
113 !       "master component list" for sulfate.  
114 !   (similar lptr's are defined for no3, cl, msa, co3, 
115 !       nh4, na, ca, oin, oc, bc, ...)
116 !   [Note:  the mastercompindx_xxx_aer are used primarily in 
117 !       initialization routines, and generally aren't needed elsewhere.]
119 !-----------------------------------------------------------------------
121 !   dens_mastercomp_aer(mc) = dry density (g/cm^3) of component mc 
122 !       of the master component list.
123 !   dens_aer(c,t) = dry density (g/cm^3) of aerosol chemical component 
124 !       c of type t
125 !   [Note:  dens_aer(c,t) == dens_mastercomp_aer(mastercompptr_aer(c,t))
126 !       The dens_mastercomp_aer is used in some initialization routines.
127 !       The dens_aer is used in most other places because of convenience.]
129 !   mw_mastercomp_aer(mc) = molecular weight (g/mole) of component mc 
130 !       of the master component list.
131 !   mw_aer(c,t) = molecular weight (g/mole) of aerosol chemical component 
132 !       c of type t
133 !   [Note:  mw_aer(c,t) == mw_mastercomp_aer(mastercompptr_aer(c,t)) ]
135 !   name_mastercomp_aer(mc) = name of component mc of the 
136 !       master component list (e.g., "sulfate", "nitrate", ...).
137 !   name_aer(c,t) = molecular weight (g/mole) of aerosol chemical component 
138 !       c of type t
139 !   [Note:  name_aer(c,t) == name_mastercomp_aer(mastercompptr_aer(c,t)) ]
141 !   hygro_mastercomp_aer(mc) = bulk hygroscopicity (--) at dilute conditions
142 !       (RH near 100%) of component mc of the master component list.
143 !   hygro_aer(c,t) = bulk hygroscopicity (--) at dilute conditions 
144 !       (RH near 100%) of aerosol chemical component c of type t
145 !   [For definition of bulk hygroscopicity, 
146 !       see Abdul-Razzak and Ghan, 2004, J Geophys Res, V105, p. 6837-6844.]
147 !   [Note:  hygro_aer(c,t) == hygro_mastercomp_aer(mastercompptr_aer(c,t)) ]
149 !-----------------------------------------------------------------------
151 !   volumlo_sect(s,t) = 1-particle volume (cm^3) at lower boundary of section m
152 !   volumhi_sect(s,t) = 1-particle volume (cm^3) at upper boundary of section m
153 !   volumcen_sect(s,t)= 1-particle volume (cm^3) at "center" of section m
155 !   dlo_sect(s,t) = 1-particle diameter (cm) at lower boundary of section m
156 !   dhi_sect(s,t) = 1-particle diameter (cm) at upper boundary of section m
157 !   dcen_sect(s,t) = 1-particle diameter (cm) at "center" section m
159 !   [Note:  the "center" values are defined as follows:
160 !       volumcen_sect == 0.5*(volumlo_sect + volumhi_sect)
161 !                     == (pi/6) * (dcen_sect**3) ]
163 !-----------------------------------------------------------------------
165         integer, parameter :: maxd_atype = 1
166         integer, parameter :: maxd_atype_md1 = 1
167         integer, parameter :: maxd_atype_md2 = 1
169         integer, parameter :: maxd_asize = 8
170         integer, parameter :: maxd_acomp = 120 ! for additional SOA species changed by Manish Shrivastava on 01/25/10
171         integer, parameter :: maxd_aphase = 2
173         integer, save :: ai_phase = -999888777
174         integer, save :: cw_phase = -999888777
175         integer, save :: ci_phase = -999888777
176         integer, save :: rn_phase = -999888777
177         integer, save :: sn_phase = -999888777
178         integer, save :: gr_phase = -999888777
180         integer, save :: ntype_aer = 0 ! number of types
181         integer, save :: ntot_mastercomp_aer = 0 ! number of master components
182         integer, save :: nphase_aer = 0 ! number of phases
184                                                           ! currently these must all be positive, but that could change
185         integer, parameter :: identical_comps_optaa  = 1  ! when positive, all aerosol types must have same chemical components
186         integer, parameter :: identical_phases_optaa = 1  ! when positive, all aerosol types must have same phases
187         integer, parameter :: identical_sizes_optaa  = 1  ! when positive, all aerosol types must have same sizes
190         integer, save ::   &
191           nsize_aer( maxd_atype ),   & ! number of size bins
192           ncomp_aer( maxd_atype ),   & ! number of chemical components
193           ncomp_plustracer_aer( maxd_atype ),   &
194           mastercompptr_aer(maxd_acomp, maxd_atype), &         !  mastercomp index
195           massptr_aer( maxd_acomp, maxd_asize, maxd_atype, maxd_aphase ), & 
196                 ! index for mixing ratio
197           waterptr_aer( maxd_asize, maxd_atype ), &            ! index for aerosol water
198           hyswptr_aer( maxd_asize, maxd_atype ), &
199           numptr_aer( maxd_asize, maxd_atype, maxd_aphase ), & ! index for the number mixing ratio
200           mprognum_aer(maxd_asize,maxd_atype,maxd_aphase)
202       integer, save :: ntype_md1_aer = 0 ! number of md1 types
203       integer, save :: ntype_md2_aer = 0 ! number of md2 types
205       integer, save ::   &
206          ibin_of_isize_itype(maxd_asize,maxd_atype), &
207          isize_of_ibin(nbin_a_max), &
208          itype_of_ibin(nbin_a_max), &
209          itype_of_itype_md1md2(maxd_atype_md1,maxd_atype_md2), &
210          itype_md1_of_itype(maxd_atype), &
211          itype_md2_of_itype(maxd_atype)
213       integer, save :: lunerr=-1, lunout=-1
215       integer, save ::   &
216          rbox_aer_ptr(-3:naer,nbin_a_max),  &   ! maps aerosol species between rbox and aer, num_a, water_a arrays
217          rbox_gas_ptr(ngas_aerchtot)            ! maps gas     species between rbox and gas arrays
220       logical, save ::   &
221           is_tracer_mastercomp_aer(  maxd_acomp )
224       real(r8), save ::   &
225          dens_aer( maxd_acomp, maxd_atype ),  &
226          dens_mastercomp_aer( maxd_acomp ),   &
227          mw_mastercomp_aer( maxd_acomp ),     &
228          mw_aer( maxd_acomp, maxd_atype ),    &
229          hygro_mastercomp_aer( maxd_acomp ),  &
230          hygro_aer( maxd_acomp, maxd_atype )
232       real(r8), save ::   &
233          volumcen_sect( maxd_asize, maxd_atype ),  &
234          volumlo_sect( maxd_asize, maxd_atype ),   &
235          volumhi_sect( maxd_asize, maxd_atype ),   &
236          dcen_sect( maxd_asize, maxd_atype ),      &
237          dlo_sect( maxd_asize, maxd_atype ),       &
238          dhi_sect( maxd_asize, maxd_atype ),       &
239          sigmag_aer(maxd_asize, maxd_atype)
241       real(r8), save ::   &
242          volumcut_sect( 0:maxd_asize, maxd_atype ),  &
243          dcut_sect( 0:maxd_asize, maxd_atype )
245 ! these are the cut values that separate the "md1" and "md2" types
246 ! for example, the bc mass fraction (itype_md1) is between
247 !    xcut_atype_md1(0) and xcut_atype_md1(1) for itype_md1=1
248 !    xcut_atype_md1(1) and xcut_atype_md1(2) for itype_md1=2
249       real(r8), save ::    &
250          xcut_atype_md1(0:maxd_atype_md1),   &
251          xcut_atype_md2(0:maxd_atype_md2)
254         character*20, save ::   &
255           name_mastercomp_aer( maxd_acomp ),   &
256           sname_mastercomp_aer( maxd_acomp ),  &
257           name_aer( maxd_acomp, maxd_atype ),  &
258           sname_aer( maxd_acomp, maxd_atype )
260         character*20, save ::   &
261           phase_chars_aer( maxd_acomp ),  &
262           type_chars_aer( maxd_acomp )
265 !-----------------------------------------------------------------------
266 !   following are used in movesect, newnuc, and coag routines
267 !   to identify bins with essentially negligible mass
269 !   if bin mass mixrat < smallmassaa (1.0e-22 g/g-air), 
270 !   then assume no growth AND no water AND conform number so that size is within bin limits
271 !       real(r8), parameter :: smallmassaa = 1.0e-22_r8
272         real,     parameter :: smallmassaa = 1.0e-22
273 !   if bin mass mixrat < smallmassab (1.0e-32 g/g-air),
274 !   then assume default density to avoid divide by zero
275 !       real(r8), parameter :: smallmassbb = 1.0e-32_r8
276         real,     parameter :: smallmassbb = 1.0e-32
278 !   with single-particle diameter = 1 nm and mass ~1e-21 g, 
279 !       and number = 1e-4 #/cm3 ~= 1e-1 #/g-air, the mass mixing ratio ~= 1e-22 g/g-air
280 !   for simulations focusing on nucleation and ultrafine particles, 
281 !      one might want to use reduce smallmassaa 
282 !-----------------------------------------------------------------------
286 !   water density (g/cm3)
287 !       real, parameter :: dens_water_asize  = 1.0
288         real, parameter :: dens_water_aer  = 1.0
290 !   aerosol component dry densities (g/cm3)
291         real, parameter :: dens_so4_aer = 1.80
292         real, parameter :: dens_no3_aer = 1.80
293         real, parameter :: dens_cl_aer  = 2.20
294         real, parameter :: dens_msa_aer = 1.80
295         real, parameter :: dens_co3_aer = 2.60
296         real, parameter :: dens_nh4_aer = 1.80
297         real, parameter :: dens_na_aer  = 2.20
298         real, parameter :: dens_ca_aer  = 2.60
299         real, parameter :: dens_oin_aer = 2.60
300 !       real, parameter :: dens_dust_aer = 2.60
301 !       real, parameter :: dens_tr1r1_aer = 2.60
302 !       real, parameter :: dens_tr1r2_aer = 2.60
303 !       real, parameter :: dens_tr1r3_aer = 2.60
304 !       real, parameter :: dens_tr1r4_aer = 2.60
305         real, parameter :: dens_oc_aer  = 1.00
306         real, parameter :: dens_bc_aer  = 1.70
307 !       real, parameter :: dens_tanv_aer  = 1.00
308 !       real, parameter :: dens_sopnv_aer  = 1.00
309 !       real, parameter :: dens_ternv_aer  = 1.00
310 !       real, parameter :: dens_seqnv_aer  = 1.00
311 !       real, parameter :: dens_sianv_aer  = 1.00
312         real, parameter :: dens_pcg1_b_c_aer = 1.0
313         real, parameter :: dens_pcg2_b_c_aer = 1.0
314         real, parameter :: dens_pcg3_b_c_aer = 1.0
315         real, parameter :: dens_pcg4_b_c_aer = 1.0
316         real, parameter :: dens_pcg5_b_c_aer = 1.0
317         real, parameter :: dens_pcg6_b_c_aer = 1.0
318         real, parameter :: dens_pcg7_b_c_aer = 1.0
319         real, parameter :: dens_pcg8_b_c_aer = 1.0
320         real, parameter :: dens_pcg9_b_c_aer = 1.0
321         real, parameter :: dens_pcg1_b_o_aer = 1.0
322         real, parameter :: dens_pcg2_b_o_aer = 1.0
323         real, parameter :: dens_pcg3_b_o_aer = 1.0
324         real, parameter :: dens_pcg4_b_o_aer = 1.0
325         real, parameter :: dens_pcg5_b_o_aer = 1.0
326         real, parameter :: dens_pcg6_b_o_aer = 1.0
327         real, parameter :: dens_pcg7_b_o_aer = 1.0
328         real, parameter :: dens_pcg8_b_o_aer = 1.0
329         real, parameter :: dens_pcg9_b_o_aer = 1.0
330         real, parameter :: dens_opcg1_b_c_aer = 1.0
331         real, parameter :: dens_opcg2_b_c_aer = 1.0
332         real, parameter :: dens_opcg3_b_c_aer = 1.0
333         real, parameter :: dens_opcg4_b_c_aer = 1.0
334         real, parameter :: dens_opcg5_b_c_aer = 1.0
335         real, parameter :: dens_opcg6_b_c_aer = 1.0
336         real, parameter :: dens_opcg7_b_c_aer = 1.0
337         real, parameter :: dens_opcg8_b_c_aer = 1.0
338         real, parameter :: dens_opcg1_b_o_aer = 1.0
339         real, parameter :: dens_opcg2_b_o_aer = 1.0
340         real, parameter :: dens_opcg3_b_o_aer = 1.0
341         real, parameter :: dens_opcg4_b_o_aer = 1.0
342         real, parameter :: dens_opcg5_b_o_aer = 1.0
343         real, parameter :: dens_opcg6_b_o_aer = 1.0
344         real, parameter :: dens_opcg7_b_o_aer = 1.0
345         real, parameter :: dens_opcg8_b_o_aer = 1.0
346         real, parameter :: dens_pcg1_f_c_aer = 1.0
347         real, parameter :: dens_pcg2_f_c_aer = 1.0
348         real, parameter :: dens_pcg3_f_c_aer = 1.0
349         real, parameter :: dens_pcg4_f_c_aer = 1.0
350         real, parameter :: dens_pcg5_f_c_aer = 1.0
351         real, parameter :: dens_pcg6_f_c_aer = 1.0
352         real, parameter :: dens_pcg7_f_c_aer = 1.0
353         real, parameter :: dens_pcg8_f_c_aer = 1.0
354         real, parameter :: dens_pcg9_f_c_aer = 1.0
355         real, parameter :: dens_pcg1_f_o_aer = 1.0
356         real, parameter :: dens_pcg2_f_o_aer = 1.0
357         real, parameter :: dens_pcg3_f_o_aer = 1.0
358         real, parameter :: dens_pcg4_f_o_aer = 1.0
359         real, parameter :: dens_pcg5_f_o_aer = 1.0
360         real, parameter :: dens_pcg6_f_o_aer = 1.0
361         real, parameter :: dens_pcg7_f_o_aer = 1.0
362         real, parameter :: dens_pcg8_f_o_aer = 1.0
363         real, parameter :: dens_pcg9_f_o_aer = 1.0
364         real, parameter :: dens_opcg1_f_c_aer = 1.0
365         real, parameter :: dens_opcg2_f_c_aer = 1.0
366         real, parameter :: dens_opcg3_f_c_aer = 1.0
367         real, parameter :: dens_opcg4_f_c_aer = 1.0
368         real, parameter :: dens_opcg5_f_c_aer = 1.0
369         real, parameter :: dens_opcg6_f_c_aer = 1.0
370         real, parameter :: dens_opcg7_f_c_aer = 1.0
371         real, parameter :: dens_opcg8_f_c_aer = 1.0
372         real, parameter :: dens_opcg1_f_o_aer = 1.0
373         real, parameter :: dens_opcg2_f_o_aer = 1.0
374         real, parameter :: dens_opcg3_f_o_aer = 1.0
375         real, parameter :: dens_opcg4_f_o_aer = 1.0
376         real, parameter :: dens_opcg5_f_o_aer = 1.0
377         real, parameter :: dens_opcg6_f_o_aer = 1.0
378         real, parameter :: dens_opcg7_f_o_aer = 1.0
379         real, parameter :: dens_opcg8_f_o_aer = 1.0
380         real, parameter :: dens_smpa_aer = 1.0
381         real, parameter :: dens_smpbb_aer = 1.0
382 !       real, parameter :: dens_iepox_aer = 1.0
383 !       real, parameter :: dens_iepoxos_aer = 1.0
384 !       real, parameter :: dens_tetrol_aer = 1.0
385 !       real, parameter :: dens_gly_aer = 1.0
386         real, parameter :: dens_ant1_c_aer = 1.0
387         real, parameter :: dens_ant2_c_aer = 1.0
388         real, parameter :: dens_ant3_c_aer = 1.0
389         real, parameter :: dens_ant4_c_aer = 1.0
390         real, parameter :: dens_ant1_o_aer = 1.0
391         real, parameter :: dens_ant2_o_aer = 1.0
392         real, parameter :: dens_ant3_o_aer = 1.0
393         real, parameter :: dens_ant4_o_aer = 1.0
394         real, parameter :: dens_biog1_c_aer = 1.0
395         real, parameter :: dens_biog2_c_aer = 1.0
396         real, parameter :: dens_biog3_c_aer = 1.0
397         real, parameter :: dens_biog4_c_aer = 1.0
398         real, parameter :: dens_biog1_o_aer = 1.0
399         real, parameter :: dens_biog2_o_aer = 1.0
400         real, parameter :: dens_biog3_o_aer = 1.0
401         real, parameter :: dens_biog4_o_aer = 1.0
403         real, parameter :: dens_glysoa_r1_aer   = 1.0
404         real, parameter :: dens_glysoa_r2_aer   = 1.0
405         real, parameter :: dens_glysoa_oh_aer   = 1.0
406         real, parameter :: dens_glysoa_nh4_aer   = 1.0
407         real, parameter :: dens_glysoa_sfc_aer   = 1.0
408 ! dens based on Murphy and Pandis, ES&T, 2009
409         real, parameter :: dens_asoaX_aer = 1.5
410         real, parameter :: dens_asoa1_aer = 1.5
411         real, parameter :: dens_asoa2_aer = 1.5
412         real, parameter :: dens_asoa3_aer = 1.5
413         real, parameter :: dens_asoa4_aer = 1.5
414         real, parameter :: dens_bsoaX_aer = 1.5
415         real, parameter :: dens_bsoa1_aer = 1.5
416         real, parameter :: dens_bsoa2_aer = 1.5
417         real, parameter :: dens_bsoa3_aer = 1.5
418         real, parameter :: dens_bsoa4_aer = 1.5
420 !   aerosol component molecular weights (g/mol)
421 !       real, parameter :: mw_oc_aer  =   1.0   ! use   1 for standard mosaic
422         real, parameter :: mw_oc_aer  = 250.0   ! use 250 for m. shrivastava soa treatments
424         real, parameter :: mw_so4_aer = 96.066
425         real, parameter :: mw_no3_aer = 62.007
426         real, parameter :: mw_cl_aer  = 35.450
427         real, parameter :: mw_msa_aer = 96.109
428         real, parameter :: mw_co3_aer = 60.007
429         real, parameter :: mw_nh4_aer = 18.042
430         real, parameter :: mw_na_aer  = 22.990
431         real, parameter :: mw_ca_aer  = 40.080
432         real, parameter :: mw_oin_aer = 1.0
433 !       real, parameter :: mw_dust_aer = 1.0
434         real, parameter :: mw_bc_aer  = 1.0
435         real, parameter :: mw_water_aer  = 18.016
437 !       real, parameter :: mw_tr1r1_aer = 1.0
438 !       real, parameter :: mw_tr1r2_aer = 1.0
439 !       real, parameter :: mw_tr1r3_aer = 1.0
440 !       real, parameter :: mw_tr1r4_aer = 1.0
441 !       real, parameter :: mw_tanv_aer  = 250.0
442 !       real, parameter :: mw_sopnv_aer  = 250.0
443 !       real, parameter :: mw_ternv_aer  = 250.0
444 !       real, parameter :: mw_seqnv_aer  = 250.0
445 !       real, parameter :: mw_sianv_aer  = 250.0
446         real, parameter :: mw_pcg1_b_c_aer = 250.0
447         real, parameter :: mw_pcg2_b_c_aer = 250.0
448         real, parameter :: mw_pcg3_b_c_aer = 250.0
449         real, parameter :: mw_pcg4_b_c_aer = 250.0
450         real, parameter :: mw_pcg5_b_c_aer = 250.0
451         real, parameter :: mw_pcg6_b_c_aer = 250.0
452         real, parameter :: mw_pcg7_b_c_aer = 250.0
453         real, parameter :: mw_pcg8_b_c_aer = 250.0
454         real, parameter :: mw_pcg9_b_c_aer = 250.0
455         real, parameter :: mw_pcg1_b_o_aer = 250.0
456         real, parameter :: mw_pcg2_b_o_aer = 250.0
457         real, parameter :: mw_pcg3_b_o_aer = 250.0
458         real, parameter :: mw_pcg4_b_o_aer = 250.0
459         real, parameter :: mw_pcg5_b_o_aer = 250.0
460         real, parameter :: mw_pcg6_b_o_aer = 250.0
461         real, parameter :: mw_pcg7_b_o_aer = 250.0
462         real, parameter :: mw_pcg8_b_o_aer = 250.0
463         real, parameter :: mw_pcg9_b_o_aer = 250.0
464         real, parameter :: mw_opcg1_b_c_aer = 250.0
465         real, parameter :: mw_opcg2_b_c_aer = 250.0
466         real, parameter :: mw_opcg3_b_c_aer = 250.0
467         real, parameter :: mw_opcg4_b_c_aer = 250.0
468         real, parameter :: mw_opcg5_b_c_aer = 250.0
469         real, parameter :: mw_opcg6_b_c_aer = 250.0
470         real, parameter :: mw_opcg7_b_c_aer = 250.0
471         real, parameter :: mw_opcg8_b_c_aer = 250.0
472         real, parameter :: mw_opcg1_b_o_aer = 250.0
473         real, parameter :: mw_opcg2_b_o_aer = 250.0
474         real, parameter :: mw_opcg3_b_o_aer = 250.0
475         real, parameter :: mw_opcg4_b_o_aer = 250.0
476         real, parameter :: mw_opcg5_b_o_aer = 250.0
477         real, parameter :: mw_opcg6_b_o_aer = 250.0
478         real, parameter :: mw_opcg7_b_o_aer = 250.0
479         real, parameter :: mw_opcg8_b_o_aer = 250.0
480         real, parameter :: mw_pcg1_f_c_aer = 250.0
481         real, parameter :: mw_pcg2_f_c_aer = 250.0
482         real, parameter :: mw_pcg3_f_c_aer = 250.0
483         real, parameter :: mw_pcg4_f_c_aer = 250.0
484         real, parameter :: mw_pcg5_f_c_aer = 250.0
485         real, parameter :: mw_pcg6_f_c_aer = 250.0
486         real, parameter :: mw_pcg7_f_c_aer = 250.0
487         real, parameter :: mw_pcg8_f_c_aer = 250.0
488         real, parameter :: mw_pcg9_f_c_aer = 250.0
489         real, parameter :: mw_pcg1_f_o_aer = 250.0
490         real, parameter :: mw_pcg2_f_o_aer = 250.0
491         real, parameter :: mw_pcg3_f_o_aer = 250.0
492         real, parameter :: mw_pcg4_f_o_aer = 250.0
493         real, parameter :: mw_pcg5_f_o_aer = 250.0
494         real, parameter :: mw_pcg6_f_o_aer = 250.0
495         real, parameter :: mw_pcg7_f_o_aer = 250.0
496         real, parameter :: mw_pcg8_f_o_aer = 250.0
497         real, parameter :: mw_pcg9_f_o_aer = 250.0
498         real, parameter :: mw_opcg1_f_c_aer = 250.0
499         real, parameter :: mw_opcg2_f_c_aer = 250.0
500         real, parameter :: mw_opcg3_f_c_aer = 250.0
501         real, parameter :: mw_opcg4_f_c_aer = 250.0
502         real, parameter :: mw_opcg5_f_c_aer = 250.0
503         real, parameter :: mw_opcg6_f_c_aer = 250.0
504         real, parameter :: mw_opcg7_f_c_aer = 250.0
505         real, parameter :: mw_opcg8_f_c_aer = 250.0
506         real, parameter :: mw_opcg1_f_o_aer = 250.0
507         real, parameter :: mw_opcg2_f_o_aer = 250.0
508         real, parameter :: mw_opcg3_f_o_aer = 250.0
509         real, parameter :: mw_opcg4_f_o_aer = 250.0
510         real, parameter :: mw_opcg5_f_o_aer = 250.0
511         real, parameter :: mw_opcg6_f_o_aer = 250.0
512         real, parameter :: mw_opcg7_f_o_aer = 250.0
513         real, parameter :: mw_opcg8_f_o_aer = 250.0
514         real, parameter :: mw_smpa_aer = 250.0
515         real, parameter :: mw_smpbb_aer = 250.0
516 !       real, parameter :: mw_iepox_aer = 118.0
517 !       real, parameter :: mw_iepoxos_aer = 216.0
518 !       real, parameter :: mw_tetrol_aer = 136.0
519 !       real, parameter :: mw_gly_aer = 58.0
520         real, parameter :: mw_ant1_c_aer = 250.0
521         real, parameter :: mw_ant2_c_aer = 250.0
522         real, parameter :: mw_ant3_c_aer = 250.0
523         real, parameter :: mw_ant4_c_aer = 250.0
524         real, parameter :: mw_ant1_o_aer = 250.0
525         real, parameter :: mw_ant2_o_aer = 250.0
526         real, parameter :: mw_ant3_o_aer = 250.0
527         real, parameter :: mw_ant4_o_aer = 250.0
528         real, parameter :: mw_biog1_c_aer = 250.0
529         real, parameter :: mw_biog2_c_aer = 250.0
530         real, parameter :: mw_biog3_c_aer = 250.0
531         real, parameter :: mw_biog4_c_aer = 250.0
532         real, parameter :: mw_biog1_o_aer = 250.0
533         real, parameter :: mw_biog2_o_aer = 250.0
534         real, parameter :: mw_biog3_o_aer = 250.0
535         real, parameter :: mw_biog4_o_aer = 250.0
537         real, parameter :: mw_glysoa_r1_aer   = 250.0
538         real, parameter :: mw_glysoa_r2_aer   = 250.0
539         real, parameter :: mw_glysoa_oh_aer   = 250.0
540         real, parameter :: mw_glysoa_nh4_aer   = 250.0
541         real, parameter :: mw_glysoa_sfc_aer   = 250.0
542         real, parameter :: mw_asoaX_aer = 250.0
543         real, parameter :: mw_asoa1_aer = 250.0
544         real, parameter :: mw_asoa2_aer = 250.0
545         real, parameter :: mw_asoa3_aer = 250.0
546         real, parameter :: mw_asoa4_aer = 250.0
547         real, parameter :: mw_bsoaX_aer = 250.0
548         real, parameter :: mw_bsoa1_aer = 250.0
549         real, parameter :: mw_bsoa2_aer = 250.0
550         real, parameter :: mw_bsoa3_aer = 250.0
551         real, parameter :: mw_bsoa4_aer = 250.0
553 !   aerosol component hygroscopicities (dimensionless)
554         real, parameter :: hygro_so4_aer = 0.5
555         real, parameter :: hygro_no3_aer = 0.5
556         real, parameter :: hygro_ca_aer  = 0.1
557         real, parameter :: hygro_co3_aer = 0.1
558         real, parameter :: hygro_nh4_aer = 0.5
559         real, parameter :: hygro_msa_aer = 0.58
560         real, parameter :: hygro_cl_aer  = 1.16
561         real, parameter :: hygro_na_aer  = 1.16
562         real, parameter :: hygro_oin_aer = 0.068 ! = cam5/mam value, previously 0.14
563 !      !real, parameter :: hygro_dust_aer = 0.14
564 !       real, parameter :: hygro_dust_aer = 0.10
565 !       real, parameter :: hygro_tr1r1_aer = 0.10
566 !       real, parameter :: hygro_tr1r2_aer = 0.10
567 !       real, parameter :: hygro_tr1r3_aer = 0.10
568 !       real, parameter :: hygro_tr1r4_aer = 0.10
569         real, parameter :: hygro_oc_aer  = 1.0e-4 ! previously 0.20
570         real, parameter :: hygro_bc_aer  = 1.0e-6
571         real, parameter :: hygro_smpa_aer  = 0.10
572         real, parameter :: hygro_smpbb_aer  = 0.140
573 !       real, parameter :: hygro_iepox_aer  = 0.10
574 !       real, parameter :: hygro_iepoxos_aer  = 0.10
575 !       real, parameter :: hygro_tetrol_aer  = 0.10
576 !       real, parameter :: hygro_gly_aer  = 0.10
577 !       real, parameter :: hygro_tanv_aer  = 0.10
578 !       real, parameter :: hygro_sopnv_aer  = 0.10
579 !       real, parameter :: hygro_ternv_aer  = 0.10
580 !       real, parameter :: hygro_seqnv_aer  = 0.10
581 !       real, parameter :: hygro_sianv_aer  = 0.10
582         real, parameter :: hygro_pcg1_b_c_aer = 0.04
583         real, parameter :: hygro_pcg2_b_c_aer = 0.04
584         real, parameter :: hygro_pcg3_b_c_aer = 0.04
585         real, parameter :: hygro_pcg4_b_c_aer = 0.04
586         real, parameter :: hygro_pcg5_b_c_aer = 0.04
587         real, parameter :: hygro_pcg6_b_c_aer = 0.04
588         real, parameter :: hygro_pcg7_b_c_aer = 0.04
589         real, parameter :: hygro_pcg8_b_c_aer = 0.04
590         real, parameter :: hygro_pcg9_b_c_aer = 0.04
591         real, parameter :: hygro_pcg1_b_o_aer = 0.04
592         real, parameter :: hygro_pcg2_b_o_aer = 0.04
593         real, parameter :: hygro_pcg3_b_o_aer = 0.04
594         real, parameter :: hygro_pcg4_b_o_aer = 0.04
595         real, parameter :: hygro_pcg5_b_o_aer = 0.04
596         real, parameter :: hygro_pcg6_b_o_aer = 0.04
597         real, parameter :: hygro_pcg7_b_o_aer = 0.04
598         real, parameter :: hygro_pcg8_b_o_aer = 0.04
599         real, parameter :: hygro_pcg9_b_o_aer = 0.04
600         real, parameter :: hygro_opcg1_b_c_aer = 0.10
601         real, parameter :: hygro_opcg2_b_c_aer = 0.10
602         real, parameter :: hygro_opcg3_b_c_aer = 0.10
603         real, parameter :: hygro_opcg4_b_c_aer = 0.10
604         real, parameter :: hygro_opcg5_b_c_aer = 0.10
605         real, parameter :: hygro_opcg6_b_c_aer = 0.10
606         real, parameter :: hygro_opcg7_b_c_aer = 0.10
607         real, parameter :: hygro_opcg8_b_c_aer = 0.10
608         real, parameter :: hygro_opcg1_b_o_aer = 0.10
609         real, parameter :: hygro_opcg2_b_o_aer = 0.10
610         real, parameter :: hygro_opcg3_b_o_aer = 0.10
611         real, parameter :: hygro_opcg4_b_o_aer = 0.10
612         real, parameter :: hygro_opcg5_b_o_aer = 0.10
613         real, parameter :: hygro_opcg6_b_o_aer = 0.10
614         real, parameter :: hygro_opcg7_b_o_aer = 0.10
615         real, parameter :: hygro_opcg8_b_o_aer = 0.10
616         real, parameter :: hygro_pcg1_f_c_aer = 1.0e-6
617         real, parameter :: hygro_pcg2_f_c_aer = 1.0e-6
618         real, parameter :: hygro_pcg3_f_c_aer = 1.0e-6
619         real, parameter :: hygro_pcg4_f_c_aer = 1.0e-6
620         real, parameter :: hygro_pcg5_f_c_aer = 1.0e-6
621         real, parameter :: hygro_pcg6_f_c_aer = 1.0e-6
622         real, parameter :: hygro_pcg7_f_c_aer = 1.0e-6
623         real, parameter :: hygro_pcg8_f_c_aer = 1.0e-6
624         real, parameter :: hygro_pcg9_f_c_aer = 1.0e-6
625         real, parameter :: hygro_pcg1_f_o_aer = 1.0e-6
626         real, parameter :: hygro_pcg2_f_o_aer = 1.0e-6
627         real, parameter :: hygro_pcg3_f_o_aer = 1.0e-6
628         real, parameter :: hygro_pcg4_f_o_aer = 1.0e-6
629         real, parameter :: hygro_pcg5_f_o_aer = 1.0e-6
630         real, parameter :: hygro_pcg6_f_o_aer = 1.0e-6
631         real, parameter :: hygro_pcg7_f_o_aer = 1.0e-6
632         real, parameter :: hygro_pcg8_f_o_aer = 1.0e-6
633         real, parameter :: hygro_pcg9_f_o_aer = 1.0e-6
634         real, parameter :: hygro_opcg1_f_c_aer = 0.10
635         real, parameter :: hygro_opcg2_f_c_aer = 0.10
636         real, parameter :: hygro_opcg3_f_c_aer = 0.10
637         real, parameter :: hygro_opcg4_f_c_aer = 0.10
638         real, parameter :: hygro_opcg5_f_c_aer = 0.10
639         real, parameter :: hygro_opcg6_f_c_aer = 0.10
640         real, parameter :: hygro_opcg7_f_c_aer = 0.10
641         real, parameter :: hygro_opcg8_f_c_aer = 0.10
642         real, parameter :: hygro_opcg1_f_o_aer = 0.10
643         real, parameter :: hygro_opcg2_f_o_aer = 0.10
644         real, parameter :: hygro_opcg3_f_o_aer = 0.10
645         real, parameter :: hygro_opcg4_f_o_aer = 0.10
646         real, parameter :: hygro_opcg5_f_o_aer = 0.10
647         real, parameter :: hygro_opcg6_f_o_aer = 0.10
648         real, parameter :: hygro_opcg7_f_o_aer = 0.10
649         real, parameter :: hygro_opcg8_f_o_aer = 0.10
650         real, parameter :: hygro_ant1_c_aer = 0.10
651         real, parameter :: hygro_ant2_c_aer = 0.10
652         real, parameter :: hygro_ant3_c_aer = 0.10
653         real, parameter :: hygro_ant4_c_aer = 0.10
654         real, parameter :: hygro_ant1_o_aer = 0.10
655         real, parameter :: hygro_ant2_o_aer = 0.10
656         real, parameter :: hygro_ant3_o_aer = 0.10
657         real, parameter :: hygro_ant4_o_aer = 0.10
658         real, parameter :: hygro_biog1_c_aer = 0.10
659         real, parameter :: hygro_biog2_c_aer = 0.10
660         real, parameter :: hygro_biog3_c_aer = 0.10
661         real, parameter :: hygro_biog4_c_aer = 0.10
662         real, parameter :: hygro_biog1_o_aer = 0.10
663         real, parameter :: hygro_biog2_o_aer = 0.10
664         real, parameter :: hygro_biog3_o_aer = 0.10
665         real, parameter :: hygro_biog4_o_aer = 0.10
667         real, parameter :: hygro_glysoa_r1_aer   = 0.14
668         real, parameter :: hygro_glysoa_r2_aer   = 0.14
669         real, parameter :: hygro_glysoa_oh_aer   = 0.14
670         real, parameter :: hygro_glysoa_nh4_aer   = 0.14
671         real, parameter :: hygro_glysoa_sfc_aer   = 0.14
672         real, parameter :: hygro_asoaX_aer = 0.14
673         real, parameter :: hygro_asoa1_aer = 0.14
674         real, parameter :: hygro_asoa2_aer = 0.14
675         real, parameter :: hygro_asoa3_aer = 0.14
676         real, parameter :: hygro_asoa4_aer = 0.14
677         real, parameter :: hygro_bsoaX_aer = 0.14
678         real, parameter :: hygro_bsoa1_aer = 0.14
679         real, parameter :: hygro_bsoa2_aer = 0.14
680         real, parameter :: hygro_bsoa3_aer = 0.14
681         real, parameter :: hygro_bsoa4_aer = 0.14
683 !   these indices give the location in the "mastercomp list" of
684 !   the different aerosol chemical (or tracer) components
685         integer, save :: mastercompindx_so4_aer = -999888777
686         integer, save :: mastercompindx_no3_aer = -999888777
687         integer, save :: mastercompindx_cl_aer  = -999888777
688         integer, save :: mastercompindx_msa_aer = -999888777
689         integer, save :: mastercompindx_co3_aer = -999888777
690         integer, save :: mastercompindx_nh4_aer = -999888777
691         integer, save :: mastercompindx_na_aer  = -999888777
692         integer, save :: mastercompindx_ca_aer  = -999888777
693         integer, save :: mastercompindx_oin_aer = -999888777
694 !       integer, save :: mastercompindx_dust_aer = -999888777
695 !       integer, save :: mastercompindx_tr1r1_aer = -999888777
696 !       integer, save :: mastercompindx_tr1r2_aer = -999888777
697 !       integer, save :: mastercompindx_tr1r3_aer = -999888777
698 !       integer, save :: mastercompindx_tr1r4_aer = -999888777
699         integer, save :: mastercompindx_oc_aer  = -999888777
700         integer, save :: mastercompindx_bc_aer  = -999888777
701 !       integer, save :: mastercompindx_tanv_aer  = -999888777
702 !       integer, save :: mastercompindx_sopnv_aer  = -999888777
703 !       integer, save :: mastercompindx_ternv_aer  = -999888777
704 !       integer, save :: mastercompindx_seqnv_aer  = -999888777
705 !       integer, save :: mastercompindx_sianv_aer  = -999888777
706         integer, save :: mastercompindx_pcg1_b_c_aer = -999888777
707         integer, save :: mastercompindx_pcg2_b_c_aer = -999888777
708         integer, save :: mastercompindx_pcg3_b_c_aer = -999888777
709         integer, save :: mastercompindx_pcg4_b_c_aer = -999888777
710         integer, save :: mastercompindx_pcg5_b_c_aer = -999888777
711         integer, save :: mastercompindx_pcg6_b_c_aer = -999888777
712         integer, save :: mastercompindx_pcg7_b_c_aer = -999888777
713         integer, save :: mastercompindx_pcg8_b_c_aer = -999888777
714         integer, save :: mastercompindx_pcg9_b_c_aer = -999888777
715         integer, save :: mastercompindx_pcg1_b_o_aer = -999888777
716         integer, save :: mastercompindx_pcg2_b_o_aer = -999888777
717         integer, save :: mastercompindx_pcg3_b_o_aer = -999888777
718         integer, save :: mastercompindx_pcg4_b_o_aer = -999888777
719         integer, save :: mastercompindx_pcg5_b_o_aer = -999888777
720         integer, save :: mastercompindx_pcg6_b_o_aer = -999888777
721         integer, save :: mastercompindx_pcg7_b_o_aer = -999888777
722         integer, save :: mastercompindx_pcg8_b_o_aer = -999888777
723         integer, save :: mastercompindx_pcg9_b_o_aer = -999888777
724         integer, save :: mastercompindx_opcg1_b_c_aer = -999888777
725         integer, save :: mastercompindx_opcg2_b_c_aer = -999888777
726         integer, save :: mastercompindx_opcg3_b_c_aer = -999888777
727         integer, save :: mastercompindx_opcg4_b_c_aer = -999888777
728         integer, save :: mastercompindx_opcg5_b_c_aer = -999888777
729         integer, save :: mastercompindx_opcg6_b_c_aer = -999888777
730         integer, save :: mastercompindx_opcg7_b_c_aer = -999888777
731         integer, save :: mastercompindx_opcg8_b_c_aer = -999888777
732         integer, save :: mastercompindx_opcg1_b_o_aer = -999888777
733         integer, save :: mastercompindx_opcg2_b_o_aer = -999888777
734         integer, save :: mastercompindx_opcg3_b_o_aer = -999888777
735         integer, save :: mastercompindx_opcg4_b_o_aer = -999888777
736         integer, save :: mastercompindx_opcg5_b_o_aer = -999888777
737         integer, save :: mastercompindx_opcg6_b_o_aer = -999888777
738         integer, save :: mastercompindx_opcg7_b_o_aer = -999888777
739         integer, save :: mastercompindx_opcg8_b_o_aer = -999888777
740         integer, save :: mastercompindx_pcg1_f_c_aer = -999888777
741         integer, save :: mastercompindx_pcg2_f_c_aer = -999888777
742         integer, save :: mastercompindx_pcg3_f_c_aer = -999888777
743         integer, save :: mastercompindx_pcg4_f_c_aer = -999888777
744         integer, save :: mastercompindx_pcg5_f_c_aer = -999888777
745         integer, save :: mastercompindx_pcg6_f_c_aer = -999888777
746         integer, save :: mastercompindx_pcg7_f_c_aer = -999888777
747         integer, save :: mastercompindx_pcg8_f_c_aer = -999888777
748         integer, save :: mastercompindx_pcg9_f_c_aer = -999888777
749         integer, save :: mastercompindx_pcg1_f_o_aer = -999888777
750         integer, save :: mastercompindx_pcg2_f_o_aer = -999888777
751         integer, save :: mastercompindx_pcg3_f_o_aer = -999888777
752         integer, save :: mastercompindx_pcg4_f_o_aer = -999888777
753         integer, save :: mastercompindx_pcg5_f_o_aer = -999888777
754         integer, save :: mastercompindx_pcg6_f_o_aer = -999888777
755         integer, save :: mastercompindx_pcg7_f_o_aer = -999888777
756         integer, save :: mastercompindx_pcg8_f_o_aer = -999888777
757         integer, save :: mastercompindx_pcg9_f_o_aer = -999888777
758         integer, save :: mastercompindx_opcg1_f_c_aer = -999888777
759         integer, save :: mastercompindx_opcg2_f_c_aer = -999888777
760         integer, save :: mastercompindx_opcg3_f_c_aer = -999888777
761         integer, save :: mastercompindx_opcg4_f_c_aer = -999888777
762         integer, save :: mastercompindx_opcg5_f_c_aer = -999888777
763         integer, save :: mastercompindx_opcg6_f_c_aer = -999888777
764         integer, save :: mastercompindx_opcg7_f_c_aer = -999888777
765         integer, save :: mastercompindx_opcg8_f_c_aer = -999888777
766         integer, save :: mastercompindx_opcg1_f_o_aer = -999888777
767         integer, save :: mastercompindx_opcg2_f_o_aer = -999888777
768         integer, save :: mastercompindx_opcg3_f_o_aer = -999888777
769         integer, save :: mastercompindx_opcg4_f_o_aer = -999888777
770         integer, save :: mastercompindx_opcg5_f_o_aer = -999888777
771         integer, save :: mastercompindx_opcg6_f_o_aer = -999888777
772         integer, save :: mastercompindx_opcg7_f_o_aer = -999888777
773         integer, save :: mastercompindx_opcg8_f_o_aer = -999888777
774         integer, save :: mastercompindx_smpa_aer = -999888777
775         integer, save :: mastercompindx_smpbb_aer = -999888777
776 !       integer, save :: mastercompindx_iepox_aer = -999888777
777 !       integer, save :: mastercompindx_iepoxos_aer = -999888777
778 !       integer, save :: mastercompindx_tetrol_aer = -999888777
779 !       integer, save :: mastercompindx_gly_aer = -999888777
780         integer, save :: mastercompindx_ant1_c_aer = -999888777
781         integer, save :: mastercompindx_ant2_c_aer = -999888777
782         integer, save :: mastercompindx_ant3_c_aer = -999888777
783         integer, save :: mastercompindx_ant4_c_aer = -999888777
784         integer, save :: mastercompindx_ant1_o_aer = -999888777
785         integer, save :: mastercompindx_ant2_o_aer = -999888777
786         integer, save :: mastercompindx_ant3_o_aer = -999888777
787         integer, save :: mastercompindx_ant4_o_aer = -999888777
788         integer, save :: mastercompindx_biog1_c_aer = -999888777
789         integer, save :: mastercompindx_biog2_c_aer = -999888777
790         integer, save :: mastercompindx_biog3_c_aer = -999888777
791         integer, save :: mastercompindx_biog4_c_aer = -999888777
792         integer, save :: mastercompindx_biog1_o_aer = -999888777
793         integer, save :: mastercompindx_biog2_o_aer = -999888777
794         integer, save :: mastercompindx_biog3_o_aer = -999888777
795         integer, save :: mastercompindx_biog4_o_aer = -999888777
797         integer, save :: mastercompindx_glysoa_r1_aer = -999888777
798         integer, save :: mastercompindx_glysoa_r2_aer = -999888777
799         integer, save :: mastercompindx_glysoa_oh_aer = -999888777
800         integer, save :: mastercompindx_glysoa_nh4_aer = -999888777
801         integer, save :: mastercompindx_glysoa_sfc_aer = -999888777
802         integer, save :: mastercompindx_asoaX_aer = -999888777
803         integer, save :: mastercompindx_asoa1_aer = -999888777
804         integer, save :: mastercompindx_asoa2_aer = -999888777
805         integer, save :: mastercompindx_asoa3_aer = -999888777
806         integer, save :: mastercompindx_asoa4_aer = -999888777
807         integer, save :: mastercompindx_bsoaX_aer = -999888777
808         integer, save :: mastercompindx_bsoa1_aer = -999888777
809         integer, save :: mastercompindx_bsoa2_aer = -999888777
810         integer, save :: mastercompindx_bsoa3_aer = -999888777
811         integer, save :: mastercompindx_bsoa4_aer = -999888777
813 ! the lptr values are the locations in the chem array of 
814 ! the various aerosol components
815         integer, save ::                     &
816           lptr_so4_aer(maxd_asize, maxd_atype, maxd_aphase),      &
817           lptr_msa_aer(maxd_asize, maxd_atype, maxd_aphase),      &
818           lptr_no3_aer(maxd_asize, maxd_atype, maxd_aphase),      &
819           lptr_cl_aer(maxd_asize, maxd_atype, maxd_aphase),       &
820           lptr_co3_aer(maxd_asize, maxd_atype, maxd_aphase),      &
821           lptr_nh4_aer(maxd_asize, maxd_atype, maxd_aphase),      &
822           lptr_na_aer(maxd_asize, maxd_atype, maxd_aphase),       &
823           lptr_ca_aer(maxd_asize, maxd_atype, maxd_aphase),       &
824           lptr_oin_aer(maxd_asize, maxd_atype, maxd_aphase),      &
825           lptr_aro1_aer(maxd_asize, maxd_atype, maxd_aphase),     &
826           lptr_aro2_aer(maxd_asize, maxd_atype, maxd_aphase),     &
827           lptr_alk1_aer(maxd_asize, maxd_atype, maxd_aphase),     &
828           lptr_ole1_aer(maxd_asize, maxd_atype, maxd_aphase),     &
829           lptr_api1_aer(maxd_asize, maxd_atype, maxd_aphase),     &
830           lptr_api2_aer(maxd_asize, maxd_atype, maxd_aphase),     &
831           lptr_lim1_aer(maxd_asize, maxd_atype, maxd_aphase),     &
832           lptr_lim2_aer(maxd_asize, maxd_atype, maxd_aphase),     &
833 !         lptr_dust_aer(maxd_asize, maxd_atype, maxd_aphase),     &
834 !         lptr_tr1r1_aer(maxd_asize, maxd_atype, maxd_aphase),    &
835 !         lptr_tr1r2_aer(maxd_asize, maxd_atype, maxd_aphase),    &
836 !         lptr_tr1r3_aer(maxd_asize, maxd_atype, maxd_aphase),    &
837 !         lptr_tr1r4_aer(maxd_asize, maxd_atype, maxd_aphase),    &
838           lptr_oc_aer(maxd_asize, maxd_atype, maxd_aphase),       &
839           lptr_bc_aer(maxd_asize, maxd_atype, maxd_aphase),       &
840 !         lptr_tanv_aer(maxd_asize, maxd_atype, maxd_aphase),     &
841 !         lptr_sopnv_aer(maxd_asize, maxd_atype, maxd_aphase),    &
842 !         lptr_ternv_aer(maxd_asize, maxd_atype, maxd_aphase),    &
843 !         lptr_seqnv_aer(maxd_asize, maxd_atype, maxd_aphase),    &
844 !         lptr_sianv_aer(maxd_asize, maxd_atype, maxd_aphase),    &
845           lptr_pcg1_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
846           lptr_pcg2_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
847           lptr_pcg3_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
848           lptr_pcg4_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
849           lptr_pcg5_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
850           lptr_pcg6_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
851           lptr_pcg7_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
852           lptr_pcg8_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
853           lptr_pcg9_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
854           lptr_pcg1_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
855           lptr_pcg2_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
856           lptr_pcg3_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
857           lptr_pcg4_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
858           lptr_pcg5_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
859           lptr_pcg6_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
860           lptr_pcg7_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
861           lptr_pcg8_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
862           lptr_pcg9_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
863           lptr_opcg1_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
864           lptr_opcg2_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
865           lptr_opcg3_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
866           lptr_opcg4_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
867           lptr_opcg5_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
868           lptr_opcg6_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
869           lptr_opcg7_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
870           lptr_opcg8_b_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
871           lptr_opcg1_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
872           lptr_opcg2_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
873           lptr_opcg3_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
874           lptr_opcg4_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
875           lptr_opcg5_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
876           lptr_opcg6_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
877           lptr_opcg7_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
878           lptr_opcg8_b_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
879           lptr_pcg1_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
880           lptr_pcg2_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
881           lptr_pcg3_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
882           lptr_pcg4_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
883           lptr_pcg5_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
884           lptr_pcg6_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
885           lptr_pcg7_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
886           lptr_pcg8_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
887           lptr_pcg9_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
888           lptr_pcg1_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
889           lptr_pcg2_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
890           lptr_pcg3_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
891           lptr_pcg4_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
892           lptr_pcg5_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
893           lptr_pcg6_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
894           lptr_pcg7_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
895           lptr_pcg8_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
896           lptr_pcg9_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
897           lptr_opcg1_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
898           lptr_opcg2_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
899           lptr_opcg3_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
900           lptr_opcg4_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
901           lptr_opcg5_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
902           lptr_opcg6_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
903           lptr_opcg7_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
904           lptr_opcg8_f_c_aer(maxd_asize, maxd_atype, maxd_aphase), &
905           lptr_opcg1_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
906           lptr_opcg2_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
907           lptr_opcg3_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
908           lptr_opcg4_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
909           lptr_opcg5_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
910           lptr_opcg6_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
911           lptr_opcg7_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
912           lptr_opcg8_f_o_aer(maxd_asize, maxd_atype, maxd_aphase), &
913           lptr_smpa_aer(maxd_asize, maxd_atype, maxd_aphase),      &
914           lptr_smpbb_aer(maxd_asize, maxd_atype, maxd_aphase),     &
915 !         lptr_iepox_aer(maxd_asize, maxd_atype, maxd_aphase),     &
916 !         lptr_iepoxos_aer(maxd_asize, maxd_atype, maxd_aphase),   &
917 !         lptr_tetrol_aer(maxd_asize, maxd_atype, maxd_aphase),    &
918 !         lptr_gly_aer(maxd_asize, maxd_atype, maxd_aphase),       &
919           lptr_ant1_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
920           lptr_ant2_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
921           lptr_ant3_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
922           lptr_ant4_c_aer(maxd_asize, maxd_atype, maxd_aphase),    &
923           lptr_ant1_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
924           lptr_ant2_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
925           lptr_ant3_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
926           lptr_ant4_o_aer(maxd_asize, maxd_atype, maxd_aphase),    &
927           lptr_biog1_c_aer(maxd_asize, maxd_atype, maxd_aphase),   &
928           lptr_biog2_c_aer(maxd_asize, maxd_atype, maxd_aphase),   &
929           lptr_biog3_c_aer(maxd_asize, maxd_atype, maxd_aphase),   &
930           lptr_biog4_c_aer(maxd_asize, maxd_atype, maxd_aphase),   &
931           lptr_biog1_o_aer(maxd_asize, maxd_atype, maxd_aphase),   &
932           lptr_biog2_o_aer(maxd_asize, maxd_atype, maxd_aphase),   &
933           lptr_biog3_o_aer(maxd_asize, maxd_atype, maxd_aphase),   &
934           lptr_biog4_o_aer(maxd_asize, maxd_atype, maxd_aphase),   &
935           lptr_glysoa_r1_aer(maxd_asize, maxd_atype, maxd_aphase),   &
936           lptr_glysoa_r2_aer(maxd_asize, maxd_atype, maxd_aphase),   &
937           lptr_glysoa_oh_aer(maxd_asize, maxd_atype, maxd_aphase),   &
938           lptr_glysoa_nh4_aer(maxd_asize, maxd_atype, maxd_aphase),  &
939           lptr_glysoa_sfc_aer(maxd_asize, maxd_atype, maxd_aphase),  &
940           lptr_asoaX_aer(maxd_asize, maxd_atype, maxd_aphase),    &
941           lptr_asoa1_aer(maxd_asize, maxd_atype, maxd_aphase),    &
942           lptr_asoa2_aer(maxd_asize, maxd_atype, maxd_aphase),    &
943           lptr_asoa3_aer(maxd_asize, maxd_atype, maxd_aphase),    &
944           lptr_asoa4_aer(maxd_asize, maxd_atype, maxd_aphase),    &
945           lptr_bsoaX_aer(maxd_asize, maxd_atype, maxd_aphase),    &
946           lptr_bsoa1_aer(maxd_asize, maxd_atype, maxd_aphase),    &
947           lptr_bsoa2_aer(maxd_asize, maxd_atype, maxd_aphase),    &
948           lptr_bsoa3_aer(maxd_asize, maxd_atype, maxd_aphase),    &
949           lptr_bsoa4_aer(maxd_asize, maxd_atype, maxd_aphase)
952       end module module_data_mosaic_asecthp