source: LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_2bands.F90 @ 1226

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

Modification pour les aerosols sels marin.

Nicolas Yan, Yves Balkanski LSCE

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 43.2 KB
Line 
1SUBROUTINE AEROPT_2BANDS( &
2     pdel, m_allaer, delt, RHcl, &
3     tau_allaer, piz_allaer, &
4     cg_allaer, fractnat_allaer, &
5     flag_aerosol, pplay, t_seri, presnivs)
6
7  USE dimphy
8  USE aero_mod
9
10  !    Yves Balkanski le 12 avril 2006
11  !    Celine Deandreis
12  !    Anne Cozic Avril 2009
13  !    a partir d'une sous-routine de Johannes Quaas pour les sulfates
14  !
15  IMPLICIT NONE
16
17  INCLUDE "YOMCST.h"
18  INCLUDE "iniprint.h"
19
20  !
21  ! Input arguments:
22  !
23  REAL, DIMENSION(klon,klev),     INTENT(in)  :: pdel
24  REAL,                           INTENT(in)  :: delt
25  REAL, DIMENSION(klon,klev,naero_spc),   INTENT(in)  :: m_allaer
26  REAL, DIMENSION(klon,klev),     INTENT(in)  :: RHcl       ! humidite relative ciel clair
27  REAL, DIMENSION(klon,naero_tot),INTENT(in)  :: fractnat_allaer
28  INTEGER,                        INTENT(in)  :: flag_aerosol
29  REAL, DIMENSION(klon,klev),     INTENT(in)  :: pplay
30  REAL, DIMENSION(klon,klev),     INTENT(in)  :: t_seri
31  REAL, DIMENSION(klev),          INTENT(in)  :: presnivs
32  !
33  ! Output arguments:
34  !
35  REAL, DIMENSION(klon,klev,naero_grp,nbands), INTENT(out) :: tau_allaer ! epaisseur optique aerosol
36  REAL, DIMENSION(klon,klev,naero_grp,nbands), INTENT(out) :: piz_allaer ! single scattering albedo aerosol
37  REAL, DIMENSION(klon,klev,naero_grp,nbands), INTENT(out) :: cg_allaer  ! asymmetry parameter aerosol
38
39  !
40  ! Local
41  !
42  REAL, DIMENSION(klon,klev,naero_tot,nbands) ::  tau_ae
43  REAL, DIMENSION(klon,klev,naero_tot,nbands) ::  piz_ae
44  REAL, DIMENSION(klon,klev,naero_tot,nbands) ::  cg_ae
45  LOGICAL ::  soluble
46  INTEGER :: i, k, inu, m, mrfspecies
47  INTEGER :: spsol, spinsol, spss
48  INTEGER :: RH_num
49  INTEGER, PARAMETER :: nb_level=19 ! number of vertical levels in DATA
50
51  INTEGER, PARAMETER :: nbre_RH=12
52  INTEGER, PARAMETER :: nbsol_compaer=3    ! 1- BC soluble; 2- POM soluble; 3- SO4.
53  INTEGER, PARAMETER :: nbinsol_compaer=3  ! 1- Dust; 2- BC insoluble; 3- POM insoluble
54  LOGICAL, SAVE :: firstcall=.TRUE.
55
56! Coefficient optiques sur 19 niveaux
57  REAL, DIMENSION(nb_level) :: presnivs_19  ! Pression milieux couche pour 19 niveaux (nb_level)
58  REAL, DIMENSION(nb_level) :: A1_ASSSM_b1_19, A2_ASSSM_b1_19, A3_ASSSM_b1_19,&
59          B1_ASSSM_b1_19, B2_ASSSM_b1_19, C1_ASSSM_b1_19, C2_ASSSM_b1_19,&
60          A1_CSSSM_b1_19, A2_CSSSM_b1_19, A3_CSSSM_b1_19,&
61          B1_CSSSM_b1_19, B2_CSSSM_b1_19, C1_CSSSM_b1_19, C2_CSSSM_b1_19,&
62          A1_SSSSM_b1_19, A2_SSSSM_b1_19, A3_SSSSM_b1_19,&
63          B1_SSSSM_b1_19, B2_SSSSM_b1_19, C1_SSSSM_b1_19, C2_SSSSM_b1_19,&
64          A1_ASSSM_b2_19, A2_ASSSM_b2_19, A3_ASSSM_b2_19,&
65          B1_ASSSM_b2_19, B2_ASSSM_b2_19, C1_ASSSM_b2_19, C2_ASSSM_b2_19,&
66          A1_CSSSM_b2_19, A2_CSSSM_b2_19, A3_CSSSM_b2_19,&
67          B1_CSSSM_b2_19, B2_CSSSM_b2_19, C1_CSSSM_b2_19, C2_CSSSM_b2_19,&
68          A1_SSSSM_b2_19, A2_SSSSM_b2_19, A3_SSSSM_b2_19,&
69          B1_SSSSM_b2_19, B2_SSSSM_b2_19, C1_SSSSM_b2_19, C2_SSSSM_b2_19
70
71! Coefficient optiques interpole sur le nombre de niveau du modele
72  REAL, DIMENSION(klev) :: A1_ASSSM_b1, A2_ASSSM_b1, A3_ASSSM_b1,&
73          B1_ASSSM_b1, B2_ASSSM_b1, C1_ASSSM_b1, C2_ASSSM_b1,&
74          A1_CSSSM_b1, A2_CSSSM_b1, A3_CSSSM_b1,&
75          B1_CSSSM_b1, B2_CSSSM_b1, C1_CSSSM_b1, C2_CSSSM_b1,&
76          A1_SSSSM_b1, A2_SSSSM_b1, A3_SSSSM_b1,&
77          B1_SSSSM_b1, B2_SSSSM_b1, C1_SSSSM_b1, C2_SSSSM_b1,&
78          A1_ASSSM_b2, A2_ASSSM_b2, A3_ASSSM_b2,&
79          B1_ASSSM_b2, B2_ASSSM_b2, C1_ASSSM_b2, C2_ASSSM_b2,&
80          A1_CSSSM_b2, A2_CSSSM_b2, A3_CSSSM_b2,&
81          B1_CSSSM_b2, B2_CSSSM_b2, C1_CSSSM_b2, C2_CSSSM_b2,&
82          A1_SSSSM_b2, A2_SSSSM_b2, A3_SSSSM_b2,&
83          B1_SSSSM_b2, B2_SSSSM_b2, C1_SSSSM_b2, C2_SSSSM_b2
84
85  REAL:: RH_tab(nbre_RH)
86  REAL, PARAMETER :: RH_MAX=95.
87  REAL:: DELTA, rh, H
88  REAL:: tau_ae2b_int(KLON,KLEV,nbands)   ! Intermediate computation of epaisseur optique aerosol
89  REAL:: piz_ae2b_int(KLON,KLEV,nbands)   ! Intermediate computation of Single scattering albedo
90  REAL:: cg_ae2b_int(KLON,KLEV,nbands)    ! Intermediate computation of Assymetry parameter
91  DATA RH_tab/0.,10.,20.,30.,40.,50.,60.,70.,80.,85.,90.,95./
92  REAL :: zrho
93  REAL :: fac
94  REAL :: zdp1(klon,klev)
95  REAL, PARAMETER ::  gravit = 9.80616    ! m2/s
96  INTEGER, ALLOCATABLE, DIMENSION(:)   :: aerosol_name
97  INTEGER :: nb_aer
98  REAL, DIMENSION(klon,klev,naero_spc) :: mass_temp
99
100  !
101  ! Proprietes optiques
102  !
103  REAL:: alpha_aers_2bands(nbre_RH,nbands,nbsol_compaer)   !--unit m2/g SO4
104  REAL:: alpha_aeri_2bands(nbands,nbinsol_compaer)
105  REAL:: cg_aers_2bands(nbre_RH,nbands,nbsol_compaer)      !--unit
106  REAL:: cg_aeri_2bands(nbands,nbinsol_compaer)
107  REAL:: piz_aers_2bands(nbre_RH,nbands,nbsol_compaer)     !-- unit
108  REAL:: piz_aeri_2bands(nbands,nbinsol_compaer)           !-- unit
109
110
111  DATA presnivs_19/&
112       100426.5,  98327.6, 95346.5, 90966.8, 84776.9, &
113       76536.5,   66292.2, 54559.3, 42501.8, 31806, &
114       23787.5,   18252.7, 13996,   10320.8, 7191.1, &
115       4661.7,    2732.9,  1345.6,  388.2/ 
116
117
118!***********************BAND 1***********************************
119!ACCUMULATION MODE
120  DATA A1_ASSSM_b1_19/ 4.373E+00,  4.361E+00,  4.331E+00, &
121                    4.278E+00,  4.223E+00,  4.162E+00, &
122                    4.103E+00,  4.035E+00,  3.962E+00, &
123                    3.904E+00,  3.871E+00,  3.847E+00, &
124                    3.824E+00,  3.780E+00,  3.646E+00, &
125                    3.448E+00,  3.179E+00,  2.855E+00,  2.630E+00/
126  DATA A2_ASSSM_b1_19/ 2.496E+00,  2.489E+00,  2.472E+00, &
127                    2.442E+00,  2.411E+00,  2.376E+00, &
128                    2.342E+00,  2.303E+00,  2.261E+00, &
129                    2.228E+00,  2.210E+00,  2.196E+00, &
130                    2.183E+00,  2.158E+00,  2.081E+00, &
131                    1.968E+00,  1.814E+00,  1.630E+00,  1.501E+00/
132  DATA A3_ASSSM_b1_19/-4.688E-02, -4.676E-02, -4.644E-02, &
133                   -4.587E-02, -4.528E-02, -4.463E-02, &
134                   -4.399E-02, -4.326E-02, -4.248E-02, &
135                   -4.186E-02, -4.151E-02, -4.125E-02, &
136                   -4.100E-02, -4.053E-02, -3.910E-02, &
137                   -3.697E-02, -3.408E-02, -3.061E-02, -2.819E-02/
138  DATA B1_ASSSM_b1_19/ 1.165E-08,  1.145E-08,  1.097E-08, &
139                    1.012E-08,  9.233E-09,  8.261E-09, &
140                    7.297E-09,  6.201E-09,  5.026E-09, &
141                    4.098E-09,  3.567E-09,  3.187E-09, &
142                    2.807E-09,  2.291E-09,  2.075E-09, &
143                    1.756E-09,  1.322E-09,  8.011E-10, 4.379E-10/
144  DATA B2_ASSSM_b1_19/ 2.193E-08,  2.192E-08,  2.187E-08, &
145                    2.179E-08,  2.171E-08,  2.162E-08, &
146                    2.153E-08,  2.143E-08,  2.132E-08, &
147                    2.124E-08,  2.119E-08,  2.115E-08, &
148                    2.112E-08,  2.106E-08,  2.100E-08, &
149                    2.090E-08,  2.077E-08,  2.061E-08,  2.049E-08/
150  DATA C1_ASSSM_b1_19/ 7.365E-01,  7.365E-01,  7.365E-01, &
151                    7.364E-01,  7.363E-01,  7.362E-01, &
152                    7.361E-01,  7.359E-01,  7.358E-01, &
153                    7.357E-01,  7.356E-01,  7.356E-01, &
154                    7.356E-01,  7.355E-01,  7.354E-01, &
155                    7.352E-01,  7.350E-01,  7.347E-01,  7.345E-01/
156  DATA C2_ASSSM_b1_19/ 5.833E-02,  5.835E-02,  5.841E-02, &
157                    5.850E-02,  5.859E-02,  5.870E-02, &
158                    5.880E-02,  5.891E-02,  5.904E-02, &
159                    5.914E-02,  5.920E-02,  5.924E-02, &
160                    5.928E-02,  5.934E-02,  5.944E-02, &
161                    5.959E-02,  5.979E-02,  6.003E-02,  6.020E-02/
162!COARSE MODE
163  DATA A1_CSSSM_b1_19/ 7.403E-01,  7.422E-01,  7.626E-01, &
164                    8.019E-01,  8.270E-01,  8.527E-01, &
165                    8.702E-01,  8.806E-01,  8.937E-01, &
166                    9.489E-01,  1.030E+00,  1.105E+00, &
167                    1.199E+00,  1.357E+00,  1.660E+00, &
168                    2.540E+00,  4.421E+00,  2.151E+00,  9.518E-01/
169  DATA A2_CSSSM_b1_19/ 4.522E-01,  4.532E-01,  4.644E-01, &
170                    4.859E-01,  4.996E-01,  5.137E-01, &
171                    5.233E-01,  5.290E-01,  5.361E-01, &
172                    5.655E-01,  6.085E-01,  6.483E-01, &
173                    6.979E-01,  7.819E-01,  9.488E-01, &
174                    1.450E+00,  2.523E+00,  1.228E+00,  5.433E-01/
175  DATA A3_CSSSM_b1_19/-8.516E-03, -8.535E-03, -8.744E-03, &
176                   -9.148E-03, -9.406E-03, -9.668E-03, &
177                   -9.848E-03, -9.955E-03, -1.009E-02, &
178                   -1.064E-02, -1.145E-02, -1.219E-02, &
179                   -1.312E-02, -1.470E-02, -1.783E-02, &
180                   -2.724E-02, -4.740E-02, -2.306E-02, -1.021E-02/
181  DATA B1_CSSSM_b1_19/ 2.535E-07,  2.530E-07,  2.479E-07, &
182                    2.380E-07,  2.317E-07,  2.252E-07, &
183                    2.208E-07,  2.182E-07,  2.149E-07, &
184                    2.051E-07,  1.912E-07,  1.784E-07, &
185                    1.624E-07,  1.353E-07,  1.012E-07, &
186                    6.016E-08,  2.102E-08,  0.000E+00,  0.000E+00/
187  DATA B2_CSSSM_b1_19/ 1.221E-07,  1.217E-07,  1.179E-07, &
188                    1.104E-07,  1.056E-07,  1.008E-07, &
189                    9.744E-08,  9.546E-08,  9.299E-08, &
190                    8.807E-08,  8.150E-08,  7.544E-08, &
191                    6.786E-08,  5.504E-08,  4.080E-08, &
192                    2.960E-08,  2.300E-08,  2.030E-08,  1.997E-08/
193  DATA C1_CSSSM_b1_19/ 7.659E-01,  7.658E-01,  7.652E-01, &
194                    7.639E-01,  7.631E-01,  7.623E-01, &
195                    7.618E-01,  7.614E-01,  7.610E-01, &
196                    7.598E-01,  7.581E-01,  7.566E-01, &
197                    7.546E-01,  7.513E-01,  7.472E-01, &
198                    7.423E-01,  7.376E-01,  7.342E-01,  7.334E-01/
199  DATA C2_CSSSM_b1_19/ 3.691E-02,  3.694E-02,  3.729E-02, &
200                    3.796E-02,  3.839E-02,  3.883E-02, &
201                    3.913E-02,  3.931E-02,  3.953E-02, &
202                    4.035E-02,  4.153E-02,  4.263E-02, &
203                    4.400E-02,  4.631E-02,  4.933E-02, &
204                    5.331E-02,  5.734E-02,  6.053E-02,  6.128E-02/
205!SUPER COARSE MODE
206  DATA A1_SSSSM_b1_19/ 2.836E-01,  2.876E-01,  2.563E-01, &
207                    2.414E-01,  2.541E-01,  2.546E-01, &
208                    2.572E-01,  2.638E-01,  2.781E-01, &
209                    3.167E-01,  4.209E-01,  5.286E-01, &
210                    6.959E-01,  9.233E-01,  1.282E+00, &
211                    1.836E+00,  2.981E+00,  4.355E+00,  4.059E+00/
212  DATA A2_SSSSM_b1_19/ 1.608E-01,  1.651E-01,  1.577E-01, &
213                    1.587E-01,  1.686E-01,  1.690E-01, &
214                    1.711E-01,  1.762E-01,  1.874E-01, &
215                    2.138E-01,  2.751E-01,  3.363E-01, &
216                    4.279E-01,  5.519E-01,  7.421E-01, &
217                    1.048E+00,  1.702E+00,  2.485E+00,  2.317E+00/
218  DATA A3_SSSSM_b1_19/-3.025E-03, -3.111E-03, -2.981E-03, &
219                   -3.005E-03, -3.193E-03, -3.200E-03, &
220                   -3.239E-03, -3.336E-03, -3.548E-03, &
221                   -4.047E-03, -5.196E-03, -6.345E-03, &
222                   -8.061E-03, -1.038E-02, -1.395E-02, &
223                   -1.970E-02, -3.197E-02, -4.669E-02, -4.352E-02/
224  DATA B1_SSSSM_b1_19/ 6.759E-07,  6.246E-07,  5.542E-07, &
225                    4.953E-07,  4.746E-07,  4.738E-07, &
226                    4.695E-07,  4.588E-07,  4.354E-07, &
227                    3.947E-07,  3.461E-07,  3.067E-07, &
228                    2.646E-07,  2.095E-07,  1.481E-07, &
229                    9.024E-08,  5.747E-08,  2.384E-08,  6.599E-09/
230  DATA B2_SSSSM_b1_19/ 5.977E-07,  5.390E-07,  4.468E-07, &
231                    3.696E-07,  3.443E-07,  3.433E-07, &
232                    3.380E-07,  3.249E-07,  2.962E-07, &
233                    2.483E-07,  1.989E-07,  1.623E-07, &
234                    1.305E-07,  9.015E-08,  6.111E-08, &
235                    3.761E-08,  2.903E-08,  2.337E-08,  2.147E-08/
236  DATA C1_SSSSM_b1_19/ 8.120E-01,  8.084E-01,  8.016E-01, &
237                    7.953E-01,  7.929E-01,  7.928E-01, &
238                    7.923E-01,  7.910E-01,  7.882E-01, &
239                    7.834E-01,  7.774E-01,  7.725E-01, &
240                    7.673E-01,  7.604E-01,  7.529E-01, &
241                    7.458E-01,  7.419E-01,  7.379E-01,  7.360E-01/
242  DATA C2_SSSSM_b1_19/ 2.388E-02,  2.392E-02,  2.457E-02,  2.552E-02, &
243                    2.615E-02,  2.618E-02,  2.631E-02,  2.663E-02, &
244                    2.735E-02,  2.875E-02,  3.113E-02,  3.330E-02, &
245                    3.615E-02,  3.997E-02,  4.521E-02,  5.038E-02, &
246                    5.358E-02,  5.705E-02,  5.887E-02/
247!*********************BAND 2************************************************
248!ACCUMULATION MODE
249  DATA A1_ASSSM_b2_19/1.256E+00, 1.246E+00, 1.226E+00, 1.187E+00, 1.148E+00, &
250                   1.105E+00, 1.062E+00, 1.014E+00, 9.616E-01, 9.205E-01, &
251                   8.970E-01, 8.800E-01, 8.632E-01, 8.371E-01, 7.943E-01, &
252                   7.308E-01, 6.448E-01, 5.414E-01, 4.693E-01/
253  DATA A2_ASSSM_b2_19/5.321E-01, 5.284E-01, 5.196E-01, 5.036E-01, 4.872E-01, &
254                   4.691E-01, 4.512E-01, 4.308E-01, 4.089E-01, 3.917E-01, &
255                   3.818E-01, 3.747E-01, 3.676E-01, 3.567E-01, 3.385E-01, &
256                   3.116E-01, 2.751E-01, 2.312E-01, 2.006E-01/
257  DATA A3_ASSSM_b2_19/-1.053E-02, -1.046E-02, -1.028E-02, -9.964E-03, -9.637E-03, &
258                   -9.279E-03, -8.923E-03, -8.518E-03, -8.084E-03, -7.741E-03, &
259                   -7.545E-03, -7.405E-03, -7.265E-03, -7.048E-03, -6.687E-03, &
260                   -6.156E-03, -5.433E-03, -4.565E-03, -3.961E-03/
261  DATA B1_ASSSM_b2_19/1.560E-02, 1.560E-02, 1.561E-02, 1.565E-02, 1.568E-02, &
262                   1.572E-02, 1.576E-02, 1.580E-02, 1.584E-02, 1.588E-02, &
263                   1.590E-02, 1.592E-02, 1.593E-02, 1.595E-02, 1.599E-02, &
264                   1.605E-02, 1.612E-02, 1.621E-02, 1.627E-02/
265  DATA B2_ASSSM_b2_19/1.073E-02, 1.074E-02, 1.076E-02, 1.079E-02, 1.082E-02, &
266                   1.085E-02, 1.089E-02, 1.093E-02, 1.097E-02, 1.100E-02, &
267                   1.102E-02, 1.103E-02, 1.105E-02, 1.107E-02, 1.110E-02, &
268                   1.115E-02, 1.122E-02, 1.130E-02, 1.136E-02/
269  DATA C1_ASSSM_b2_19/7.429E-01, 7.429E-01, 7.429E-01, 7.427E-01, 7.427E-01, &
270                   7.424E-01, 7.423E-01, 7.422E-01, 7.421E-01, 7.420E-01, &
271                   7.419E-01, 7.419E-01, 7.418E-01, 7.417E-01, 7.416E-01, &
272                   7.415E-01, 7.413E-01, 7.409E-01, 7.408E-01/
273  DATA C2_ASSSM_b2_19/3.031E-02, 3.028E-02, 3.022E-02, 3.011E-02, 2.999E-02, &
274                   2.986E-02, 2.973E-02, 2.959E-02, 2.943E-02, 2.931E-02, &
275                   2.924E-02, 2.919E-02, 2.913E-02, 2.905E-02, 2.893E-02, &
276                   2.874E-02, 2.847E-02, 2.817E-02, 2.795E-02/
277!COARSE MODE
278  DATA A1_CSSSM_b2_19/7.061E-01, 7.074E-01, 7.211E-01, 7.476E-01, 7.647E-01, &
279                   7.817E-01, 7.937E-01, 8.007E-01, 8.095E-01, 8.436E-01, &
280                   8.932E-01, 9.390E-01, 9.963E-01, 1.093E+00, 1.256E+00, &
281                   1.668E+00, 1.581E+00, 3.457E-01, 1.331E-01/
282  DATA A2_CSSSM_b2_19/3.617E-01, 3.621E-01, 3.662E-01, 3.739E-01, 3.789E-01, &
283                   3.840E-01, 3.874E-01, 3.895E-01, 3.921E-01, 4.001E-01, &
284                   4.117E-01, 4.223E-01, 4.356E-01, 4.581E-01, 5.099E-01, &
285                   6.831E-01, 6.663E-01, 1.481E-01, 5.703E-02/
286  DATA A3_CSSSM_b2_19/-6.953E-03, -6.961E-03, -7.048E-03, -7.216E-03, -7.322E-03, &
287                   -7.431E-03, -7.506E-03, -7.551E-03, -7.606E-03, -7.791E-03, &
288                   -8.059E-03, -8.305E-03, -8.613E-03, -9.134E-03, -1.023E-02, &
289                   -1.365E-02, -1.320E-02, -2.922E-03, -1.125E-03/
290  DATA B1_CSSSM_b2_19/1.007E-02, 1.008E-02, 1.012E-02, 1.019E-02, 1.024E-02, &
291                   1.029E-02, 1.033E-02, 1.035E-02, 1.038E-02, 1.056E-02, &
292                   1.083E-02, 1.109E-02, 1.140E-02, 1.194E-02, 1.270E-02, &
293                   1.390E-02, 1.524E-02, 1.639E-02, 1.667E-02/
294  DATA B2_CSSSM_b2_19/4.675E-03, 4.682E-03, 4.760E-03, 4.908E-03, 5.004E-03, &
295                   5.102E-03, 5.168E-03, 5.207E-03, 5.256E-03, 5.474E-03, &
296                   5.793E-03, 6.089E-03, 6.457E-03, 7.081E-03, 7.923E-03, &
297                   9.127E-03, 1.041E-02, 1.147E-02, 1.173E-02/
298  DATA C1_CSSSM_b2_19/7.571E-01, 7.571E-01, 7.570E-01, 7.568E-01, 7.565E-01, &
299                   7.564E-01, 7.563E-01, 7.562E-01, 7.562E-01, 7.557E-01, &
300                   7.552E-01, 7.545E-01, 7.539E-01, 7.527E-01, 7.509E-01, &
301                   7.478E-01, 7.440E-01, 7.404E-01, 7.394E-01/
302  DATA C2_CSSSM_b2_19/4.464E-02, 4.465E-02, 4.468E-02, 4.474E-02, 4.477E-02, &
303                   4.480E-02, 4.482E-02, 4.484E-02, 4.486E-02, 4.448E-02, &
304                   4.389E-02, 4.334E-02, 4.264E-02, 4.148E-02, 3.957E-02, &
305                   3.588E-02, 3.149E-02, 2.751E-02, 2.650E-02/
306!SUPER COARSE MODE
307  DATA A1_SSSSM_b2_19/2.357E-01, 2.490E-01, 2.666E-01, 2.920E-01, 3.120E-01, &
308                   3.128E-01, 3.169E-01, 3.272E-01, 3.498E-01, 3.960E-01, &
309                   4.822E-01, 5.634E-01, 6.763E-01, 8.278E-01, 1.047E+00, &
310                   1.340E+00, 1.927E+00, 1.648E+00, 1.031E+00/
311  DATA A2_SSSSM_b2_19/1.219E-01, 1.337E-01, 1.633E-01, 1.929E-01, 2.057E-01, &
312                   2.062E-01, 2.089E-01, 2.155E-01, 2.300E-01, 2.560E-01, &
313                   2.908E-01, 3.199E-01, 3.530E-01, 3.965E-01, 4.475E-01, &
314                   5.443E-01, 7.943E-01, 6.928E-01, 4.381E-01/
315  DATA A3_SSSSM_b2_19/-2.387E-03, -2.599E-03, -3.092E-03, -3.599E-03, -3.832E-03, &
316                   -3.842E-03, -3.890E-03, -4.012E-03, -4.276E-03, -4.763E-03, &
317                   -5.455E-03, -6.051E-03, -6.763E-03, -7.708E-03, -8.887E-03, &
318                   -1.091E-02, -1.585E-02, -1.373E-02, -8.665E-03/
319  DATA B1_SSSSM_b2_19/1.260E-02, 1.211E-02, 1.126E-02, 1.056E-02, 1.038E-02, &
320                   1.037E-02, 1.033E-02, 1.023E-02, 1.002E-02, 9.717E-03, &
321                   9.613E-03, 9.652E-03, 9.983E-03, 1.047E-02, 1.168E-02, &
322                   1.301E-02, 1.399E-02, 1.514E-02, 1.578E-02/
323  DATA B2_SSSSM_b2_19/2.336E-03, 2.419E-03, 2.506E-03, 2.610E-03, 2.690E-03, &
324                   2.694E-03, 2.711E-03, 2.752E-03, 2.844E-03, 3.043E-03, &
325                   3.455E-03, 3.871E-03, 4.507E-03, 5.373E-03, 6.786E-03, &
326                   8.238E-03, 9.208E-03, 1.032E-02, 1.091E-02/
327  DATA C1_SSSSM_b2_19/7.832E-01, 7.787E-01, 7.721E-01, 7.670E-01, 7.657E-01, &
328                   7.657E-01, 7.654E-01, 7.648E-01, 7.634E-01, 7.613E-01, &
329                   7.596E-01, 7.585E-01, 7.574E-01, 7.560E-01, 7.533E-01, &
330                   7.502E-01, 7.476E-01, 7.443E-01, 7.423E-01/
331  DATA C2_SSSSM_b2_19/3.144E-02, 3.268E-02, 3.515E-02, 3.748E-02, 3.837E-02, &
332                   3.840E-02, 3.860E-02, 3.906E-02, 4.006E-02, 4.173E-02, &
333                   4.338E-02, 4.435E-02, 4.459E-02, 4.467E-02, 4.202E-02, &
334                   3.864E-02, 3.559E-02, 3.183E-02, 2.964E-02/
335!***************************************************************************
336
337  spsol = 0
338  spinsol = 0
339  spss = 0
340
341  DATA alpha_aers_2bands/  &
342       ! bc soluble
343       7.675,7.675,7.675,7.675,7.675,7.675,    &
344       7.675,7.675,10.433,11.984,13.767,15.567,&
345       4.720,4.720,4.720,4.720,4.720,4.720,    &
346       4.720,4.720,6.081,6.793,7.567,9.344,    &
347       ! pom soluble
348       5.503,5.503,5.503,5.503,5.588,5.957,    &
349       6.404,7.340,8.545,10.319,13.595,20.398, &
350       1.402,1.402,1.402,1.402,1.431,1.562,    &
351       1.715,2.032,2.425,2.991,4.193,7.133,    &
352       ! sulfate   
353       4.681,5.062,5.460,5.798,6.224,6.733,    &
354       7.556,8.613,10.687,12.265,16.32,21.692, &
355       1.107,1.239,1.381,1.490,1.635,1.8030,   &
356       2.071,2.407,3.126,3.940,5.539,7.921/
357
358
359  DATA alpha_aeri_2bands/  &
360       ! dust insoluble
361       0.7661,0.7123,&
362       ! bc insoluble
363       10.360,4.437, &
364       ! pom insoluble
365       3.741,0.606/
366
367
368  DATA cg_aers_2bands/ &
369       ! bc soluble
370       .612, .612, .612, .612, .612, .612, &
371       .612, .612, .702, .734, .760, .796, &
372       .433, .433, .433, .433, .433, .433, &
373       .433, .433, .534, .575, .613, .669, &
374       ! pom soluble
375       .663, .663, .663, .663, .666, .674, &
376       .685, .702, .718, .737, .757, .777, &
377       .544, .544, .544, .544, .547, .554, &
378       .565, .583, .604, .631, .661, .698, &
379       ! sulfate   
380       .658, .669, .680, .688, .698, .707, &
381       .719, .733, .752, .760, .773, .786, &
382       .544, .555, .565, .573, .583, .593, &
383       .610, .628, .655, .666, .692, .719/
384
385
386  DATA cg_aeri_2bands/ &
387       ! dust insoluble
388       .701, .670, &
389       ! bc insoluble
390       .471, .297, &
391       ! pom insoluble
392       .568, .365/
393
394  DATA piz_aers_2bands/&
395       ! bc soluble
396       .445, .445, .445, .445, .445, .445, &
397       .445, .445, .461, .480, .505, .528, &
398       .362, .362, .362, .362, .362, .362, &
399       .362, .362, .381, .405, .437, .483, &
400       ! pom soluble
401       .972, .972, .972, .972, .972, .974, &
402       .976, .979, .982, .986, .989, .992, &
403       .924, .924, .924, .924, .925, .927, &
404       .932, .938, .945, .952, .961, .970, &
405       ! sulfate
406       1.000,1.000,1.000,1.000,1.000,1.000, &
407       1.000,1.000,1.000,1.000,1.000,1.000, &
408       .992, .988, .988, .987, .986, .985,  &
409       .985, .985, .984, .984, .984, .984 /
410
411
412  DATA piz_aeri_2bands/ &
413       ! dust insoluble
414       .963, .987, &
415       ! bc insoluble
416       .395, .264, &
417       ! pom insoluble
418       .966, .859/
419
420
421! Interpolation des coefficients optiques de 19 niveaux vers le nombre des niveaux du model
422  IF (firstcall) THEN
423     firstcall=.FALSE.
424     
425! bande 1
426     CALL pres2lev(A1_ASSSM_b1_19, A1_ASSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
427     CALL pres2lev(A2_ASSSM_b1_19, A2_ASSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
428     CALL pres2lev(A3_ASSSM_b1_19, A3_ASSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
429     CALL pres2lev(B1_ASSSM_b1_19, B1_ASSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
430     CALL pres2lev(B2_ASSSM_b1_19, B2_ASSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
431     CALL pres2lev(C1_ASSSM_b1_19, C1_ASSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
432     CALL pres2lev(C2_ASSSM_b1_19, C2_ASSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
433
434     CALL pres2lev(A1_CSSSM_b1_19, A1_CSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
435     CALL pres2lev(A2_CSSSM_b1_19, A2_CSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
436     CALL pres2lev(A3_CSSSM_b1_19, A3_CSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
437     CALL pres2lev(B1_CSSSM_b1_19, B1_CSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
438     CALL pres2lev(B2_CSSSM_b1_19, B2_CSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
439     CALL pres2lev(C1_CSSSM_b1_19, C1_CSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
440     CALL pres2lev(C2_CSSSM_b1_19, C2_CSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
441
442     CALL pres2lev(A1_SSSSM_b1_19, A1_SSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
443     CALL pres2lev(A2_SSSSM_b1_19, A2_SSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
444     CALL pres2lev(A3_SSSSM_b1_19, A3_SSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
445     CALL pres2lev(B1_SSSSM_b1_19, B1_SSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
446     CALL pres2lev(B2_SSSSM_b1_19, B2_SSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
447     CALL pres2lev(C1_SSSSM_b1_19, C1_SSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
448     CALL pres2lev(C2_SSSSM_b1_19, C2_SSSSM_b1, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
449
450! bande 2
451     CALL pres2lev(A1_ASSSM_b2_19, A1_ASSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
452     CALL pres2lev(A2_ASSSM_b2_19, A2_ASSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
453     CALL pres2lev(A3_ASSSM_b2_19, A3_ASSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
454     CALL pres2lev(B1_ASSSM_b2_19, B1_ASSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
455     CALL pres2lev(B2_ASSSM_b2_19, B2_ASSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
456     CALL pres2lev(C1_ASSSM_b2_19, C1_ASSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
457     CALL pres2lev(C2_ASSSM_b2_19, C2_ASSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
458
459     CALL pres2lev(A1_CSSSM_b2_19, A1_CSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
460     CALL pres2lev(A2_CSSSM_b2_19, A2_CSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
461     CALL pres2lev(A3_CSSSM_b2_19, A3_CSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
462     CALL pres2lev(B1_CSSSM_b2_19, B1_CSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
463     CALL pres2lev(B2_CSSSM_b2_19, B2_CSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
464     CALL pres2lev(C1_CSSSM_b2_19, C1_CSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
465     CALL pres2lev(C2_CSSSM_b2_19, C2_CSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
466
467     CALL pres2lev(A1_SSSSM_b2_19, A1_SSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
468     CALL pres2lev(A2_SSSSM_b2_19, A2_SSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
469     CALL pres2lev(A3_SSSSM_b2_19, A3_SSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
470     CALL pres2lev(B1_SSSSM_b2_19, B1_SSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
471     CALL pres2lev(B2_SSSSM_b2_19, B2_SSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
472     CALL pres2lev(C1_SSSSM_b2_19, C1_SSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
473     CALL pres2lev(C2_SSSSM_b2_19, C2_SSSSM_b2, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.)
474
475  END IF ! firstcall
476
477
478  DO k=1, klev
479     DO i=1, klon
480        IF (t_seri(i,k).EQ.0.) THEN
481           WRITE(lunout,*) 't_seri(i,k)=0 for i=',i,'k=',k
482           CALL abort_gcm('aeropt_2bands','t_seri=0',1)
483        END IF
484        IF (pplay(i,k).EQ.0.) THEN
485           WRITE(lunout,*) 'pplay(i,k)=0 for i=',i,'k=',k
486           CALL abort_gcm('aeropt_2bands','pplay=0',1)
487        END IF
488
489        zrho=pplay(i,k)/t_seri(i,k)/RD                  ! kg/m3
490        mass_temp(i,k,:) = m_allaer(i,k,:) / zrho / 1.e+9
491
492     ENDDO
493  ENDDO
494
495  IF (flag_aerosol .EQ. 1) THEN
496     nb_aer = 1
497     ALLOCATE (aerosol_name(nb_aer))
498     aerosol_name(1) = id_ASSO4M
499
500  ELSEIF (flag_aerosol .EQ. 2) THEN
501     nb_aer = 2
502     ALLOCATE (aerosol_name(nb_aer))
503     aerosol_name(1) = id_ASBCM
504     aerosol_name(2) = id_AIBCM
505  ELSEIF (flag_aerosol .EQ. 3) THEN
506     nb_aer = 2
507     ALLOCATE (aerosol_name(nb_aer))
508     aerosol_name(1) = id_ASPOMM
509     aerosol_name(2) = id_AIPOMM
510  ELSEIF (flag_aerosol .EQ. 4) THEN
511     nb_aer = 3
512     ALLOCATE (aerosol_name(nb_aer))
513     aerosol_name(1) = id_CSSSM
514     aerosol_name(2) = id_SSSSM
515     aerosol_name(3) = id_ASSSM
516  ELSEIF (flag_aerosol .EQ. 5) THEN
517     nb_aer = 1
518     ALLOCATE (aerosol_name(nb_aer))
519     aerosol_name(1) = id_CIDUSTM
520  ELSEIF (flag_aerosol .EQ. 6) THEN
521     nb_aer = 10
522     ALLOCATE (aerosol_name(nb_aer))
523     aerosol_name(1) = id_ASSO4M     
524     aerosol_name(2) = id_ASBCM
525     aerosol_name(3) = id_AIBCM
526     aerosol_name(4) = id_ASPOMM
527     aerosol_name(5) = id_AIPOMM
528     aerosol_name(6) = id_CSSSM
529     aerosol_name(7) = id_SSSSM
530     aerosol_name(8) = id_ASSSM
531     aerosol_name(9) = id_CIDUSTM
532     aerosol_name(10)= id_CSSO4M
533  ENDIF
534
535
536  !
537  ! loop over modes, use of precalculated nmd and corresponding sigma
538  !    loop over wavelengths
539  !    for each mass species in mode
540  !      interpolate from Sext to retrieve Sext_at_gridpoint_per_species
541  !      compute optical_thickness_at_gridpoint_per_species
542
543  tau_ae(:,:,:,:)=0.
544  piz_ae(:,:,:,:)=0.
545  cg_ae(:,:,:,:)=0.
546  tau_allaer(:,:,:,:)=0.
547  piz_allaer(:,:,:,:)=0.
548  cg_allaer(:,:,:,:)=0.
549
550  !
551  ! Calculations that need to be done since we are not in the subroutines INCA
552  !     
553  ! air mass auxiliary  variable --> zdp1 [kg/(m^2 *s)]
554  zdp1(:,:)=pdel(:,:)/(gravit*delt)
555
556
557  DO m=1,nb_aer   ! tau is only computed for each mass
558
559     fac=1.0
560     IF (aerosol_name(m).EQ.id_ASBCM) THEN
561         soluble=.TRUE.
562         spsol=1
563         spss=0
564     ELSEIF (aerosol_name(m).EQ.id_ASPOMM) THEN
565         soluble=.TRUE.
566         spsol=2
567         spss=0
568     ELSEIF ((aerosol_name(m).EQ.id_ASSO4M) .OR.  (aerosol_name(m).EQ.id_CSSO4M)) THEN
569         soluble=.TRUE.
570         spsol=3
571         spss=0
572         fac=1.375    ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD
573     ELSEIF (aerosol_name(m).EQ.id_SSSSM) THEN
574         soluble=.TRUE.
575         spsol=5
576         spss=3
577     ELSEIF (aerosol_name(m).EQ.id_CSSSM) THEN
578         soluble=.TRUE.
579         spsol=6
580         spss=2
581     ELSEIF (aerosol_name(m).EQ.id_ASSSM) THEN
582         soluble=.TRUE.
583         spsol=7
584         spss=1
585     ELSEIF (aerosol_name(m).EQ.id_CIDUSTM) THEN
586         soluble=.FALSE.
587         spinsol=1
588         spss=0
589     ELSEIF  (aerosol_name(m).EQ.id_AIBCM) THEN
590         soluble=.FALSE.
591         spinsol=2
592         spss=0
593     ELSEIF (aerosol_name(m).EQ.id_AIPOMM) THEN
594         soluble=.FALSE.
595         spinsol=3
596         spss=0
597     ELSE
598         CYCLE
599     ENDIF
600
601
602     tau_ae2b_int(:,:,:)=0.
603     piz_ae2b_int(:,:,:)=0.
604     cg_ae2b_int(:,:,:)=0.
605
606     DO k=1, KLEV
607        DO i=1, KLON
608
609           rh=MIN(RHcl(i,k)*100.,RH_MAX)
610           RH_num = INT( rh/10. + 1.)
611
612           IF (rh.GT.85.) RH_num=10
613           IF (rh.GT.90.) RH_num=11
614           DELTA=(rh-RH_tab(RH_num))/(RH_tab(RH_num+1)-RH_tab(RH_num))
615
616           DO inu=1,nbands
617              IF (soluble) THEN
618
619                  IF (spss.NE.0) THEN
620                      H=rh/100
621                      IF (spss.EQ.1) THEN !accumulation mode
622                          ! band 1
623                          tau_ae2b_int(i,k,1)=A1_ASSSM_b1(k)+A2_ASSSM_b1(k)*H+A3_ASSSM_b1(k)/(H-1.05)
624                          piz_ae2b_int(i,k,1)=1-B1_ASSSM_b1(k)-B2_ASSSM_b1(k)*H
625                          cg_ae2b_int(i,k,1)=C1_ASSSM_b1(k)+C2_ASSSM_b1(k)*H
626                          !band 2
627                          tau_ae2b_int(i,k,2)=A1_ASSSM_b2(k)+A2_ASSSM_b2(k)*H+A3_ASSSM_b2(k)/(H-1.05)
628                          piz_ae2b_int(i,k,2)=1-B1_ASSSM_b2(k)-B2_ASSSM_b2(k)*H
629                          cg_ae2b_int(i,k,2)=C1_ASSSM_b2(k)+C2_ASSSM_b2(k)*H
630                      ENDIF
631                      IF (spss.EQ.2) THEN !coarse mode
632                          ! band 1
633                          tau_ae2b_int(i,k,1)=A1_CSSSM_b1(k)+A2_CSSSM_b1(k)*H+A3_CSSSM_b1(k)/(H-1.05)
634                          piz_ae2b_int(i,k,1)=1-B1_CSSSM_b1(k)-B2_CSSSM_b1(k)*H
635                          cg_ae2b_int(i,k,1)=C1_CSSSM_b1(k)+C2_CSSSM_b1(k)*H
636                          ! band 2
637                          tau_ae2b_int(i,k,2)=A1_CSSSM_b2(k)+A2_CSSSM_b2(k)*H+A3_CSSSM_b2(k)/(H-1.05)
638                          piz_ae2b_int(i,k,2)=1-B1_CSSSM_b2(k)-B2_CSSSM_b2(k)*H
639                          cg_ae2b_int(i,k,2)=C1_CSSSM_b2(k)+C2_CSSSM_b2(k)*H
640                      ENDIF
641                      IF (spss.EQ.3) THEN !super coarse mode
642                          ! band 1
643                          tau_ae2b_int(i,k,1)=A1_SSSSM_b1(k)+A2_SSSSM_b1(k)*H+A3_SSSSM_b1(k)/(H-1.05)
644                          piz_ae2b_int(i,k,1)=1-B1_SSSSM_b1(k)-B2_SSSSM_b1(k)*H
645                          cg_ae2b_int(i,k,1)=C1_SSSSM_b1(k)+C2_SSSSM_b1(k)*H
646                          ! band 2
647                          tau_ae2b_int(i,k,2)=A1_SSSSM_b2(k)+A2_SSSSM_b2(k)*H+A3_SSSSM_b2(k)/(H-1.05)
648                          piz_ae2b_int(i,k,2)=1-B1_SSSSM_b2(k)-B2_SSSSM_b2(k)*H
649                          cg_ae2b_int(i,k,2)=C1_SSSSM_b2(k)+C2_SSSSM_b2(k)*H
650                      ENDIF
651                  ELSE
652                      tau_ae2b_int(i,k,inu)= &
653                         alpha_aers_2bands(RH_num,inu,spsol)+ &
654                         DELTA* (alpha_aers_2bands(RH_num+1,inu,spsol) - &
655                         alpha_aers_2bands(RH_num,inu,spsol))
656                     
657                      piz_ae2b_int(i,k,inu)= &
658                         piz_aers_2bands(RH_num,inu,spsol) + &
659                         DELTA* (piz_aers_2bands(RH_num+1,inu,spsol) - &
660                         piz_aers_2bands(RH_num,inu,spsol))
661                     
662                      cg_ae2b_int(i,k,inu)= &
663                         cg_aers_2bands(RH_num,inu,spsol) + &
664                         DELTA* (cg_aers_2bands(RH_num+1,inu,spsol) - &
665                         cg_aers_2bands(RH_num,inu,spsol))
666                     
667                  ENDIF
668
669                  tau_ae(i,k,aerosol_name(m),inu) = &
670                     mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt*tau_ae2b_int(i,k,inu)*fac
671
672              ELSE
673                 tau_ae2b_int(i,k,inu) = alpha_aeri_2bands(inu,spinsol)
674                 piz_ae2b_int(i,k,inu) = piz_aeri_2bands(inu,spinsol)
675                 cg_ae2b_int(i,k,inu) = cg_aeri_2bands(inu,spinsol)
676
677                 tau_ae(i,k,aerosol_name(m),inu) = &
678                    mass_temp(i,k,7+ spinsol)*1000.*zdp1(i,k)*delt*tau_ae2b_int(i,k,inu)*fac
679              ENDIF
680
681              piz_ae(i,k,aerosol_name(m),inu) = piz_ae2b_int(i,k,inu)
682
683              cg_ae(i,k,aerosol_name(m),inu)= cg_ae2b_int(i,k,inu)
684
685
686           ENDDO    ! nbands : boucle sur les bandes spectrale
687        ENDDO     ! klon : Boucle sur les points geographiques (grille horizontale)
688     ENDDO     ! klev : Boucle sur les niveaux verticaux
689  ENDDO     ! nb_aer : Boucle  sur les masses de traceurs
690
691
692  DO inu=1, nbands
693     DO mrfspecies=1,naero_grp
694        DO k=1, KLEV
695           DO i=1, KLON
696              IF (mrfspecies .EQ. 2) THEN             ! = total aerosol AER     
697                 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASSO4M,inu)+tau_ae(i,k,id_CSSO4M,inu)+ &
698                      tau_ae(i,k,id_ASBCM,inu)+tau_ae(i,k,id_AIBCM,inu)+ &                                                   
699                      tau_ae(i,k,id_ASPOMM,inu)+tau_ae(i,k,id_AIPOMM,inu)+ &   
700                      tau_ae(i,k,id_ASSSM,inu)+tau_ae(i,k,id_CSSSM,inu)+tau_ae(i,k,id_SSSSM,inu)+ &
701                      tau_ae(i,k,id_CIDUSTM,inu)
702                 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20)
703                 
704                 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASSO4M,inu)*piz_ae(i,k,id_ASSO4M,inu)+ &
705                      tau_ae(i,k,id_CSSO4M,inu)*piz_ae(i,k,id_CSSO4M,inu)+ &
706                      tau_ae(i,k,id_ASBCM,inu)*piz_ae(i,k,id_ASBCM,inu)+ &
707                      tau_ae(i,k,id_AIBCM,inu)*piz_ae(i,k,id_AIBCM,inu)+ &
708                      tau_ae(i,k,id_ASPOMM,inu)*piz_ae(i,k,id_ASPOMM,inu)+ &
709                      tau_ae(i,k,id_AIPOMM,inu)*piz_ae(i,k,id_AIPOMM,inu)+ &   
710                      tau_ae(i,k,id_ASSSM,inu)*piz_ae(i,k,id_ASSSM,inu)+ &
711                      tau_ae(i,k,id_CSSSM,inu)*piz_ae(i,k,id_CSSSM,inu)+ &
712                      tau_ae(i,k,id_SSSSM,inu)*piz_ae(i,k,id_SSSSM,inu)+ &
713                      tau_ae(i,k,id_CIDUSTM,inu)*piz_ae(i,k,id_CIDUSTM,inu))/tau_allaer(i,k,mrfspecies,inu)
714                 piz_allaer(i,k,mrfspecies,inu)=MAX(piz_allaer(i,k,mrfspecies,inu),1e-20)
715
716                 cg_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASSO4M,inu)*piz_ae(i,k,id_ASSO4M,inu)*cg_ae(i,k,id_ASSO4M,inu)+ &
717                      tau_ae(i,k,id_CSSO4M,inu)*piz_ae(i,k,id_CSSO4M,inu)*cg_ae(i,k,id_CSSO4M,inu)+ &
718                      tau_ae(i,k,id_ASBCM,inu)*piz_ae(i,k,id_ASBCM,inu)*cg_ae(i,k,id_ASBCM,inu)+ &
719                      tau_ae(i,k,id_AIBCM,inu)*piz_ae(i,k,id_AIBCM,inu)*cg_ae(i,k,id_AIBCM,inu)+ &
720                      tau_ae(i,k,id_ASPOMM,inu)*piz_ae(i,k,id_ASPOMM,inu)*cg_ae(i,k,id_ASPOMM,inu)+ &
721                      tau_ae(i,k,id_AIPOMM,inu)*piz_ae(i,k,id_AIPOMM,inu)*cg_ae(i,k,id_AIPOMM,inu)+ &   
722                      tau_ae(i,k,id_ASSSM,inu)*piz_ae(i,k,id_ASSSM,inu)*cg_ae(i,k,id_ASSSM,inu)+ &
723                      tau_ae(i,k,id_CSSSM,inu)*piz_ae(i,k,id_CSSSM,inu)*cg_ae(i,k,id_CSSSM,inu)+ &
724                      tau_ae(i,k,id_SSSSM,inu)*piz_ae(i,k,id_SSSSM,inu)*cg_ae(i,k,id_SSSSM,inu)+ &
725                      tau_ae(i,k,id_CIDUSTM,inu)*piz_ae(i,k,id_CIDUSTM,inu)*cg_ae(i,k,id_CIDUSTM,inu))/ &
726                      (tau_allaer(i,k,mrfspecies,inu)*piz_allaer(i,k,mrfspecies,inu))
727
728
729              ELSEIF (mrfspecies .EQ. 3) THEN             ! = natural aerosol NAT
730                 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASSO4M,inu)*fractnat_allaer(i,id_ASSO4M)+ &
731                      tau_ae(i,k,id_CSSO4M,inu)*fractnat_allaer(i,id_CSSO4M)+ &
732                      tau_ae(i,k,id_ASBCM,inu)*fractnat_allaer(i,id_ASBCM)+ &
733                      tau_ae(i,k,id_AIBCM,inu)*fractnat_allaer(i,id_AIBCM)+ &
734                      tau_ae(i,k,id_ASPOMM,inu)*fractnat_allaer(i,id_ASPOMM)+ &
735                      tau_ae(i,k,id_AIPOMM,inu)*fractnat_allaer(i,id_AIPOMM)+ &
736                      tau_ae(i,k,id_ASSSM,inu)*fractnat_allaer(i,id_ASSSM)+ &
737                      tau_ae(i,k,id_CSSSM,inu)*fractnat_allaer(i,id_CSSSM)+ &
738                      tau_ae(i,k,id_SSSSM,inu)*fractnat_allaer(i,id_SSSSM)+ &
739                      tau_ae(i,k,id_CIDUSTM,inu)*fractnat_allaer(i,id_CIDUSTM)
740                 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20)
741
742                 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASSO4M,inu)*fractnat_allaer(i,id_ASSO4M)*piz_ae(i,k,id_ASSO4M,inu)+ &
743                      tau_ae(i,k,id_CSSO4M,inu)*fractnat_allaer(i,id_CSSO4M)*piz_ae(i,k,id_CSSO4M,inu)+ &
744                      tau_ae(i,k,id_ASBCM,inu)*fractnat_allaer(i,id_ASBCM)*piz_ae(i,k,id_ASBCM,inu)+ &
745                      tau_ae(i,k,id_AIBCM,inu)*fractnat_allaer(i,id_AIBCM)*piz_ae(i,k,id_AIBCM,inu)+ &
746                      tau_ae(i,k,id_ASPOMM,inu)*fractnat_allaer(i,id_ASPOMM)*piz_ae(i,k,id_ASPOMM,inu)+ &
747                      tau_ae(i,k,id_AIPOMM,inu)*fractnat_allaer(i,id_AIPOMM)*piz_ae(i,k,id_AIPOMM,inu)+ &       
748                      tau_ae(i,k,id_ASSSM,inu)*fractnat_allaer(i,id_ASSSM)*piz_ae(i,k,id_ASSSM,inu)+ &
749                      tau_ae(i,k,id_CSSSM,inu)*fractnat_allaer(i,id_CSSSM)*piz_ae(i,k,id_CSSSM,inu)+ &
750                      tau_ae(i,k,id_SSSSM,inu)*fractnat_allaer(i,id_SSSSM)*piz_ae(i,k,id_SSSSM,inu)+ &
751                      tau_ae(i,k,id_CIDUSTM,inu)*fractnat_allaer(i,id_CIDUSTM)*piz_ae(i,k,id_CIDUSTM,inu)) &
752                      /tau_allaer(i,k,mrfspecies,inu)
753                 piz_allaer(i,k,mrfspecies,inu)=MAX(piz_allaer(i,k,mrfspecies,inu),1e-20)
754
755                 cg_allaer(i,k,mrfspecies,inu)=(&
756                      tau_ae(i,k,id_ASSO4M,inu)*fractnat_allaer(i,id_ASSO4M)*piz_ae(i,k,id_ASSO4M,inu)*cg_ae(i,k,id_ASSO4M,inu)+ &
757                      tau_ae(i,k,id_CSSO4M,inu)*fractnat_allaer(i,id_CSSO4M)*piz_ae(i,k,id_CSSO4M,inu)*cg_ae(i,k,id_CSSO4M,inu)+ &
758                      tau_ae(i,k,id_ASBCM,inu)*fractnat_allaer(i,id_ASBCM)*piz_ae(i,k,id_ASBCM,inu)*cg_ae(i,k,id_ASBCM,inu)+ &
759                      tau_ae(i,k,id_AIBCM,inu)*fractnat_allaer(i,id_AIBCM)*piz_ae(i,k,id_AIBCM,inu)*cg_ae(i,k,id_AIBCM,inu)+ &
760                      tau_ae(i,k,id_ASPOMM,inu)*fractnat_allaer(i,id_ASPOMM)*piz_ae(i,k,id_ASPOMM,inu)*cg_ae(i,k,id_ASPOMM,inu)+ &
761                      tau_ae(i,k,id_AIPOMM,inu)*fractnat_allaer(i,id_AIPOMM)*piz_ae(i,k,id_AIPOMM,inu)*cg_ae(i,k,id_AIPOMM,inu)+ &
762                      tau_ae(i,k,id_ASSSM,inu)*fractnat_allaer(i,id_ASSSM)*piz_ae(i,k,id_ASSSM,inu)*cg_ae(i,k,id_ASSSM,inu)+ &
763                      tau_ae(i,k,id_CSSSM,inu)*fractnat_allaer(i,id_CSSSM)*piz_ae(i,k,id_CSSSM,inu)*cg_ae(i,k,id_CSSSM,inu)+ &
764                      tau_ae(i,k,id_SSSSM,inu)*fractnat_allaer(i,id_SSSSM)*piz_ae(i,k,id_SSSSM,inu)*cg_ae(i,k,id_SSSSM,inu)+ &
765                      tau_ae(i,k,id_CIDUSTM,inu)*fractnat_allaer(i,id_CIDUSTM)*piz_ae(i,k,id_CIDUSTM,inu)*&
766                      cg_ae(i,k,id_CIDUSTM,inu))/ &
767                      (tau_allaer(i,k,mrfspecies,inu)*piz_allaer(i,k,mrfspecies,inu))
768
769
770              ELSEIF (mrfspecies .EQ. 4) THEN             ! = BC
771                 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASBCM,inu)+tau_ae(i,k,id_AIBCM,inu)
772                 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20)
773                 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASBCM,inu)*piz_ae(i,k,id_ASBCM,inu) &
774                      +tau_ae(i,k,id_AIBCM,inu)*piz_ae(i,k,id_AIBCM,inu))/ &
775                      tau_allaer(i,k,mrfspecies,inu)
776                 piz_allaer(i,k,mrfspecies,inu)=MAX(piz_allaer(i,k,mrfspecies,inu),1e-20)
777                 cg_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASBCM,inu)*piz_ae(i,k,id_ASBCM,inu) *cg_ae(i,k,id_ASBCM,inu)&
778                      +tau_ae(i,k,id_AIBCM,inu)*piz_ae(i,k,id_AIBCM,inu)*cg_ae(i,k,id_AIBCM,inu))/ &
779                      (tau_allaer(i,k,mrfspecies,inu)*piz_allaer(i,k,mrfspecies,inu))
780              ELSEIF (mrfspecies .EQ. 5) THEN             ! = SO4
781                 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASSO4M,inu)+tau_ae(i,k,id_CSSO4M,inu)
782                 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20)
783                 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_CSSO4M,inu)*piz_ae(i,k,id_CSSO4M,inu) &
784                      +tau_ae(i,k,id_ASSO4M,inu)*piz_ae(i,k,id_ASSO4M,inu))/ &
785                      tau_allaer(i,k,mrfspecies,inu)
786                 piz_allaer(i,k,mrfspecies,inu)=MAX(piz_allaer(i,k,mrfspecies,inu),1e-20)
787                 cg_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_CSSO4M,inu)*piz_ae(i,k,id_CSSO4M,inu) *cg_ae(i,k,id_CSSO4M,inu)&
788                      +tau_ae(i,k,id_ASSO4M,inu)*piz_ae(i,k,id_ASSO4M,inu)*cg_ae(i,k,id_ASSO4M,inu))/ &
789                      (tau_allaer(i,k,mrfspecies,inu)*piz_allaer(i,k,mrfspecies,inu))
790
791              ELSEIF (mrfspecies .EQ. 6) THEN             ! = POM
792                 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASPOMM,inu)+tau_ae(i,k,id_AIPOMM,inu)
793                 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20)
794                 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASPOMM,inu)*piz_ae(i,k,id_ASPOMM,inu) &
795                      +tau_ae(i,k,id_AIPOMM,inu)*piz_ae(i,k,id_AIPOMM,inu))/ &
796                      tau_allaer(i,k,mrfspecies,inu)
797                 piz_allaer(i,k,mrfspecies,inu)=MAX(piz_allaer(i,k,mrfspecies,inu),1e-20)
798                 cg_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASPOMM,inu)*piz_ae(i,k,id_ASPOMM,inu) *cg_ae(i,k,id_ASPOMM,inu)&
799                      +tau_ae(i,k,id_AIPOMM,inu)*piz_ae(i,k,id_AIPOMM,inu)*cg_ae(i,k,id_AIPOMM,inu))/ &
800                      (tau_allaer(i,k,mrfspecies,inu)*piz_allaer(i,k,mrfspecies,inu))
801              ELSEIF (mrfspecies .EQ. 7) THEN             ! = DUST
802                 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_CIDUSTM,inu)
803                 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20)
804                 piz_allaer(i,k,mrfspecies,inu)=piz_ae(i,k,id_CIDUSTM,inu)
805                 cg_allaer(i,k,mrfspecies,inu)=cg_ae(i,k,id_CIDUSTM,inu)
806
807              ELSEIF (mrfspecies .EQ. 8) THEN             ! = SS
808                 tau_allaer(i,k,mrfspecies,inu)=tau_ae(i,k,id_ASSSM,inu)+tau_ae(i,k,id_CSSSM,inu)+tau_ae(i,k,id_SSSSM,inu)
809                 tau_allaer(i,k,mrfspecies,inu)=MAX(tau_allaer(i,k,mrfspecies,inu),1e-20)
810                 piz_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASSSM,inu)*piz_ae(i,k,id_ASSSM,inu) &
811                      +tau_ae(i,k,id_CSSSM,inu)*piz_ae(i,k,id_CSSSM,inu) &
812                      +tau_ae(i,k,id_SSSSM,inu)*piz_ae(i,k,id_SSSSM,inu))/ &
813                      tau_allaer(i,k,mrfspecies,inu)
814                 piz_allaer(i,k,mrfspecies,inu)=MAX(piz_allaer(i,k,mrfspecies,inu),1e-20)
815                 cg_allaer(i,k,mrfspecies,inu)=(tau_ae(i,k,id_ASSSM,inu)*piz_ae(i,k,id_ASSSM,inu) *cg_ae(i,k,id_ASSSM,inu)&
816                      +tau_ae(i,k,id_CSSSM,inu)*piz_ae(i,k,id_CSSSM,inu)*cg_ae(i,k,id_CSSSM,inu) &
817                      +tau_ae(i,k,id_SSSSM,inu)*piz_ae(i,k,id_SSSSM,inu)*cg_ae(i,k,id_SSSSM,inu))/ &
818                      (tau_allaer(i,k,mrfspecies,inu)*piz_allaer(i,k,mrfspecies,inu))
819
820              ELSEIF (mrfspecies .EQ. 9) THEN             ! = NO3
821                 tau_allaer(i,k,mrfspecies,inu)=0.   ! preliminary
822                 piz_allaer(i,k,mrfspecies,inu)=0.
823                 cg_allaer(i,k,mrfspecies,inu)=0.
824              ENDIF
825           ENDDO
826        ENDDO
827     ENDDO
828  ENDDO
829
830  DEALLOCATE(aerosol_name)
831
832END SUBROUTINE AEROPT_2BANDS
Note: See TracBrowser for help on using the repository browser.