SURFEX v8.1
General documentation of Surfex
modd_chs_aerosol.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 !! ######################
7 !! ######################
8 !!
9 !! PURPOSE
10 !! -------
11 !!
12 !! declaration of variables and types for the aerosol system in the
13 !! surface meteo-france scheme
14 !!
15 !! METHOD
16 !! ------
17 !!
18 !!
19 !! REFERENCE
20 !! ---------
21 !! none
22 !!
23 !!
24 !! AUTHOR
25 !! ------
26 !! P. Tulet (CNRM)
27 !!
28 !!
29 !! MODIFICATIONS
30 !! -------------
31 !!
32 !!--------------------------------------------------------------------
33 !! DECLARATIONS
34 !! ------------
35 IMPLICIT NONE
36 !
37 ! aerosol mode parameters
38 LOGICAL :: lch_aero_flux = .false. ! switch to active pronostic aerosols
39 !
40 LOGICAL :: lco2pm = .false. ! switch to active primary emission derived from CO
41 
42 LOGICAL :: lvarsigi = .false. ! switch to active pronostic dispersion for I mode
43 LOGICAL :: lvarsigj = .false. ! switch to active pronostic dispersion for J mode
44 
45 !
46 INTEGER, PARAMETER :: jpmode=2 ! number of modes
47 INTEGER, PARAMETER :: jpin=jpmode*3 ! number of differential equations
48 INTEGER, SAVE, DIMENSION(JPMODE) :: nm0,nm3,nm6 ! index of the moments in arrays
49 !
50 !* indices of Aerosol chemical parameters
51 !
52 INTEGER, PARAMETER :: nsp=4 ! number of chemical species
53  ! for ARES or isorropia NSP=4 these are
54 INTEGER, PARAMETER :: jp_aer_so4 = 1
55 INTEGER, PARAMETER :: jp_aer_no3 = 2
56 INTEGER, PARAMETER :: jp_aer_nh3 = 3
57 INTEGER, PARAMETER :: jp_aer_h2o = 4
58 !
59 INTEGER, PARAMETER :: jp_aer_so4g = jp_aer_so4
60 INTEGER, PARAMETER :: jp_aer_no3g = jp_aer_no3
61 INTEGER, PARAMETER :: jp_aer_nh3g = jp_aer_nh3
62 !
63 INTEGER, PARAMETER :: ncarb=3 ! number of chemically inert species
64  ! (like black carbon)
65 INTEGER, PARAMETER :: jp_aer_oc = 5
66 INTEGER, PARAMETER :: jp_aer_bc = 6
67 INTEGER, PARAMETER :: jp_aer_dst = 7
68 
69 INTEGER :: nsoa = 10 ! number of condensable species that may form
70  ! secondary aerosols
71 INTEGER :: nm6_aer = 2 ! number of condensable species that may form
72  ! secondary aerosols
73 INTEGER :: jp_aer_soa1 = 8
74 INTEGER :: jp_aer_soa2 = 9
75 INTEGER :: jp_aer_soa3 = 10
76 INTEGER :: jp_aer_soa4 = 11
77 INTEGER :: jp_aer_soa5 = 12
78 INTEGER :: jp_aer_soa6 = 13
79 INTEGER :: jp_aer_soa7 = 14
80 INTEGER :: jp_aer_soa8 = 15
81 INTEGER :: jp_aer_soa9 = 16
82 INTEGER :: jp_aer_soa10 = 17
83 
84  CHARACTER(LEN=32),DIMENSION(:), ALLOCATABLE :: caeronames
85 
86 INTEGER :: jp_ch_so4i = 1
87 INTEGER :: jp_ch_so4j = 2
88 INTEGER :: jp_ch_no3i = 3
89 INTEGER :: jp_ch_no3j = 4
90 INTEGER :: jp_ch_nh3i = 5
91 INTEGER :: jp_ch_nh3j = 6
92 INTEGER :: jp_ch_h2oi = 7
93 INTEGER :: jp_ch_h2oj = 8
94 INTEGER :: jp_ch_oci = 9
95 INTEGER :: jp_ch_ocj = 10
96 INTEGER :: jp_ch_bci = 11
97 INTEGER :: jp_ch_bcj = 12
98 INTEGER :: jp_ch_dsti = 13
99 INTEGER :: jp_ch_dstj = 14
100 INTEGER :: jp_ch_soa1i = 15
101 INTEGER :: jp_ch_soa1j = 16
102 INTEGER :: jp_ch_soa2i = 17
103 INTEGER :: jp_ch_soa2j = 18
104 INTEGER :: jp_ch_soa3i = 19
105 INTEGER :: jp_ch_soa3j = 20
106 INTEGER :: jp_ch_soa4i = 21
107 INTEGER :: jp_ch_soa4j = 22
108 INTEGER :: jp_ch_soa5i = 23
109 INTEGER :: jp_ch_soa5j = 24
110 INTEGER :: jp_ch_soa6i = 25
111 INTEGER :: jp_ch_soa6j = 26
112 INTEGER :: jp_ch_soa7i = 27
113 INTEGER :: jp_ch_soa7j = 28
114 INTEGER :: jp_ch_soa8i = 29
115 INTEGER :: jp_ch_soa8j = 30
116 INTEGER :: jp_ch_soa9i = 31
117 INTEGER :: jp_ch_soa9j = 32
118 INTEGER :: jp_ch_soa10i = 33
119 INTEGER :: jp_ch_soa10j = 34
120 INTEGER :: jp_ch_m0i = 35
121 INTEGER :: jp_ch_m0j = 36
122 INTEGER :: jp_ch_m6i = 37
123 INTEGER :: jp_ch_m6j = 38
124 
125 !INTEGER, PARAMETER :: JPNN=NSP+NSOA+NCARB
126 
127 ! Index for gas species which interact with aerosols
138 
140 !
141 
142 
143 
144 ! Molar mass of each aerosols parents (in kg/mol)
145 REAL, PARAMETER :: xhno3=63.01287
146 REAL, PARAMETER :: xnh3 =17.03061
147 REAL, PARAMETER :: xurg1=88.
148 REAL, PARAMETER :: xurg2=1.76981e+02
149 REAL, PARAMETER :: xrpg2=1.68000e+02
150 REAL, PARAMETER :: xrp18=1.84000e+02
151 REAL, PARAMETER :: xrpg3=1.53772e+02
152 REAL, PARAMETER :: xurg4=1.95867e+02
153 REAL, PARAMETER :: xur17=1.72000e+02
154 REAL, PARAMETER :: xrpr3=1.86000e+02
155 REAL, PARAMETER :: xap7 =2.33000e+02
156 REAL, PARAMETER :: xurg6=1.89153e+02
157 REAL, PARAMETER :: xur22=2.12000e+02
158 REAL, PARAMETER :: xurg7=1.56781e+02
159 REAL, PARAMETER :: xrpr4=1.67000e+02
160 REAL, PARAMETER :: xrpr7=1.50000e+02
161 REAL, PARAMETER :: xrpg7=1.96059e+02
162 REAL, PARAMETER :: xurg8=1.73777e+02
163 REAL, PARAMETER :: xurg9=2.61676e+02
164 REAL, PARAMETER :: xur26=1.68000e+02
165 REAL, PARAMETER :: xurg10=2.14834e+02
166 REAL, PARAMETER :: xur7=1.68000e+02
167 REAL, PARAMETER :: xur8=1.84000e+02
168 REAL, PARAMETER :: xpan8=2.63000e+02
169 REAL, PARAMETER :: xarac=1.32000e+02
170 REAL, PARAMETER :: xur19=1.70000e+02
171 
172 
173 
174 !
175 REAL :: xemisradiusi = 0.036 ! mean radius of primary aerosol
176  ! emission for I mode
177 REAL :: xemisradiusj = 0.385 ! mean radius of primary aerosol
178  ! emission for J mode
179 REAL :: xemissigi = 1.86 ! dispersion of primary aerosol
180  ! emission for I mode
181 REAL :: xemissigj = 1.29 ! dispersion of primary aerosol
182  ! emission for J mode
183  CHARACTER*4 :: crgunit = 'NUMB' ! type of log-normal geometric mean radius given
184 ! ! in nameliste (mass on number)
185 
186 
187 
188 !----------------------------------------------------------------------------
189 !
190 !* constants
191 !
192 REAL, PARAMETER :: xpboltz=1.380658e-23 ! Boltzmann constant (J/K)
193 REAL, PARAMETER :: xavogadro=6.0221367e+23 ! Avogadro constant
194 REAL, PARAMETER :: xmd = 28.9644e-3 ! Air mass molarity
195 
196 !
197 END MODULE modd_chs_aerosol
real, parameter xrpg7
real, parameter xrpr4
real, parameter xnh3
real, parameter xrpg2
integer, parameter jp_aer_oc
integer, parameter nsp
integer, parameter jpin
real, parameter xur8
real, parameter xur26
integer, parameter ncarb
real, parameter xurg1
integer, parameter jp_aer_nh3
real, parameter xurg7
real, parameter xavogadro
real, parameter xrpr3
integer, parameter jp_aer_so4g
real, parameter xurg8
real, parameter xurg2
real, parameter xur7
character(len=32), dimension(:), allocatable caeronames
real, parameter xrp18
integer, parameter jpmode
integer, dimension(jpmode), save nm6
integer, parameter jp_aer_no3g
integer, parameter jp_aer_so4
real, parameter xap7
real, parameter xpboltz
real, parameter xurg6
integer, parameter jp_aer_bc
real, parameter xurg10
integer, parameter jp_aer_h2o
real, parameter xur17
integer, dimension(jpmode), save nm0
real, parameter xur22
real, parameter xurg9
real, parameter xurg4
integer, parameter jp_aer_dst
real, parameter xrpg3
real, parameter xrpr7
real, parameter xpan8
integer, dimension(jpmode), save nm3
integer, parameter jp_aer_no3
real, parameter xmd
real, parameter xarac
integer, parameter jp_aer_nh3g
real, parameter xur19
real, parameter xhno3