GCC Code Coverage Report


Directory: ./
File: rad/aeropt_5wv_rrtm.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 0 125 0.0%
Branches: 0 166 0.0%

Line Branch Exec Source
1 !
2 ! $Id: aeropt_5wv_rrtm.F90 3288 2018-03-19 20:58:31Z oboucher $
3 !
4
5 SUBROUTINE AEROPT_5WV_RRTM( &
6 pdel, m_allaer, &
7 RHcl, ai, flag_aerosol, &
8 flag_bc_internal_mixture, &
9 pplay, t_seri, &
10 tausum, drytausum, tau )
11
12 USE DIMPHY
13 USE aero_mod
14 USE phys_local_var_mod, ONLY: od443aer,od550aer,dryod550aer,od865aer,ec550aer,od550lt1aer,abs550aer
15 USE phys_output_var_mod, ONLY: dryaod_diag
16 USE YOMCST, ONLY: RD,RG
17
18 !
19 ! Yves Balkanski le 12 avril 2006
20 ! Celine Deandreis
21 ! Anne Cozic Avril 2009
22 ! a partir d'une sous-routine de Johannes Quaas pour les sulfates
23 ! Olivier Boucher mars 2014 pour adaptation RRTM
24 !
25 !
26 ! Refractive indices for seasalt come from Shettle and Fenn (1979)
27 !
28 ! Refractive indices from water come from Hale and Querry (1973)
29 !
30 ! Refractive indices from Ammonium Sulfate Toon and Pollack (1976)
31 !
32 ! Refractive indices for Dust, internal mixture of minerals coated with 1.5% hematite
33 ! by Volume (Balkanski et al., 2006)
34 !
35 ! Refractive indices for POM: Kinne (pers. Communication
36 !
37 ! Refractive index for BC from Shettle and Fenn (1979)
38 !
39 ! Shettle, E. P., & Fenn, R. W. (1979), Models for the aerosols of the lower atmosphere and
40 ! the effects of humidity variations on their optical properties, U.S. Air Force Geophysics
41 ! Laboratory Rept. AFGL-TR-79-0214, Hanscomb Air Force Base, MA.
42 !
43 ! Hale, G. M. and M. R. Querry, Optical constants of water in the 200-nm to 200-m
44 ! wavelength region, Appl. Opt., 12, 555-563, 1973.
45 !
46 ! Toon, O. B. and J. B. Pollack, The optical constants of several atmospheric aerosol species:
47 ! Ammonium sulfate, aluminum oxide, and sodium chloride, J. Geohys. Res., 81, 5733-5748,
48 ! 1976.
49 !
50 ! Balkanski, Y., M. Schulz, T. Claquin And O. Boucher, Reevaluation of mineral aerosol
51 ! radiative forcings suggests a better agreement with satellite and AERONET data, Atmospheric
52 ! Chemistry and Physics Discussions., 6, pp 8383-8419, 2006.
53 !
54 IMPLICIT NONE
55 !
56 ! Input arguments:
57 !
58 REAL, DIMENSION(klon,klev), INTENT(IN) :: pdel
59 REAL, DIMENSION(klon,klev,naero_tot), INTENT(IN) :: m_allaer
60 REAL, DIMENSION(klon,klev), INTENT(IN) :: RHcl ! humidite relative ciel clair
61 INTEGER,INTENT(IN) :: flag_aerosol
62 LOGICAL,INTENT(IN) :: flag_bc_internal_mixture
63 REAL, DIMENSION(klon,klev), INTENT(IN) :: pplay
64 REAL, DIMENSION(klon,klev), INTENT(IN) :: t_seri
65 !
66 ! Output arguments:
67 !
68 REAL, DIMENSION(klon), INTENT(OUT) :: ai ! POLDER aerosol index
69 REAL, DIMENSION(klon,nwave,naero_tot), INTENT(OUT) :: tausum
70 REAL, DIMENSION(klon,naero_tot), INTENT(OUT) :: drytausum
71 REAL, DIMENSION(klon,klev,nwave,naero_tot), INTENT(OUT) :: tau
72 !
73 ! Local
74 !
75 INTEGER, PARAMETER :: las = nwave_sw
76 LOGICAL :: soluble
77
78 INTEGER :: i, k, m, aerindex
79 INTEGER :: spsol, spinsol, la
80 INTEGER :: RH_num(klon,klev)
81 INTEGER, PARAMETER :: la443 = 1
82 INTEGER, PARAMETER :: la550 = 2
83 INTEGER, PARAMETER :: la670 = 3
84 INTEGER, PARAMETER :: la765 = 4
85 INTEGER, PARAMETER :: la865 = 5
86 INTEGER, PARAMETER :: nbre_RH=12
87 INTEGER, PARAMETER :: naero_soluble=9 ! 1- BC soluble; 2- POM soluble; 3- SO4 coarse
88 ! 4- SO4 acc; 5 seasalt super-C; 6 seasalt coarse; 7 seasalt acc.
89 ! 8- NO3 coarse; 9- NO3 accumulation
90 INTEGER, PARAMETER :: naero_insoluble=4 ! 1- Dust; 2- BC insoluble; 3- POM insoluble; 4- NO3 insoluble
91
92 REAL :: zrho
93
94 REAL, PARAMETER :: RH_tab(nbre_RH)=(/0.,10.,20.,30.,40.,50.,60.,70.,80.,85.,90.,95./)
95 REAL, PARAMETER :: RH_MAX=95.
96 REAL :: delta(klon,klev), rh(klon,klev)
97 REAL :: tau_ae5wv_int ! Intermediate computation of epaisseur optique aerosol
98 REAL :: abs_ae5wv_int ! Intermediate computation of epaisseur optique aerosol
99 REAL :: od670aer(klon) ! epaisseur optique aerosol extinction 670 nm
100 REAL :: fac
101 INTEGER, ALLOCATABLE, DIMENSION(:) :: aerosol_name
102 INTEGER :: nb_aer, itau
103 LOGICAL :: ok_itau
104
105 REAL :: zdh(klon,klev)
106
107 REAL :: alpha_aers_5wv(nbre_RH,las,naero_soluble) ! Ext. coeff. ** m2/g
108 REAL :: abs_aers_5wv(nbre_RH,las,naero_soluble) ! Abs. coeff. ** m2/g
109 REAL :: alpha_aeri_5wv(las,naero_insoluble) ! Ext. coeff. ** m2/g
110 REAL :: abs_aeri_5wv(las,naero_insoluble) ! Abs. coeff. ** m2/g
111
112 !
113 ! BC internal mixture
114 !
115 INTEGER, PARAMETER :: nbclassbc = 6 ! Added by Rong Wang/OB for the 5 fractions
116 ! of BC in the soluble mode:
117 ! bc_content/0.001, 0.01, 0.02, 0.05, 0.1/
118 ! for Maxwell-Garnet internal mixture
119 ! Detailed theory can be found in R. Wang Estimation of global black carbon ! direct
120 ! radiative forcing and its uncertainty constrained by observations. J.
121 ! Geophys. Res. Atmos. Added by R. Wang and OB
122 REAL :: alpha_MG_5wv(nbre_RH,las,nbclassbc)
123 REAL :: abs_MG_5wv(nbre_RH,las,nbclassbc)
124
125 !
126 ! Proprietes optiques
127 !
128 REAL :: fact_RH(nbre_RH), BC_massfra
129 INTEGER :: n, classbc
130
131 ! From here on we look at the optical parameters at 5 wavelengths: 443, 550, 670, 765 and 865 nm
132
133 DATA alpha_aers_5wv/ &
134 ! BC Accumulation Soluble (AS)
135 5.342, 5.342, 5.342, 5.342, 5.342, 5.829, 6.344, 7.470, 8.603, 8.736, 8.870,10.149, &
136 5.159, 5.159, 5.159, 5.159, 5.159, 5.608, 6.083, 7.121, 8.169, 8.293, 8.418, 9.612, &
137 4.849, 4.849, 4.849, 4.849, 4.849, 5.251, 5.674, 6.598, 7.533, 7.644, 7.756, 8.829, &
138 4.573, 4.573, 4.573, 4.573, 4.573, 4.936, 5.318, 6.152, 6.996, 7.096, 7.198, 8.171, &
139 4.274, 4.274, 4.274, 4.274, 4.274, 4.600, 4.942, 5.686, 6.441, 6.530, 6.621, 7.495, &
140 ! POM Accumulation Soluble (AS)
141 5.300, 5.300, 5.300, 5.300, 5.300, 5.827, 6.392, 7.640, 8.898, 9.046, 9.195,10.606, &
142 4.569, 4.569, 4.569, 4.569, 4.569, 5.029, 5.528, 6.649, 7.802, 7.939, 8.077, 9.400, &
143 3.768, 3.768, 3.768, 3.768, 3.768, 4.152, 4.573, 5.533, 6.538, 6.658, 6.780, 7.955, &
144 3.210, 3.210, 3.210, 3.210, 3.210, 3.542, 3.909, 4.752, 5.644, 5.751, 5.860, 6.916, &
145 2.709, 2.709, 2.709, 2.709, 2.709, 2.994, 3.309, 4.041, 4.823, 4.917, 5.013, 5.949, &
146 ! Sulfate Coarse Soluble (CS)
147 0.702, 0.702, 0.702, 0.702, 0.947, 1.025, 1.127, 1.266, 1.490, 1.675, 2.003, 2.857, &
148 0.725, 0.725, 0.725, 0.725, 0.977, 1.057, 1.163, 1.304, 1.529, 1.718, 2.051, 2.914, &
149 0.751, 0.751, 0.751, 0.751, 1.011, 1.093, 1.200, 1.345, 1.576, 1.768, 2.110, 2.973, &
150 0.769, 0.769, 0.769, 0.769, 1.034, 1.120, 1.227, 1.375, 1.613, 1.811, 2.153, 3.032, &
151 0.786, 0.786, 0.786, 0.786, 1.056, 1.144, 1.254, 1.406, 1.646, 1.850, 2.202, 3.088, &
152 !-- Sulfate Accumulation (BC content=0)
153 4.639, 4.639, 4.639, 4.639, 6.244, 6.878, 7.684, 8.805,10.638,12.174,14.880,21.828, &
154 3.966, 3.966, 3.966, 3.966, 5.359, 5.950, 6.707, 7.771, 9.540,11.046,13.742,20.884, &
155 3.234, 3.234, 3.234, 3.234, 4.393, 4.914, 5.587, 6.543, 8.160, 9.556,12.101,19.072, &
156 2.721, 2.721, 2.721, 2.721, 3.712, 4.175, 4.774, 5.634, 7.101, 8.383,10.747,17.381, &
157 2.262, 2.262, 2.262, 2.262, 3.102, 3.505, 4.030, 4.789, 6.097, 7.251, 9.403,15.581, &
158 ! Seasalt Super Coarse Soluble (SS)
159 0.194, 0.237, 0.254, 0.275, 0.299, 0.327, 0.366, 0.432, 0.544, 0.642, 0.824, 1.265, &
160 0.196, 0.240, 0.257, 0.278, 0.303, 0.331, 0.371, 0.437, 0.550, 0.648, 0.831, 1.274, &
161 0.198, 0.243, 0.260, 0.283, 0.306, 0.335, 0.376, 0.442, 0.557, 0.654, 0.839, 1.285, &
162 0.201, 0.246, 0.263, 0.286, 0.308, 0.338, 0.380, 0.445, 0.559, 0.660, 0.846, 1.289, &
163 0.203, 0.249, 0.266, 0.289, 0.312, 0.341, 0.384, 0.449, 0.564, 0.665, 0.852, 1.297, &
164 ! Seasalt Coarse Soluble (CS)
165 0.576, 0.690, 0.738, 0.789, 0.855, 0.935, 1.046, 1.212, 1.512, 1.785, 2.258, 3.449, &
166 0.595, 0.713, 0.763, 0.814, 0.880, 0.963, 1.079, 1.248, 1.550, 1.826, 2.306, 3.507, &
167 0.617, 0.738, 0.789, 0.842, 0.911, 0.996, 1.113, 1.286, 1.592, 1.871, 2.369, 3.562, &
168 0.632, 0.755, 0.808, 0.862, 0.931, 1.018, 1.140, 1.316, 1.626, 1.909, 2.409, 3.622, &
169 0.645, 0.771, 0.825, 0.880, 0.951, 1.039, 1.164, 1.344, 1.661, 1.948, 2.455, 3.682, &
170 ! Seasalt Accumulation Soluble (AS)
171 3.684, 4.367, 4.711, 5.074, 5.438, 6.046, 6.793, 7.964,10.200,12.246,15.959,24.642, &
172 3.126, 3.717, 4.023, 4.349, 4.673, 5.229, 5.918, 7.018, 9.179,11.208,14.994,24.184, &
173 2.482, 2.973, 3.233, 3.511, 3.788, 4.272, 4.876, 5.858, 7.836, 9.739,13.393,22.658, &
174 2.086, 2.509, 2.735, 2.979, 3.220, 3.649, 4.186, 5.068, 6.874, 8.642,12.099,21.146, &
175 1.737, 2.097, 2.292, 2.503, 2.711, 3.086, 3.556, 4.337, 5.960, 7.571,10.779,19.427, &
176 ! Nitrate Coarse Soluble (CS)
177 0.726, 0.726, 0.726, 0.796, 0.868, 0.947, 1.041, 1.246, 1.563, 1.872, 2.328, 2.447, &
178 0.753, 0.753, 0.753, 0.825, 0.900, 0.979, 1.075, 1.285, 1.610, 1.922, 2.385, 2.503, &
179 0.780, 0.780, 0.780, 0.854, 0.932, 1.013, 1.113, 1.326, 1.656, 1.979, 2.447, 2.579, &
180 0.797, 0.797, 0.797, 0.874, 0.953, 1.035, 1.138, 1.356, 1.697, 2.020, 2.495, 2.621, &
181 0.811, 0.811, 0.811, 0.890, 0.971, 1.055, 1.160, 1.384, 1.733, 2.062, 2.547, 2.675, &
182 ! Nitrate Accumulation Soluble (AS)
183 4.208, 4.208, 4.208, 4.693, 5.217, 5.778, 6.502, 8.108,10.722,13.327,17.185,18.210, &
184 3.386, 3.386, 3.386, 3.808, 4.268, 4.768, 5.420, 6.897, 9.377,11.923,15.803,16.852, &
185 2.650, 2.650, 2.650, 2.997, 3.380, 3.801, 4.357, 5.638, 7.850,10.189,13.858,14.870, &
186 2.174, 2.174, 2.174, 2.471, 2.802, 3.167, 3.652, 4.784, 6.774, 8.917,12.345,13.302, &
187 1.776, 1.776, 1.776, 2.028, 2.309, 2.622, 3.040, 4.026, 5.787, 7.717,10.858,11.745 /
188
189 DATA alpha_aeri_5wv/ &
190 ! Dust insoluble
191 0.788, 0.818, 0.842, 0.851, 0.853, &
192 ! BC insoluble
193 5.342, 5.159, 4.849, 4.573, 4.274, &
194 ! POM insoluble
195 5.300, 4.569, 3.768, 3.210, 2.709, &
196 ! Nitrate insoluble
197 0.726, 0.753, 0.780, 0.797, 0.811 /
198 !
199 DATA abs_aers_5wv/ &
200 ! absorption BC Accumulation Soluble (AS)
201 2.861, 2.861, 2.861, 2.861, 2.861, 3.089, 3.316, 3.767, 4.167, 4.211, 4.255, 4.647, &
202 2.806, 2.806, 2.806, 2.806, 2.806, 3.010, 3.209, 3.597, 3.935, 3.971, 4.008, 4.333, &
203 2.674, 2.674, 2.674, 2.674, 2.674, 2.847, 3.015, 3.335, 3.608, 3.638, 3.667, 3.924, &
204 2.566, 2.566, 2.566, 2.566, 2.566, 2.723, 2.872, 3.155, 3.393, 3.419, 3.444, 3.667, &
205 2.444, 2.444, 2.444, 2.444, 2.444, 2.585, 2.719, 2.968, 3.176, 3.199, 3.221, 3.413, &
206 ! absorption POM Accumulation Soluble (AS)
207 0.170, 0.170, 0.170, 0.170, 0.170, 0.167, 0.165, 0.162, 0.160, 0.160, 0.159, 0.158, &
208 0.145, 0.145, 0.145, 0.145, 0.145, 0.143, 0.142, 0.139, 0.138, 0.138, 0.138, 0.137, &
209 0.125, 0.125, 0.125, 0.125, 0.125, 0.123, 0.122, 0.120, 0.119, 0.119, 0.119, 0.119, &
210 0.131, 0.131, 0.131, 0.131, 0.131, 0.130, 0.129, 0.127, 0.127, 0.127, 0.127, 0.127, &
211 0.133, 0.133, 0.133, 0.133, 0.133, 0.132, 0.131, 0.131, 0.131, 0.131, 0.131, 0.131, &
212 ! absorption Sulfate Coarse Soluble (CS)
213 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
214 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
215 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
216 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
217 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
218 !-- Absorption Sulfate Accumulation (BC content=0)
219 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
220 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
221 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
222 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
223 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
224 ! absorption Seasalt Super Coarse Soluble (SS)
225 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
226 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
227 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
228 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
229 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
230 ! absorption Seasalt Coarse Soluble (CS)
231 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
232 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
233 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
234 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
235 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
236 ! absorption Seasalt Accumulation Soluble (AS)
237 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
238 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
239 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
240 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
241 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
242 ! absorption Nitrate Coarse Soluble (CS)
243 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
244 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
245 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
246 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
247 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
248 ! absorption Nitrate Accumulation Soluble (AS)
249 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
250 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
251 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
252 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
253 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000 /
254
255 DATA abs_aeri_5wv/ &
256 ! absorption Dust insoluble
257 0.081, 0.048, 0.032, 0.027, 0.019, &
258 ! absorption BC insoluble
259 2.861, 2.806, 2.674, 2.566, 2.444, &
260 ! absorption POM insoluble
261 0.170, 0.145, 0.125, 0.131, 0.133, &
262 ! absorption Nitrate insoluble
263 0.000, 0.000, 0.000, 0.000, 0.000 /
264
265 ! Added by R. Wang (July 31 2016)
266 ! properties for BC assuming Maxwell-Garnett rule and internal mixture
267
268 DATA alpha_MG_5wv/ &
269 !--BC content=0.001
270 4.293, 4.293, 4.293, 4.293, 4.320, 4.342, 4.271, 4.320, 4.476, 4.772, 5.310, 7.434, &
271 4.687, 4.687, 4.687, 4.687, 4.693, 4.602, 4.492, 4.413, 4.374, 4.462, 4.729, 6.274, &
272 4.802, 4.802, 4.802, 4.802, 4.776, 4.646, 4.516, 4.371, 4.231, 4.173, 4.217, 5.072, &
273 4.716, 4.716, 4.716, 4.716, 4.668, 4.548, 4.408, 4.249, 4.047, 3.951, 3.850, 4.259, &
274 4.520, 4.520, 4.520, 4.520, 4.461, 4.353, 4.230, 4.069, 3.850, 3.707, 3.524, 3.565, &
275 !--BC content=0.010
276 4.298, 4.298, 4.298, 4.298, 4.343, 4.333, 4.283, 4.325, 4.472, 4.751, 5.298, 7.402, &
277 4.692, 4.692, 4.692, 4.692, 4.695, 4.598, 4.499, 4.410, 4.383, 4.454, 4.739, 6.260, &
278 4.796, 4.796, 4.796, 4.796, 4.768, 4.644, 4.518, 4.376, 4.230, 4.172, 4.225, 5.048, &
279 4.708, 4.708, 4.708, 4.708, 4.659, 4.543, 4.411, 4.256, 4.053, 3.945, 3.855, 4.242, &
280 4.509, 4.509, 4.509, 4.509, 4.456, 4.351, 4.229, 4.072, 3.852, 3.707, 3.531, 3.560, &
281 !--BC content=0.020
282 4.301, 4.301, 4.301, 4.301, 4.353, 4.330, 4.291, 4.326, 4.478, 4.738, 5.288, 7.393, &
283 4.688, 4.688, 4.688, 4.688, 4.695, 4.596, 4.500, 4.412, 4.386, 4.454, 4.737, 6.248, &
284 4.787, 4.787, 4.787, 4.787, 4.761, 4.641, 4.516, 4.378, 4.231, 4.176, 4.226, 5.041, &
285 4.696, 4.696, 4.696, 4.696, 4.651, 4.538, 4.409, 4.256, 4.055, 3.948, 3.858, 4.240, &
286 4.497, 4.497, 4.497, 4.497, 4.448, 4.345, 4.225, 4.072, 3.854, 3.709, 3.535, 3.561, &
287 !--BC content=0.050
288 4.318, 4.318, 4.318, 4.318, 4.377, 4.337, 4.310, 4.334, 4.488, 4.724, 5.267, 7.342, &
289 4.678, 4.678, 4.678, 4.678, 4.693, 4.595, 4.506, 4.421, 4.396, 4.458, 4.734, 6.203, &
290 4.760, 4.760, 4.760, 4.760, 4.742, 4.631, 4.512, 4.381, 4.237, 4.185, 4.229, 5.015, &
291 4.662, 4.662, 4.662, 4.662, 4.629, 4.522, 4.401, 4.254, 4.062, 3.955, 3.867, 4.229, &
292 4.461, 4.461, 4.461, 4.461, 4.424, 4.328, 4.215, 4.068, 3.858, 3.718, 3.545, 3.562, &
293 !--BC content=0.100
294 4.348, 4.348, 4.348, 4.348, 4.404, 4.361, 4.337, 4.358, 4.503, 4.717, 5.240, 7.239, &
295 4.662, 4.662, 4.662, 4.662, 4.685, 4.596, 4.513, 4.437, 4.411, 4.468, 4.729, 6.123, &
296 4.716, 4.716, 4.716, 4.716, 4.713, 4.613, 4.505, 4.384, 4.249, 4.199, 4.235, 4.974, &
297 4.607, 4.607, 4.607, 4.607, 4.593, 4.497, 4.387, 4.252, 4.072, 3.969, 3.882, 4.212, &
298 4.403, 4.403, 4.403, 4.403, 4.385, 4.299, 4.196, 4.061, 3.865, 3.731, 3.564, 3.563, &
299 !--BC content=0.200
300 4.401, 4.401, 4.401, 4.401, 4.447, 4.409, 4.389, 4.405, 4.529, 4.715, 5.183, 7.007, &
301 4.631, 4.631, 4.631, 4.631, 4.666, 4.594, 4.526, 4.463, 4.439, 4.488, 4.714, 5.958, &
302 4.633, 4.633, 4.633, 4.633, 4.654, 4.575, 4.488, 4.387, 4.271, 4.224, 4.250, 4.894, &
303 4.505, 4.505, 4.505, 4.505, 4.520, 4.444, 4.356, 4.243, 4.089, 3.997, 3.912, 4.179, &
304 4.295, 4.295, 4.295, 4.295, 4.307, 4.239, 4.157, 4.045, 3.876, 3.757, 3.602, 3.569 /
305 !
306 DATA abs_MG_5wv/ &
307 !--BC content=0.001
308 13.416, 13.416, 13.416, 13.416, 12.041, 11.928, 11.793, 11.680, 11.488, 11.367, 11.200, 10.968,&
309 10.085, 10.085, 10.085, 10.085, 9.116, 9.061, 8.977, 8.901, 8.778, 8.712, 8.617, 8.474, &
310 7.491, 7.491, 7.491, 7.491, 6.836, 6.808, 6.764, 6.719, 6.659, 6.613, 6.568, 6.508, &
311 6.269, 6.269, 6.269, 6.269, 5.774, 5.761, 5.734, 5.706, 5.665, 5.637, 5.615, 5.579, &
312 5.300, 5.300, 5.300, 5.300, 4.919, 4.913, 4.899, 4.882, 4.863, 4.847, 4.831, 4.825, &
313 !--BC content=0.010
314 12.829, 12.829, 12.829, 12.829, 11.692, 11.618, 11.523, 11.419, 11.278, 11.192, 11.055, 10.850,&
315 9.766, 9.766, 9.766, 9.766, 8.932, 8.890, 8.828, 8.762, 8.671, 8.617, 8.528, 8.411, &
316 7.316, 7.316, 7.316, 7.316, 6.739, 6.716, 6.684, 6.643, 6.597, 6.561, 6.517, 6.465, &
317 6.154, 6.154, 6.154, 6.154, 5.708, 5.696, 5.676, 5.651, 5.624, 5.602, 5.576, 5.543, &
318 5.216, 5.216, 5.216, 5.216, 4.874, 4.870, 4.860, 4.848, 4.835, 4.823, 4.810, 4.800, &
319 !--BC content=0.020
320 12.290, 12.290, 12.290, 12.290, 11.358, 11.315, 11.248, 11.175, 11.073, 11.008, 10.902, 10.743,&
321 9.455, 9.455, 9.455, 9.455, 8.743, 8.716, 8.671, 8.622, 8.556, 8.513, 8.442, 8.349, &
322 7.142, 7.142, 7.142, 7.142, 6.635, 6.621, 6.596, 6.567, 6.532, 6.503, 6.469, 6.428, &
323 6.033, 6.033, 6.033, 6.033, 5.634, 5.629, 5.615, 5.598, 5.578, 5.561, 5.541, 5.517, &
324 5.130, 5.130, 5.130, 5.130, 4.821, 4.821, 4.816, 4.809, 4.801, 4.794, 4.784, 4.781, &
325 !--BC content=0.050
326 10.989, 10.989, 10.989, 10.989, 10.504, 10.523, 10.528, 10.528, 10.522, 10.512, 10.485, 10.445,&
327 8.671, 8.671, 8.671, 8.671, 8.239, 8.249, 8.248, 8.242, 8.233, 8.221, 8.199, 8.176, &
328 6.688, 6.688, 6.688, 6.688, 6.346, 6.354, 6.353, 6.350, 6.346, 6.339, 6.328, 6.322, &
329 5.707, 5.707, 5.707, 5.707, 5.427, 5.437, 5.440, 5.441, 5.444, 5.442, 5.438, 5.444, &
330 4.894, 4.894, 4.894, 4.894, 4.671, 4.682, 4.688, 4.694, 4.702, 4.705, 4.709, 4.726, &
331 !--BC content=0.100
332 9.397, 9.397, 9.397, 9.397, 9.357, 9.443, 9.525, 9.615, 9.725, 9.788, 9.866, 9.991, &
333 7.654, 7.654, 7.654, 7.654, 7.527, 7.581, 7.629, 7.682, 7.746, 7.781, 7.825, 7.901, &
334 6.070, 6.070, 6.070, 6.070, 5.922, 5.956, 5.986, 6.018, 6.057, 6.079, 6.105, 6.156, &
335 5.252, 5.252, 5.252, 5.252, 5.117, 5.146, 5.171, 5.198, 5.231, 5.250, 5.274, 5.322, &
336 4.557, 4.557, 4.557, 4.557, 4.441, 4.466, 4.489, 4.513, 4.544, 4.562, 4.586, 4.634, &
337 !--BC content=0.200
338 7.300, 7.300, 7.300, 7.300, 7.649, 7.799, 7.960, 8.149, 8.397, 8.559, 8.779, 9.149, &
339 6.225, 6.225, 6.225, 6.225, 6.403, 6.504, 6.610, 6.733, 6.893, 6.996, 7.136, 7.372, &
340 5.145, 5.145, 5.145, 5.145, 5.216, 5.282, 5.350, 5.429, 5.530, 5.595, 5.682, 5.833, &
341 4.550, 4.550, 4.550, 4.550, 4.587, 4.640, 4.694, 4.756, 4.836, 4.887, 4.957, 5.079, &
342 4.023, 4.023, 4.023, 4.023, 4.041, 4.084, 4.128, 4.178, 4.244, 4.286, 4.344, 4.447 /
343 !
344 ! Initialisations
345 ai(:) = 0.
346 abs550aer(:)=0.0
347 drytausum(:,:) = 0.
348 tausum(:,:,:) = 0.
349 tau(:,:,:,:)=0.
350
351 DO k=1, klev
352 DO i=1, klon
353 zrho=pplay(i,k)/t_seri(i,k)/RD ! kg/m3
354 zdh(i,k)=pdel(i,k)/(RG*zrho) ! m
355 ENDDO
356 ENDDO
357
358 IF (flag_aerosol .EQ. 1) THEN
359 nb_aer = 2
360 ALLOCATE (aerosol_name(nb_aer))
361 aerosol_name(1) = id_ASSO4M_phy
362 aerosol_name(2) = id_CSSO4M_phy
363 ELSEIF (flag_aerosol .EQ. 2) THEN
364 nb_aer = 2
365 ALLOCATE (aerosol_name(nb_aer))
366 aerosol_name(1) = id_ASBCM_phy
367 aerosol_name(2) = id_AIBCM_phy
368 ELSEIF (flag_aerosol .EQ. 3) THEN
369 nb_aer = 2
370 ALLOCATE (aerosol_name(nb_aer))
371 aerosol_name(1) = id_ASPOMM_phy
372 aerosol_name(2) = id_AIPOMM_phy
373 ELSEIF (flag_aerosol .EQ. 4) THEN
374 nb_aer = 3
375 ALLOCATE (aerosol_name(nb_aer))
376 aerosol_name(1) = id_CSSSM_phy
377 aerosol_name(2) = id_SSSSM_phy
378 aerosol_name(3) = id_ASSSM_phy
379 ELSEIF (flag_aerosol .EQ. 5) THEN
380 nb_aer = 1
381 ALLOCATE (aerosol_name(nb_aer))
382 aerosol_name(1) = id_CIDUSTM_phy
383 ELSEIF (flag_aerosol .EQ. 6 .OR. flag_aerosol .EQ. 7 ) THEN
384 nb_aer = 13
385 ALLOCATE (aerosol_name(nb_aer))
386 aerosol_name(1) = id_ASSO4M_phy
387 aerosol_name(2) = id_ASBCM_phy
388 aerosol_name(3) = id_AIBCM_phy
389 aerosol_name(4) = id_ASPOMM_phy
390 aerosol_name(5) = id_AIPOMM_phy
391 aerosol_name(6) = id_CSSSM_phy
392 aerosol_name(7) = id_SSSSM_phy
393 aerosol_name(8) = id_ASSSM_phy
394 aerosol_name(9) = id_CIDUSTM_phy
395 aerosol_name(10)= id_CSSO4M_phy
396 aerosol_name(11)= id_CSNO3M_phy
397 aerosol_name(12)= id_ASNO3M_phy
398 aerosol_name(13)= id_CINO3M_phy
399 ENDIF
400
401 !
402 ! Loop over modes, use of precalculated nmd and corresponding sigma
403 ! loop over wavelengths
404 ! for each mass species in mode
405 ! interpolate from Sext to retrieve Sext_at_gridpoint_per_species
406 ! compute optical_thickness_at_gridpoint_per_species
407 !
408 ! Calculations that need to be done since we are not in the subroutines INCA
409 !
410
411 DO n=1,nbre_RH-1
412 fact_RH(n)=1./(RH_tab(n+1)-RH_tab(n))
413 ENDDO
414
415 DO k=1, klev
416 DO i=1, klon
417 rh(i,k)=MIN(RHcl(i,k)*100.,RH_MAX)
418 RH_num(i,k) = INT( rh(i,k)/10. + 1.)
419 IF (rh(i,k).GT.85.) RH_num(i,k)=10
420 IF (rh(i,k).GT.90.) RH_num(i,k)=11
421 delta(i,k)=(rh(i,k)-RH_tab(RH_num(i,k)))*fact_RH(RH_num(i,k))
422 ENDDO
423 ENDDO
424
425 DO m=1,nb_aer ! tau is only computed for each mass
426 fac=1.0
427 IF (aerosol_name(m).EQ.id_ASBCM_phy) THEN
428 soluble=.TRUE.
429 spsol=1
430 ELSEIF (aerosol_name(m).EQ.id_ASPOMM_phy) THEN
431 soluble=.TRUE.
432 spsol=2
433 ELSEIF (aerosol_name(m).EQ.id_CSSO4M_phy) THEN
434 soluble=.TRUE.
435 spsol=3
436 !fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for AOD
437 fac=0.0 !--6 March 2017 - OB as Didier H said CSSO4 should not be used
438 ELSEIF (aerosol_name(m).EQ.id_ASSO4M_phy) THEN
439 soluble=.TRUE.
440 spsol=4
441 fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for AOD
442 ELSEIF (aerosol_name(m).EQ.id_SSSSM_phy) THEN
443 soluble=.TRUE.
444 spsol=5
445 ELSEIF (aerosol_name(m).EQ.id_CSSSM_phy) THEN
446 soluble=.TRUE.
447 spsol=6
448 ELSEIF (aerosol_name(m).EQ.id_ASSSM_phy) THEN
449 soluble=.TRUE.
450 spsol=7
451 ELSEIF (aerosol_name(m).EQ.id_CSNO3M_phy) THEN
452 soluble=.TRUE.
453 spsol=8
454 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD
455 ELSEIF (aerosol_name(m).EQ.id_ASNO3M_phy) THEN
456 soluble=.TRUE.
457 spsol=9
458 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD
459 ELSEIF (aerosol_name(m).EQ.id_CIDUSTM_phy) THEN
460 soluble=.FALSE.
461 spinsol=1
462 ELSEIF (aerosol_name(m).EQ.id_AIBCM_phy) THEN
463 soluble=.FALSE.
464 spinsol=2
465 ELSEIF (aerosol_name(m).EQ.id_AIPOMM_phy) THEN
466 soluble=.FALSE.
467 spinsol=3
468 ELSEIF (aerosol_name(m).EQ.id_CINO3M_phy) THEN
469 soluble=.FALSE.
470 spinsol=4
471 fac=1.2903 ! NO3NH4/NO3 / mass conversion factor for AOD
472 ELSE
473 CYCLE
474 ENDIF
475
476 aerindex=aerosol_name(m)
477
478 DO la=1,las
479
480 !--only 443, 550, and 865 nm are used
481 !--to save time 670 and AI are not computed for CMIP6
482 !IF (la.NE.la443.AND.la.NE.la550.AND.la.NE.la670.AND.la.NE.la865) CYCLE
483 IF (la.NE.la443.AND.la.NE.la550.AND.la.NE.la865) CYCLE
484
485 IF (soluble) THEN ! For soluble aerosol
486
487 !--treat special case of soluble BC internal mixture
488 IF (spsol.EQ.1 .AND. flag_bc_internal_mixture) THEN
489
490 DO k=1, klev
491 DO i=1, klon
492
493 BC_massfra = m_allaer(i,k,id_ASBCM_phy)/(m_allaer(i,k,id_ASBCM_phy)+m_allaer(i,k,id_ASSO4M_phy))
494
495 IF (BC_massfra.GE.0.20) THEN
496 classbc = 6
497 ELSEIF (BC_massfra.GE.0.10) THEN
498 classbc = 5
499 ELSEIF (BC_massfra.GE.0.05) THEN
500 classbc = 4
501 ELSEIF (BC_massfra.GE.0.02) THEN
502 classbc = 3
503 ELSEIF (BC_massfra.GE.0.01) THEN
504 classbc = 2
505 ELSE
506 classbc = 1
507 ENDIF
508
509 tau_ae5wv_int = alpha_MG_5wv(RH_num(i,k),la,classbc)+DELTA(i,k)* &
510 (alpha_MG_5wv(RH_num(i,k)+1,la,classbc) - &
511 alpha_MG_5wv(RH_num(i,k),la,classbc))
512 tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*tau_ae5wv_int*fac
513 tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
514
515 IF (la.EQ.la550.AND.dryaod_diag) THEN
516 tau_ae5wv_int = alpha_MG_5wv(1,la,classbc)
517 drytausum(i,aerindex)=drytausum(i,aerindex)+m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*tau_ae5wv_int*fac
518 ENDIF
519
520 IF (la.EQ.la550) THEN
521 abs_ae5wv_int = abs_MG_5wv(RH_num(i,k),la,classbc)+DELTA(i,k)* &
522 (abs_MG_5wv(RH_num(i,k)+1,la,classbc) - &
523 abs_MG_5wv(RH_num(i,k),la,classbc))
524 abs550aer(i)=abs550aer(i)+m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*abs_ae5wv_int*fac
525 ENDIF
526
527 ENDDO
528 ENDDO
529
530 !--other cases of soluble aerosols
531 ELSE
532
533 DO k=1, klev
534 DO i=1, klon
535 tau_ae5wv_int = alpha_aers_5wv(RH_num(i,k),la,spsol)+DELTA(i,k)* &
536 (alpha_aers_5wv(RH_num(i,k)+1,la,spsol) - &
537 alpha_aers_5wv(RH_num(i,k),la,spsol))
538 tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*tau_ae5wv_int*fac
539 tausum(i,la,aerindex)=tausum(i,la,aerindex)+tau(i,k,la,aerindex)
540
541 IF (la.EQ.la550.AND.dryaod_diag) THEN
542 tau_ae5wv_int = alpha_aers_5wv(1,la,spsol)
543 drytausum(i,aerindex)=drytausum(i,aerindex)+m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*tau_ae5wv_int*fac
544 ENDIF
545
546 IF (la.EQ.la550) THEN
547 abs_ae5wv_int = abs_aers_5wv(RH_num(i,k),la,spsol)+DELTA(i,k)* &
548 (abs_aers_5wv(RH_num(i,k)+1,la,spsol) - &
549 abs_aers_5wv(RH_num(i,k),la,spsol))
550 abs550aer(i)=abs550aer(i)+m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*abs_ae5wv_int*fac
551 ENDIF
552
553 ENDDO
554 ENDDO
555
556 ENDIF
557
558 ! cases of insoluble aerosol
559 ELSE
560
561 DO k=1, klev
562 DO i=1, klon
563
564 tau_ae5wv_int = alpha_aeri_5wv(la,spinsol)
565 tau(i,k,la,aerindex) = m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*tau_ae5wv_int*fac
566 tausum(i,la,aerindex)= tausum(i,la,aerindex)+tau(i,k,la,aerindex)
567
568 IF (la.EQ.la550.AND.dryaod_diag) THEN
569 drytausum(i,aerindex)= drytausum(i,aerindex)+tau(i,k,la,aerindex)
570 ENDIF
571
572 IF (la.EQ.la550) THEN
573 abs_ae5wv_int = abs_aeri_5wv(la,spinsol)
574 abs550aer(i)=abs550aer(i)+m_allaer(i,k,aerindex)/1.e6*zdh(i,k)*abs_ae5wv_int*fac
575 ENDIF
576
577 ENDDO
578 ENDDO
579
580 ENDIF
581
582 ENDDO ! Boucle sur les longueurs d'onde
583 ENDDO ! Boucle sur les masses de traceurs
584
585 !--AOD calculations for diagnostics
586 od443aer(:)=SUM(tausum(:,la443,:),dim=2)
587 od550aer(:)=SUM(tausum(:,la550,:),dim=2)
588 !od670aer(:)=SUM(tausum(:,la670,:),dim=2)
589 od865aer(:)=SUM(tausum(:,la865,:),dim=2)
590
591 !--dry AOD calculation for diagnostics la=la550
592 dryod550aer(:)=SUM(drytausum(:,:),dim=2)
593
594 !--extinction coefficient for diagnostic
595 ec550aer(:,:)=SUM(tau(:,:,la550,:),dim=3)/zdh(:,:)
596
597 !--aerosol index
598 ai(:)=0.0
599 !ai(:)=-LOG(MAX(od670aer(:),1.e-8)/MAX(od865aer(:),1.e-8))/LOG(670./865.)
600
601 od550lt1aer(:)=tausum(:,la550,id_ASSO4M_phy)+tausum(:,la550,id_ASBCM_phy) +tausum(:,la550,id_AIBCM_phy)+ &
602 tausum(:,la550,id_ASPOMM_phy)+tausum(:,la550,id_AIPOMM_phy)+tausum(:,la550,id_ASSSM_phy)+ &
603 0.03*tausum(:,la550,id_CSSSM_phy)+0.4*tausum(:,la550,id_CIDUSTM_phy)
604
605 DEALLOCATE(aerosol_name)
606
607 END SUBROUTINE AEROPT_5WV_RRTM
608