GCC Code Coverage Report


Directory: ./
File: phys/aeropt_5wv.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 0 138 0.0%
Branches: 0 310 0.0%

Line Branch Exec Source
1 !
2 ! $Id: aeropt_5wv.F90 2634 2016-09-24 17:14:59Z oboucher $
3 !
4
5 SUBROUTINE AEROPT_5WV(&
6 pdel, m_allaer, delt, &
7 RHcl, ai, flag_aerosol, &
8 pplay, t_seri, &
9 tausum, tau, presnivs)
10
11 USE DIMPHY
12 USE aero_mod
13 USE phys_local_var_mod, only: od550aer,od865aer,ec550aer,od550lt1aer
14 USE pres2lev_mod
15
16 !
17 ! Yves Balkanski le 12 avril 2006
18 ! Celine Deandreis
19 ! Anne Cozic Avril 2009
20 ! a partir d'une sous-routine de Johannes Quaas pour les sulfates
21 !
22 !
23 ! Refractive indices for seasalt come from Shettle and Fenn (1979)
24 !
25 ! Refractive indices from water come from Hale and Querry (1973)
26 !
27 ! Refractive indices from Ammonium Sulfate Toon and Pollack (1976)
28 !
29 ! Refractive indices for Dust, internal mixture of minerals coated with 1.5% hematite
30 ! by Volume (Balkanski et al., 2006)
31 !
32 ! Refractive indices for POM: Kinne (pers. Communication
33 !
34 ! Refractive index for BC from Shettle and Fenn (1979)
35 !
36 ! Shettle, E. P., & Fenn, R. W. (1979), Models for the aerosols of the lower atmosphere and
37 ! the effects of humidity variations on their optical properties, U.S. Air Force Geophysics
38 ! Laboratory Rept. AFGL-TR-79-0214, Hanscomb Air Force Base, MA.
39 !
40 ! Hale, G. M. and M. R. Querry, Optical constants of water in the 200-nm to 200-m
41 ! wavelength region, Appl. Opt., 12, 555-563, 1973.
42 !
43 ! Toon, O. B. and J. B. Pollack, The optical constants of several atmospheric aerosol species:
44 ! Ammonium sulfate, aluminum oxide, and sodium chloride, J. Geohys. Res., 81, 5733-5748,
45 ! 1976.
46 !
47 ! Balkanski, Y., M. Schulz, T. Claquin And O. Boucher, Reevaluation of mineral aerosol
48 ! radiative forcings suggests a better agreement with satellite and AERONET data, Atmospheric
49 ! Chemistry and Physics Discussions., 6, pp 8383-8419, 2006.
50 !
51 IMPLICIT NONE
52 INCLUDE "YOMCST.h"
53 !
54 ! Input arguments:
55 !
56 REAL, DIMENSION(klon,klev), INTENT(in) :: pdel
57 REAL, INTENT(in) :: delt
58 REAL, DIMENSION(klon,klev,naero_tot), INTENT(in) :: m_allaer
59 REAL, DIMENSION(klon,klev), INTENT(in) :: RHcl ! humidite relative ciel clair
60 INTEGER,INTENT(in) :: flag_aerosol
61 REAL, DIMENSION(klon,klev), INTENT(in) :: pplay
62 REAL, DIMENSION(klon,klev), INTENT(in) :: t_seri
63 REAL, DIMENSION(klev), INTENT(in) :: presnivs
64 !
65 ! Output arguments:
66 !
67 REAL, DIMENSION(klon), INTENT(out) :: ai ! POLDER aerosol index
68 REAL, DIMENSION(klon,nwave,naero_tot), INTENT(out) :: tausum
69 REAL, DIMENSION(klon,klev,nwave,naero_tot), INTENT(out) :: tau
70 !
71 ! Local
72 !
73 INTEGER, PARAMETER :: las = nwave_sw
74 LOGICAL :: soluble
75
76 INTEGER :: i, k, ierr, m, aerindex
77 INTEGER :: spsol, spinsol, spss, la
78 INTEGER :: RH_num(klon,klev)
79 INTEGER, PARAMETER :: la443 = 1
80 INTEGER, PARAMETER :: la550 = 2
81 INTEGER, PARAMETER :: la670 = 3
82 INTEGER, PARAMETER :: la765 = 4
83 INTEGER, PARAMETER :: la865 = 5
84 INTEGER, PARAMETER :: nbre_RH=12
85 INTEGER, PARAMETER :: naero_soluble=7 ! 1- BC soluble; 2- POM soluble; 3- SO4 acc.
86 ! 4- SO4 coarse; 5 seasalt super-C; 6 seasalt coarse; 7 seasalt acc.
87 INTEGER, PARAMETER :: naero_insoluble=3 ! 1- Dust; 2- BC insoluble; 3- POM insoluble
88 INTEGER, PARAMETER :: nb_level = 19 ! number of vertical levels
89 LOGICAL, SAVE :: firstcall=.TRUE.
90 !$OMP THREADPRIVATE(firstcall)
91
92 REAL :: zrho
93
94 ! Coefficient optiques sur 19 niveaux
95 REAL, SAVE, DIMENSION(nb_level) :: presnivs_19 ! Pression milieux couche pour 19 niveaux (nb_level)
96 !$OMP THREADPRIVATE(presnivs_19)
97
98 REAL, SAVE, DIMENSION(nb_level) :: A1_ASSSM_19, A2_ASSSM_19, A3_ASSSM_19,&
99 B1_ASSSM_19, B2_ASSSM_19, C1_ASSSM_19, C2_ASSSM_19,&
100 A1_CSSSM_19, A2_CSSSM_19, A3_CSSSM_19,&
101 B1_CSSSM_19, B2_CSSSM_19, C1_CSSSM_19, C2_CSSSM_19, &
102 A1_SSSSM_19, A2_SSSSM_19, A3_SSSSM_19,&
103 B1_SSSSM_19, B2_SSSSM_19, C1_SSSSM_19, C2_SSSSM_19
104 !$OMP THREADPRIVATE(A1_ASSSM_19, A2_ASSSM_19, A3_ASSSM_19)
105 !$OMP THREADPRIVATE(B1_ASSSM_19, B2_ASSSM_19, C1_ASSSM_19, C2_ASSSM_19)
106 !$OMP THREADPRIVATE(A1_CSSSM_19, A2_CSSSM_19, A3_CSSSM_19)
107 !$OMP THREADPRIVATE(B1_CSSSM_19, B2_CSSSM_19, C1_CSSSM_19, C2_CSSSM_19)
108 !$OMP THREADPRIVATE(A1_SSSSM_19, A2_SSSSM_19, A3_SSSSM_19)
109 !$OMP THREADPRIVATE(B1_SSSSM_19, B2_SSSSM_19, C1_SSSSM_19, C2_SSSSM_19)
110
111 ! Coefficient optiques interpole sur le nombre de niveau du modele
112 REAL, ALLOCATABLE, DIMENSION(:), SAVE :: &
113 A1_ASSSM, A2_ASSSM, A3_ASSSM,&
114 B1_ASSSM, B2_ASSSM, C1_ASSSM, C2_ASSSM,&
115 A1_CSSSM, A2_CSSSM, A3_CSSSM,&
116 B1_CSSSM, B2_CSSSM, C1_CSSSM, C2_CSSSM, &
117 A1_SSSSM, A2_SSSSM, A3_SSSSM,&
118 B1_SSSSM, B2_SSSSM, C1_SSSSM, C2_SSSSM
119 !$OMP THREADPRIVATE(A1_ASSSM, A2_ASSSM, A3_ASSSM)
120 !$OMP THREADPRIVATE(B1_ASSSM, B2_ASSSM, C1_ASSSM, C2_ASSSM)
121 !$OMP THREADPRIVATE(A1_CSSSM, A2_CSSSM, A3_CSSSM)
122 !$OMP THREADPRIVATE(B1_CSSSM, B2_CSSSM, C1_CSSSM, C2_CSSSM)
123 !$OMP THREADPRIVATE(A1_SSSSM, A2_SSSSM, A3_SSSSM)
124 !$OMP THREADPRIVATE(B1_SSSSM, B2_SSSSM, C1_SSSSM, C2_SSSSM)
125
126
127 REAL,PARAMETER :: RH_tab(nbre_RH)=(/0.,10.,20.,30.,40.,50.,60.,70.,80.,85.,90.,95./)
128 REAL :: DELTA(klon,klev), rh(klon,klev), H
129 REAL :: tau_ae5wv_int ! Intermediate computation of epaisseur optique aerosol
130 REAL :: piz_ae5wv_int ! Intermediate single scattering albedo aerosol
131 REAL :: cg_ae5wv_int ! Intermediate asymmetry parameter aerosol
132 REAL, PARAMETER :: RH_MAX=95.
133 REAL :: taue670(klon) ! epaisseur optique aerosol absorption 550 nm
134 REAL :: taue865(klon) ! epaisseur optique aerosol extinction 865 nm
135 REAL :: fac
136 INTEGER, ALLOCATABLE, DIMENSION(:) :: aerosol_name
137 INTEGER :: nb_aer
138
139 REAL :: tau3d(klon,klev), piz3d(klon,klev), cg3d(klon,klev)
140 REAL :: abs3d(klon,klev) ! epaisseur optique d'absorption
141 REAL :: dh(klon,klev)
142
143 REAL :: alpha_aers_5wv(nbre_RH,las,naero_soluble) ! ext. coeff. Soluble comp. units *** m2/g
144 ! 1- BC soluble; 2- POM soluble; 3- SO4 acc.; 4- SO4 coarse; 5 seasalt super-C; 6 seasalt coarse; 7 seasalt acc.
145 REAL :: alpha_aeri_5wv(las,naero_insoluble) ! ext. coeff. Insoluble comp. 1- Dust: 2- BC; 3- POM
146 REAL :: cg_aers_5wv(nbre_RH,las,naero_soluble) ! Asym. param. soluble comp.
147 ! 1- BC soluble; 2- POM soluble; 3- SO4 acc.; 4- SO4 coarse; 5 seasalt super-C; 6 seasalt coarse; 7 seasalt acc.
148 REAL :: cg_aeri_5wv(las,naero_insoluble) ! Asym. param. insoluble comp. 1- Dust: 2- BC; 3- POM
149 REAL :: piz_aers_5wv(nbre_RH,las,naero_soluble)
150 ! 1- BC soluble; 2- POM soluble; 3- SO4 acc.; 4- SO4 coarse; 5 seasalt super-C; 6 seasalt coarse; 7 seasalt acc.
151 REAL :: piz_aeri_5wv(las,naero_insoluble) ! Insoluble comp. 1- Dust: 2- BC; 3- POM
152 !
153 ! Proprietes optiques
154 !
155 REAL :: fact_RH(nbre_RH)
156 LOGICAL :: used_tau(naero_spc)
157 INTEGER :: n
158
159 DATA presnivs_19/&
160 100426.5, 98327.6, 95346.5, 90966.8, 84776.9, &
161 76536.5, 66292.2, 54559.3, 42501.8, 31806, &
162 23787.5, 18252.7, 13996, 10320.8, 7191.1, &
163 4661.7, 2732.9, 1345.6, 388.2/
164
165 !!ACCUMULATION MODE
166 DATA A1_ASSSM_19/ 4.373E+00, 4.361E+00, 4.331E+00, &
167 4.278E+00, 4.223E+00, 4.162E+00, &
168 4.103E+00, 4.035E+00, 3.962E+00, &
169 3.904E+00, 3.871E+00, 3.847E+00, &
170 3.824E+00, 3.780E+00, 3.646E+00, &
171 3.448E+00, 3.179E+00, 2.855E+00, 2.630E+00/
172 DATA A2_ASSSM_19/ 2.496E+00, 2.489E+00, 2.472E+00, &
173 2.442E+00, 2.411E+00, 2.376E+00, &
174 2.342E+00, 2.303E+00, 2.261E+00, &
175 2.228E+00, 2.210E+00, 2.196E+00, &
176 2.183E+00, 2.158E+00, 2.081E+00, &
177 1.968E+00, 1.814E+00, 1.630E+00, 1.501E+00/
178 DATA A3_ASSSM_19/-4.688E-02, -4.676E-02, -4.644E-02, &
179 -4.587E-02, -4.528E-02, -4.463E-02, &
180 -4.399E-02, -4.326E-02, -4.248E-02, &
181 -4.186E-02, -4.151E-02, -4.125E-02, &
182 -4.100E-02, -4.053E-02, -3.910E-02, &
183 -3.697E-02, -3.408E-02, -3.061E-02, -2.819E-02/
184 DATA B1_ASSSM_19/ 1.165E-08, 1.145E-08, 1.097E-08, &
185 1.012E-08, 9.233E-09, 8.261E-09, &
186 7.297E-09, 6.201E-09, 5.026E-09, &
187 4.098E-09, 3.567E-09, 3.187E-09, &
188 2.807E-09, 2.291E-09, 2.075E-09, &
189 1.756E-09, 1.322E-09, 8.011E-10, 4.379E-10/
190 DATA B2_ASSSM_19/ 2.193E-08, 2.192E-08, 2.187E-08, &
191 2.179E-08, 2.171E-08, 2.162E-08, &
192 2.153E-08, 2.143E-08, 2.132E-08, &
193 2.124E-08, 2.119E-08, 2.115E-08, &
194 2.112E-08, 2.106E-08, 2.100E-08, &
195 2.090E-08, 2.077E-08, 2.061E-08, 2.049E-08/
196 DATA C1_ASSSM_19/ 7.365E-01, 7.365E-01, 7.365E-01, &
197 7.364E-01, 7.363E-01, 7.362E-01, &
198 7.361E-01, 7.359E-01, 7.358E-01, &
199 7.357E-01, 7.356E-01, 7.356E-01, &
200 7.356E-01, 7.355E-01, 7.354E-01, &
201 7.352E-01, 7.350E-01, 7.347E-01, 7.345E-01/
202 DATA C2_ASSSM_19/ 5.833E-02, 5.835E-02, 5.841E-02, &
203 5.850E-02, 5.859E-02, 5.870E-02, &
204 5.880E-02, 5.891E-02, 5.904E-02, &
205 5.914E-02, 5.920E-02, 5.924E-02, &
206 5.928E-02, 5.934E-02, 5.944E-02, &
207 5.959E-02, 5.979E-02, 6.003E-02, 6.020E-02/
208 !COARSE MODE
209 DATA A1_CSSSM_19/ 7.403E-01, 7.422E-01, 7.626E-01, &
210 8.019E-01, 8.270E-01, 8.527E-01, &
211 8.702E-01, 8.806E-01, 8.937E-01, &
212 9.489E-01, 1.030E+00, 1.105E+00, &
213 1.199E+00, 1.357E+00, 1.660E+00, &
214 2.540E+00, 4.421E+00, 2.151E+00, 9.518E-01/
215 DATA A2_CSSSM_19/ 4.522E-01, 4.532E-01, 4.644E-01, &
216 4.859E-01, 4.996E-01, 5.137E-01, &
217 5.233E-01, 5.290E-01, 5.361E-01, &
218 5.655E-01, 6.085E-01, 6.483E-01, &
219 6.979E-01, 7.819E-01, 9.488E-01, &
220 1.450E+00, 2.523E+00, 1.228E+00, 5.433E-01/
221 DATA A3_CSSSM_19/-8.516E-03, -8.535E-03, -8.744E-03, &
222 -9.148E-03, -9.406E-03, -9.668E-03, &
223 -9.848E-03, -9.955E-03, -1.009E-02, &
224 -1.064E-02, -1.145E-02, -1.219E-02, &
225 -1.312E-02, -1.470E-02, -1.783E-02, &
226 -2.724E-02, -4.740E-02, -2.306E-02, -1.021E-02/
227 DATA B1_CSSSM_19/ 2.535E-07, 2.530E-07, 2.479E-07, &
228 2.380E-07, 2.317E-07, 2.252E-07, &
229 2.208E-07, 2.182E-07, 2.149E-07, &
230 2.051E-07, 1.912E-07, 1.784E-07, &
231 1.624E-07, 1.353E-07, 1.012E-07, &
232 6.016E-08, 2.102E-08, 0.000E+00, 0.000E+00/
233 DATA B2_CSSSM_19/ 1.221E-07, 1.217E-07, 1.179E-07, &
234 1.104E-07, 1.056E-07, 1.008E-07, &
235 9.744E-08, 9.546E-08, 9.299E-08, &
236 8.807E-08, 8.150E-08, 7.544E-08, &
237 6.786E-08, 5.504E-08, 4.080E-08, &
238 2.960E-08, 2.300E-08, 2.030E-08, 1.997E-08/
239 DATA C1_CSSSM_19/ 7.659E-01, 7.658E-01, 7.652E-01, &
240 7.639E-01, 7.631E-01, 7.623E-01, &
241 7.618E-01, 7.614E-01, 7.610E-01, &
242 7.598E-01, 7.581E-01, 7.566E-01, &
243 7.546E-01, 7.513E-01, 7.472E-01, &
244 7.423E-01, 7.376E-01, 7.342E-01, 7.334E-01/
245 DATA C2_CSSSM_19/ 3.691E-02, 3.694E-02, 3.729E-02, &
246 3.796E-02, 3.839E-02, 3.883E-02, &
247 3.913E-02, 3.931E-02, 3.953E-02, &
248 4.035E-02, 4.153E-02, 4.263E-02, &
249 4.400E-02, 4.631E-02, 4.933E-02, &
250 5.331E-02, 5.734E-02, 6.053E-02, 6.128E-02/
251 !SUPER COARSE MODE
252 DATA A1_SSSSM_19/ 2.836E-01, 2.876E-01, 2.563E-01, &
253 2.414E-01, 2.541E-01, 2.546E-01, &
254 2.572E-01, 2.638E-01, 2.781E-01, &
255 3.167E-01, 4.209E-01, 5.286E-01, &
256 6.959E-01, 9.233E-01, 1.282E+00, &
257 1.836E+00, 2.981E+00, 4.355E+00, 4.059E+00/
258 DATA A2_SSSSM_19/ 1.608E-01, 1.651E-01, 1.577E-01, &
259 1.587E-01, 1.686E-01, 1.690E-01, &
260 1.711E-01, 1.762E-01, 1.874E-01, &
261 2.138E-01, 2.751E-01, 3.363E-01, &
262 4.279E-01, 5.519E-01, 7.421E-01, &
263 1.048E+00, 1.702E+00, 2.485E+00, 2.317E+00/
264 DATA A3_SSSSM_19/-3.025E-03, -3.111E-03, -2.981E-03, &
265 -3.005E-03, -3.193E-03, -3.200E-03, &
266 -3.239E-03, -3.336E-03, -3.548E-03, &
267 -4.047E-03, -5.196E-03, -6.345E-03, &
268 -8.061E-03, -1.038E-02, -1.395E-02, &
269 -1.970E-02, -3.197E-02, -4.669E-02, -4.352E-02/
270 DATA B1_SSSSM_19/ 6.759E-07, 6.246E-07, 5.542E-07, &
271 4.953E-07, 4.746E-07, 4.738E-07, &
272 4.695E-07, 4.588E-07, 4.354E-07, &
273 3.947E-07, 3.461E-07, 3.067E-07, &
274 2.646E-07, 2.095E-07, 1.481E-07, &
275 9.024E-08, 5.747E-08, 2.384E-08, 6.599E-09/
276 DATA B2_SSSSM_19/ 5.977E-07, 5.390E-07, 4.468E-07, &
277 3.696E-07, 3.443E-07, 3.433E-07, &
278 3.380E-07, 3.249E-07, 2.962E-07, &
279 2.483E-07, 1.989E-07, 1.623E-07, &
280 1.305E-07, 9.015E-08, 6.111E-08, &
281 3.761E-08, 2.903E-08, 2.337E-08, 2.147E-08/
282 DATA C1_SSSSM_19/ 8.120E-01, 8.084E-01, 8.016E-01, &
283 7.953E-01, 7.929E-01, 7.928E-01, &
284 7.923E-01, 7.910E-01, 7.882E-01, &
285 7.834E-01, 7.774E-01, 7.725E-01, &
286 7.673E-01, 7.604E-01, 7.529E-01, &
287 7.458E-01, 7.419E-01, 7.379E-01, 7.360E-01/
288 DATA C2_SSSSM_19/ 2.388E-02, 2.392E-02, 2.457E-02, 2.552E-02, &
289 2.615E-02, 2.618E-02, 2.631E-02, 2.663E-02, &
290 2.735E-02, 2.875E-02, 3.113E-02, 3.330E-02, &
291 3.615E-02, 3.997E-02, 4.521E-02, 5.038E-02, &
292 5.358E-02, 5.705E-02, 5.887E-02/
293 !*********************************************************************
294 !
295 !
296 ! From here on we look at the optical parameters at 5 wavelengths:
297 ! 443nm, 550, 670, 765 and 865 nm
298 ! le 12 AVRIL 2006
299 !
300 DATA alpha_aers_5wv/ &
301 ! bc soluble
302 7.930,7.930,7.930,7.930,7.930,7.930, &
303 7.930,7.930,10.893,12.618,14.550,16.613, &
304 7.658,7.658,7.658,7.658,7.658,7.658, &
305 7.658,7.658,10.351,11.879,13.642,15.510, &
306 7.195,7.195,7.195,7.195,7.195,7.195, &
307 7.195,7.195,9.551,10.847,12.381,13.994, &
308 6.736,6.736,6.736,6.736,6.736,6.736, &
309 6.736,6.736,8.818,9.938,11.283,12.687, &
310 6.277,6.277,6.277,6.277,6.277,6.277, &
311 6.277,6.277,8.123,9.094,10.275,11.501, &
312 ! pom soluble
313 6.676,6.676,6.676,6.676,6.710,6.934, &
314 7.141,7.569,8.034,8.529,9.456,10.511, &
315 5.109,5.109,5.109,5.109,5.189,5.535, &
316 5.960,6.852,8.008,9.712,12.897,19.676, &
317 3.718,3.718,3.718,3.718,3.779,4.042, &
318 4.364,5.052,5.956,7.314,9.896,15.688, &
319 2.849,2.849,2.849,2.849,2.897,3.107, &
320 3.365,3.916,4.649,5.760,7.900,12.863, &
321 2.229,2.229,2.229,2.229,2.268,2.437, &
322 2.645,3.095,3.692,4.608,6.391,10.633, &
323 ! Sulfate (Accumulation)
324 5.751,6.215,6.690,7.024,7.599,8.195, &
325 9.156,10.355,12.660,14.823,18.908,24.508, &
326 4.320,4.675,5.052,5.375,5.787,6.274, &
327 7.066,8.083,10.088,12.003,15.697,21.133, &
328 3.079,3.351,3.639,3.886,4.205,4.584, &
329 5.206,6.019,7.648,9.234,12.391,17.220, &
330 2.336,2.552,2.781,2.979,3.236,3.540, &
331 4.046,4.711,6.056,7.388,10.093,14.313, &
332 1.777,1.949,2.134,2.292,2.503,2.751, &
333 3.166,3.712,4.828,5.949,8.264,11.922, &
334 ! Sulfate (Coarse)
335 5.751,6.215,6.690,7.024,7.599,8.195, &
336 9.156,10.355,12.660,14.823,18.908,24.508, &
337 4.320,4.675,5.052,5.375,5.787,6.274, &
338 7.066,8.083,10.088,12.003,15.697,21.133, &
339 3.079,3.351,3.639,3.886,4.205,4.584, &
340 5.206,6.019,7.648,9.234,12.391,17.220, &
341 2.336,2.552,2.781,2.979,3.236,3.540, &
342 4.046,4.711,6.056,7.388,10.093,14.313, &
343 1.777,1.949,2.134,2.292,2.503,2.751, &
344 3.166,3.712,4.828,5.949,8.264,11.922, &
345 ! Seasalt soluble super_coarse (computed below for 550nm)
346 0.50,0.90,1.05,1.21,1.40,2.41, &
347 2.66,3.11,3.88,4.52,5.69,8.84, &
348 0.000,0.000,0.000,0.000,0.000,0.000, &
349 0.000,0.000,0.000,0.000,0.000,0.000, &
350 0.52,0.93,1.08,1.24,1.43,2.47, &
351 2.73,3.20,3.99,4.64,5.84,9.04, &
352 0.52,0.93,1.09,1.25,1.44,2.50, &
353 2.76,3.23,4.03,4.68,5.89,9.14, &
354 0.52,0.94,1.09,1.26,1.45,2.51, &
355 2.78,3.25,4.06,4.72,5.94,9.22, &
356 ! seasalt soluble coarse (computed below for 550nm)
357 0.50,0.90,1.05,1.21,1.40,2.41, &
358 2.66,3.11,3.88,4.52,5.69,8.84, &
359 0.000,0.000,0.000,0.000,0.000,0.000, &
360 0.000,0.000,0.000,0.000,0.000,0.000, &
361 0.52,0.93,1.08,1.24,1.43,2.47, &
362 2.73,3.20,3.99,4.64,5.84,9.04, &
363 0.52,0.93,1.09,1.25,1.44,2.50, &
364 2.76,3.23,4.03,4.68,5.89,9.14, &
365 0.52,0.94,1.09,1.26,1.45,2.51, &
366 2.78,3.25,4.06,4.72,5.94,9.22, &
367 ! seasalt soluble accumulation (computed below for 550nm)
368 4.28, 7.17, 8.44, 9.85,11.60,22.44, &
369 25.34,30.54,39.38,46.52,59.33,91.77, &
370 0.000,0.000,0.000,0.000,0.000,0.000, &
371 0.000,0.000,0.000,0.000,0.000,0.000, &
372 2.48, 4.22, 5.02, 5.94, 7.11,15.29, &
373 17.70,22.31,30.73,38.06,52.15,90.59, &
374 1.90, 3.29, 3.94, 4.69, 5.65, 12.58, &
375 14.68,18.77,26.41,33.25,46.77,85.50, &
376 1.47, 2.59, 3.12, 3.74, 4.54, 10.42, &
377 12.24,15.82,22.66,28.91,41.54,79.33/
378
379 DATA alpha_aeri_5wv/ &
380 ! dust insoluble
381 0.759, 0.770, 0.775, 0.775, 0.772, &
382 !!jb bc insoluble
383 11.536,10.033, 8.422, 7.234, 6.270, &
384 ! pom insoluble
385 5.042, 3.101, 1.890, 1.294, 0.934/
386 !
387 DATA cg_aers_5wv/ &
388 ! bc soluble
389 .651, .651, .651, .651, .651, .651, &
390 .651, .651, .738, .764, .785, .800, &
391 .597, .597, .597, .597, .597, .597, &
392 .597, .597, .695, .725, .751, .770, &
393 .543, .543, .543, .543, .543, .543, &
394 .543, .543, .650, .684, .714, .736, &
395 .504, .504, .504, .504, .504, .504, &
396 .504, .504, .614, .651, .683, .708, &
397 .469, .469, .469, .469, .469, .469, &
398 .469, .469, .582, .620, .655, .681, &
399 ! pom soluble
400 .679, .679, .679, .679, .683, .691, &
401 .703, .720, .736, .751, .766, .784, &
402 .656, .656, .656, .656, .659, .669, &
403 .681, .699, .717, .735, .750, .779, &
404 .623, .623, .623, .623, .627, .637, &
405 .649, .668, .688, .709, .734, .762, &
406 .592, .592, .592, .592, .595, .605, &
407 .618, .639, .660, .682, .711, .743, &
408 .561, .561, .561, .561, .565, .575, &
409 .588, .609, .632, .656, .688, .724, &
410 ! Accumulation sulfate
411 .671, .684, .697, .704, .714, .723, &
412 .734, .746, .762, .771, .781, .789, &
413 .653, .666, .678, .687, .697, .707, &
414 .719, .732, .751, .762, .775, .789, &
415 .622, .635, .648, .657, .667, .678, &
416 .691, .705, .728, .741, .758, .777, &
417 .591, .604, .617, .627, .638, .650, &
418 .664, .679, .704, .719, .739, .761, &
419 .560, .574, .587, .597, .609, .621, &
420 .637, .653, .680, .697, .719, .745, &
421 ! Coarse sulfate
422 .671, .684, .697, .704, .714, .723, &
423 .734, .746, .762, .771, .781, .789, &
424 .653, .666, .678, .687, .697, .707, &
425 .719, .732, .751, .762, .775, .789, &
426 .622, .635, .648, .657, .667, .678, &
427 .691, .705, .728, .741, .758, .777, &
428 .591, .604, .617, .627, .638, .650, &
429 .664, .679, .704, .719, .739, .761, &
430 .560, .574, .587, .597, .609, .621, &
431 .637, .653, .680, .697, .719, .745, &
432 ! For super coarse seasalt (computed below for 550nm!)
433 0.730,0.753,0.760,0.766,0.772,0.793, &
434 0.797,0.802,0.809,0.813,0.820,0.830, &
435 0.000,0.000,0.000,0.000,0.000,0.000, &
436 0.000,0.000,0.000,0.000,0.000,0.000, &
437 0.721,0.744,0.750,0.756,0.762,0.784, &
438 0.787,0.793,0.800,0.804,0.811,0.822, &
439 0.717,0.741,0.747,0.753,0.759,0.780, &
440 0.784,0.789,0.795,0.800,0.806,0.817, &
441 0.715,0.739,0.745,0.751,0.757,0.777, &
442 0.781,0.786,0.793,0.797,0.803,0.814, &
443 ! For coarse-soluble seasalt (computed below for 550nm!)
444 0.730,0.753,0.760,0.766,0.772,0.793, &
445 0.797,0.802,0.809,0.813,0.820,0.830, &
446 0.000,0.000,0.000,0.000,0.000,0.000, &
447 0.000,0.000,0.000,0.000,0.000,0.000, &
448 0.721,0.744,0.750,0.756,0.762,0.784, &
449 0.787,0.793,0.800,0.804,0.811,0.822, &
450 0.717,0.741,0.747,0.753,0.759,0.780, &
451 0.784,0.789,0.795,0.800,0.806,0.817, &
452 0.715,0.739,0.745,0.751,0.757,0.777, &
453 0.781,0.786,0.793,0.797,0.803,0.814, &
454 ! accumulation-seasalt soluble (computed below for 550nm!)
455 0.698,0.722,0.729,0.736,0.743,0.765, &
456 0.768,0.773,0.777,0.779,0.781,0.779, &
457 0.000,0.000,0.000,0.000,0.000,0.000, &
458 0.000,0.000,0.000,0.000,0.000,0.000, &
459 0.658,0.691,0.701,0.710,0.720,0.756, &
460 0.763,0.771,0.782,0.788,0.795,0.801, &
461 0.632,0.668,0.679,0.690,0.701,0.743, &
462 0.750,0.762,0.775,0.783,0.792,0.804, &
463 0.605,0.644,0.656,0.669,0.681,0.729, &
464 0.737,0.750,0.765,0.775,0.787,0.803/
465 !
466 DATA cg_aeri_5wv/&
467 ! dust insoluble
468 0.714, 0.697, 0.688, 0.683, 0.679, &
469 ! bc insoluble
470 0.511, 0.445, 0.384, 0.342, 0.307, &
471 !c pom insoluble
472 0.596, 0.536, 0.466, 0.409, 0.359/
473 !
474 DATA piz_aers_5wv/&
475 ! bc soluble
476 .445, .445, .445, .445, .445, .445, &
477 .445, .445, .470, .487, .508, .531, &
478 .442, .442, .442, .442, .442, .442, &
479 .442, .442, .462, .481, .506, .533, &
480 .427, .427, .427, .427, .427, .427, &
481 .427, .427, .449, .470, .497, .526, &
482 .413, .413, .413, .413, .413, .413, &
483 .413, .413, .437, .458, .486, .516, &
484 .399, .399, .399, .399, .399, .399, &
485 .399, .399, .423, .445, .473, .506, &
486 ! pom soluble
487 .975, .975, .975, .975, .975, .977, &
488 .979, .982, .984, .987, .990, .994, &
489 .972, .972, .972, .972, .973, .974, &
490 .977, .980, .983, .986, .989, .993, &
491 .963, .963, .963, .963, .964, .966, &
492 .969, .974, .977, .982, .986, .991, &
493 .955, .955, .955, .955, .955, .958, &
494 .962, .967, .972, .977, .983, .989, &
495 .944, .944, .944, .944, .944, .948, &
496 .952, .959, .962, .972, .979, .987, &
497 ! sulfate soluble accumulation
498 1.000,1.000,1.000,1.000,1.000,1.000, &
499 1.000,1.000,1.000,1.000,1.000,1.000, &
500 1.000,1.000,1.000,1.000,1.000,1.000, &
501 1.000,1.000,1.000,1.000,1.000,1.000, &
502 1.000,1.000,1.000,1.000,1.000,1.000, &
503 1.000,1.000,1.000,1.000,1.000,1.000, &
504 1.000,1.000,1.000,1.000,1.000,1.000, &
505 1.000,1.000,1.000,1.000,1.000,1.000, &
506 1.000,1.000,1.000,1.000,1.000,1.000, &
507 1.000,1.000,1.000,1.000,1.000,1.000, &
508 ! sulfate soluble coarse
509 1.000,1.000,1.000,1.000,1.000,1.000, &
510 1.000,1.000,1.000,1.000,1.000,1.000, &
511 1.000,1.000,1.000,1.000,1.000,1.000, &
512 1.000,1.000,1.000,1.000,1.000,1.000, &
513 1.000,1.000,1.000,1.000,1.000,1.000, &
514 1.000,1.000,1.000,1.000,1.000,1.000, &
515 1.000,1.000,1.000,1.000,1.000,1.000, &
516 1.000,1.000,1.000,1.000,1.000,1.000, &
517 1.000,1.000,1.000,1.000,1.000,1.000, &
518 1.000,1.000,1.000,1.000,1.000,1.000, &
519 ! seasalt super coarse (computed below for 550nm)
520 1.000,1.000,1.000,1.000,1.000,1.000, &
521 1.000,1.000,1.000,1.000,1.000,1.000, &
522 1.000,1.000,1.000,1.000,1.000,1.000, &
523 1.000,1.000,1.000,1.000,1.000,1.000, &
524 1.000,1.000,1.000,1.000,1.000,1.000, &
525 1.000,1.000,1.000,1.000,1.000,1.000, &
526 1.000,1.000,1.000,1.000,1.000,1.000, &
527 1.000,1.000,1.000,1.000,1.000,1.000, &
528 1.000,1.000,1.000,1.000,1.000,1.000, &
529 1.000,1.000,1.000,1.000,1.000,1.000, &
530 ! seasalt coarse (computed below for 550nm)
531 1.000,1.000,1.000,1.000,1.000,1.000, &
532 1.000,1.000,1.000,1.000,1.000,1.000, &
533 1.000,1.000,1.000,1.000,1.000,1.000, &
534 1.000,1.000,1.000,1.000,1.000,1.000, &
535 1.000,1.000,1.000,1.000,1.000,1.000, &
536 1.000,1.000,1.000,1.000,1.000,1.000, &
537 1.000,1.000,1.000,1.000,1.000,1.000, &
538 1.000,1.000,1.000,1.000,1.000,1.000, &
539 1.000,1.000,1.000,1.000,1.000,1.000, &
540 1.000,1.000,1.000,1.000,1.000,1.000, &
541 ! seasalt soluble accumulation (computed below for 550nm)
542 1.000,1.000,1.000,1.000,1.000,1.000, &
543 1.000,1.000,1.000,1.000,1.000,1.000, &
544 1.000,1.000,1.000,1.000,1.000,1.000, &
545 1.000,1.000,1.000,1.000,1.000,1.000, &
546 1.000,1.000,1.000,1.000,1.000,1.000, &
547 1.000,1.000,1.000,1.000,1.000,1.000, &
548 1.000,1.000,1.000,1.000,1.000,1.000, &
549 1.000,1.000,1.000,1.000,1.000,1.000, &
550 1.000,1.000,1.000,1.000,1.000,1.000, &
551 1.000,1.000,1.000,1.000,1.000,1.000/
552
553 !
554 DATA piz_aeri_5wv/&
555 ! dust insoluble
556 0.944, 0.970, 0.977, 0.982, 0.987, &
557 ! bc insoluble
558 0.415, 0.387, 0.355, 0.328, 0.301, &
559 ! pom insoluble
560 0.972, 0.963, 0.943, 0.923, 0.897/
561
562 ! Interpolation des coefficients optiques de 19 niveaux vers le nombre des niveaux du model
563 IF (firstcall) THEN
564 firstcall=.FALSE.
565 ! Allocation
566 IF (.NOT. ALLOCATED(A1_ASSSM)) THEN
567 ALLOCATE(A1_ASSSM(klev),A2_ASSSM(klev), A3_ASSSM(klev),&
568 B1_ASSSM(klev), B2_ASSSM(klev), C1_ASSSM(klev), C2_ASSSM(klev),&
569 A1_CSSSM(klev), A2_CSSSM(klev), A3_CSSSM(klev),&
570 B1_CSSSM(klev), B2_CSSSM(klev), C1_CSSSM(klev), C2_CSSSM(klev),&
571 A1_SSSSM(klev), A2_SSSSM(klev), A3_SSSSM(klev),&
572 B1_SSSSM(klev), B2_SSSSM(klev), C1_SSSSM(klev), C2_SSSSM(klev), stat=ierr)
573 IF (ierr /= 0) CALL abort_physic('aeropt_5mw', 'pb in allocation 1',1)
574 END IF
575
576 !Accumulation mode
577 CALL pres2lev(A1_ASSSM_19, A1_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
578 CALL pres2lev(A2_ASSSM_19, A2_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
579 CALL pres2lev(A3_ASSSM_19, A3_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
580 CALL pres2lev(B1_ASSSM_19, B1_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
581 CALL pres2lev(B2_ASSSM_19, B2_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
582 CALL pres2lev(C1_ASSSM_19, C1_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
583 CALL pres2lev(C2_ASSSM_19, C2_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
584 !Coarse mode
585 CALL pres2lev(A1_CSSSM_19, A1_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
586 CALL pres2lev(A2_CSSSM_19, A2_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
587 CALL pres2lev(A3_CSSSM_19, A3_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
588 CALL pres2lev(B1_CSSSM_19, B1_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
589 CALL pres2lev(B2_CSSSM_19, B2_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
590 CALL pres2lev(C1_CSSSM_19, C1_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
591 CALL pres2lev(C2_CSSSM_19, C2_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
592 !Super coarse mode
593 CALL pres2lev(A1_SSSSM_19, A1_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
594 CALL pres2lev(A2_SSSSM_19, A2_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
595 CALL pres2lev(A3_SSSSM_19, A3_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
596 CALL pres2lev(B1_SSSSM_19, B1_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
597 CALL pres2lev(B2_SSSSM_19, B2_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
598 CALL pres2lev(C1_SSSSM_19, C1_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
599 CALL pres2lev(C2_SSSSM_19, C2_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
600
601 END IF ! firstcall
602
603 ! Initialisations
604 tau(:,:,:,:) =0.
605 tausum(:,:,:)= 0.
606 ai(:)=0.0
607
608 DO k=1, klev
609 DO i=1, klon
610 zrho=pplay(i,k)/t_seri(i,k)/RD ! kg/m3
611 dh(i,k)=pdel(i,k)/(RG*zrho) ! m
612 ENDDO
613 ENDDO
614
615 IF (flag_aerosol .EQ. 1) THEN
616 nb_aer = 2
617 ALLOCATE (aerosol_name(nb_aer))
618 aerosol_name(1) = id_ASSO4M_phy
619 aerosol_name(2) = id_CSSO4M_phy
620 ELSEIF (flag_aerosol .EQ. 2) THEN
621 nb_aer = 2
622 ALLOCATE (aerosol_name(nb_aer))
623 aerosol_name(1) = id_ASBCM_phy
624 aerosol_name(2) = id_AIBCM_phy
625 ELSEIF (flag_aerosol .EQ. 3) THEN
626 nb_aer = 2
627 ALLOCATE (aerosol_name(nb_aer))
628 aerosol_name(1) = id_ASPOMM_phy
629 aerosol_name(2) = id_AIPOMM_phy
630 ELSEIF (flag_aerosol .EQ. 4) THEN
631 nb_aer = 3
632 ALLOCATE (aerosol_name(nb_aer))
633 aerosol_name(1) = id_CSSSM_phy
634 aerosol_name(2) = id_SSSSM_phy
635 aerosol_name(3) = id_ASSSM_phy
636 ELSEIF (flag_aerosol .EQ. 5) THEN
637 nb_aer = 1
638 ALLOCATE (aerosol_name(nb_aer))
639 aerosol_name(1) = id_CIDUSTM_phy
640 ELSEIF (flag_aerosol .EQ. 6) THEN
641 nb_aer = 10
642 ALLOCATE (aerosol_name(nb_aer))
643 aerosol_name(1) = id_ASSO4M_phy
644 aerosol_name(2) = id_ASBCM_phy
645 aerosol_name(3) = id_AIBCM_phy
646 aerosol_name(4) = id_ASPOMM_phy
647 aerosol_name(5) = id_AIPOMM_phy
648 aerosol_name(6) = id_CSSSM_phy
649 aerosol_name(7) = id_SSSSM_phy
650 aerosol_name(8) = id_ASSSM_phy
651 aerosol_name(9) = id_CIDUSTM_phy
652 aerosol_name(10) = id_CSSO4M_phy
653 ENDIF
654
655 !
656 ! loop over modes, use of precalculated nmd and corresponding sigma
657 ! loop over wavelengths
658 ! for each mass species in mode
659 ! interpolate from Sext to retrieve Sext_at_gridpoint_per_species
660 ! compute optical_thickness_at_gridpoint_per_species
661
662 !
663 ! Calculations that need to be done since we are not in the subroutines INCA
664 !
665
666 DO n=1,nbre_RH-1
667 fact_RH(n)=1./(RH_tab(n+1)-RH_tab(n))
668 ENDDO
669
670 DO k=1, klev
671 DO i=1, klon
672 rh(i,k)=MIN(RHcl(i,k)*100.,RH_MAX)
673 RH_num(i,k) = INT( rh(i,k)/10. + 1.)
674 !--test olivier pour pas de reindicage
675 ! RH_num(i,k) =1
676 IF (rh(i,k).GT.85.) RH_num(i,k)=10
677 IF (rh(i,k).GT.90.) RH_num(i,k)=11
678 DELTA(i,k)=(rh(i,k)-RH_tab(RH_num(i,k)))*fact_RH(RH_num(i,k))
679 ENDDO
680 ENDDO
681
682 used_tau(:)=.FALSE.
683
684 DO m=1,nb_aer ! tau is only computed for each mass
685 fac=1.0
686 IF (aerosol_name(m).EQ.id_ASBCM_phy) THEN
687 soluble=.TRUE.
688 spsol=1
689 spss=0
690 ELSEIF (aerosol_name(m).EQ.id_ASPOMM_phy) THEN
691 soluble=.TRUE.
692 spsol=2
693 spss=0
694 ELSEIF (aerosol_name(m).EQ.id_ASSO4M_phy) THEN
695 soluble=.TRUE.
696 spsol=3
697 spss=0
698 fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD
699 ELSEIF (aerosol_name(m).EQ.id_CSSO4M_phy) THEN
700 soluble=.TRUE.
701 spsol=4
702 spss=0
703 fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD
704 ELSEIF (aerosol_name(m).EQ.id_SSSSM_phy) THEN
705 soluble=.TRUE.
706 spsol=5
707 spss=3
708 ELSEIF (aerosol_name(m).EQ.id_CSSSM_phy) THEN
709 soluble=.TRUE.
710 spsol=6
711 spss=2
712 ELSEIF (aerosol_name(m).EQ.id_ASSSM_phy) THEN
713 soluble=.TRUE.
714 spsol=7
715 spss=1
716 ELSEIF (aerosol_name(m).EQ.id_CIDUSTM_phy) THEN
717 soluble=.FALSE.
718 spinsol=1
719 spss=0
720 ELSEIF (aerosol_name(m).EQ.id_AIBCM_phy) THEN
721 soluble=.FALSE.
722 spinsol=2
723 spss=0
724 ELSEIF (aerosol_name(m).EQ.id_AIPOMM_phy) THEN
725 soluble=.FALSE.
726 spinsol=3
727 spss=0
728 ELSE
729 CYCLE
730 ENDIF
731
732 IF (soluble) then
733 used_tau(spsol)=.TRUE.
734 ELSE
735 used_tau(naero_soluble+spinsol)=.TRUE.
736 ENDIF
737
738 aerindex=aerosol_name(m)
739
740 DO la=1,las
741
742 !--only 550 and 865 nm are used
743 IF (la.NE.la550.AND.la.NE.la865) CYCLE
744
745 IF (soluble) THEN
746
747 IF ((la.EQ.2).AND.(spss.NE.0)) THEN !la=2 corresponds to 550 nm
748 IF (spss.EQ.1) THEN !accumulation mode
749 DO k=1, klev
750 DO i=1, klon
751 H=rh(i,k)/100.
752 tau_ae5wv_int=A1_ASSSM(k)+A2_ASSSM(k)*H+A3_ASSSM(k)/(H-1.05)
753 tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*dh(i,k)*tau_ae5wv_int*fac
754 tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
755 ENDDO
756 ENDDO
757 ENDIF
758
759 IF (spss.EQ.2) THEN !coarse mode
760 DO k=1, klev
761 DO i=1, klon
762 H=rh(i,k)/100.
763 tau_ae5wv_int=A1_CSSSM(k)+A2_CSSSM(k)*H+A3_CSSSM(k)/(H-1.05)
764 tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*dh(i,k)*tau_ae5wv_int*fac
765 tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
766 ENDDO
767 ENDDO
768 ENDIF
769
770 IF (spss.EQ.3) THEN !super coarse mode
771 DO k=1, klev
772 DO i=1, klon
773 H=rh(i,k)/100.
774 tau_ae5wv_int=A1_SSSSM(k)+A2_SSSSM(k)*H+A3_SSSSM(k)/(H-1.05)
775 tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*dh(i,k)*tau_ae5wv_int*fac
776 tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
777 ENDDO
778 ENDDO
779 ENDIF
780
781 ELSE
782 DO k=1, klev
783 DO i=1, klon
784 tau_ae5wv_int = alpha_aers_5wv(RH_num(i,k),la,spsol)+DELTA(i,k)* &
785 (alpha_aers_5wv(RH_num(i,k)+1,la,spsol) - &
786 alpha_aers_5wv(RH_num(i,k),la,spsol))
787 tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*dh(i,k)*tau_ae5wv_int*fac
788 tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
789 ENDDO
790 ENDDO
791 ENDIF
792
793 ELSE ! For insoluble aerosol
794
795 DO k=1, klev
796 DO i=1, klon
797 tau_ae5wv_int = alpha_aeri_5wv(la,spinsol)
798 tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*dh(i,k)*tau_ae5wv_int*fac
799 tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
800 ENDDO
801 ENDDO
802
803 ENDIF
804
805 ENDDO ! boucle sur les longueurs d'onde
806 ENDDO ! Boucle sur les masses de traceurs
807
808 DO m=1,naero_spc
809 IF (.NOT.used_tau(m)) tau(:,:,:,m)=0.
810 ENDDO
811
812 !--AOD calculations for diagnostics
813 od550aer(:)=SUM(tausum(:,la550,:),dim=2)
814 od865aer(:)=SUM(tausum(:,la865,:),dim=2)
815
816 !--extinction coefficient for diagnostic
817 ec550aer(:,:)=SUM(tau(:,:,la550,:),dim=3)/dh(:,:)
818
819 !--acc mode AOD calculation for diagnostic
820 od550lt1aer(:)=tausum(:,la550,id_ASSO4M_phy)+tausum(:,la550,id_ASBCM_phy)+tausum(:,la550,id_AIBCM_phy)+ &
821 tausum(:,la550,id_ASPOMM_phy)+tausum(:,la550,id_AIPOMM_phy)+tausum(:,la550,id_ASSSM_phy)+ &
822 0.03*tausum(:,la550,id_CSSSM_phy)+0.4*tausum(:,la550,id_CIDUSTM_phy)
823
824 DEALLOCATE(aerosol_name)
825
826 END SUBROUTINE AEROPT_5WV
827