source: LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_5wv.F90 @ 1150

Last change on this file since 1150 was 1150, checked in by jghattas, 15 years ago

Ajoute possiblilite de forcer avec d'autre aersols avec le meme principe que pour les so4.

Par default la convergence est rempu avec flag_aersosol=1 + ok_ade=ok_aie=y. Exactement les memes resultats peuvent etre retrouver avec new_aod=n. Les resultats sont exactement les memes sans prise en compte aucun aerosol, avec ok_ade=ok_aie=n.

  • flag_aerosol indique quel aersosol ou combinasion a utiliser (=1 uniquement les SO4 comme avant)
  • les fichiers d'entree so4.runXXXX.cdf change du nom pour majescule SO4.runXXXX.cdf
  • readsulfate change du nom pour readaerosol qui trait tous les aerosols
  • radlwsw change du nom pour radlwsw_aero.
  • aeropt_2bands.F90 et aeropt_5wv.F90 correspond a un reecriture de aeropt.F (premier et deuxieme moitie respectivement)
  • aeropt.F est gardé pour retrouver la convergence si demande avec new_aod=false (=true default)
  • sw_aero est un version evolue de sw_lmdar4 (dans fichier radiation_ar4.F)

ACo + JG

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 17.9 KB
Line 
1
2
3SUBROUTINE AEROPT_5WV(&
4   pdel, m_allaer, delt, &
5   RHcl, ai, flag_aerosol, &
6   pplay, t_seri)
7
8  USE DIMPHY
9
10  !
11  !    Yves Balkanski le 12 avril 2006
12  !    Celine Deandreis
13  !    Anne Cozic  Avril 2009
14  !    a partir d'une sous-routine de Johannes Quaas pour les sulfates
15  !
16  !
17  ! Refractive indices for seasalt come from Shettle and Fenn (1979)
18  !
19  ! Refractive indices from water come from Hale and Querry (1973)
20  !
21  ! Refractive indices from Ammonium Sulfate Toon and Pollack (1976)
22  !
23  ! Refractive indices for Dust, internal mixture of minerals coated with 1.5% hematite
24  ! by Volume (Balkanski et al., 2006)
25  !
26  ! Refractive indices for POM: Kinne (pers. Communication
27  !
28  ! Refractive index for BC from Shettle and Fenn (1979)
29  !
30  ! Shettle, E. P., & Fenn, R. W. (1979), Models for the aerosols of the lower atmosphere and
31  ! the effects of humidity variations on their optical properties, U.S. Air Force Geophysics
32  ! Laboratory Rept. AFGL-TR-79-0214, Hanscomb Air Force Base, MA.
33  !
34  ! Hale, G. M. and M. R. Querry, Optical constants of water in the 200-nm to 200-m
35  ! wavelength region, Appl. Opt., 12, 555-563, 1973.
36  !
37  ! Toon, O. B. and J. B. Pollack, The optical constants of several atmospheric aerosol species:
38  ! Ammonium sulfate, aluminum oxide, and sodium chloride, J. Geohys. Res., 81, 5733-5748,
39  ! 1976.
40  !
41  ! Balkanski, Y., M. Schulz, T. Claquin And O. Boucher, Reevaluation of mineral aerosol
42  ! radiative forcings suggests a better agreement with satellite and AERONET data, Atmospheric
43  ! Chemistry and Physics Discussions., 6, pp 8383-8419, 2006.
44  !
45  IMPLICIT NONE
46  INCLUDE "YOMCST.h"
47  !
48  ! Input arguments:
49  !
50  REAL, DIMENSION(klon,klev), INTENT(in)   :: pdel
51  REAL, INTENT(in)                         :: delt
52  REAL, DIMENSION(klon,klev,8), INTENT(in) :: m_allaer
53  REAL, DIMENSION(klon,klev), INTENT(in)   :: RHcl     ! humidite relative ciel clair
54  INTEGER,INTENT(in)                       :: flag_aerosol
55  REAL, DIMENSION(klon,klev), INTENT(in)   :: pplay
56  REAL, DIMENSION(klon,klev), INTENT(in)   :: t_seri
57
58  !
59  ! Output arguments:
60  !
61  REAL, DIMENSION(klon), INTENT(out)       :: ai      ! POLDER aerosol index
62
63  !
64  ! Local
65  !
66  INTEGER, PARAMETER :: las = 5
67  LOGICAL :: soluble
68 
69  INTEGER :: i, k, m
70  INTEGER :: spsol, spinsol, la
71  INTEGER :: RH_num
72  INTEGER, PARAMETER :: la443 = 1
73  INTEGER, PARAMETER :: la550 = 2
74  INTEGER, PARAMETER :: la670 = 3
75  INTEGER, PARAMETER :: la765 = 4
76  INTEGER, PARAMETER :: la865 = 5
77  INTEGER, PARAMETER :: nbre_RH=12
78  INTEGER, PARAMETER :: nbsol_compaer=5   ! 1- Seasalt AS: 2- Sesalt CS; 3- BC soluble; 4- POM soluble; 5- SO4.
79  INTEGER, PARAMETER :: nbinsol_compaer=3 ! 1- Dust; 2- BC insoluble; 3- POM insoluble
80  REAL :: zrho
81  REAL :: RH_tab(nbre_RH)
82  REAL :: DELTA, rh
83  REAL :: tau_ae5wv_int(KLON,KLEV,las) ! Intermediate computation of epaisseur optique aerosol
84  REAL :: piz_ae5wv_int(KLON,KLEV,las) ! Intermediate single scattering albedo aerosol
85  REAL :: cg_ae5wv_int(KLON,KLEV,las)  ! Intermediate asymmetry parameter aerosol
86  REAL, PARAMETER :: RH_MAX=95.
87  DATA RH_tab/0.,10.,20.,30.,40.,50.,60.,70.,80.,85.,90.,95./
88  REAL :: taue670(KLON)       ! epaisseur optique aerosol absorption 550 nm
89  REAL :: taue865(KLON)       ! epaisseur optique aerosol extinction 865 nm
90  REAL :: fac
91  REAL :: zdp1(klon,klev)
92  REAL, PARAMETER ::  gravit = 9.80616    ! m2/s
93  INTEGER, ALLOCATABLE, DIMENSION(:)  :: aerosol_name
94  INTEGER, PARAMETER :: id_SSSSM    = 1
95  INTEGER, PARAMETER :: id_CSSSM    = 2
96  INTEGER, PARAMETER :: id_ASSSM    = 3
97  INTEGER, PARAMETER :: id_ASBCM    = 4
98  INTEGER, PARAMETER :: id_ASPOMM   = 5
99  INTEGER, PARAMETER :: id_ASSO4M   = 6
100  INTEGER, PARAMETER :: id_CSSO4M   = 7
101  INTEGER, PARAMETER :: id_CIDUSTM  = 8
102  INTEGER, PARAMETER :: id_AIBCM    = 9
103  INTEGER, PARAMETER :: id_AIPOMM   = 10
104  INTEGER :: nb_aer
105 
106  REAL :: tau3d(KLON,KLEV), piz3d(KLON,KLEV), cg3d(KLON,KLEV)
107  REAL :: abs3d(KLON,KLEV)     ! epaisseur optique d'absorption
108
109 
110  REAL :: alpha_aers_5wv(nbre_RH,las,nbsol_compaer)   ! ext. coeff. Soluble comp. units *** m2/g
111                                                      ! 1- Seasalt AS: 2- Sesalt CS; 3- BC; 4- POM; 5- SO4.
112  REAL :: alpha_aeri_5wv(las,nbinsol_compaer)         ! ext. coeff. Insoluble comp. 1- Dust: 2- BC; 3- POM
113  REAL :: cg_aers_5wv(nbre_RH,las,nbsol_compaer)      ! Asym. param. soluble comp.
114                                                      ! 1- Seasalt AS: 2- Sesalt CS; 3- BC; 4- POM; 5- SO4.
115  REAL :: cg_aeri_5wv(las,nbinsol_compaer)            ! Asym. param. insoluble comp. 1- Dust: 2- BC; 3- POM
116  REAL :: piz_aers_5wv(nbre_RH,las,nbsol_compaer)   
117                                                      ! 1- Seasalt AS: 2- Sesalt CS; 3- BC; 4- POM; 5- SO4.
118  REAL :: piz_aeri_5wv(las,nbinsol_compaer)           ! Insoluble comp. 1- Dust: 2- BC; 3- POM
119
120  REAL, ALLOCATABLE :: TAUSUM(:,:,:)     ! Aerosol optical thickness per species
121  REAL, ALLOCATABLE :: TAU(:,:,:,:)     ! Aerosol optical thickness per species
122  REAL, DIMENSION(klon,klev,8) :: mass_temp
123 
124  !
125  ! Proprietes optiques
126  !
127  REAL :: radry = 287.054                     ! dry air mass constant
128
129  !
130  !
131  !
132  ! From here on we look at the optical parameters at 5 wavelengths:
133  ! 443nm, 550, 670, 765 and 865 nm
134  !                                   le 12 AVRIL 2006
135  !
136  DATA alpha_aers_5wv/ &
137     ! seasalt soluble CS
138     0.50,0.90,1.05,1.21,1.40,2.41, &
139     2.66,3.11,3.88,4.52,5.69,8.84, &
140     0.51,0.92,1.07,1.23,1.42,2.45, &
141     2.70,3.16,3.94,4.58,5.76,8.94, &
142     0.52,0.93,1.08,1.24,1.43,2.47, &
143     2.73,3.20,3.99,4.64,5.84,9.04, &
144     0.52,0.93,1.09,1.25,1.44,2.50, &
145     2.76,3.23,4.03,4.68,5.89,9.14, &
146     0.52,0.94,1.09,1.26,1.45,2.51, &
147     2.78,3.25,4.06,4.72,5.94,9.22, &
148     ! seasalt soluble AS
149     4.28, 7.17, 8.44, 9.85,11.60,22.44,  &
150     25.34,30.54,39.38,46.52,59.33,91.77, &
151     3.40, 5.67, 6.69, 7.85, 9.32,19.03,  &
152     21.78,26.88,35.87,43.40,57.33,93.43, &
153     2.48, 4.22, 5.02, 5.94, 7.11,15.29,  &
154     17.70,22.31,30.73,38.06,52.15,90.59, &
155     1.90, 3.29, 3.94, 4.69, 5.65, 12.58, &
156     14.68,18.77,26.41,33.25,46.77,85.50, &
157     1.47, 2.59, 3.12, 3.74, 4.54, 10.42, &
158     12.24,15.82,22.66,28.91,41.54,79.33, &
159     ! bc soluble
160     7.930,7.930,7.930,7.930,7.930,7.930,     &
161     7.930,7.930,10.893,12.618,14.550,16.613, &
162     7.658,7.658,7.658,7.658,7.658,7.658,     &
163     7.658,7.658,10.351,11.879,13.642,15.510, &
164     7.195,7.195,7.195,7.195,7.195,7.195,     &
165     7.195,7.195,9.551,10.847,12.381,13.994,  &
166     6.736,6.736,6.736,6.736,6.736,6.736,     &
167     6.736,6.736,8.818,9.938,11.283,12.687,   &
168     6.277,6.277,6.277,6.277,6.277,6.277,     &
169     6.277,6.277,8.123,9.094,10.275,11.501,   &
170     ! pom soluble
171     6.676,6.676,6.676,6.676,6.710,6.934,   &
172     7.141,7.569,8.034,8.529,9.456,10.511,  &
173     5.109,5.109,5.109,5.109,5.189,5.535,   &
174     5.960,6.852,8.008,9.712,12.897,19.676, &
175     3.718,3.718,3.718,3.718,3.779,4.042,   &
176     4.364,5.052,5.956,7.314,9.896,15.688,  &
177     2.849,2.849,2.849,2.849,2.897,3.107,   &
178     3.365,3.916,4.649,5.760,7.900,12.863,  &
179     2.229,2.229,2.229,2.229,2.268,2.437,   &
180     2.645,3.095,3.692,4.608,6.391,10.633,  &
181     ! Sulfate
182     5.751,6.215,6.690,7.024,7.599,8.195,      &
183     9.156,10.355,12.660,14.823,18.908,24.508, &
184     4.320,4.675,5.052,5.375,5.787,6.274,      &
185     7.066,8.083,10.088,12.003,15.697,21.133,  &
186     3.079,3.351,3.639,3.886,4.205,4.584,      &
187     5.206,6.019,7.648,9.234,12.391,17.220,    &
188     2.336,2.552,2.781,2.979,3.236,3.540,      &
189     4.046,4.711,6.056,7.388,10.093,14.313,    &
190     1.777,1.949,2.134,2.292,2.503,2.751,      &
191     3.166,3.712,4.828,5.949,8.264,11.922/
192
193  DATA alpha_aeri_5wv/ &
194     ! dust insoluble
195     0.759, 0.770, 0.775, 0.775, 0.772, &
196     !!jb bc insoluble
197     11.536,10.033, 8.422, 7.234, 6.270, &
198     ! pom insoluble
199     5.042, 3.101, 1.890, 1.294, 0.934/
200
201  DATA cg_aers_5wv/ &
202     ! seasalt soluble (CS)
203     0.730,0.753,0.760,0.766,0.772,0.793, &
204     0.797,0.802,0.809,0.813,0.820,0.830, &
205     0.719,0.744,0.751,0.757,0.764,0.786, &
206     0.791,0.796,0.803,0.808,0.815,0.826, &
207     0.721,0.744,0.750,0.756,0.762,0.784, &
208     0.787,0.793,0.800,0.804,0.811,0.822, &
209     0.717,0.741,0.747,0.753,0.759,0.780, &
210     0.784,0.789,0.795,0.800,0.806,0.817, &
211     0.715,0.739,0.745,0.751,0.757,0.777, &
212     0.781,0.786,0.793,0.797,0.803,0.814, &
213     ! seasalt soluble (AS)
214     0.698,0.722,0.729,0.736,0.743,0.765, &
215     0.768,0.773,0.777,0.779,0.781,0.779, &
216     0.682,0.710,0.719,0.727,0.735,0.764, &
217     0.769,0.776,0.783,0.787,0.791,0.792, &
218     0.658,0.691,0.701,0.710,0.720,0.756, &
219     0.763,0.771,0.782,0.788,0.795,0.801, &
220     0.632,0.668,0.679,0.690,0.701,0.743, &
221     0.750,0.762,0.775,0.783,0.792,0.804, &
222     0.605,0.644,0.656,0.669,0.681,0.729, &
223     0.737,0.750,0.765,0.775,0.787,0.803, &
224     ! bc soluble
225     .651, .651, .651, .651, .651, .651, &
226     .651, .651, .738, .764, .785, .800, &
227     .597, .597, .597, .597, .597, .597, &
228     .597, .597, .695, .725, .751, .770, &
229     .543, .543, .543, .543, .543, .543, &
230     .543, .543, .650, .684, .714, .736, &
231     .504, .504, .504, .504, .504, .504, &
232     .504, .504, .614, .651, .683, .708, &
233     .469, .469, .469, .469, .469, .469, &
234     .469, .469, .582, .620, .655, .681, &
235     ! pom soluble
236     .679, .679, .679, .679, .683, .691, &
237     .703, .720, .736, .751, .766, .784, &
238     .656, .656, .656, .656, .659, .669, &
239     .681, .699, .717, .735, .750, .779, &
240     .623, .623, .623, .623, .627, .637, &
241     .649, .668, .688, .709, .734, .762, &
242     .592, .592, .592, .592, .595, .605, &
243     .618, .639, .660, .682, .711, .743, &
244     .561, .561, .561, .561, .565, .575, &
245     .588, .609, .632, .656, .688, .724, &
246     ! sulfate
247     .671, .684, .697, .704, .714, .723, &
248     .734, .746, .762, .771, .781, .789, &
249     .653, .666, .678, .687, .697, .707, &
250     .719, .732, .751, .762, .775, .789, &
251     .622, .635, .648, .657, .667, .678, &
252     .691, .705, .728, .741, .758, .777, &
253     .591, .604, .617, .627, .638, .650, &
254     .664, .679, .704, .719, .739, .761, &
255     .560, .574, .587, .597, .609, .621, &
256     .637, .653, .680, .697, .719, .745/
257  !
258
259  DATA cg_aeri_5wv/&
260     ! dust insoluble
261     0.714, 0.697, 0.688, 0.683, 0.679, &
262     ! bc insoluble
263     0.511, 0.445, 0.384, 0.342, 0.307, &
264     !c pom insoluble
265     0.596, 0.536, 0.466, 0.409, 0.359/
266  !
267  DATA piz_aers_5wv/&
268     ! seasalt soluble (CS)
269     1.000,1.000,1.000,1.000,1.000,1.000, &
270     1.000,1.000,1.000,1.000,1.000,1.000, &
271     1.000,1.000,1.000,1.000,1.000,1.000, &
272     1.000,1.000,1.000,1.000,1.000,1.000, &
273     1.000,1.000,1.000,1.000,1.000,1.000, &
274     1.000,1.000,1.000,1.000,1.000,1.000, &
275     1.000,1.000,1.000,1.000,1.000,1.000, &
276     1.000,1.000,1.000,1.000,1.000,1.000, &
277     1.000,1.000,1.000,1.000,1.000,1.000, &
278     1.000,1.000,1.000,1.000,1.000,1.000, &
279     ! seasalt soluble (AS)
280     1.000,1.000,1.000,1.000,1.000,1.000, &
281     1.000,1.000,1.000,1.000,1.000,1.000, &
282     1.000,1.000,1.000,1.000,1.000,1.000, &
283     1.000,1.000,1.000,1.000,1.000,1.000, &
284     1.000,1.000,1.000,1.000,1.000,1.000, &
285     1.000,1.000,1.000,1.000,1.000,1.000, &
286     1.000,1.000,1.000,1.000,1.000,1.000, &
287     1.000,1.000,1.000,1.000,1.000,1.000, &
288     1.000,1.000,1.000,1.000,1.000,1.000, &
289     1.000,1.000,1.000,1.000,1.000,1.000, &
290     ! bc soluble
291     .445, .445, .445, .445, .445, .445, &
292     .445, .445, .470, .487, .508, .531, &
293     .442, .442, .442, .442, .442, .442, &
294     .442, .442, .462, .481, .506, .533, &
295     .427, .427, .427, .427, .427, .427, &
296     .427, .427, .449, .470, .497, .526, &
297     .413, .413, .413, .413, .413, .413, &
298     .413, .413, .437, .458, .486, .516, &
299     .399, .399, .399, .399, .399, .399, &
300     .399, .399, .423, .445, .473, .506, &
301     ! pom soluble
302     .975, .975, .975, .975, .975, .977, &
303     .979, .982, .984, .987, .990, .994, &
304     .972, .972, .972, .972, .973, .974, &
305     .977, .980, .983, .986, .989, .993, &
306     .963, .963, .963, .963, .964, .966, &
307     .969, .974, .977, .982, .986, .991, &
308     .955, .955, .955, .955, .955, .958, &
309     .962, .967, .972, .977, .983, .989, &
310     .944, .944, .944, .944, .944, .948, &
311     .952, .959, .962, .972, .979, .987, &
312     ! sulfate
313     1.000,1.000,1.000,1.000,1.000,1.000, &
314     1.000,1.000,1.000,1.000,1.000,1.000, &
315     1.000,1.000,1.000,1.000,1.000,1.000, &
316     1.000,1.000,1.000,1.000,1.000,1.000, &
317     1.000,1.000,1.000,1.000,1.000,1.000, &
318     1.000,1.000,1.000,1.000,1.000,1.000, &
319     1.000,1.000,1.000,1.000,1.000,1.000, &
320     1.000,1.000,1.000,1.000,1.000,1.000, &
321     1.000,1.000,1.000,1.000,1.000,1.000, &
322     1.000,1.000,1.000,1.000,1.000,1.000/
323  !
324  DATA piz_aeri_5wv/&
325     ! dust insoluble
326     0.944, 0.970, 0.977, 0.982, 0.987, &
327     ! bc insoluble
328     0.415, 0.387, 0.355, 0.328, 0.301, &
329     ! pom insoluble
330     0.972, 0.963, 0.943, 0.923, 0.897/
331
332
333
334  DO k=1, klev
335    DO i=1, klon
336      IF (t_seri(i,k).EQ.0) stop 'stop aeropt_5wv T '
337      IF (pplay(i,k).EQ.0) stop  'stop aeropt_5wv p '
338
339      zrho=pplay(i,k)/t_seri(i,k)/RD                  ! kg/m3
340      mass_temp(i,k,:) = m_allaer(i,k,:) / zrho / 1.e+9
341
342    ENDDO
343  ENDDO
344
345
346
347  IF (flag_aerosol .EQ. 1) THEN
348      nb_aer = 1
349      ALLOCATE (aerosol_name(nb_aer))
350      aerosol_name(1) = id_ASSO4M
351  ELSEIF (flag_aerosol .EQ. 2) THEN
352      nb_aer = 2
353      ALLOCATE (aerosol_name(nb_aer))
354      aerosol_name(1) = id_ASBCM
355      aerosol_name(2) = id_AIBCM
356  ELSEIF (flag_aerosol .EQ. 3) THEN
357      nb_aer = 2
358      ALLOCATE (aerosol_name(nb_aer))
359      aerosol_name(1) = id_ASPOMM
360      aerosol_name(2) = id_AIPOMM
361  ELSEIF (flag_aerosol .EQ. 4) THEN
362      nb_aer = 5
363      ALLOCATE (aerosol_name(nb_aer))
364      aerosol_name(1) = id_ASSO4M
365      aerosol_name(2) = id_ASBCM
366      aerosol_name(3) = id_AIBCM
367      aerosol_name(4) = id_ASPOMM
368      aerosol_name(5) = id_AIPOMM
369  ELSEIF (flag_aerosol .EQ. 5) THEN
370      nb_aer = 4
371      ALLOCATE (aerosol_name(nb_aer))
372      aerosol_name(1) = id_ASBCM
373      aerosol_name(2) = id_AIBCM
374      aerosol_name(3) = id_ASPOMM
375      aerosol_name(4) = id_AIPOMM
376  ELSEIF (flag_aerosol .EQ. 6) THEN
377      nb_aer = 3
378      ALLOCATE (aerosol_name(nb_aer))
379      aerosol_name(1) = id_ASSO4M     
380      aerosol_name(2) = id_ASPOMM
381      aerosol_name(3) = id_AIPOMM
382  ENDIF
383     
384  ALLOCATE (tausum(klon,las,nb_aer))
385  ALLOCATE (tau(klon,klev,las,nb_aer))
386
387
388
389
390  !
391  ! loop over modes, use of precalculated nmd and corresponding sigma
392  !    loop over wavelengths
393  !    for each mass species in mode
394  !      interpolate from Sext to retrieve Sext_at_gridpoint_per_species
395  !      compute optical_thickness_at_gridpoint_per_species
396 
397  ai(:)=0.
398 
399  tau_ae5wv_int(:,:,:)=0.
400  piz_ae5wv_int(:,:,:)=0.
401  cg_ae5wv_int(:,:,:)=0.
402  tausum(:,:,:)=0.
403 
404  tau(:,:,:,:)=0.
405  !
406  ! Calculations that need to be done since we are not in the subroutines INCA
407  !     
408  ! air mass auxiliary  variable --> zdp1 [kg/(m^2 *s)]
409  zdp1=pdel/(gravit*delt)
410 
411  DO m=1,nb_aer   ! tau is only computed for each mass
412   
413    fac=1.0
414    IF (aerosol_name(m).EQ.id_SSSSM) THEN   ! for now
415        soluble=.TRUE.
416        spsol=1
417    ELSEIF (aerosol_name(m).EQ.id_CSSSM) THEN
418        soluble=.TRUE.
419        spsol=1
420    ELSEIF (aerosol_name(m).EQ.id_ASSSM) THEN
421        soluble=.TRUE.
422        spsol=2
423    ELSEIF (aerosol_name(m).EQ.id_ASBCM) THEN
424        soluble=.TRUE.
425        spsol=3
426    ELSEIF (aerosol_name(m).EQ.id_ASPOMM) THEN
427        soluble=.TRUE.
428        spsol=4
429    ELSEIF ((aerosol_name(m).EQ.id_ASSO4M) .OR.  (aerosol_name(m).EQ.id_CSSO4M)) THEN
430        soluble=.TRUE.
431        spsol=5
432        fac=1.375    ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD
433    ELSEIF     (aerosol_name(m).EQ.id_CIDUSTM) THEN
434        soluble=.FALSE.
435        spinsol=1
436    ELSEIF  (aerosol_name(m).EQ.id_AIBCM) THEN
437        soluble=.FALSE.
438        spinsol=2
439    ELSEIF (aerosol_name(m).EQ.id_AIPOMM) THEN
440        soluble=.FALSE.
441        spinsol=3
442    ELSE
443        CYCLE
444    ENDIF
445   
446    DO la=1,las
447      tau3d(:,:)=0.
448      piz3d(:,:)=0.
449      cg3d(:,:)=0.
450      abs3d(:,:)=0.
451     
452      DO k=1, KLEV
453        DO i=1, KLON
454         
455          rh=MIN(RHcl(i,k)*100.,RH_MAX)
456          RH_num = INT( rh/10. + 1.)
457         
458          IF (rh.GT.85.) RH_num=10
459          IF (rh.GT.90.) RH_num=11
460          DELTA=(rh-RH_tab(RH_num))/(RH_tab(RH_num+1)-RH_tab(RH_num))
461         
462          IF (soluble) THEN
463              tau_ae5wv_int(i,k,la) = &
464                 alpha_aers_5wv(RH_num,la,spsol)+DELTA* &
465                 (alpha_aers_5wv(RH_num+1,la,spsol) - &
466                 alpha_aers_5wv(RH_num,la,spsol))
467             
468              piz_ae5wv_int(i,k,la) = &
469                 piz_aers_5wv(RH_num,la,spsol)+DELTA* &
470                 (piz_aers_5wv(RH_num+1,la,spsol) - &
471                 piz_aers_5wv(RH_num,la,spsol))
472             
473              cg_ae5wv_int(i,k,la) = &
474                 cg_aers_5wv(RH_num,la,spsol)+DELTA* &
475                 (cg_aers_5wv(RH_num+1,la,spsol) - &
476                 cg_aers_5wv(RH_num,la,spsol))
477             
478              tau3d(i,k) = &
479                 mass_temp(i,k,spsol)*1000.*zdp1(i,k)*tau_ae5wv_int(i,k,la)*delt*fac
480
481          ELSE
482              tau_ae5wv_int(i,k,la) = alpha_aeri_5wv(la,spinsol)
483              piz_ae5wv_int(i,k,la) = piz_aeri_5wv(la,spinsol)
484              cg_ae5wv_int(i,k,la)  = cg_aeri_5wv(la,spinsol)
485
486              tau3d(i,k) = &
487                 mass_temp(i,k,5+spinsol)*1000.*zdp1(i,k)*tau_ae5wv_int(i,k,la)*delt*fac
488          ENDIF
489         
490         
491        ENDDO     ! Boucle sur les points géographiques (grille horizontale)
492      ENDDO     ! Boucle sur les niveaux verticaux
493     
494      tau(:,:,la,m)=tau3d(:,:)
495     
496      DO k=1, KLEV
497        DO i=1,KLON
498          tausum(i,la,m)=tausum(i,la,m)+tau3d(i,k)
499        ENDDO
500      ENDDO
501     
502    ENDDO   ! boucle sur les longueurs d'onde
503  ENDDO     ! Boucle  sur les masses de traceurs
504
505
506  taue670(:) = SUM(tausum(:,la670,:),dim=2)
507  taue865(:) = SUM(tausum(:,la865,:),dim=2)
508
509  DO i=1, klon
510    ai(i)=-LOG(MAX(taue670(i),0.0001)/ &
511       MAX(taue865(i),0.0001))/LOG(670./865.)
512  ENDDO
513
514 
515END SUBROUTINE AEROPT_5WV
Note: See TracBrowser for help on using the repository browser.