LMDZ
su_aerp.F90
Go to the documentation of this file.
1 SUBROUTINE su_aerp
2 
3 !**** *SU_AERP* - INITIALIZE MODULES YOEAERSRC, YOEAERSNK
4 
5 ! PURPOSE.
6 ! --------
7 ! INITIALIZE YOEAERSRC AND YOEAERSNK, THE MODULES THAT CONTAINS
8 ! COEFFICIENTS NEEDED TO RUN THE PROGNOSTIC AEROSOLS
9 
10 !** INTERFACE.
11 ! ----------
12 ! *CALL* *SU_AERP
13 
14 ! EXPLICIT ARGUMENTS :
15 ! --------------------
16 ! NONE
17 
18 ! IMPLICIT ARGUMENTS :
19 ! --------------------
20 ! YOEAERSRC, YOEAERSNK, YOEAERATM
21 
22 ! METHOD.
23 ! -------
24 ! SEE DOCUMENTATION
25 
26 ! EXTERNALS.
27 ! ----------
28 
29 ! REFERENCE.
30 ! ----------
31 ! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS
32 
33 ! AUTHOR.
34 ! -------
35 ! JEAN-JACQUES MORCRETTE *ECMWF*
36 ! from O.BOUCHER (LOA, 1998-03)
37 
38 ! MODIFICATIONS.
39 ! --------------
40 ! ORIGINAL : 2004-05-10
41 
42 ! ------------------------------------------------------------------
43 
44 USE parkind1 ,ONLY : jprb
45 USE yomhook ,ONLY : lhook, dr_hook
46 
47 USE yoeaersrc , ONLY : rssflx
48 
49 USE yoeaersnk , ONLY : r_r, r_s, ralphar, ralphas, rfraer, rfrgas, &
51  & rfrbc , rfrif , rfrom , rfrso4 , rfrdd , rfrss , rho_wat, rho_ice, &
53  & nbrh
54 
55 USE yoeaeratm , ONLY : rmasse, rmfmin, ndd1, nss1
56 
57 IMPLICIT NONE
58 
59 REAL(KIND=JPRB) :: ZHOOK_HANDLE
60 ! ----------------------------------------------------------------
61 IF (lhook) CALL dr_hook('SU_AERP',0,zhook_handle)
62 
63 !-- For the ECMWF model, the following tables when dimensioned to 12
64 ! can refer to 12 values of RH
65 ! (RHTAB, RHHO_SS, RSSGROW)
66 ! or to 12 types/bins of aerosols with the following mapping: NTYPAER
67 ! 1- 3 sea-salt 0.03 - 0.5 - 5 - 20 microns 1
68 ! 4- 6 dust 0.03 - 0.5 - 0.9 - 20 microns 2
69 ! 7- 8 POM hydrophilic, hydrophobic 3
70 ! 9-10 BC hydrophilic, hydrophobic 4
71 ! 11 sulfate 5
72 ! 12 fly ash 6
73 ! 13 stratospheric aerosols 7
74 ! 14 volcanic aerosols 8
75 ! 15 9
76 ! (RVDPOCE, RVDSIC, RVDPLND, RVDPLIC)
77 ! (RVSEDOCE,RVSEDSIC,RVSEDLND,RVSEDLIC)
78 
79 
80 
81 !* 1. PARAMETERS RELATED TO SOURCES
82 ! -----------------------------
83 
84 !-- OB's original 12 types and 24 different values had the following mapping
85 ! DMS SO2 SO4 H2S DMSO MSA H2O2
86 ! BC(2) OM(2) FlyAsh DU(2) SS(10)
87 
88 !-- OB's original SS 10 bins
89 ! bin sizes: 0.03-0.06-0.13-0.25-0.5-1.0-2.0-5.0-10.-15.-20
90 !RSSFLX = (/ &
91 ! & 0.20526E-09_JPRB, 0.49292E-09_JPRB, 0.97079E-09_JPRB, 0.31938E-08_JPRB &
92 ! &, 0.16245E-07_JPRB, 0.86292E-07_JPRB, 0.31326E-06_JPRB, 0.24671E-06_JPRB &
93 ! &, 0.14109E-06_JPRB, 0.11784E-06_JPRB /)
94 
95 ! maximum possible number of aerosol types
96 !NMAXTAER=9 already defined in SU_AERW
97 
98 !N.B. Fluxes of sea salt for each size bin are given in mg m-2 s-1 at wind
99 ! speed of 1 m s-1 at 10m height (at 80% RH) in OB's seasalt.F
100 ! RSSFLX also in mg m-2 s-1
101 !-- OB's ECMWF 3 bins of sea salt: 0.03, 0.5, 5, 20 microns
102 rssflx = (/ 4.85963536e-09_jprb, 4.15358556e-07_jprb, 5.04905813e-07_jprb /)
103 
104 ! OB's original vdep_oce, vdep_sic, vdep_ter, vdep_lic were given over 24 values
105 
106 ! following 12 values for 10 SS and 2 DU in cm s-1
107 !RVDPOCE = (/ 0.1_JPRB, 1.2_JPRB, 0.1_JPRB, 0.1_JPRB, 0.1_JPRB, 0.1_JPRB &
108 ! &, 0.1_JPRB, 1.2_JPRB, 1.2_JPRB, 1.2_JPRB, 1.5_JPRB, 1.5_JPRB /)
109 !
110 !RVDPSIC = (/ 0.1_JPRB, 1.2_JPRB, 0.1_JPRB, 0.1_JPRB, 0.1_JPRB, 0.1_JPRB &
111 ! &, 0.1_JPRB, 1.2_JPRB, 1.2_JPRB, 1.2_JPRB, 1.5_JPRB, 1.5_JPRB /)
112 !
113 !RVDPLND = (/ 0.1_JPRB, 1.2_JPRB, 0.1_JPRB, 0.1_JPRB, 0.1_JPRB, 0.1_JPRB &
114 ! &, 0.1_JPRB, 1.2_JPRB, 1.2_JPRB, 1.2_JPRB, 1.5_JPRB, 1.5_JPRB /)
115 !
116 !RVDPLIC = (/ 0.1_JPRB, 1.2_JPRB, 0.1_JPRB, 0.1_JPRB, 0.1_JPRB, 0.1_JPRB &
117 ! &, 0.1_JPRB, 1.2_JPRB, 1.2_JPRB, 1.2_JPRB, 1.5_JPRB, 1.5_JPRB /)
118 
119 
120 
121 !* 2. PARAMETERS RELATED TO SINKS
122 ! ---------------------------
123 
124 r_r = 0.001_jprb
125 r_s = 0.001_jprb
126 
127 rfraer = 0.5_jprb
128 rfrgas = 1.0_jprb
129 
130 !* 2.1 SEA SALT
131 ! --------
132 !-- parameters related to SEA SALT: 12 relates to 12 values of relative humidity
133 
134 nbrh=12
135 rrhmax = 95._jprb
136 rrhtab = (/ 0._jprb, 10._jprb, 20._jprb, 30._jprb, 40._jprb, 50._jprb &
137  & , 60._jprb, 70._jprb, 80._jprb, 85._jprb, 90._jprb, 95._jprb /)
138 rrho_ss = (/ 2160._jprb, 2160._jprb, 2160._jprb, 2160._jprb, 1451.6_jprb &
139  & , 1367.9_jprb, 1302.9_jprb, 1243.2_jprb, 1182.7_jprb, 1149.5_jprb &
140  & , 1111.6_jprb, 1063.1_jprb /)
141 rssgrow = (/ 0.503_jprb, 0.503_jprb, 0.503_jprb, 0.503_jprb, 0.724_jprb &
142  & , 0.782_jprb, 0.838_jprb, 0.905_jprb, 1.000_jprb, 1.072_jprb &
143  & , 1.188_jprb, 1.447_jprb /)
144 
145 !-- OB's original 10 bins !RMMD_SS = (/ 0.09_JPRB, 0.19_JPRB, 0.38_JPRB, 0.75_JPRB, 1.50_JPRB &
146 ! & , 3.00_JPRB, 7.00_JPRB, 15.0_JPRB, 25.0_JPRB, 35.0_JPRB /)
147 
148 !-- OB's ECMWF 3 bins of sea salt
149 ! bins are 0.03 - 0.5 - 5.0 - 20 microns
150 
151 rmmd_ss = (/ 0.30_jprb, 3.00_jprb, 10.00_jprb /)
152 rfrss = (/ 0.7_jprb, 0.7_jprb, 0.7_jprb /)
153 rho_wat = 1000._jprb
154 rho_ice = 500._jprb
155 
156 !- computed off-line by gems_ss.f (m s-1)
157 
158 rvsedoce(1:3) = (/ 0.24e-04_jprb, 0.20e-02_jprb, 0.20e-01_jprb /)
159 rvsedsic(1:3) = (/ 0.24e-04_jprb, 0.20e-02_jprb, 0.20e-01_jprb /)
160 rvsedlnd(1:3) = (/ 0.24e-04_jprb, 0.20e-02_jprb, 0.20e-01_jprb /)
161 rvsedlic(1:3) = (/ 0.24e-04_jprb, 0.20e-02_jprb, 0.20e-01_jprb /)
162 
163 ! adapted from LMDZ (m s-1)
164 
165 rvdpoce(1:3) = (/ 0.100e-02_jprb, 0.110e-01_jprb, 0.145e-01_jprb /)
166 rvdpsic(1:3) = (/ 0.100e-02_jprb, 0.110e-01_jprb, 0.145e-01_jprb /)
167 rvdplnd(1:3) = (/ 0.100e-02_jprb, 0.110e-01_jprb, 0.145e-01_jprb /)
168 rvdplic(1:3) = (/ 0.100e-02_jprb, 0.110e-01_jprb, 0.145e-01_jprb /)
169 
170 
171 !* 2.2 DESERT DUST
172 ! -----------
173 !- parameters related to DESERT DUST (OB's ECMWF 3 bins)
174 ! bins are 0.03 - 0.55 - 0.9 - 20 microns
175 
176 rmmd_dd = (/ 0.32_jprb, 0.75_jprb, 9.0_jprb /)
177 rrho_dd = (/ 2600._jprb, 2600._jprb, 2600._jprb /)
178 rfrdd = (/ 0.7_jprb, 0.7_jprb, 0.7_jprb /)
179 
180 !- computed off-line by gems_dust.f
181 
182 rvsedoce(4:6) = (/ 0.70e-04_jprb, 0.20e-03_jprb, 0.20e-02_jprb /)
183 rvsedsic(4:6) = (/ 0.70e-04_jprb, 0.20e-03_jprb, 0.20e-02_jprb /)
184 rvsedlnd(4:6) = (/ 0.70e-04_jprb, 0.20e-03_jprb, 0.20e-02_jprb /)
185 rvsedlic(4:6) = (/ 0.70e-04_jprb, 0.20e-03_jprb, 0.20e-02_jprb /)
186 
187 ! adapted from LMDZ (m s-1)
188 
189 rvdpoce(4:6) = (/ 0.100e-02_jprb, 0.500e-02_jprb, 0.110e-01_jprb /)
190 rvdpsic(4:6) = (/ 0.100e-02_jprb, 0.500e-02_jprb, 0.110e-01_jprb /)
191 rvdplnd(4:6) = (/ 0.100e-02_jprb, 0.500e-02_jprb, 0.110e-01_jprb /)
192 rvdplic(4:6) = (/ 0.100e-02_jprb, 0.500e-02_jprb, 0.110e-01_jprb /)
193 
194 
195 !* 2.3 OTHER AEROSOLS (to be improved later!)
196 ! --------------
197 !- parameters related to other aerosol types
198 !- particulate organic matter POM
199 rfrom = (/ 0.0_jprb, 0.7_jprb /)
200 
201 rvsedoce(7:8) = (/ 0.10e+00_jprb, 0.10e+00_jprb /)
202 rvsedsic(7:8) = (/ 0.10e+00_jprb, 0.10e+00_jprb /)
203 rvsedlnd(7:8) = (/ 0.10e+00_jprb, 0.10e+00_jprb /)
204 rvsedlic(7:8) = (/ 0.10e+00_jprb, 0.10e+00_jprb /)
205 
206 ! adapted from LMDZ (m s-1)
207 
208 rvdpoce(7:8) = (/ 0.10e-02_jprb, 0.10e-02_jprb /)
209 rvdpsic(7:8) = (/ 0.10e-02_jprb, 0.10e-02_jprb /)
210 rvdplnd(7:8) = (/ 0.10e-02_jprb, 0.10e-02_jprb /)
211 rvdplic(7:8) = (/ 0.10e-02_jprb, 0.10e-02_jprb /)
212 
213 
214 !- black carbon
215 rfrbc = (/ 0.0_jprb, 0.7_jprb /)
216 
217 rvsedoce(9:10) = (/ 0.10e+00_jprb, 0.10e+00_jprb /)
218 rvsedsic(9:10) = (/ 0.10e+00_jprb, 0.10e+00_jprb /)
219 rvsedlnd(9:10) = (/ 0.10e+00_jprb, 0.10e+00_jprb /)
220 rvsedlic(9:10) = (/ 0.10e+00_jprb, 0.10e+00_jprb /)
221 
222 ! adapted from LMDZ (m s-1)
223 
224 rvdpoce(9:10) = (/ 0.10e-02_jprb, 0.10e-02_jprb /)
225 rvdpsic(9:10) = (/ 0.10e-02_jprb, 0.10e-02_jprb /)
226 rvdplnd(9:10) = (/ 0.10e-02_jprb, 0.10e-02_jprb /)
227 rvdplic(9:10) = (/ 0.10e-02_jprb, 0.10e-02_jprb /)
228 
229 !- sulfate
230 rfrso4 = 0.7_jprb
231 
232 rvsedoce(11) = 0.05_jprb
233 rvsedsic(11) = 0.25_jprb
234 rvsedlnd(11) = 0.25_jprb
235 rvsedlic(11) = 0.25_jprb
236 
237 ! adapted from LMDZ (m s-1)
238 
239 rvdpoce(11) = 0.05e-02_jprb
240 rvdpsic(11) = 0.25e-02_jprb
241 rvdplnd(11) = 0.25e-02_jprb
242 rvdplic(11) = 0.25e-02_jprb
243 
244 !- fly ash
245 rfrif = 0.7_jprb
246 
247 rvsedoce(12) = 0.20e+00_jprb
248 rvsedsic(12) = 0.20e+00_jprb
249 rvsedlnd(12) = 0.20e+00_jprb
250 rvsedlic(12) = 0.20e+00_jprb
251 
252 ! adapted from LMDZ (m s-1)
253 
254 rvdpoce(12) = 0.20e-02_jprb
255 rvdpsic(12) = 0.20e-02_jprb
256 rvdplnd(12) = 0.20e-02_jprb
257 rvdplic(12) = 0.20e-02_jprb
258 
259 
260 
261 
262 !- NB: 15 values for all possible types of ECMWF aerosols
263 ralphar = (/ &
264  & 0.001_jprb, 0.001_jprb, 0.001_jprb, 0.001_jprb, 0.001_jprb, 0.001_jprb, 0.001_jprb, 0.001_jprb, &
265  & 0.001_jprb, 0.001_jprb, 0.001_jprb, 0.001_jprb, 0.001_jprb, 0.001_jprb, 0.001_jprb /)
266 ralphas = (/ &
267  & 0.01_jprb, 0.01_jprb, 0.01_jprb, 0.01_jprb, 0.01_jprb, 0.01_jprb, 0.01_jprb, 0.01_jprb, &
268  & 0.01_jprb, 0.01_jprb, 0.01_jprb, 0.01_jprb, 0.01_jprb, 0.01_jprb, 0.01_jprb /)
269 
270 
271 !* 3. PARAMETERS RELATED TO TRANSPORT WITHIN THE FREE ATMOSPHERE
272 ! ----------------------------------------------------------
273 
274 ndd1=4
275 nss1=1
276 
277 rmfmin = 1.e-10_jprb
278 
279 rmasse = (/ &
280  & 6.02e+23_jprb, 6.02e+23_jprb, 6.02e+23_jprb, 6.02e+23_jprb, 6.02e+23_jprb, 6.02e+23_jprb &
281  &, 6.02e+23_jprb, 6.02e+23_jprb, 6.02e+23_jprb, 6.02e+23_jprb, 6.02e+23_jprb, 6.02e+23_jprb &
282  &, 6.02e+23_jprb, 6.02e+23_jprb, 6.02e+23_jprb /)
283 
284 
285 ! ----------------------------------------------------------------
286 IF (lhook) CALL dr_hook('SU_AERP',1,zhook_handle)
287 END SUBROUTINE su_aerp
288 
real(kind=jprb) rho_wat
Definition: yoeaersnk.F90:25
integer(kind=jpim) nss1
Definition: yoeaeratm.F90:14
real(kind=jprb), dimension(15) rvdpsic
Definition: yoeaersnk.F90:27
real(kind=jprb), dimension(15) rvdpoce
Definition: yoeaersnk.F90:27
real(kind=jprb), dimension(3) rmmd_ss
Definition: yoeaersnk.F90:23
real(kind=jprb), dimension(3) rssflx
Definition: yoeaersrc.F90:25
real(kind=jprb) rrhmax
Definition: yoeaersnk.F90:22
real(kind=jprb) rfrgas
Definition: yoeaersnk.F90:19
real(kind=jprb) rmfmin
Definition: yoeaeratm.F90:16
real(kind=jprb), dimension(12) rrho_ss
Definition: yoeaersnk.F90:22
real(kind=jprb) rfrif
Definition: yoeaersnk.F90:15
integer, parameter jprb
Definition: parkind1.F90:31
real(kind=jprb), dimension(3) rfrss
Definition: yoeaersnk.F90:16
real(kind=jprb) rfraer
Definition: yoeaersnk.F90:19
subroutine su_aerp
Definition: su_aerp.F90:2
integer(kind=jpim) ndd1
Definition: yoeaeratm.F90:14
real(kind=jprb), dimension(3) rfrdd
Definition: yoeaersnk.F90:16
integer(kind=jpim) nbrh
Definition: yoeaersnk.F90:21
real(kind=jprb), dimension(15) rvdplic
Definition: yoeaersnk.F90:27
real(kind=jprb), dimension(12) rssgrow
Definition: yoeaersnk.F90:22
real(kind=jprb) rho_ice
Definition: yoeaersnk.F90:25
real(kind=jprb) rfrso4
Definition: yoeaersnk.F90:18
real(kind=jprb) r_s
Definition: yoeaersnk.F90:12
real(kind=jprb), dimension(15) ralphar
Definition: yoeaersnk.F90:13
real(kind=jprb), dimension(12) rrhtab
Definition: yoeaersnk.F90:22
real(kind=jprb), dimension(15) ralphas
Definition: yoeaersnk.F90:13
real(kind=jprb), dimension(15) rmasse
Definition: yoeaeratm.F90:17
real(kind=jprb), dimension(15) rvsedlic
Definition: yoeaersnk.F90:28
real(kind=jprb), dimension(2) rfrbc
Definition: yoeaersnk.F90:14
logical lhook
Definition: yomhook.F90:12
real(kind=jprb), dimension(3) rrho_dd
Definition: yoeaersnk.F90:24
real(kind=jprb), dimension(3) rmmd_dd
Definition: yoeaersnk.F90:24
real(kind=jprb), dimension(15) rvsedlnd
Definition: yoeaersnk.F90:28
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
Definition: yomhook.F90:17
real(kind=jprb), dimension(15) rvdplnd
Definition: yoeaersnk.F90:27
real(kind=jprb), dimension(2) rfrom
Definition: yoeaersnk.F90:17
real(kind=jprb) r_r
Definition: yoeaersnk.F90:12
real(kind=jprb), dimension(15) rvsedoce
Definition: yoeaersnk.F90:28
real(kind=jprb), dimension(15) rvsedsic
Definition: yoeaersnk.F90:28