module_data_sorgam.F

References to this file elsewhere.
1 
2 MODULE module_data_sorgam
3    USE module_data_radm2
4 !
5 !   param.inc start
6       IMPLICIT NONE
7       INTEGER NP                !bs maximum expected value of N
8       PARAMETER (NP = 8)
9 !      integer numaer
10 !      parameter (numaer=50)
11 
12       INTEGER MAXITS            !bs maximum number of iterations
13       PARAMETER (MAXITS = 100)
14 
15       REAL TOLF                 !bs convergence criterion on function values
16       PARAMETER (TOLF = 1.E-09)
17 
18       REAL TOLMIN                 !bs criterion whether superios convergence to
19       PARAMETER (TOLMIN = 1.E-12) !bs a minimum of fmin has occurred
20 
21       REAL TOLX                 !bs convergence criterion on delta_x
22       PARAMETER (TOLX = 1.E-10)
23 
24       REAL STPMX                !bs scaled maximum step length allowed
25       PARAMETER (STPMX = 100.)
26 
27 
28       REAL c303, c302
29       PARAMETER (c303=19.83,c302=5417.4)
30 
31       INTEGER lcva, lcvb, lspcv, ldesn
32       PARAMETER (lcva=4,lcvb=4,lspcv=lcva+lcvb)
33       PARAMETER (ldesn=13)
34 !mh    ldesn is number of deposition species
35 !mh    true number of deposited species may be larger since there
36 !mh    are species which are deposited with the same rate
37 
38       INTEGER laerdvc, lnonaerdvc, l1ae, laero, imodes, aspec
39       PARAMETER (laerdvc=34,lnonaerdvc=8+lspcv)
40       PARAMETER (l1ae=laerdvc+lnonaerdvc)
41       PARAMETER (laero=4,imodes=4,aspec=1)
42 !     LAERDVC  number of advected aerosol dynamic parameters for a given
43 !     component species
44 !ia     L1AE        advected parameters+non-advected parameters
45 !ia     LAERO       number of aerosol component species
46 !ia     imodes      number of aerosol modes
47 !ia     ASPEC       number of gas phase comp. that are added dynamically
48 !ia		    currently only sulfate (=1)
49 !bs
50 !bs * BS ** BS ** BS ** BS ** BS ** BS ** BS ** BS ** BS ** BS ** BS **
51 !bs
52       INTEGER aemiss
53       PARAMETER (aemiss=4)
54 !bs *  AEMISS      # of aerosol species with emissions link to gas phase
55 !bs                currently ECI, ECJ, BCI, BCJ
56       INTEGER ldroga
57       PARAMETER (ldroga=11)
58       INTEGER ldrogb
59       PARAMETER (ldrogb=6)
60       INTEGER ldrog
61       PARAMETER (ldrog=ldroga+ldrogb)
62 !bs * LDROGA      # of anthropogenic organic aerosol precursor gases (DR
63 !bs * LDROGB      # of biogenic organic aerosol precursor gases (DROG)
64 !bs * LSPCV       # of condensable organic vapor interacting between gas
65 !bs               aerosol phase with SORGAM
66 !bs
67 !   maxd_atype = maximum allowable number of aerosol types
68 !   maxd_asize = maximum allowable number of aerosol size bins
69 !   maxd_acomp = maximum allowable number of chemical components
70 !	in each aerosol size bin
71 !   maxd_aphase = maximum allowable number of aerosol phases (gas, cloud, ice, rain, ...)
72 !
73 !   ntype_aer = number of aerosol types
74 !   nsize_aer(t) = number of aerosol size bins for aerosol type t. each bin w/ same set of components
75 !   nphase_aer = number of aerosol phases
76 !
77 !   msectional - if positive, moving-center sectional code is utilized,
78 !	and each mode is actually a section.
79 !   maerosolincw - if positive, both unactivated/interstitial and activated
80 !	aerosol species are simulated.  if zero/negative, only the
81 !	unactivated are simulated.
82 !
83 !   ncomp_aer(t) = number of chemical components for aerosol type t
84 !   ncomp_aer_nontracer(t) = number of "non-tracer" chemical components while in gchm code
85 !   mastercompptr_aer(c,t) = mastercomp type/i.d. for chemical component c
86 !	(1=sulfate, others to be defined) and aerosol type t.
87 !   massptr_aer(c,s,t,p) = gchm r-array index for the mixing ratio
88 !	(moles-x/mole-air) for chemical component c in size bin s for type t and phase p
89 !
90 !   waterptr_aer(s,t) = mixing ratio (moles-water/mole-air) for water
91 !       associated with aerosol size bin s and type t
92 !   hygroptr_aer(s,t) = gchm r-array index for the bulk hygroscopicity of the size bin and type
93 !   numptr_aer(s,t,p) = gchm r-array index for the number mixing ratio
94 !	(particles/mole-air) for aerosol size bin s, type t, and phase p
95 !       If zero or negative, then number is not being simulated.
96 !
97 !   mprognum_aer(s,t,p) - if positive, number mixing-ratio for size s, type t,
98 !       and phase p will be prognosed.  Otherwise, no.
99 !
100 !   ntot_mastercomp_aer = number of aerosol chemical components defined
101 !   dens_mastercomp_aer(mc) = dry density (g/cm^3) of aerosol master chemical component type c
102 !   mw_mastercomp_aer(mc) = molecular weight of aerosol master chemical component type mc
103 !   name_mastercomp_aer(mc) = name of aerosol master chemical component type mc
104 !   mc=mastercompptr_aer(c,t)
105 !   dens_aer(c,t) = dry density (g/cm^3) of aerosol chemical component type c and type t
106 !   mw_aer(c,t) = molecular weight of aerosol chemical component type c and type t
107 !   name_aer(c,t) = name of aerosol chemical component type c and type t
108 !
109 !   lptr_so4_aer(s,t,p) = gchm r-array index for the
110 !	mixing ratio for sulfate associated with aerosol size bin s, type t, and phase p
111 !   (similar for msa, oc, bc, nacl, dust)
112 !
113 !-----------------------------------------------------------------------
114 !
115 !   volumcen_sect(s,t)= volume (cm^3) at center of section m
116 !   volumlo_sect(s,t) = volume (cm^3) at lower boundary of section m
117 !   volumhi_sect(s,t) = volume (cm^3) at upper boundary of section m
118 !
119 !   dlo_sect(s,t) = diameter (cm) at lower boundary of section m
120 !   dhi_sect(s,t) = diameter (cm) at upper boundary of section m
121 !   dcen_sect(s,t) = volume arithmetic-mean diameter (cm) of section m
122 !	(corresponds to volumcen_sect == 0.5*(volumlo_sect + volumhi_sect)
123 !
124 !-----------------------------------------------------------------------
125 !   nov-04 sg ! replaced amode with aer and expanded aerosol dimension to include type and phase
126 
127 	integer, parameter :: maxd_atype = 3
128 	integer, parameter :: maxd_asize = 1
129 	integer, parameter :: maxd_acomp = 17
130 	integer, parameter :: maxd_aphase = 2
131 	integer, save :: ai_phase ! interstitial phase of aerosol
132 	integer, save :: cw_phase ! cloud water phase of aerosol
133 	integer, save :: ci_phase ! cloud ice  phase of aerosol
134 	integer, save :: cr_phase ! rain  phase of aerosol
135 	integer, save :: cs_phase ! snow  phase of aerosol
136 	integer, save :: cg_phase ! graupel phase of aerosol
137 
138 	integer, save :: ntype_aer = 0 ! number of types
139 	integer, save :: ntot_mastercomp_aer = 0 ! number of master components
140 	integer, save :: nphase_aer = 0 ! number of phases
141 
142 	integer, save ::   &
143       	  msectional, maerosolincw,   &
144       	  nsize_aer( maxd_atype ),   & ! number of size bins
145       	  ncomp_aer( maxd_atype ),   & ! number of chemical components
146       	  ncomp_aer_nontracer( maxd_atype ),   &
147           mastercompptr_aer(maxd_acomp, maxd_atype), &   !  mastercomp index
148       	  massptr_aer( maxd_acomp, maxd_asize, maxd_atype, maxd_aphase ), & ! index for mixing ratio
149       	  waterptr_aer( maxd_asize, maxd_atype ), & ! index for aerosol water
150       	  hygroptr_aer( maxd_asize, maxd_atype ), & ! index for aerosol hygroscopicity
151       	  numptr_aer( maxd_asize, maxd_atype, maxd_aphase ), & ! index for the number mixing ratio
152           mprognum_aer(maxd_asize,maxd_atype,maxd_aphase)
153 
154 	real, save ::   &
155           dens_aer( maxd_acomp, maxd_atype ),   &
156           dens_mastercomp_aer( maxd_acomp ),   &
157       	  mw_mastercomp_aer( maxd_acomp ), &
158       	  mw_aer( maxd_acomp, maxd_atype ),  &
159       	  hygro_mastercomp_aer( maxd_acomp ), &
160       	  hygro_aer( maxd_acomp, maxd_atype )
161 	character*10, save ::   &
162       	  name_mastercomp_aer( maxd_acomp ), &
163       	  name_aer( maxd_acomp, maxd_atype )
164 
165 	real, save ::   &
166           volumcen_sect( maxd_asize, maxd_atype ),   &
167           volumlo_sect( maxd_asize, maxd_atype ),   &
168           volumhi_sect( maxd_asize, maxd_atype ),   &
169           dcen_sect( maxd_asize, maxd_atype ),   &
170           dlo_sect( maxd_asize, maxd_atype ),   &
171           dhi_sect( maxd_asize, maxd_atype ),   &
172 	  sigmag_aer(maxd_asize, maxd_atype)
173 
174 	integer, save ::                     &
175       	  lptr_so4_aer(maxd_asize,maxd_atype,maxd_aphase),      &
176       	  lptr_nh4_aer(maxd_asize,maxd_atype,maxd_aphase),      &
177       	  lptr_no3_aer(maxd_asize,maxd_atype,maxd_aphase),      &
178       	  lptr_orgaro1_aer(maxd_asize,maxd_atype,maxd_aphase),       &
179       	  lptr_orgaro2_aer(maxd_asize,maxd_atype,maxd_aphase),       &
180       	  lptr_orgalk_aer(maxd_asize,maxd_atype,maxd_aphase),       &
181       	  lptr_orgole_aer(maxd_asize,maxd_atype,maxd_aphase),       &
182       	  lptr_orgba1_aer(maxd_asize,maxd_atype,maxd_aphase),       &
183       	  lptr_orgba2_aer(maxd_asize,maxd_atype,maxd_aphase),       &
184       	  lptr_orgba3_aer(maxd_asize,maxd_atype,maxd_aphase),       &
185       	  lptr_orgba4_aer(maxd_asize,maxd_atype,maxd_aphase),       &
186       	  lptr_orgpa_aer(maxd_asize,maxd_atype,maxd_aphase),       &
187       	  lptr_ec_aer(maxd_asize,maxd_atype,maxd_aphase),       &
188       	  lptr_p25_aer(maxd_asize,maxd_atype,maxd_aphase),       &
189           lptr_anth_aer(maxd_asize,maxd_atype,maxd_aphase),      &
190       	  lptr_seas_aer(maxd_asize,maxd_atype,maxd_aphase),       &
191       	  lptr_soil_aer(maxd_asize,maxd_atype,maxd_aphase)
192 
193 
194 !   molecular weights (g/mol)
195 	real, parameter :: mw_so4_aer = 96.066
196 	real, parameter :: mw_no3_aer = 62.007
197 	real, parameter :: mw_seas_aer  = 58.440
198 	real, parameter :: mw_ca_aer  = 40.080
199 	real, parameter :: mw_co3_aer = 60.007
200 	real, parameter :: mw_nh4_aer = 18.042
201 	real, parameter :: mw_oc_aer  = 1.0
202 	real, parameter :: mw_ec_aer  = 1.0
203 	real, parameter :: mw_water_aer  = 18.016
204 
205 !   dry densities (g/cm3)
206 	real, parameter :: dens_so4_aer = 1.80
207 	real, parameter :: dens_no3_aer = 1.80
208 	real, parameter :: dens_seas_aer  = 2.20
209 	real, parameter :: dens_nh4_aer = 1.80
210 	real, parameter :: dens_oc_aer  = 1.00
211 	real, parameter :: dens_ec_aer  = 1.70
212 	real, parameter :: dens_ca_aer  = 2.20
213 
214 !   water density (g/cm3)
215 	real, parameter :: dens_water_aer  = 1.0
216 
217 !   hygroscopicity (dimensionless)
218 	real, parameter :: hygro_so4_aer = 0.5
219 	real, parameter :: hygro_no3_aer = 0.5
220 	real, parameter :: hygro_seas_aer  = 1.16
221 	real, parameter :: hygro_nh4_aer = 0.5
222 	real, parameter :: hygro_oc_aer  = 0.14
223 	real, parameter :: hygro_ec_aer  = 1.e-6
224 	real, parameter :: hygro_ca_aer  = 0.1
225 	real, parameter :: hygro_co3_aer = 0.1
226 !     param.inc stop
227 
228 ! //////////////////////////////////////////////////////////////////////
229 ! FSB include file
230 
231 ! *** declare and set flag for organic aerosol production method
232 ! *** Two method are available:
233 
234 ! *** The method of Pandis,Harley, Cass, and Seinfeld, 1992,
235 !     Secondary aerosol formation and transport, Atmos. Environ., 26A,
236 !     pp 2453-2466
237 !     Bowman et al. Atmospheric Environment
238 !     Vol 29, pp 579-589, 1995.
239 ! *** and
240 ! *** The method of Odum, Hoffmann, Bowman, Collins, Flagen and
241 !     Seinfeld, 1996, Gas/particle partitioning and secondary organic ae
242 !     yields, Environ. Sci, Technol, 30, pp 2580-2585.
243 
244 
245                             ! 1 = Pandis et al.  1992 method is used
246       INTEGER orgaer
247                             ! 2 = Pankow 1994/Odum et al. 1996 method is
248 ! ***
249 ! switch for organic aerosol method         
250       PARAMETER (orgaer=2)
251 
252 ! *** information about visibility variables
253 ! number of visibility variables    
254       INTEGER n_ae_vis_spc
255       PARAMETER (n_ae_vis_spc=2)
256 
257 ! index for visual range in deciview             
258       INTEGER idcvw
259       PARAMETER (idcvw=1)
260 ! index for extinction [ 1/km ]                  
261       INTEGER ibext
262       PARAMETER (ibext=2)
263 
264 
265 ! *** set up indices for array  CBLK
266 
267 ! index for Accumulation mode sulfate aeroso
268       INTEGER vso4aj
269       PARAMETER (vso4aj=1)
270 
271 ! index for Aitken mode sulfate concentraton
272       INTEGER vso4ai
273       PARAMETER (vso4ai=2)
274 
275 ! index for Accumulation mode aerosol ammoni
276       INTEGER vnh4aj
277       PARAMETER (vnh4aj=3)
278 
279 ! index for Aitken mode ammonium concentrati
280       INTEGER vnh4ai
281       PARAMETER (vnh4ai=4)
282 
283 ! index for Accumulation mode aerosol nitrat
284       INTEGER vno3aj
285       PARAMETER (vno3aj=5)
286 
287 ! index for Aitken mode nitrate concentratio
288       INTEGER vno3ai
289       PARAMETER (vno3ai=6)
290 
291 ! index for Accumulation mode anthropogen
292       INTEGER vorgaro1j
293       PARAMETER (vorgaro1j=7)
294 
295 ! index for Aitken mode anthropogenic org
296       INTEGER vorgaro1i
297       PARAMETER (vorgaro1i=8)
298 
299 ! index for Accumulation mode anthropogen
300       INTEGER vorgaro2j
301       PARAMETER (vorgaro2j=9)
302 
303 ! index for Aitken mode anthropogenic org
304       INTEGER vorgaro2i
305       PARAMETER (vorgaro2i=10)
306 
307 ! index for Accumulation mode anthropogen
308       INTEGER vorgalk1j
309       PARAMETER (vorgalk1j=11)
310 
311 ! index for Aitken mode anthropogenic org
312       INTEGER vorgalk1i
313       PARAMETER (vorgalk1i=12)
314 
315 ! index for Accumulation mode anthropogen
316       INTEGER vorgole1j
317       PARAMETER (vorgole1j=13)
318 
319 ! index for Aitken mode anthropogenic org
320       INTEGER vorgole1i
321       PARAMETER (vorgole1i=14)
322 
323 ! index for Accumulation mode biogenic aero
324       INTEGER vorgba1j
325       PARAMETER (vorgba1j=15)
326 
327 ! index for Aitken mode biogenic aerosol co
328       INTEGER vorgba1i
329       PARAMETER (vorgba1i=16)
330 
331 ! index for Accumulation mode biogenic aero
332       INTEGER vorgba2j
333       PARAMETER (vorgba2j=17)
334 
335 ! index for Aitken mode biogenic aerosol co
336       INTEGER vorgba2i
337       PARAMETER (vorgba2i=18)
338 
339 ! index for Accumulation mode biogenic aero
340       INTEGER vorgba3j
341       PARAMETER (vorgba3j=19)
342 
343 ! index for Aitken mode biogenic aerosol co
344       INTEGER vorgba3i
345       PARAMETER (vorgba3i=20)
346 
347 ! index for Accumulation mode biogenic aero
348       INTEGER vorgba4j
349       PARAMETER (vorgba4j=21)
350 
351 ! index for Aitken mode biogenic aerosol co
352       INTEGER vorgba4i
353       PARAMETER (vorgba4i=22)
354 
355 ! index for Accumulation mode primary anthro
356       INTEGER vorgpaj
357       PARAMETER (vorgpaj=23)
358 
359 ! index for Aitken mode primary anthropogeni
360       INTEGER vorgpai
361       PARAMETER (vorgpai=24)
362 
363 ! index for Accumulation mode aerosol elemen
364       INTEGER vecj
365       PARAMETER (vecj=25)
366 
367 ! index for Aitken mode elemental carbon    
368       INTEGER veci
369       PARAMETER (veci=26)
370 
371 ! index for Accumulation mode primary PM2.5 
372       INTEGER vp25aj
373       PARAMETER (vp25aj=27)
374 
375 ! index for Aitken mode primary PM2.5 concen
376       INTEGER vp25ai
377       PARAMETER (vp25ai=28)
378 
379 ! index for coarse mode anthropogenic aeroso
380       INTEGER vantha
381       PARAMETER (vantha=29)
382 
383 ! index for coarse mode marine aerosol conce
384       INTEGER vseas
385       PARAMETER (vseas=30)
386 
387 ! index for coarse mode soil-derived aerosol
388       INTEGER vsoila
389       PARAMETER (vsoila=31)
390 
391 ! index for Aitken mode number              
392       INTEGER vnu0
393       PARAMETER (vnu0=32)
394 
395 ! index for accum  mode number              
396       INTEGER vac0
397       PARAMETER (vac0=33)
398 
399 ! index for coarse mode number              
400       INTEGER vcorn
401       PARAMETER (vcorn=34)
402 
403 ! index for Accumulation mode aerosol water 
404       INTEGER vh2oaj
405       PARAMETER (vh2oaj=35)
406 
407 ! index for Aitken mode aerosol water concen
408       INTEGER vh2oai
409       PARAMETER (vh2oai=36)
410 
411 ! index for Aitken mode 3'rd moment         
412       INTEGER vnu3
413       PARAMETER (vnu3=37)
414 
415 ! index for Accumulation mode 3'rd moment   
416       INTEGER vac3
417       PARAMETER (vac3=38)
418 
419 ! index for coarse mode 3rd moment          
420       INTEGER vcor3
421       PARAMETER (vcor3=39)
422 
423 ! index for sulfuric acid vapor concentratio
424       INTEGER vsulf
425       PARAMETER (vsulf=40)
426 
427 ! index for nitric acid vapor concentration 
428       INTEGER vhno3
429       PARAMETER (vhno3=41)
430 
431 ! index for ammonia gas concentration       
432       INTEGER vnh3
433       PARAMETER (vnh3=42)
434 
435 ! index for cond. vapor from aromatics   
436       INTEGER vcvaro1
437       PARAMETER (vcvaro1=43)
438 
439 ! index for cond. vapor from aromatics   
440       INTEGER vcvaro2
441       PARAMETER (vcvaro2=44)
442 
443 ! index for cond. vapor from anth. alkane
444       INTEGER vcvalk1
445       PARAMETER (vcvalk1=45)
446 
447 ! index for cond. vapor from anth. olefin
448       INTEGER vcvole1
449       PARAMETER (vcvole1=46)
450 
451 ! index for cond. vapor from biogenics   
452       INTEGER vcvapi1
453       PARAMETER (vcvapi1=47)
454 
455 ! index for cond. vapor from biogenics   
456       INTEGER vcvapi2
457       PARAMETER (vcvapi2=48)
458 
459 ! index for cond. vapor from biogenics   
460       INTEGER vcvlim1
461       PARAMETER (vcvlim1=49)
462 
463 ! index for cond. vapor from biogenics   
464       INTEGER vcvlim2
465       PARAMETER (vcvlim2=50)
466 
467 !           COMMON /CBLKINDCS/
468 !    &         VSO4AJ,VSO4AI,VNH4AJ,VNH4AI,VNO3AJ,VNO3AI,
469 !    &         VORGAJ,VORGAI, VORGPAJ,VORGPAI,
470 !    &         VORGBAJ,VORGBAI,VECJ,VECI,
471 !    &         VP25AJ,VP25AI,VANTHA,VSEAS,VSOILA,
472 !    &         VNU0,VAC0,VCORN,
473 !    &         VH2OAJ,VH2OAI,
474 !    &         VNU3,VAC3,VCOR3,
475 !    &         VSULF,VHNO3,VNH3
476 
477 ! *** set up species dimension and indices for sedimentation
478 !     velocity array VSED
479 
480 ! number of sedimentation velocities         
481       INTEGER naspcssed
482       PARAMETER (naspcssed=6)
483 
484 ! index for Aitken mode number                  
485       INTEGER vsnnuc
486       PARAMETER (vsnnuc=1)
487 
488 ! index for Accumulation mode number            
489       INTEGER vsnacc
490       PARAMETER (vsnacc=2)
491 
492 ! index for coarse mode number                  
493       INTEGER vsncor
494       PARAMETER (vsncor=3)
495 
496 ! index for Aitken mode mass                     
497       INTEGER vsmnuc
498       PARAMETER (vsmnuc=4)
499 
500 ! index for accumulation mode mass               
501       INTEGER vsmacc
502       PARAMETER (vsmacc=5)
503 
504 ! index for coarse mass                         
505       INTEGER vsmcor
506       PARAMETER (vsmcor=6)
507 
508 ! *** set up species dimension and indices for deposition
509 !     velocity array VDEP
510 
511 ! number of deposition velocities            
512       INTEGER naspcsdep
513       PARAMETER (naspcsdep=7)
514 
515 ! index for Aitken mode number                  
516       INTEGER vdnnuc
517       PARAMETER (vdnnuc=1)
518 
519 ! index for accumulation mode number            
520       INTEGER vdnacc
521       PARAMETER (vdnacc=2)
522 
523 ! index for coarse mode number                  
524       INTEGER vdncor
525       PARAMETER (vdncor=3)
526 
527 ! index for Aitken mode mass                    
528       INTEGER vdmnuc
529       PARAMETER (vdmnuc=4)
530 
531 ! index for accumulation mode                   
532       INTEGER vdmacc
533       PARAMETER (vdmacc=5)
534 
535 ! index for fine mode mass (Aitken + accumulatio
536       INTEGER vdmfine
537       PARAMETER (vdmfine=6)
538 
539 ! index for coarse mode mass                    
540       INTEGER vdmcor
541       PARAMETER (vdmcor=7)
542 
543 ! *** END AEROSTUFF.EXT
544 !bs
545 !BS * BS * BS * BS * BS * BS * BS * BS * BS * BS * BS * BS * BS * BS * !
546 !BS *                                                                * !
547 !BS *            include file used in SORGAM routines                * !
548 !BS *                                                                * !
549 !BS * BS * BS * BS * BS * BS * BS * BS * BS * BS * BS * BS * BS * BS * !
550 !bs
551 !bs
552 !bs * species pointer for condensable vapor production
553 !bs
554 !bs XYL + OH                            
555       INTEGER pxyl
556       PARAMETER (pxyl=1)
557 !bs TOL + OH                            
558       INTEGER ptol
559       PARAMETER (ptol=2)
560 !bs CSL + OH                            
561       INTEGER pcsl1
562       PARAMETER (pcsl1=3)
563 !bs CSL + NO                            
564       INTEGER pcsl2
565       PARAMETER (pcsl2=4)
566 !bs HC8 + OH                            
567       INTEGER phc8
568       PARAMETER (phc8=5)
569 !bs OLI + OH                            
570       INTEGER poli1
571       PARAMETER (poli1=6)
572 !bs OLI + NO                            
573       INTEGER poli2
574       PARAMETER (poli2=7)
575 !bs OLI + O3                            
576       INTEGER poli3
577       PARAMETER (poli3=8)
578 !bs OLT + OH                            
579       INTEGER polt1
580       PARAMETER (polt1=9)
581 !bs OLT + NO                            
582       INTEGER polt2
583       PARAMETER (polt2=10)
584 !bs OLT + O3                            
585       INTEGER polt3
586       PARAMETER (polt3=11)
587 !bs API + OH                            
588       INTEGER papi1
589       PARAMETER (papi1=12)
590 !bs API + NO                            
591       INTEGER papi2
592       PARAMETER (papi2=13)
593 !bs API + O3                            
594       INTEGER papi3
595       PARAMETER (papi3=14)
596 !bs LIM + OH                            
597       INTEGER plim1
598       PARAMETER (plim1=15)
599 !bs LIM + NO                            
600       INTEGER plim2
601       PARAMETER (plim2=16)
602 !bs LIM + O3                            
603       INTEGER plim3
604       PARAMETER (plim3=17)
605 !bs
606 !bs * Number of lumped condensable vapors in SORGAM
607 !bs
608 !bs      INTEGER NACV              !bs # of anth. cond. vapors
609 !bs      PARAMETER (NACV = 2)
610 !bs      INTEGER NBCV              !bs # of bio. cond. vapors
611 !bs      PARAMETER (NBCV = 1)
612 !bs      INTEGER NCV               !bs total # of cond. vapor
613 !bs      PARAMETER (NCV = NACV + NBCV)
614 !bs
615 !bs * species pointer for SOA species
616 !bs
617       INTEGER psoaaro1
618       PARAMETER (psoaaro1=1)
619       INTEGER psoaaro2
620       PARAMETER (psoaaro2=2)
621       INTEGER psoaalk1
622       PARAMETER (psoaalk1=3)
623       INTEGER psoaole1
624       PARAMETER (psoaole1=4)
625       INTEGER psoaapi1
626       PARAMETER (psoaapi1=5)
627       INTEGER psoaapi2
628       PARAMETER (psoaapi2=6)
629       INTEGER psoalim1
630       PARAMETER (psoalim1=7)
631       INTEGER psoalim2
632       PARAMETER (psoalim2=8)
633 !bs
634 !bs * end of AERO_SOA.EXT *
635 !bs
636 
637 ! *** include file for aerosol routines
638 
639 
640 !....................................................................
641 
642 !  CONTAINS: Fundamental constants for air quality modeling
643 
644 !  DEPENDENT UPON:  none
645 
646 !  REVISION HISTORY:
647 
648 !    Adapted 6/92 by CJC from ROM's PI.EXT.
649 
650 !    Revised 3/1/93 John McHenry to include constants needed by
651 !    LCM aqueous chemistry
652 !    Revised 9/93 by John McHenry to include additional constants
653 !    needed for FMEM clouds and aqueous chemistry
654 
655 !    Revised 3/4/96 by Dr. Francis S. Binkowski to reflect current
656 !    Models3 view that MKS units should be used wherever possible,
657 !    and that sources be documentated. Some variables have been added
658 !    names changed, and values revised.
659 
660 !    Revised 3/7/96 to have universal gas constant input and compute
661 !    gas constant is chemical form. TWOPI is now calculated rather than
662 
663 !    Revised 3/13/96 to group declarations and parameter statements.
664 
665 !    Revised 9/13/96 to include more physical constants.
666 !    Revised 12/24/96 eliminate silly EPSILON, AMISS
667 
668 !    Revised 1/06/97 to eliminate most derived constants
669 
670 ! FSB REFERENCES:
671 
672 !      CRC76,        CRC Handbook of Chemistry and Physics (76th Ed),
673 !                     CRC Press, 1995
674 !      Hobbs, P.V.   Basic Physical Chemistry for the Atmospheric Scien
675 !                     Cambridge Univ. Press, 206 pp, 1995.
676 !      Snyder, J.P., Map Projections-A Working Manual, U.S. Geological
677 !                     Paper 1395 U.S.GPO, Washington, DC, 1987.
678 !      Stull, R. B., An Introduction to Bounday Layer Meteorology, Klu
679 !                     Dordrecht, 1988
680 
681 ! Geometric Constants:
682 
683       REAL*8 & ! PI (single precision 3.141593)                 
684         pirs
685       PARAMETER (pirs=3.14159265358979324)
686 !      REAL     PIRS ! PI (single precision 3.141593)
687 !      PARAMETER ( PIRS = 3.141593 )
688 ! Fundamental Constants: ( Source: CRC76, pp 1-1 to 1-6)
689 
690 ! Avogadro's Constant [ 1/mol ]                   
691       REAL avo
692       PARAMETER (avo=6.0221367E23)
693 
694 ! universal gas constant [ J/mol-K ]         
695       REAL rgasuniv
696       PARAMETER (rgasuniv=8.314510)
697 
698 ! standard atmosphere  [ Pa ]                
699       REAL stdatmpa
700       PARAMETER (stdatmpa=101325.0)
701 
702 ! Standard Temperature [ K ]                  
703       REAL stdtemp
704       PARAMETER (stdtemp=273.15)
705 
706 ! Stefan-Boltzmann [ W/(m**2 K**4) ]           
707       REAL stfblz
708       PARAMETER (stfblz=5.67051E-8)
709 
710 
711 ! mean gravitational acceleration [ m/sec**2 ]   
712       REAL grav
713       PARAMETER (grav=9.80622)
714 ! FSB Non MKS qualtities:
715 
716 ! Molar volume at STP [ L/mol ] Non MKS units  
717       REAL molvol
718       PARAMETER (molvol=22.41410)
719 
720 
721 ! Atmospheric Constants:
722 
723 ! FSB                     78.06%  N2, 21% O2 and 0.943% A on a mole
724       REAL mwair
725                         ! fraction basis. ( Source : Hobbs, 1995) pp 69-
726 ! mean molecular weight for dry air [ g/mol ]        
727       PARAMETER (mwair=28.9628)
728 
729 ! dry-air gas constant [ J / kg-K ]            
730       REAL rdgas
731       PARAMETER (rdgas=1.0E3*rgasuniv/mwair)
732 
733 !  3*PI                                            
734       REAL threepi
735       PARAMETER (threepi=3.0*pirs)
736 
737 !  6/PI                                              
738       REAL f6dpi
739       PARAMETER (f6dpi=6.0/pirs)
740 
741 !  1.0e9 * 6/PIRS                                 
742       REAL f6dpi9
743       PARAMETER (f6dpi9=1.0E9*f6dpi)
744 
745 ! 1.0e-9 * 6/PIRS                                 
746       REAL f6dpim9
747       PARAMETER (f6dpim9=1.0E-9*f6dpi)
748 
749 !  SQRT( PI )                                       
750       REAL sqrtpi
751       PARAMETER (sqrtpi=1.7724539)
752 
753 !  SQRT( 2 )                                         
754       REAL sqrt2
755       PARAMETER (sqrt2=1.4142135623731)
756 
757 !  ln( sqrt( 2 ) )                                
758       REAL lgsqt2
759       PARAMETER (lgsqt2=0.34657359027997)
760 
761 !  1/ln( sqrt( 2 ) )                              
762       REAL dlgsqt2
763       PARAMETER (dlgsqt2=1.0/lgsqt2)
764 
765 !  1/3                                            
766       REAL one3
767       PARAMETER (one3=1.0/3.0)
768 
769 !  2/3                                            
770       REAL two3
771       PARAMETER (two3=2.0/3.0)
772 
773 
774 ! *** physical constants:
775 
776 ! Boltzmann's Constant [ J / K]             
777       REAL boltz
778       PARAMETER (boltz=rgasuniv/avo)
779 
780 
781 ! *** component densities [ kg/m**3 ] :
782 
783 
784 !  bulk density of aerosol sulfate        
785       REAL rhoso4
786       PARAMETER (rhoso4=1.8E3)
787 
788 !  bulk density of aerosol ammonium       
789       REAL rhonh4
790       PARAMETER (rhonh4=1.8E3)
791 
792 ! bulk density of aerosol nitrate          
793       REAL rhono3
794       PARAMETER (rhono3=1.8E3)
795 
796 !  bulk density of aerosol water          
797       REAL rhoh2o
798       PARAMETER (rhoh2o=1.0E3)
799 
800 ! bulk density for aerosol organics        
801       REAL rhoorg
802       PARAMETER (rhoorg=1.0E3)
803 
804 ! bulk density for aerosol soil dust      
805       REAL rhosoil
806       PARAMETER (rhosoil=2.6E3)
807 
808 ! bulk density for marine aerosol        
809       REAL rhoseas
810       PARAMETER (rhoseas=2.2E3)
811 
812 ! bulk density for anthropogenic aerosol  
813       REAL rhoanth
814       PARAMETER (rhoanth=2.2E3)
815 
816 ! *** Factors for converting aerosol mass concentration [ ug m**-3] to
817 !      	  to 3rd moment concentration [ m**3 m^-3]
818 
819       REAL so4fac
820       PARAMETER (so4fac=f6dpim9/rhoso4)
821 
822       REAL nh4fac
823       PARAMETER (nh4fac=f6dpim9/rhonh4)
824 
825       REAL h2ofac
826       PARAMETER (h2ofac=f6dpim9/rhoh2o)
827 
828       REAL no3fac
829       PARAMETER (no3fac=f6dpim9/rhono3)
830 
831       REAL orgfac
832       PARAMETER (orgfac=f6dpim9/rhoorg)
833 
834       REAL soilfac
835       PARAMETER (soilfac=f6dpim9/rhosoil)
836 
837       REAL seasfac
838       PARAMETER (seasfac=f6dpim9/rhoseas)
839 
840       REAL anthfac
841       PARAMETER (anthfac=f6dpim9/rhoanth)
842 
843 !  starting standard surface pressure [ Pa ]  
844       REAL pss0
845       PARAMETER (pss0=101325.0)
846 
847 !  starting standard surface temperature [ K ]
848       REAL tss0
849       PARAMETER (tss0=288.15)
850 
851 !  initial sigma-G for nucleimode                 
852       REAL sginin
853       PARAMETER (sginin=1.70)
854 
855 !  initial sigma-G for accumulation mode          
856       REAL sginia
857       PARAMETER (sginia=2.00)
858 
859 ! initial sigma-G for coarse mode               
860       REAL sginic
861       PARAMETER (sginic=2.5)
862 
863 !  initial mean diameter for nuclei mode [ m ]    
864       REAL dginin
865       PARAMETER (dginin=0.01E-6)
866 
867 !  initial mean diameter for accumulation mode [ m
868       REAL dginia
869       PARAMETER (dginia=0.07E-6)
870 
871 ! initial mean diameter for coarse mode [ m ]  
872       REAL dginic
873       PARAMETER (dginic=1.0E-6)
874 
875 
876 
877 !................   end   AERO3box.EXT   ...............................
878 !///////////////////////////////////////////////////////////////////////
879 
880 
881 
882 
883 
884 !     LOGICAL diagnostics
885 ! *** Scalar variables for fixed standard deviations.
886 
887 ! Flag for writing diagnostics to file       
888 ! nuclei mode exp( log^2( sigmag )/8 )  
889       REAL en1
890 ! accumulation mode exp( log^2( sigmag )
891       REAL ea1
892 
893       REAL ec1
894 ! coarse mode exp( log^2( sigmag )/8 )  
895 ! nuclei        **4                    
896       REAL esn04
897 ! accumulation                         
898       REAL esa04
899 
900       REAL esc04
901 ! coarse                               
902 ! nuclei        **5                    
903       REAL esn05
904 
905       REAL esa05
906 ! accumulation                         
907 ! nuclei        **8                    
908       REAL esn08
909 ! accumulation                         
910       REAL esa08
911 
912       REAL esc08
913 ! coarse                               
914 ! nuclei        **9                    
915       REAL esn09
916 
917       REAL esa09
918 ! accumulation                         
919 ! nuclei        **12                   
920       REAL esn12
921 ! accumulation                         
922       REAL esa12
923 
924       REAL esc12
925 ! coarse mode                          
926 ! nuclei        **16                   
927       REAL esn16
928 ! accumulation                         
929       REAL esa16
930 
931       REAL esc16
932 ! coarse                               
933 ! nuclei        **20                   
934       REAL esn20
935 ! accumulation                         
936       REAL esa20
937 
938       REAL esc20
939 ! coarse                               
940 ! nuclei        **25                   
941       REAL esn25
942 
943       REAL esa25
944 ! accumulation                         
945 ! nuclei        **24                   
946       REAL esn24
947 ! accumulation                         
948       REAL esa24
949 
950       REAL esc24
951 ! coarse                               
952 ! nuclei        **28                   
953       REAL esn28
954 ! accumulation                         
955       REAL esa28
956 
957       REAL esc28
958 ! coarse                               
959 ! nuclei        **32                   
960       REAL esn32
961 ! accumulation                         
962       REAL esa32
963 
964       REAL esc32
965 ! coarese                              
966 ! nuclei        **36                   
967       REAL esn36
968 ! accumulation                         
969       REAL esa36
970 
971       REAL esc36
972 ! coarse                               
973 ! nuclei        **49                   
974       REAL esn49
975 
976       REAL esa49
977 ! accumulation                         
978 ! nuclei        **52                   
979       REAL esn52
980 
981       REAL esa52
982 ! accumulation                         
983 ! nuclei        **64                   
984       REAL esn64
985 ! accumulation                         
986       REAL esa64
987 
988       REAL esc64
989 ! coarse                               
990 
991       REAL esn100
992 ! nuclei        **100                  
993 ! nuclei        **(-20)                
994       REAL esnm20
995 ! accumulation                         
996       REAL esam20
997 
998       REAL escm20
999 ! coarse                               
1000 ! nuclei        **(-32)                
1001       REAL esnm32
1002 ! accumulation                         
1003       REAL esam32
1004 
1005       REAL escm32
1006 ! coarse                               
1007 ! log(sginin)                           
1008       REAL xxlsgn
1009 ! log(sginia)                           
1010       REAL xxlsga
1011 
1012       REAL xxlsgc
1013 ! log(sginic )                          
1014 ! log(sginin ) ** 2                           
1015       REAL l2sginin
1016 ! log(sginia ) ** 2                           
1017       REAL l2sginia
1018 
1019       REAL l2sginic
1020 
1021 
1022 ! *** set up COMMON blocks for esg's:
1023 
1024 
1025 
1026 ! log(sginic ) ** 2                           
1027 
1028 ! *** SET NUCLEATION FLAG:
1029 
1030                             ! INUCL = 0, Kerminen & Wexler Mechanism
1031       INTEGER inucl
1032                             ! INUCL = 1, Youngblood and Kreidenweis mech
1033                             ! INUCL = 2, Kulmala et al. mechanism
1034 ! Flag for Choice of nucleation Mechanism   
1035       PARAMETER (inucl=2)
1036 
1037 ! *** Set flag for sedimentation velocities:
1038 
1039       LOGICAL icoarse
1040       PARAMETER (icoarse=.FALSE.) ! *** END AERO_INTERNAL.EXT
1041 ! *** Diameters and standard deviations for emissions
1042 !     the diameters are the volume (mass) geometric mean diameters
1043 
1044 ! *** Aitken mode:
1045 ! special factor to compute mass transfer           
1046       REAL dgvem_i
1047       PARAMETER (dgvem_i=0.03E-6) ! [ m ]                            
1048       REAL sgem_i
1049       PARAMETER (sgem_i=1.7)
1050 
1051 ! *** Accumulation mode:
1052       REAL dgvem_j
1053       PARAMETER (dgvem_j=0.3E-6) ! [ m ]                             
1054       REAL sgem_j
1055       PARAMETER (sgem_j=2.0)
1056 
1057 ! *** Coarse mode
1058       REAL dgvem_c
1059       PARAMETER (dgvem_c=6.0E-6) ! [ m ] <<< Corrected 11/19/97      
1060       REAL sgem_c
1061       PARAMETER (sgem_c=2.2)
1062 
1063 ! *** factors for getting number emissions rate from mass emissions rate
1064 ! Aitken mode                                       
1065       REAL factnumn
1066 ! accumulation mode                                 
1067       REAL factnuma
1068 
1069       REAL factnumc
1070 ! coarse mode                                       
1071       REAL facatkn_min, facacc_min
1072       PARAMETER (facatkn_min=0.04,facacc_min=1.0-facatkn_min)
1073       REAL conmin,xxm3
1074       PARAMETER (conmin=epsilc)
1075 ! [ ug/m**3 ] ! changed 1/6/98 
1076       REAL*8 & ! factor to set minimum for Aitken mode number  
1077         nummin_i
1078       REAL*8 & ! factor to set minimum for accumulation mode nu
1079         nummin_j
1080       REAL*8 & 
1081         nummin_c
1082 ! factor to set minimum for coarse mode number  
1083 !bs
1084 !bs      REAL ALPHSULF ! Accommodation coefficient for sulfuric acid
1085 !bs      PARAMETER ( ALPHSULF = 0.05 ) ! my be set to one in future
1086 !bs
1087 !bs      REAL DIFFSULF ! molecular diffusivity for sulfuric acid [ m**2
1088 !bs      PARAMETER( DIFFSULF = 0.08E-4 ) ! may be changed in future
1089 !bs
1090 !bs * 23/03/99 updates of ALPHSULF and DIFFSULF adopted fro new code fro
1091 !bs * DIFFSULF is calculated from Reid, Prausnitz, and Poling, The prope
1092 !bs * of gases and liquids, 4th edition, McGraw-Hill, 1987, pp 587-588.
1093 !bs * Equation (11-4.4) was used.
1094 !bs * The value is at T = 273.16 K and P = 1.01325E05 Pa
1095 !bs * Temperature dependence is included for DIFFSULF via DIFFCORR (see
1096 !bs
1097 ! Accommodation coefficient for sulfuric
1098       REAL alphsulf
1099       PARAMETER (alphsulf=1.0) 
1100 !bs updated from code of FSB         
1101 ! molecular weight for sulfuric acid [ kg/mole ] MKS 
1102       REAL mwh2so4
1103       PARAMETER (mwh2so4=98.07354E-3) 
1104 !cia corrected error 24/11/97
1105 ! molecular diffusivity for sulfuric acid [ m**2 /se
1106       REAL diffsulf
1107       PARAMETER (diffsulf=9.362223E-06) 
1108 !bs updated from code of FSB 
1109 !bs Accomodation coefficient for organic
1110       REAL alphaorg
1111       PARAMETER (alphaorg=1.0)                                    !bs Kleeman et al. '99 propose alpha
1112 !bs Bowman et al. '97 uses alpha = 1.
1113 !bs mean molecular weight of organics [k
1114       REAL mworg
1115       PARAMETER (mworg=175.0E-03)
1116 !bs
1117 !bs * DIFFORG is calculated from the same formula as DIFFSULF.
1118 !bs * An average elemental composition of C=8, O=3, N=1, H=17 is asuumed
1119 !bs * to calculate DIFFORG at T = 273.16K and  P = 1.01325E05 Pa.
1120 !bs * Temepratur dependence is included below.
1121 !bs molecular diffusivity for organics [
1122       REAL difforg
1123       PARAMETER (difforg=5.151174E-06)
1124 ! *** CCONC is the factor for near-continuum condensation.
1125 ! ccofm * sqrt( ta )                    
1126       REAL cconc
1127       PARAMETER (cconc=2.0*pirs*diffsulf) 
1128 !bs * factor for NC condensation for organics
1129 ! [ m**2 / sec ]       
1130       REAL cconc_org
1131       PARAMETER (cconc_org=2.0*pirs*difforg) 
1132 ! [ m**2 / sec ]    
1133 !bs analogue to CCOFM but for organics  
1134       REAL ccofm_org
1135 ! FSB  CCOFM is  the accommodation coefficient
1136 !      times the mean molecular velocity for h2so4 without the temperatu
1137 !      after some algebra
1138 
1139 !bs CCOFM_ORG * sqrt(TA)                
1140 ! set to a value below                  
1141       REAL ccofm
1142 ! minimum aerosol sulfate concentration          
1143       REAL aeroconcmin
1144       PARAMETER (aeroconcmin=0.0001) 
1145 
1146 
1147 
1148 END Module module_data_sorgam