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