source: LMDZ5/trunk/libf/phylmd/rrtm/aeropt_5wv_rrtm.F90 @ 2660

Last change on this file since 2660 was 2644, checked in by oboucher, 8 years ago

I introduced flag_bc_internal_mixture for BC/sulphate internal mixture.
Only works for iflag_rrtm=y, NSW=6 and flag_aerosol=6 or aerosol_couple.
It has no impact at the moment as LUT for aerosol properties will have to
be changed. But the plumbing work is already done....

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:keywords set to Author Date Id Revi
File size: 17.2 KB
Line 
1!
2! $Id: aeropt_5wv_rrtm.F90 2644 2016-10-02 16:55:08Z musat $
3!
4
5SUBROUTINE AEROPT_5WV_RRTM(  &
6   pdel, m_allaer,           &
7   RHcl, ai, flag_aerosol,   &
8   flag_bc_internal_mixture, &
9   pplay, t_seri,            &
10   tausum, tau )
11
12  USE DIMPHY
13  USE aero_mod
14  USE phys_local_var_mod, only: od550aer,od865aer,ec550aer,od550lt1aer
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  !    Olivier Boucher mars 2014 pour adaptation RRTM
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, DIMENSION(klon,klev,naero_tot), INTENT(in) :: m_allaer
58  REAL, DIMENSION(klon,klev), INTENT(in)   :: RHcl     ! humidite relative ciel clair
59  INTEGER,INTENT(in)                       :: flag_aerosol
60  LOGICAL,INTENT(in)                       :: flag_bc_internal_mixture
61  REAL, DIMENSION(klon,klev), INTENT(in)   :: pplay
62  REAL, DIMENSION(klon,klev), INTENT(in)   :: t_seri
63  !
64  ! Output arguments:
65  !
66  REAL, DIMENSION(klon), INTENT(out)                      :: ai      ! POLDER aerosol index
67  REAL, DIMENSION(klon,nwave,naero_tot), INTENT(out)      :: tausum
68  REAL, DIMENSION(klon,klev,nwave,naero_tot), INTENT(out) :: tau
69
70  !
71  ! Local
72  !
73  INTEGER, PARAMETER :: las = nwave_sw
74  LOGICAL :: soluble
75 
76  INTEGER :: i, k, m, aerindex
77  INTEGER :: spsol, spinsol, 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
89  REAL :: zrho
90
91  REAL, PARAMETER :: RH_tab(nbre_RH)=(/0.,10.,20.,30.,40.,50.,60.,70.,80.,85.,90.,95./)
92  REAL, PARAMETER :: RH_MAX=95.
93  REAL :: delta(klon,klev), rh(klon,klev)
94  REAL :: tau_ae5wv_int   ! Intermediate computation of epaisseur optique aerosol
95  REAL :: od670aer(klon)  ! epaisseur optique aerosol extinction 670 nm
96  REAL :: fac
97  INTEGER, ALLOCATABLE, DIMENSION(:)  :: aerosol_name
98  INTEGER :: nb_aer, itau
99  LOGICAL :: ok_itau
100 
101  REAL :: zdh(klon,klev)
102 
103   ! Soluble components 1- BC soluble; 2- POM soluble; 3- SO4 acc.; 4- SO4 coarse; 5 seasalt super-coarse; 6 seasalt coarse; 7 seasalt acc.
104  REAL :: alpha_aers_5wv(nbre_RH,las,naero_soluble)   ! Ext. coeff. ** m2/g
105   ! Insoluble components 1- Dust: 2- BC; 3- POM
106  REAL :: alpha_aeri_5wv(las,naero_insoluble)         ! Ext. coeff. ** m2/g
107
108  !
109  ! BC internal mixture
110  !
111  INTEGER, PARAMETER ::  nbclassbc = 5  ! Added by Rong Wang/OB for the 5 fractions
112                                       ! of BC in the soluble mode:
113                                       ! bc_content/0.001, 0.01, 0.02, 0.05, ! 0.1/
114  ! for Maxwell-Garnet internal mixture
115  ! Detailed theory can be found in R. Wang Estimation of global black carbon ! direct
116  ! radiative forcing and its uncertainty constrained by observations. J.
117  ! Geophys. Res. Atmos. Added by R. Wang and OB
118  REAL :: alpha_MG_5wv(nbre_RH,las,nbclassbc)
119
120  !
121  ! Proprietes optiques
122  !
123  REAL :: fact_RH(nbre_RH), BC_massfra
124  INTEGER :: n, classbc
125
126! From here on we look at the optical parameters at 5 wavelengths: 
127! 443nm, 550, 670, 765 and 865 nm
128!                                   le 12 AVRIL 2006
129
130 DATA alpha_aers_5wv/ &
131                                ! bc soluble
132       7.930,7.930,7.930,7.930,7.930,7.930,7.930,7.930,10.893,12.618,14.550,16.613, &
133       7.658,7.658,7.658,7.658,7.658,7.658,7.658,7.658,10.351,11.879,13.642,15.510, &
134       7.195,7.195,7.195,7.195,7.195,7.195,7.195,7.195,9.551,10.847,12.381,13.994,  &
135       6.736,6.736,6.736,6.736,6.736,6.736,6.736,6.736,8.818,9.938,11.283,12.687,   &
136       6.277,6.277,6.277,6.277,6.277,6.277,6.277,6.277,8.123,9.094,10.275,11.501,   &
137                                ! pom soluble
138       6.676,6.676,6.676,6.676,6.710,6.934,7.141,7.569,8.034,8.529,9.456,10.511,  &
139       5.109,5.109,5.109,5.109,5.189,5.535,5.960,6.852,8.008,9.712,12.897,19.676, &
140       3.718,3.718,3.718,3.718,3.779,4.042,4.364,5.052,5.956,7.314,9.896,15.688,  &
141       2.849,2.849,2.849,2.849,2.897,3.107,3.365,3.916,4.649,5.760,7.900,12.863,  &
142       2.229,2.229,2.229,2.229,2.268,2.437,2.645,3.095,3.692,4.608,6.391,10.633,  &
143                                ! Sulfate (Accumulation)
144       5.751,6.215,6.690,7.024,7.599,8.195,9.156,10.355,12.660,14.823,18.908,24.508, &
145       4.320,4.675,5.052,5.375,5.787,6.274,7.066,8.083,10.088,12.003,15.697,21.133,  &
146       3.079,3.351,3.639,3.886,4.205,4.584,5.206,6.019,7.648,9.234,12.391,17.220,    &
147       2.336,2.552,2.781,2.979,3.236,3.540,4.046,4.711,6.056,7.388,10.093,14.313,    &
148       1.777,1.949,2.134,2.292,2.503,2.751,3.166,3.712,4.828,5.949,8.264,11.922,     &
149                                ! Sulfate (Coarse)
150       5.751,6.215,6.690,7.024,7.599,8.195,9.156,10.355,12.660,14.823,18.908,24.508, &
151       4.320,4.675,5.052,5.375,5.787,6.274,7.066,8.083,10.088,12.003,15.697,21.133,  &
152       3.079,3.351,3.639,3.886,4.205,4.584,5.206,6.019,7.648,9.234,12.391,17.220,    &
153       2.336,2.552,2.781,2.979,3.236,3.540,4.046,4.711,6.056,7.388,10.093,14.313,    &
154       1.777,1.949,2.134,2.292,2.503,2.751,3.166,3.712,4.828,5.949,8.264,11.922,     &
155                           ! seasalt seasalt Super Coarse Soluble (SS)
156        0.218, 0.272, 0.293, 0.316, 0.343, 0.380, 0.429, 0.501, 0.636, 0.755, 0.967, 1.495, &
157        0.221, 0.275, 0.297, 0.320, 0.348, 0.383, 0.432, 0.509, 0.640, 0.759, 0.972, 1.510, &
158        0.224, 0.279, 0.301, 0.324, 0.352, 0.388, 0.438, 0.514, 0.647, 0.768, 0.985, 1.514, &
159        0.227, 0.282, 0.303, 0.327, 0.356, 0.392, 0.441, 0.518, 0.652, 0.770, 0.987, 1.529, &
160        0.230, 0.285, 0.306, 0.330, 0.359, 0.396, 0.446, 0.522, 0.656, 0.777, 0.993, 1.539, &
161                           ! seasalt seasalt Coarse Soluble (CS)     
162        0.578, 0.706, 0.756, 0.809, 0.876, 0.964, 1.081, 1.256, 1.577, 1.858, 2.366, 3.613, &
163        0.598, 0.725, 0.779, 0.833, 0.898, 0.990, 1.109, 1.290, 1.609, 1.889, 2.398, 3.682, &
164        0.619, 0.750, 0.802, 0.857, 0.927, 1.022, 1.141, 1.328, 1.648, 1.939, 2.455, 3.729, &
165        0.633, 0.767, 0.820, 0.879, 0.948, 1.044, 1.167, 1.353, 1.683, 1.969, 2.491, 3.785, &
166        0.648, 0.785, 0.838, 0.896, 0.967, 1.066, 1.192, 1.381, 1.714, 2.006, 2.531, 3.836, &
167                           ! seasalt seasalt Accumulation Soluble (AS)
168        4.432, 5.899, 6.505, 7.166, 7.964, 7.962, 9.232,11.257,14.979,18.337,24.223,37.811, &
169        3.298, 4.569, 5.110, 5.709, 6.446, 6.268, 7.396, 9.246,12.787,16.113,22.197,37.136, &
170        2.340, 3.358, 3.803, 4.303, 4.928, 4.696, 5.629, 7.198,10.308,13.342,19.120,34.296, &
171        1.789, 2.626, 2.999, 3.422, 3.955, 3.730, 4.519, 5.864, 8.593,11.319,16.653,31.331, &
172        1.359, 2.037, 2.343, 2.693, 3.139, 2.940, 3.596, 4.729, 7.076, 9.469,14.266,28.043 /
173
174  DATA alpha_aeri_5wv/ &
175                                 ! dust insoluble
176        0.759, 0.770, 0.775, 0.775, 0.772, &
177                                 !!jb bc insoluble
178        11.536,10.033, 8.422, 7.234, 6.270, &
179                                 ! pom insoluble
180        5.042, 3.101, 1.890, 1.294, 0.934/
181
182  ! internal mixture
183  DATA alpha_MG_5wv/ &
184     ! bc content = 0.001
185       7.930,7.930,7.930,7.930,7.930,7.930,7.930,7.930,10.893,12.618,14.550,16.613, &
186       7.658,7.658,7.658,7.658,7.658,7.658,7.658,7.658,10.351,11.879,13.642,15.510, &
187       7.195,7.195,7.195,7.195,7.195,7.195,7.195,7.195,9.551,10.847,12.381,13.994,  &
188       6.736,6.736,6.736,6.736,6.736,6.736,6.736,6.736,8.818,9.938,11.283,12.687,   &
189       6.277,6.277,6.277,6.277,6.277,6.277,6.277,6.277,8.123,9.094,10.275,11.501,   &
190     ! bc content = 0.01
191       7.930,7.930,7.930,7.930,7.930,7.930,7.930,7.930,10.893,12.618,14.550,16.613, &
192       7.658,7.658,7.658,7.658,7.658,7.658,7.658,7.658,10.351,11.879,13.642,15.510, &
193       7.195,7.195,7.195,7.195,7.195,7.195,7.195,7.195,9.551,10.847,12.381,13.994,  &
194       6.736,6.736,6.736,6.736,6.736,6.736,6.736,6.736,8.818,9.938,11.283,12.687,   &
195       6.277,6.277,6.277,6.277,6.277,6.277,6.277,6.277,8.123,9.094,10.275,11.501,   &
196     ! bc content = 0.02
197       7.930,7.930,7.930,7.930,7.930,7.930,7.930,7.930,10.893,12.618,14.550,16.613, &
198       7.658,7.658,7.658,7.658,7.658,7.658,7.658,7.658,10.351,11.879,13.642,15.510, &
199       7.195,7.195,7.195,7.195,7.195,7.195,7.195,7.195,9.551,10.847,12.381,13.994,  &
200       6.736,6.736,6.736,6.736,6.736,6.736,6.736,6.736,8.818,9.938,11.283,12.687,   &
201       6.277,6.277,6.277,6.277,6.277,6.277,6.277,6.277,8.123,9.094,10.275,11.501,   &
202     ! bc content = 0.05
203       7.930,7.930,7.930,7.930,7.930,7.930,7.930,7.930,10.893,12.618,14.550,16.613, &
204       7.658,7.658,7.658,7.658,7.658,7.658,7.658,7.658,10.351,11.879,13.642,15.510, &
205       7.195,7.195,7.195,7.195,7.195,7.195,7.195,7.195,9.551,10.847,12.381,13.994,  &
206       6.736,6.736,6.736,6.736,6.736,6.736,6.736,6.736,8.818,9.938,11.283,12.687,   &
207       6.277,6.277,6.277,6.277,6.277,6.277,6.277,6.277,8.123,9.094,10.275,11.501,   &
208     ! bc content = 0.10
209       7.930,7.930,7.930,7.930,7.930,7.930,7.930,7.930,10.893,12.618,14.550,16.613, &
210       7.658,7.658,7.658,7.658,7.658,7.658,7.658,7.658,10.351,11.879,13.642,15.510, &
211       7.195,7.195,7.195,7.195,7.195,7.195,7.195,7.195,9.551,10.847,12.381,13.994,  &
212       6.736,6.736,6.736,6.736,6.736,6.736,6.736,6.736,8.818,9.938,11.283,12.687,   &
213       6.277,6.277,6.277,6.277,6.277,6.277,6.277,6.277,8.123,9.094,10.275,11.501 /
214
215  !
216  ! Initialisations
217  ai(:) = 0.
218  tausum(:,:,:) = 0.
219  tau(:,:,:,:)=0.
220
221  DO k=1, klev
222    DO i=1, klon
223      zrho=pplay(i,k)/t_seri(i,k)/RD                  ! kg/m3
224      zdh(i,k)=pdel(i,k)/(RG*zrho)                    ! m
225    ENDDO
226  ENDDO
227
228  IF (flag_aerosol .EQ. 1) THEN
229     nb_aer = 2
230     ALLOCATE (aerosol_name(nb_aer))
231     aerosol_name(1) = id_ASSO4M_phy
232     aerosol_name(2) = id_CSSO4M_phy
233  ELSEIF (flag_aerosol .EQ. 2) THEN
234     nb_aer = 2
235     ALLOCATE (aerosol_name(nb_aer))
236     aerosol_name(1) = id_ASBCM_phy
237     aerosol_name(2) = id_AIBCM_phy
238  ELSEIF (flag_aerosol .EQ. 3) THEN
239     nb_aer = 2
240     ALLOCATE (aerosol_name(nb_aer))
241     aerosol_name(1) = id_ASPOMM_phy
242     aerosol_name(2) = id_AIPOMM_phy
243  ELSEIF (flag_aerosol .EQ. 4) THEN
244     nb_aer = 3
245     ALLOCATE (aerosol_name(nb_aer))
246     aerosol_name(1) = id_CSSSM_phy
247     aerosol_name(2) = id_SSSSM_phy
248     aerosol_name(3) = id_ASSSM_phy
249  ELSEIF (flag_aerosol .EQ. 5) THEN
250     nb_aer = 1
251     ALLOCATE (aerosol_name(nb_aer))
252     aerosol_name(1) = id_CIDUSTM_phy
253  ELSEIF (flag_aerosol .EQ. 6) THEN
254     nb_aer = 10
255     ALLOCATE (aerosol_name(nb_aer))
256     aerosol_name(1) = id_ASSO4M_phy     
257     aerosol_name(2) = id_ASBCM_phy
258     aerosol_name(3) = id_AIBCM_phy
259     aerosol_name(4) = id_ASPOMM_phy
260     aerosol_name(5) = id_AIPOMM_phy
261     aerosol_name(6) = id_CSSSM_phy
262     aerosol_name(7) = id_SSSSM_phy
263     aerosol_name(8) = id_ASSSM_phy
264     aerosol_name(9) = id_CIDUSTM_phy
265     aerosol_name(10)= id_CSSO4M_phy
266  ENDIF
267
268  !
269  ! Loop over modes, use of precalculated nmd and corresponding sigma
270  !    loop over wavelengths
271  !    for each mass species in mode
272  !      interpolate from Sext to retrieve Sext_at_gridpoint_per_species
273  !      compute optical_thickness_at_gridpoint_per_species
274  !
275  ! Calculations that need to be done since we are not in the subroutines INCA
276  !     
277
278  DO n=1,nbre_RH-1
279    fact_RH(n)=1./(RH_tab(n+1)-RH_tab(n))
280  ENDDO
281   
282  DO k=1, klev
283    DO i=1, klon
284      rh(i,k)=MIN(RHcl(i,k)*100.,RH_MAX)
285      RH_num(i,k) = INT( rh(i,k)/10. + 1.)
286      IF (rh(i,k).GT.85.) RH_num(i,k)=10
287      IF (rh(i,k).GT.90.) RH_num(i,k)=11
288      delta(i,k)=(rh(i,k)-RH_tab(RH_num(i,k)))*fact_RH(RH_num(i,k))
289    ENDDO
290  ENDDO
291
292  DO m=1,nb_aer   ! tau is only computed for each mass   
293    fac=1.0
294    IF (aerosol_name(m).EQ.id_ASBCM_phy) THEN
295        soluble=.TRUE.
296        spsol=1
297    ELSEIF (aerosol_name(m).EQ.id_ASPOMM_phy) THEN
298        soluble=.TRUE.
299        spsol=2
300    ELSEIF (aerosol_name(m).EQ.id_ASSO4M_phy) THEN
301        soluble=.TRUE.
302        spsol=3
303        fac=1.375    ! (NH4)2-SO4/SO4 132/96 mass conversion factor for AOD
304    ELSEIF (aerosol_name(m).EQ.id_CSSO4M_phy) THEN
305        soluble=.TRUE.
306        spsol=4
307        fac=1.375    ! (NH4)2-SO4/SO4 132/96 mass conversion factor for AOD
308    ELSEIF (aerosol_name(m).EQ.id_SSSSM_phy) THEN
309        soluble=.TRUE.
310        spsol=5
311    ELSEIF (aerosol_name(m).EQ.id_CSSSM_phy) THEN
312        soluble=.TRUE.
313        spsol=6
314    ELSEIF (aerosol_name(m).EQ.id_ASSSM_phy) THEN
315        soluble=.TRUE.
316        spsol=7
317    ELSEIF (aerosol_name(m).EQ.id_CIDUSTM_phy) THEN
318        soluble=.FALSE.
319        spinsol=1
320    ELSEIF  (aerosol_name(m).EQ.id_AIBCM_phy) THEN
321        soluble=.FALSE.
322        spinsol=2
323    ELSEIF (aerosol_name(m).EQ.id_AIPOMM_phy) THEN
324        soluble=.FALSE.
325        spinsol=3
326    ELSE
327        CYCLE
328    ENDIF
329
330    aerindex=aerosol_name(m)
331
332    DO la=1,las
333
334    !--only 550, 670 and 865 nm are used
335    IF (la.NE.la550.AND.la.NE.la670.AND.la.NE.la865) CYCLE
336
337      IF (soluble) THEN            ! For soluble aerosol
338
339        !--treat special case of soluble BC internal mixture
340        IF (spsol.EQ.1 .AND. flag_bc_internal_mixture) THEN
341
342          DO k=1, klev
343            DO i=1, klon
344
345             BC_massfra = m_allaer(i,k,id_ASBCM_phy)/(m_allaer(i,k,id_ASBCM_phy)+m_allaer(i,k,id_ASSO4M_phy))
346
347             IF (BC_massfra.GE.0.10) THEN
348               classbc = 5
349             ELSEIF  (BC_massfra.GE.0.05) THEN
350               classbc = 4
351             ELSEIF  (BC_massfra.GE.0.02) THEN
352               classbc = 3
353             ELSEIF  (BC_massfra.GE.0.01) THEN
354               classbc = 2
355             ELSE
356               classbc = 1
357             ENDIF
358
359              tau_ae5wv_int = alpha_MG_5wv(RH_num(i,k),la,classbc)+DELTA(i,k)* &
360                             (alpha_MG_5wv(RH_num(i,k)+1,la,classbc) - &
361                              alpha_MG_5wv(RH_num(i,k),la,classbc))
362              tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*tau_ae5wv_int*fac
363              tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
364            ENDDO
365          ENDDO
366
367        !--other cases of soluble aerosols
368        ELSE
369
370          DO k=1, klev
371            DO i=1, klon
372              tau_ae5wv_int = alpha_aers_5wv(RH_num(i,k),la,spsol)+DELTA(i,k)* &
373                             (alpha_aers_5wv(RH_num(i,k)+1,la,spsol) - &
374                              alpha_aers_5wv(RH_num(i,k),la,spsol))
375              tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*tau_ae5wv_int*fac
376              tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
377            ENDDO
378          ENDDO
379
380        ENDIF
381 
382      ! cases of insoluble aerosol
383      ELSE                         
384
385        DO k=1, klev
386          DO i=1, klon
387            tau_ae5wv_int = alpha_aeri_5wv(la,spinsol)
388            tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*tau_ae5wv_int*fac
389            tausum(i,la,aerindex)= tausum(i,la,aerindex)+tau(i,k,la,aerindex)
390          ENDDO
391        ENDDO
392
393      ENDIF
394
395    ENDDO   ! Boucle sur les longueurs d'onde
396  ENDDO     ! Boucle sur les masses de traceurs
397
398!--AOD calculations for diagnostics
399  od550aer(:)=SUM(tausum(:,la550,:),dim=2)
400  od670aer(:)=SUM(tausum(:,la670,:),dim=2)
401  od865aer(:)=SUM(tausum(:,la865,:),dim=2)
402
403!--extinction coefficient for diagnostic
404  ec550aer(:,:)=SUM(tau(:,:,la550,:),dim=3)/zdh(:,:)
405
406!--aerosol index
407  ai(:)=-LOG(MAX(od670aer(:),1.e-8)/MAX(od865aer(:),1.e-8))/LOG(670./865.)
408
409  od550lt1aer(:)=tausum(:,la550,id_ASSO4M_phy)+tausum(:,la550,id_ASBCM_phy) +tausum(:,la550,id_AIBCM_phy)+ &
410                 tausum(:,la550,id_ASPOMM_phy)+tausum(:,la550,id_AIPOMM_phy)+tausum(:,la550,id_ASSSM_phy)+ &
411                 0.03*tausum(:,la550,id_CSSSM_phy)+0.4*tausum(:,la550,id_CIDUSTM_phy)
412
413  DEALLOCATE(aerosol_name)
414 
415END SUBROUTINE AEROPT_5WV_RRTM
Note: See TracBrowser for help on using the repository browser.