Changeset 1221
- Timestamp:
- Aug 5, 2009, 7:16:46 PM (15 years ago)
- Location:
- LMDZ4/branches/LMDZ4-dev/libf/phylmd
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/libf/phylmd/aero_mod.F90
r1183 r1221 9 9 ! Identification number used in aeropt_2bands and aeropt_5wv 10 10 ! corresponding to naero_tot 11 INTEGER, PARAMETER :: id_ SSSSM = 112 INTEGER, PARAMETER :: id_ CSSSM= 213 INTEGER, PARAMETER :: id_ASS SM= 314 INTEGER, PARAMETER :: id_ ASBCM= 415 INTEGER, PARAMETER :: id_ ASPOMM= 516 INTEGER, PARAMETER :: id_ ASSO4M= 617 INTEGER, PARAMETER :: id_ CSSO4M= 711 INTEGER, PARAMETER :: id_ASBCM = 1 12 INTEGER, PARAMETER :: id_ASPOMM = 2 13 INTEGER, PARAMETER :: id_ASSO4M = 3 14 INTEGER, PARAMETER :: id_CSSO4M = 4 15 INTEGER, PARAMETER :: id_SSSSM = 5 16 INTEGER, PARAMETER :: id_CSSSM = 6 17 INTEGER, PARAMETER :: id_ASSSM = 7 18 18 INTEGER, PARAMETER :: id_CIDUSTM = 8 19 19 INTEGER, PARAMETER :: id_AIBCM = 9 … … 21 21 22 22 ! Total number of aerosols actually used in LMDZ 23 ! 1 = SSSSM || CSSSM 24 ! 2 = ASSSM 25 ! 3 = ASBCM 26 ! 4 = ASPOMM 27 ! 5 = ASSO4M || CSSO4M 28 ! 6 = CIDUSTM 29 ! 7 = AIBCM 30 ! 8 = AIPOMM 31 INTEGER, PARAMETER :: naero_spc = 8 23 ! 1 = ASBCM 24 ! 2 = ASPOMM 25 ! 3 = ASSO4M ( = SO4) 26 ! 4 = CSSO4M 27 ! 5 = SSSSM 28 ! 6 = CSSSM 29 ! 7 = ASSSM 30 ! 8 = CIDUSTM 31 ! 9 = AIBCM 32 !10 = AIPOMM 33 INTEGER, PARAMETER :: naero_spc = 10 32 34 33 35 ! Corresponding names for the aerosols 34 36 CHARACTER(len=7),DIMENSION(naero_spc) :: name_aero=(/& 35 "CSSSM ", &36 "ASSSM ", &37 37 "ASBCM ", & 38 38 "ASPOMM ", & 39 39 "SO4 ", & 40 "CSSO4M ", & 41 "SSSSM ", & 42 "CSSSM ", & 43 "ASSSM ", & 40 44 "CIDUSTM", & 41 45 "AIBCM ", & 42 46 "AIPOMM " /) 47 43 48 44 49 ! Number of aerosol groups -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_2bands.F90
r1183 r1221 3 3 tau_allaer, piz_allaer, & 4 4 cg_allaer, fractnat_allaer, & 5 flag_aerosol, pplay, t_seri )5 flag_aerosol, pplay, t_seri, presnivs) 6 6 7 7 USE dimphy … … 21 21 ! Input arguments: 22 22 ! 23 REAL, INTENT(in) :: pdel(KLON,KLEV)23 REAL, DIMENSION(klon,klev), INTENT(in) :: pdel 24 24 REAL, INTENT(in) :: delt 25 25 REAL, DIMENSION(klon,klev,naero_spc), INTENT(in) :: m_allaer 26 REAL, INTENT(in) :: RHcl(KLON,KLEV)! humidite relative ciel clair26 REAL, DIMENSION(klon,klev), INTENT(in) :: RHcl ! humidite relative ciel clair 27 27 REAL, DIMENSION(klon,naero_tot),INTENT(in) :: fractnat_allaer 28 28 INTEGER, INTENT(in) :: flag_aerosol 29 REAL, INTENT(in) :: pplay(klon,klev)30 REAL, INTENT(in) :: t_seri(klon,klev)31 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 32 ! 33 33 ! Output arguments: … … 45 45 LOGICAL :: soluble 46 46 INTEGER :: i, k, inu, m, mrfspecies 47 INTEGER :: spsol, spinsol 48 INTEGER :: RH_num, nbre_RH, nbsol_compaer, nbinsol_compaer 49 50 PARAMETER (nbre_RH=12) 51 PARAMETER (nbsol_compaer=5) ! 1- Seasalt AS; 2- Sesalt CS; 3- BC soluble; 4- POM soluble; 5- SO4. 52 PARAMETER (nbinsol_compaer=3) ! 1- Dust; 2- BC insoluble; 3- POM insoluble 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 53 85 REAL:: RH_tab(nbre_RH) 54 REAL:: RH_MAX, DELTA, rh 86 REAL, PARAMETER :: RH_MAX=95. 87 REAL:: DELTA, rh, H 55 88 REAL:: tau_ae2b_int(KLON,KLEV,nbands) ! Intermediate computation of epaisseur optique aerosol 56 89 REAL:: piz_ae2b_int(KLON,KLEV,nbands) ! Intermediate computation of Single scattering albedo 57 90 REAL:: cg_ae2b_int(KLON,KLEV,nbands) ! Intermediate computation of Assymetry parameter 58 PARAMETER (RH_MAX=95.)59 91 DATA RH_tab/0.,10.,20.,30.,40.,50.,60.,70.,80.,85.,90.,95./ 60 92 REAL :: zrho … … 77 109 78 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 79 337 spsol = 0 80 338 spinsol = 0 81 339 spss = 0 82 340 83 341 DATA alpha_aers_2bands/ & 84 ! seasalt soluble Coarse Soluble (CS)85 0.5090,0.6554,0.7129,0.7767,0.8529,1.2728, &86 1.3820,1.5792,1.9173,2.2002,2.7173,4.1487, &87 0.5167,0.6613,0.7221,0.7868,0.8622,1.3027, &88 1.4227,1.6317,1.9887,2.2883,2.8356,4.3453, &89 ! seasalt soluble Accumulation Soluble (AS)90 4.125, 4.674, 5.005, 5.434, 5.985, 10.006, &91 11.175,13.376,17.264,20.540,26.604, 42.349,&92 4.187, 3.939, 3.919, 3.937, 3.995, 5.078, &93 5.511, 6.434, 8.317,10.152,14.024, 26.537, &94 342 ! bc soluble 95 343 7.675,7.675,7.675,7.675,7.675,7.675, & … … 119 367 120 368 DATA cg_aers_2bands/ & 121 ! seasalt Coarse soluble (CS)122 0.727, 0.747, 0.755, 0.761, 0.770, 0.788, &123 0.792, 0.799, 0.805, 0.809, 0.815, 0.826, &124 0.717, 0.738, 0.745, 0.752, 0.761, 0.779, &125 0.781, 0.786, 0.793, 0.797, 0.803, 0.813, &126 ! Sesalt Accumulation Soluble (AS)127 0.727, 0.741, 0.748, 0.754, 0.761, 0.782, &128 0.787, 0.792, 0.797, 0.799, 0.801, 0.799, &129 0.606, 0.645, 0.658, 0.669, 0.681, 0.726, &130 0.734, 0.746, 0.761, 0.770, 0.782, 0.798, &131 369 ! bc soluble 132 370 .612, .612, .612, .612, .612, .612, & … … 155 393 156 394 DATA piz_aers_2bands/& 157 ! seasalt Coarse soluble (CS)158 1.000,1.000,1.000,1.000,1.000,1.000, &159 1.000,1.000,1.000,1.000,1.000,1.000, &160 0.992,0.989,0.987,0.986,0.986,0.980, &161 0.980,0.978,0.976,0.976,0.974,0.971, &162 ! seasalt Accumulation Soluble (AS)163 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, &164 1.000, 1.000, 1.000, 1.000, 1.000, 1.000, &165 0.970, 0.975, 0.976, 0.977, 0.978, 0.982, &166 0.982, 0.983, 0.984, 0.984, 0.985, 0.985, &167 395 ! bc soluble 168 396 .445, .445, .445, .445, .445, .445, & … … 191 419 192 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 193 478 DO k=1, klev 194 479 DO i=1, klon … … 212 497 ALLOCATE (aerosol_name(nb_aer)) 213 498 aerosol_name(1) = id_ASSO4M 499 214 500 ELSEIF (flag_aerosol .EQ. 2) THEN 215 501 nb_aer = 2 … … 233 519 aerosol_name(1) = id_CIDUSTM 234 520 ELSEIF (flag_aerosol .EQ. 6) THEN 235 nb_aer = 9521 nb_aer = 10 236 522 ALLOCATE (aerosol_name(nb_aer)) 237 523 aerosol_name(1) = id_ASSO4M … … 244 530 aerosol_name(8) = id_ASSSM 245 531 aerosol_name(9) = id_CIDUSTM 532 aerosol_name(10)= id_CSSO4M 246 533 ENDIF 247 534 … … 271 558 272 559 fac=1.0 273 IF (aerosol_name(m).EQ.id_SSSSM) THEN ! for now 274 soluble=.TRUE. 275 spsol=1 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 276 577 ELSEIF (aerosol_name(m).EQ.id_CSSSM) THEN 277 soluble=.TRUE. 278 spsol=1 578 soluble=.TRUE. 579 spsol=6 580 spss=2 279 581 ELSEIF (aerosol_name(m).EQ.id_ASSSM) THEN 280 soluble=.TRUE. 281 spsol=2 282 ELSEIF (aerosol_name(m).EQ.id_ASBCM) THEN 283 soluble=.TRUE. 284 spsol=3 285 ELSEIF (aerosol_name(m).EQ.id_ASPOMM) THEN 286 soluble=.TRUE. 287 spsol=4 288 ELSEIF ((aerosol_name(m).EQ.id_ASSO4M) .OR. (aerosol_name(m).EQ.id_CSSO4M)) THEN 289 soluble=.TRUE. 290 spsol=5 291 fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD 582 soluble=.TRUE. 583 spsol=7 584 spss=1 292 585 ELSEIF (aerosol_name(m).EQ.id_CIDUSTM) THEN 293 soluble=.FALSE. 294 spinsol=1 586 soluble=.FALSE. 587 spinsol=1 588 spss=0 295 589 ELSEIF (aerosol_name(m).EQ.id_AIBCM) THEN 296 soluble=.FALSE. 297 spinsol=2 590 soluble=.FALSE. 591 spinsol=2 592 spss=0 298 593 ELSEIF (aerosol_name(m).EQ.id_AIPOMM) THEN 299 soluble=.FALSE. 300 spinsol=3 594 soluble=.FALSE. 595 spinsol=3 596 spss=0 301 597 ELSE 302 CYCLE598 CYCLE 303 599 ENDIF 304 600 … … 320 616 DO inu=1,nbands 321 617 IF (soluble) THEN 322 tau_ae2b_int(i,k,inu)= & 323 alpha_aers_2bands(RH_num,inu,spsol)+ & 324 DELTA* (alpha_aers_2bands(RH_num+1,inu,spsol) - & 325 alpha_aers_2bands(RH_num,inu,spsol)) 326 327 piz_ae2b_int(i,k,inu)= & 328 piz_aers_2bands(RH_num,inu,spsol) + & 329 DELTA* (piz_aers_2bands(RH_num+1,inu,spsol) - & 330 piz_aers_2bands(RH_num,inu,spsol)) 331 332 cg_ae2b_int(i,k,inu)= & 333 cg_aers_2bands(RH_num,inu,spsol) + & 334 DELTA* (cg_aers_2bands(RH_num+1,inu,spsol) - & 335 cg_aers_2bands(RH_num,inu,spsol)) 336 337 tau_ae(i,k,aerosol_name(m),inu) = & 338 mass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt*tau_ae2b_int(i,k,inu)*fac 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 339 671 340 672 ELSE … … 344 676 345 677 tau_ae(i,k,aerosol_name(m),inu) = & 346 mass_temp(i,k, 5+ spinsol)*1000.*zdp1(i,k)*delt*tau_ae2b_int(i,k,inu)*fac678 mass_temp(i,k,7+ spinsol)*1000.*zdp1(i,k)*delt*tau_ae2b_int(i,k,inu)*fac 347 679 ENDIF 348 680 … … 352 684 353 685 354 ENDDO ! boucle sur les bandes spectrale355 ENDDO ! Boucle sur les points géographiques (grille horizontale)356 ENDDO ! Boucle sur les niveaux verticaux357 ENDDO ! Boucle sur les masses de traceurs686 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 358 690 359 691 -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/aeropt_5wv.F90
r1183 r1221 5 5 RHcl, ai, flag_aerosol, & 6 6 pplay, t_seri, & 7 tausum, tau )7 tausum, tau, presnivs) 8 8 9 9 USE DIMPHY … … 57 57 REAL, DIMENSION(klon,klev), INTENT(in) :: pplay 58 58 REAL, DIMENSION(klon,klev), INTENT(in) :: t_seri 59 REAL, DIMENSION(klev), INTENT(in) :: presnivs 59 60 ! 60 61 ! Output arguments: … … 72 73 73 74 INTEGER :: i, k, m 74 INTEGER :: spsol, spinsol, la75 INTEGER :: spsol, spinsol, spss, la 75 76 INTEGER :: RH_num 76 77 INTEGER, PARAMETER :: la443 = 1 … … 80 81 INTEGER, PARAMETER :: la865 = 5 81 82 INTEGER, PARAMETER :: nbre_RH=12 82 INTEGER, PARAMETER :: nbsol_compaer=5 ! 1- Seasalt AS: 2- Sesalt CS; 3- BC soluble; 4- POM soluble; 5- SO4. 83 INTEGER, PARAMETER :: nbinsol_compaer=3 ! 1- Dust; 2- BC insoluble; 3- POM insoluble 83 INTEGER, PARAMETER :: nbsol_compaer=3 ! 1- BC soluble; 2- POM soluble; 3- SO4. 84 INTEGER, PARAMETER :: nbinsol_compaer=3 ! 1- Dust; 2- BC insoluble; 3- POM insoluble 85 INTEGER, PARAMETER :: nb_level = 19 ! number of vertical levels 86 LOGICAL, SAVE :: firstcall=.TRUE. 87 84 88 REAL :: zrho 89 90 ! Coefficient optiques sur 19 niveaux 91 REAL, DIMENSION(nb_level) :: presnivs_19 ! Pression milieux couche pour 19 niveaux (nb_level) 92 REAL, DIMENSION(nb_level) :: A1_ASSSM_19, A2_ASSSM_19, A3_ASSSM_19,& 93 B1_ASSSM_19, B2_ASSSM_19, C1_ASSSM_19, C2_ASSSM_19,& 94 A1_CSSSM_19, A2_CSSSM_19, A3_CSSSM_19,& 95 B1_CSSSM_19, B2_CSSSM_19, C1_CSSSM_19, C2_CSSSM_19, & 96 A1_SSSSM_19, A2_SSSSM_19, A3_SSSSM_19,& 97 B1_SSSSM_19, B2_SSSSM_19, C1_SSSSM_19, C2_SSSSM_19 98 99 ! Coefficient optiques interpole sur le nombre de niveau du modele 100 REAL, DIMENSION(klev) :: A1_ASSSM, A2_ASSSM, A3_ASSSM,& 101 B1_ASSSM, B2_ASSSM, C1_ASSSM, C2_ASSSM,& 102 A1_CSSSM, A2_CSSSM, A3_CSSSM,& 103 B1_CSSSM, B2_CSSSM, C1_CSSSM, C2_CSSSM, & 104 A1_SSSSM, A2_SSSSM, A3_SSSSM,& 105 B1_SSSSM, B2_SSSSM, C1_SSSSM, C2_SSSSM 106 85 107 REAL :: RH_tab(nbre_RH) 86 REAL :: DELTA, rh 108 REAL :: DELTA, rh, H 87 109 REAL :: tau_ae5wv_int(KLON,KLEV,las) ! Intermediate computation of epaisseur optique aerosol 88 110 REAL :: piz_ae5wv_int(KLON,KLEV,las) ! Intermediate single scattering albedo aerosol … … 119 141 REAL :: radry = 287.054 ! dry air mass constant 120 142 143 DATA presnivs_19/& 144 100426.5, 98327.6, 95346.5, 90966.8, 84776.9, & 145 76536.5, 66292.2, 54559.3, 42501.8, 31806, & 146 23787.5, 18252.7, 13996, 10320.8, 7191.1, & 147 4661.7, 2732.9, 1345.6, 388.2/ 148 149 !!ACCUMULATION MODE 150 DATA A1_ASSSM_19/ 4.373E+00, 4.361E+00, 4.331E+00, & 151 4.278E+00, 4.223E+00, 4.162E+00, & 152 4.103E+00, 4.035E+00, 3.962E+00, & 153 3.904E+00, 3.871E+00, 3.847E+00, & 154 3.824E+00, 3.780E+00, 3.646E+00, & 155 3.448E+00, 3.179E+00, 2.855E+00, 2.630E+00/ 156 DATA A2_ASSSM_19/ 2.496E+00, 2.489E+00, 2.472E+00, & 157 2.442E+00, 2.411E+00, 2.376E+00, & 158 2.342E+00, 2.303E+00, 2.261E+00, & 159 2.228E+00, 2.210E+00, 2.196E+00, & 160 2.183E+00, 2.158E+00, 2.081E+00, & 161 1.968E+00, 1.814E+00, 1.630E+00, 1.501E+00/ 162 DATA A3_ASSSM_19/-4.688E-02, -4.676E-02, -4.644E-02, & 163 -4.587E-02, -4.528E-02, -4.463E-02, & 164 -4.399E-02, -4.326E-02, -4.248E-02, & 165 -4.186E-02, -4.151E-02, -4.125E-02, & 166 -4.100E-02, -4.053E-02, -3.910E-02, & 167 -3.697E-02, -3.408E-02, -3.061E-02, -2.819E-02/ 168 DATA B1_ASSSM_19/ 1.165E-08, 1.145E-08, 1.097E-08, & 169 1.012E-08, 9.233E-09, 8.261E-09, & 170 7.297E-09, 6.201E-09, 5.026E-09, & 171 4.098E-09, 3.567E-09, 3.187E-09, & 172 2.807E-09, 2.291E-09, 2.075E-09, & 173 1.756E-09, 1.322E-09, 8.011E-10, 4.379E-10/ 174 DATA B2_ASSSM_19/ 2.193E-08, 2.192E-08, 2.187E-08, & 175 2.179E-08, 2.171E-08, 2.162E-08, & 176 2.153E-08, 2.143E-08, 2.132E-08, & 177 2.124E-08, 2.119E-08, 2.115E-08, & 178 2.112E-08, 2.106E-08, 2.100E-08, & 179 2.090E-08, 2.077E-08, 2.061E-08, 2.049E-08/ 180 DATA C1_ASSSM_19/ 7.365E-01, 7.365E-01, 7.365E-01, & 181 7.364E-01, 7.363E-01, 7.362E-01, & 182 7.361E-01, 7.359E-01, 7.358E-01, & 183 7.357E-01, 7.356E-01, 7.356E-01, & 184 7.356E-01, 7.355E-01, 7.354E-01, & 185 7.352E-01, 7.350E-01, 7.347E-01, 7.345E-01/ 186 DATA C2_ASSSM_19/ 5.833E-02, 5.835E-02, 5.841E-02, & 187 5.850E-02, 5.859E-02, 5.870E-02, & 188 5.880E-02, 5.891E-02, 5.904E-02, & 189 5.914E-02, 5.920E-02, 5.924E-02, & 190 5.928E-02, 5.934E-02, 5.944E-02, & 191 5.959E-02, 5.979E-02, 6.003E-02, 6.020E-02/ 192 !COARSE MODE 193 DATA A1_CSSSM_19/ 7.403E-01, 7.422E-01, 7.626E-01, & 194 8.019E-01, 8.270E-01, 8.527E-01, & 195 8.702E-01, 8.806E-01, 8.937E-01, & 196 9.489E-01, 1.030E+00, 1.105E+00, & 197 1.199E+00, 1.357E+00, 1.660E+00, & 198 2.540E+00, 4.421E+00, 2.151E+00, 9.518E-01/ 199 DATA A2_CSSSM_19/ 4.522E-01, 4.532E-01, 4.644E-01, & 200 4.859E-01, 4.996E-01, 5.137E-01, & 201 5.233E-01, 5.290E-01, 5.361E-01, & 202 5.655E-01, 6.085E-01, 6.483E-01, & 203 6.979E-01, 7.819E-01, 9.488E-01, & 204 1.450E+00, 2.523E+00, 1.228E+00, 5.433E-01/ 205 DATA A3_CSSSM_19/-8.516E-03, -8.535E-03, -8.744E-03, & 206 -9.148E-03, -9.406E-03, -9.668E-03, & 207 -9.848E-03, -9.955E-03, -1.009E-02, & 208 -1.064E-02, -1.145E-02, -1.219E-02, & 209 -1.312E-02, -1.470E-02, -1.783E-02, & 210 -2.724E-02, -4.740E-02, -2.306E-02, -1.021E-02/ 211 DATA B1_CSSSM_19/ 2.535E-07, 2.530E-07, 2.479E-07, & 212 2.380E-07, 2.317E-07, 2.252E-07, & 213 2.208E-07, 2.182E-07, 2.149E-07, & 214 2.051E-07, 1.912E-07, 1.784E-07, & 215 1.624E-07, 1.353E-07, 1.012E-07, & 216 6.016E-08, 2.102E-08, 0.000E+00, 0.000E+00/ 217 DATA B2_CSSSM_19/ 1.221E-07, 1.217E-07, 1.179E-07, & 218 1.104E-07, 1.056E-07, 1.008E-07, & 219 9.744E-08, 9.546E-08, 9.299E-08, & 220 8.807E-08, 8.150E-08, 7.544E-08, & 221 6.786E-08, 5.504E-08, 4.080E-08, & 222 2.960E-08, 2.300E-08, 2.030E-08, 1.997E-08/ 223 DATA C1_CSSSM_19/ 7.659E-01, 7.658E-01, 7.652E-01, & 224 7.639E-01, 7.631E-01, 7.623E-01, & 225 7.618E-01, 7.614E-01, 7.610E-01, & 226 7.598E-01, 7.581E-01, 7.566E-01, & 227 7.546E-01, 7.513E-01, 7.472E-01, & 228 7.423E-01, 7.376E-01, 7.342E-01, 7.334E-01/ 229 DATA C2_CSSSM_19/ 3.691E-02, 3.694E-02, 3.729E-02, & 230 3.796E-02, 3.839E-02, 3.883E-02, & 231 3.913E-02, 3.931E-02, 3.953E-02, & 232 4.035E-02, 4.153E-02, 4.263E-02, & 233 4.400E-02, 4.631E-02, 4.933E-02, & 234 5.331E-02, 5.734E-02, 6.053E-02, 6.128E-02/ 235 !SUPER COARSE MODE 236 DATA A1_SSSSM_19/ 2.836E-01, 2.876E-01, 2.563E-01, & 237 2.414E-01, 2.541E-01, 2.546E-01, & 238 2.572E-01, 2.638E-01, 2.781E-01, & 239 3.167E-01, 4.209E-01, 5.286E-01, & 240 6.959E-01, 9.233E-01, 1.282E+00, & 241 1.836E+00, 2.981E+00, 4.355E+00, 4.059E+00/ 242 DATA A2_SSSSM_19/ 1.608E-01, 1.651E-01, 1.577E-01, & 243 1.587E-01, 1.686E-01, 1.690E-01, & 244 1.711E-01, 1.762E-01, 1.874E-01, & 245 2.138E-01, 2.751E-01, 3.363E-01, & 246 4.279E-01, 5.519E-01, 7.421E-01, & 247 1.048E+00, 1.702E+00, 2.485E+00, 2.317E+00/ 248 DATA A3_SSSSM_19/-3.025E-03, -3.111E-03, -2.981E-03, & 249 -3.005E-03, -3.193E-03, -3.200E-03, & 250 -3.239E-03, -3.336E-03, -3.548E-03, & 251 -4.047E-03, -5.196E-03, -6.345E-03, & 252 -8.061E-03, -1.038E-02, -1.395E-02, & 253 -1.970E-02, -3.197E-02, -4.669E-02, -4.352E-02/ 254 DATA B1_SSSSM_19/ 6.759E-07, 6.246E-07, 5.542E-07, & 255 4.953E-07, 4.746E-07, 4.738E-07, & 256 4.695E-07, 4.588E-07, 4.354E-07, & 257 3.947E-07, 3.461E-07, 3.067E-07, & 258 2.646E-07, 2.095E-07, 1.481E-07, & 259 9.024E-08, 5.747E-08, 2.384E-08, 6.599E-09/ 260 DATA B2_SSSSM_19/ 5.977E-07, 5.390E-07, 4.468E-07, & 261 3.696E-07, 3.443E-07, 3.433E-07, & 262 3.380E-07, 3.249E-07, 2.962E-07, & 263 2.483E-07, 1.989E-07, 1.623E-07, & 264 1.305E-07, 9.015E-08, 6.111E-08, & 265 3.761E-08, 2.903E-08, 2.337E-08, 2.147E-08/ 266 DATA C1_SSSSM_19/ 8.120E-01, 8.084E-01, 8.016E-01, & 267 7.953E-01, 7.929E-01, 7.928E-01, & 268 7.923E-01, 7.910E-01, 7.882E-01, & 269 7.834E-01, 7.774E-01, 7.725E-01, & 270 7.673E-01, 7.604E-01, 7.529E-01, & 271 7.458E-01, 7.419E-01, 7.379E-01, 7.360E-01/ 272 DATA C2_SSSSM_19/ 2.388E-02, 2.392E-02, 2.457E-02, 2.552E-02, & 273 2.615E-02, 2.618E-02, 2.631E-02, 2.663E-02, & 274 2.735E-02, 2.875E-02, 3.113E-02, 3.330E-02, & 275 3.615E-02, 3.997E-02, 4.521E-02, 5.038E-02, & 276 5.358E-02, 5.705E-02, 5.887E-02/ 277 !********************************************************************* 278 ! 121 279 ! 122 280 ! … … 127 285 ! 128 286 DATA alpha_aers_5wv/ & 129 ! seasalt soluble CS130 0.50,0.90,1.05,1.21,1.40,2.41, &131 2.66,3.11,3.88,4.52,5.69,8.84, &132 0.51,0.92,1.07,1.23,1.42,2.45, &133 2.70,3.16,3.94,4.58,5.76,8.94, &134 0.52,0.93,1.08,1.24,1.43,2.47, &135 2.73,3.20,3.99,4.64,5.84,9.04, &136 0.52,0.93,1.09,1.25,1.44,2.50, &137 2.76,3.23,4.03,4.68,5.89,9.14, &138 0.52,0.94,1.09,1.26,1.45,2.51, &139 2.78,3.25,4.06,4.72,5.94,9.22, &140 ! seasalt soluble AS141 4.28, 7.17, 8.44, 9.85,11.60,22.44, &142 25.34,30.54,39.38,46.52,59.33,91.77, &143 3.40, 5.67, 6.69, 7.85, 9.32,19.03, &144 21.78,26.88,35.87,43.40,57.33,93.43, &145 2.48, 4.22, 5.02, 5.94, 7.11,15.29, &146 17.70,22.31,30.73,38.06,52.15,90.59, &147 1.90, 3.29, 3.94, 4.69, 5.65, 12.58, &148 14.68,18.77,26.41,33.25,46.77,85.50, &149 1.47, 2.59, 3.12, 3.74, 4.54, 10.42, &150 12.24,15.82,22.66,28.91,41.54,79.33, &151 287 ! bc soluble 152 288 7.930,7.930,7.930,7.930,7.930,7.930, & … … 192 328 193 329 DATA cg_aers_5wv/ & 194 ! seasalt soluble (CS)195 0.730,0.753,0.760,0.766,0.772,0.793, &196 0.797,0.802,0.809,0.813,0.820,0.830, &197 0.719,0.744,0.751,0.757,0.764,0.786, &198 0.791,0.796,0.803,0.808,0.815,0.826, &199 0.721,0.744,0.750,0.756,0.762,0.784, &200 0.787,0.793,0.800,0.804,0.811,0.822, &201 0.717,0.741,0.747,0.753,0.759,0.780, &202 0.784,0.789,0.795,0.800,0.806,0.817, &203 0.715,0.739,0.745,0.751,0.757,0.777, &204 0.781,0.786,0.793,0.797,0.803,0.814, &205 ! seasalt soluble (AS)206 0.698,0.722,0.729,0.736,0.743,0.765, &207 0.768,0.773,0.777,0.779,0.781,0.779, &208 0.682,0.710,0.719,0.727,0.735,0.764, &209 0.769,0.776,0.783,0.787,0.791,0.792, &210 0.658,0.691,0.701,0.710,0.720,0.756, &211 0.763,0.771,0.782,0.788,0.795,0.801, &212 0.632,0.668,0.679,0.690,0.701,0.743, &213 0.750,0.762,0.775,0.783,0.792,0.804, &214 0.605,0.644,0.656,0.669,0.681,0.729, &215 0.737,0.750,0.765,0.775,0.787,0.803, &216 330 ! bc soluble 217 331 .651, .651, .651, .651, .651, .651, & … … 258 372 ! 259 373 DATA piz_aers_5wv/& 260 ! seasalt soluble (CS)261 1.000,1.000,1.000,1.000,1.000,1.000, &262 1.000,1.000,1.000,1.000,1.000,1.000, &263 1.000,1.000,1.000,1.000,1.000,1.000, &264 1.000,1.000,1.000,1.000,1.000,1.000, &265 1.000,1.000,1.000,1.000,1.000,1.000, &266 1.000,1.000,1.000,1.000,1.000,1.000, &267 1.000,1.000,1.000,1.000,1.000,1.000, &268 1.000,1.000,1.000,1.000,1.000,1.000, &269 1.000,1.000,1.000,1.000,1.000,1.000, &270 1.000,1.000,1.000,1.000,1.000,1.000, &271 ! seasalt soluble (AS)272 1.000,1.000,1.000,1.000,1.000,1.000, &273 1.000,1.000,1.000,1.000,1.000,1.000, &274 1.000,1.000,1.000,1.000,1.000,1.000, &275 1.000,1.000,1.000,1.000,1.000,1.000, &276 1.000,1.000,1.000,1.000,1.000,1.000, &277 1.000,1.000,1.000,1.000,1.000,1.000, &278 1.000,1.000,1.000,1.000,1.000,1.000, &279 1.000,1.000,1.000,1.000,1.000,1.000, &280 1.000,1.000,1.000,1.000,1.000,1.000, &281 1.000,1.000,1.000,1.000,1.000,1.000, &282 374 ! bc soluble 283 375 .445, .445, .445, .445, .445, .445, & … … 322 414 0.972, 0.963, 0.943, 0.923, 0.897/ 323 415 416 ! Interpolation des coefficients optiques de 19 niveaux vers le nombre des niveaux du model 417 IF (firstcall) THEN 418 firstcall=.FALSE. 419 !Accumulation mode 420 CALL pres2lev(A1_ASSSM_19, A1_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 421 CALL pres2lev(A2_ASSSM_19, A2_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 422 CALL pres2lev(A3_ASSSM_19, A3_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 423 CALL pres2lev(B1_ASSSM_19, B1_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 424 CALL pres2lev(B2_ASSSM_19, B2_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 425 CALL pres2lev(C1_ASSSM_19, C1_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 426 CALL pres2lev(C2_ASSSM_19, C2_ASSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 427 !Coarse mode 428 CALL pres2lev(A1_CSSSM_19, A1_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 429 CALL pres2lev(A2_CSSSM_19, A2_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 430 CALL pres2lev(A3_CSSSM_19, A3_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 431 CALL pres2lev(B1_CSSSM_19, B1_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 432 CALL pres2lev(B2_CSSSM_19, B2_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 433 CALL pres2lev(C1_CSSSM_19, C1_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 434 CALL pres2lev(C2_CSSSM_19, C2_CSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 435 !Super coarse mode 436 CALL pres2lev(A1_SSSSM_19, A1_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 437 CALL pres2lev(A2_SSSSM_19, A2_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 438 CALL pres2lev(A3_SSSSM_19, A3_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 439 CALL pres2lev(B1_SSSSM_19, B1_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 440 CALL pres2lev(B2_SSSSM_19, B2_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 441 CALL pres2lev(C1_SSSSM_19, C1_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 442 CALL pres2lev(C2_SSSSM_19, C2_SSSSM, nb_level, klev, presnivs_19, presnivs, 1, 1, .FALSE.) 443 444 END IF ! firstcall 445 446 324 447 ! Initialisations 325 448 ai(:) = 0. … … 344 467 345 468 IF (flag_aerosol .EQ. 1) THEN 346 nb_aer = 1469 nb_aer = 2 347 470 ALLOCATE (aerosol_name(nb_aer)) 348 471 aerosol_name(1) = id_ASSO4M 472 aerosol_name(2) = id_CSSO4M 349 473 ELSEIF (flag_aerosol .EQ. 2) THEN 350 474 nb_aer = 2 … … 368 492 aerosol_name(1) = id_CIDUSTM 369 493 ELSEIF (flag_aerosol .EQ. 6) THEN 370 nb_aer = 9494 nb_aer = 10 371 495 ALLOCATE (aerosol_name(nb_aer)) 372 496 aerosol_name(1) = id_ASSO4M … … 379 503 aerosol_name(8) = id_ASSSM 380 504 aerosol_name(9) = id_CIDUSTM 505 aerosol_name(10) = id_CSSO4M 381 506 ENDIF 382 507 … … 398 523 399 524 fac=1.0 400 IF (aerosol_name(m).EQ.id_ SSSSM) THEN ! for now525 IF (aerosol_name(m).EQ.id_ASBCM) THEN 401 526 soluble=.TRUE. 402 527 spsol=1 528 spss=0 529 ELSEIF (aerosol_name(m).EQ.id_ASPOMM) THEN 530 soluble=.TRUE. 531 spsol=2 532 spss=0 533 ELSEIF ((aerosol_name(m).EQ.id_ASSO4M) .OR. (aerosol_name(m).EQ.id_CSSO4M)) THEN 534 soluble=.TRUE. 535 spsol=3 536 spss=0 537 fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD 538 ELSEIF (aerosol_name(m).EQ.id_SSSSM) THEN 539 soluble=.TRUE. 540 spsol=5 541 spss=3 403 542 ELSEIF (aerosol_name(m).EQ.id_CSSSM) THEN 404 543 soluble=.TRUE. 405 spsol=1 544 spsol=6 545 spss=2 406 546 ELSEIF (aerosol_name(m).EQ.id_ASSSM) THEN 407 547 soluble=.TRUE. 408 spsol=2 409 ELSEIF (aerosol_name(m).EQ.id_ASBCM) THEN 410 soluble=.TRUE. 411 spsol=3 412 ELSEIF (aerosol_name(m).EQ.id_ASPOMM) THEN 413 soluble=.TRUE. 414 spsol=4 415 ELSEIF ((aerosol_name(m).EQ.id_ASSO4M) .OR. (aerosol_name(m).EQ.id_CSSO4M)) THEN 416 soluble=.TRUE. 417 spsol=5 418 fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD 419 ELSEIF (aerosol_name(m).EQ.id_CIDUSTM) THEN 548 spsol=7 549 spss=1 550 ELSEIF (aerosol_name(m).EQ.id_CIDUSTM) THEN 420 551 soluble=.FALSE. 421 552 spinsol=1 553 spss=0 422 554 ELSEIF (aerosol_name(m).EQ.id_AIBCM) THEN 423 555 soluble=.FALSE. 424 556 spinsol=2 557 spss=0 425 558 ELSEIF (aerosol_name(m).EQ.id_AIPOMM) THEN 426 559 soluble=.FALSE. 427 560 spinsol=3 561 spss=0 428 562 ELSE 429 563 CYCLE … … 447 581 448 582 IF (soluble) THEN 449 tau_ae5wv_int(i,k,la) = & 450 alpha_aers_5wv(RH_num,la,spsol)+DELTA* & 451 (alpha_aers_5wv(RH_num+1,la,spsol) - & 452 alpha_aers_5wv(RH_num,la,spsol)) 453 454 piz_ae5wv_int(i,k,la) = & 455 piz_aers_5wv(RH_num,la,spsol)+DELTA* & 456 (piz_aers_5wv(RH_num+1,la,spsol) - & 457 piz_aers_5wv(RH_num,la,spsol)) 458 459 cg_ae5wv_int(i,k,la) = & 460 cg_aers_5wv(RH_num,la,spsol)+DELTA* & 461 (cg_aers_5wv(RH_num+1,la,spsol) - & 462 cg_aers_5wv(RH_num,la,spsol)) 463 583 584 585 IF((la.EQ.2).AND.(spss.NE.0)) THEN !la=2 corresponds to 550 nm 586 H=rh/100 587 IF (spss.EQ.1) THEN !accumulation mode 588 tau_ae5wv_int(i,k,la)=A1_ASSSM(k)+A2_ASSSM(k)*H+A3_ASSSM(k)/(H-1.05) 589 piz_ae5wv_int(i,k,la)=1-B1_ASSSM(k)-B2_ASSSM(k)*H 590 cg_ae5wv_int(i,k,la)=C1_ASSSM(k)+C2_ASSSM(k)*H 591 ENDIF 592 IF (spss.EQ.2) THEN !coarse mode 593 tau_ae5wv_int(i,k,la)=A1_CSSSM(k)+A2_CSSSM(k)*H+A3_CSSSM(k)/(H-1.05) 594 piz_ae5wv_int(i,k,la)=1-B1_CSSSM(k)-B2_CSSSM(k)*H 595 cg_ae5wv_int(i,k,la)=C1_CSSSM(k)+C2_CSSSM(k)*H 596 ENDIF 597 IF (spss.EQ.3) THEN !super coarse mode 598 tau_ae5wv_int(i,k,la)=A1_SSSSM(k)+A2_SSSSM(k)*H+A3_SSSSM(k)/(H-1.05) 599 piz_ae5wv_int(i,k,la)=1-B1_SSSSM(k)-B2_SSSSM(k)*H 600 cg_ae5wv_int(i,k,la)=C1_SSSSM(k)+C2_SSSSM(k)*H 601 ENDIF 602 ELSE 603 604 tau_ae5wv_int(i,k,la) = & 605 alpha_aers_5wv(RH_num,la,spsol)+DELTA* & 606 (alpha_aers_5wv(RH_num+1,la,spsol) - & 607 alpha_aers_5wv(RH_num,la,spsol)) 608 609 piz_ae5wv_int(i,k,la) = & 610 piz_aers_5wv(RH_num,la,spsol)+DELTA* & 611 (piz_aers_5wv(RH_num+1,la,spsol) - & 612 piz_aers_5wv(RH_num,la,spsol)) 613 614 cg_ae5wv_int(i,k,la) = & 615 cg_aers_5wv(RH_num,la,spsol)+DELTA* & 616 (cg_aers_5wv(RH_num+1,la,spsol) - & 617 cg_aers_5wv(RH_num,la,spsol)) 618 ENDIF 619 464 620 tau3d(i,k) = & 465 621 mass_temp(i,k,spsol)*1000.*zdp1(i,k)*tau_ae5wv_int(i,k,la)*delt*fac … … 471 627 472 628 tau3d(i,k) = & 473 mass_temp(i,k, 5+spinsol)*1000.*zdp1(i,k)*tau_ae5wv_int(i,k,la)*delt*fac629 mass_temp(i,k,7+spinsol)*1000.*zdp1(i,k)*tau_ae5wv_int(i,k,la)*delt*fac 474 630 ENDIF 475 631 -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F
r1220 r1221 2665 2665 & CALL readaerosol_optic( 2666 2666 & debut, new_aod, flag_aerosol, jD_cur-jD_ref, pdtphys, 2667 & pplay, paprs, t_seri, rhcl, 2667 & pplay, paprs, t_seri, rhcl, presnivs, 2668 2668 & mass_solu_aero, mass_solu_aero_pi, 2669 2669 & tau_aero, piz_aero, cg_aero, -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/readaerosol_optic.F90
r1216 r1221 2 2 ! 3 3 SUBROUTINE readaerosol_optic(debut, new_aod, flag_aerosol, rjourvrai, pdtphys, & 4 pplay, paprs, t_seri, rhcl, &4 pplay, paprs, t_seri, rhcl, presnivs, & 5 5 mass_solu_aero, mass_solu_aero_pi, & 6 6 tau_aero, piz_aero, cg_aero, & … … 27 27 REAL, DIMENSION(klon,klev), INTENT(IN) :: t_seri 28 28 REAL, DIMENSION(klon,klev), INTENT(IN) :: rhcl ! humidite relative ciel clair 29 REAL, DIMENSION(klev), INTENT(IN) :: presnivs 29 30 30 31 ! Output arguments … … 73 74 flag_aerosol .EQ. 6 ) THEN 74 75 75 CALL readaerosol_interp( 5, rjourvrai, debut, pplay, paprs, t_seri, sulfate, sulfate_pi)76 CALL readaerosol_interp(id_ASSO4M, rjourvrai, debut, pplay, paprs, t_seri, sulfate, sulfate_pi) 76 77 ELSE 77 78 sulfate(:,:) = 0. ; sulfate_pi(:,:) = 0. … … 83 84 84 85 ! Get bc aerosol distribution 85 CALL readaerosol_interp( 3, rjourvrai, debut, pplay, paprs, t_seri, bcsol, bcsol_pi )86 CALL readaerosol_interp( 7, rjourvrai, debut, pplay, paprs, t_seri, bcins, bcins_pi )86 CALL readaerosol_interp(id_ASBCM, rjourvrai, debut, pplay, paprs, t_seri, bcsol, bcsol_pi ) 87 CALL readaerosol_interp(id_AIBCM, rjourvrai, debut, pplay, paprs, t_seri, bcins, bcins_pi ) 87 88 ELSE 88 89 bcsol(:,:) = 0. ; bcsol_pi(:,:) = 0. … … 95 96 flag_aerosol .EQ. 6 ) THEN 96 97 97 CALL readaerosol_interp( 4, rjourvrai, debut, pplay, paprs, t_seri, pomsol, pomsol_pi)98 CALL readaerosol_interp( 8, rjourvrai, debut, pplay, paprs, t_seri, pomins, pomins_pi)98 CALL readaerosol_interp(id_ASPOMM, rjourvrai, debut, pplay, paprs, t_seri, pomsol, pomsol_pi) 99 CALL readaerosol_interp(id_AIPOMM, rjourvrai, debut, pplay, paprs, t_seri, pomins, pomins_pi) 99 100 ELSE 100 101 pomsol(:,:) = 0. ; pomsol_pi(:,:) = 0. … … 107 108 flag_aerosol .EQ. 6 ) THEN 108 109 109 CALL readaerosol_interp(1 ,rjourvrai, debut, pplay, paprs, t_seri, sscoarse,sscoarse_pi) 110 CALL readaerosol_interp(2 ,rjourvrai, debut, pplay, paprs, t_seri, ssacu, ssacu_pi) 110 CALL readaerosol_interp(id_SSSSM ,rjourvrai, debut, pplay, paprs, t_seri, sssupco, sssupco_pi) 111 CALL readaerosol_interp(id_CSSSM ,rjourvrai, debut, pplay, paprs, t_seri, sscoarse,sscoarse_pi) 112 CALL readaerosol_interp(id_ASSSM ,rjourvrai, debut, pplay, paprs, t_seri, ssacu, ssacu_pi) 111 113 112 114 ELSE 113 115 sscoarse(:,:) = 0. ; sscoarse_pi(:,:) = 0. 114 ssacu(:,:) = 0. ; ssacu_pi(:,:) = 0. 116 ssacu(:,:) = 0. ; ssacu_pi(:,:) = 0. 117 sssupco(:,:) = 0. ; sssupco_pi = 0. 115 118 ENDIF 116 119 … … 119 122 flag_aerosol .EQ. 6 ) THEN 120 123 121 CALL readaerosol_interp( 6, rjourvrai, debut, pplay, paprs, t_seri, cidust, cidust_pi)124 CALL readaerosol_interp(id_CIDUSTM, rjourvrai, debut, pplay, paprs, t_seri, cidust, cidust_pi) 122 125 123 126 ELSE … … 128 131 ! Store all aerosols in one variable 129 132 ! 130 m_allaer(:,:,1) = sscoarse(:,:) ! SSSSM || CSSSM 131 m_allaer(:,:,2) = ssacu(:,:) ! ASSSM 132 m_allaer(:,:,3) = bcsol(:,:) ! ASBCM 133 m_allaer(:,:,4) = pomsol(:,:) ! ASPOMM 134 m_allaer(:,:,5) = sulfate(:,:) ! ASSO4M || CSSO4M 135 m_allaer(:,:,6) = cidust(:,:) ! CIDUSTM 136 m_allaer(:,:,7) = bcins(:,:) ! AIBCM 137 m_allaer(:,:,8) = pomins(:,:) ! AIPOMM 133 m_allaer(:,:,id_ASBCM) = bcsol(:,:) ! ASBCM 134 m_allaer(:,:,id_ASPOMM) = pomsol(:,:) ! ASPOMM 135 m_allaer(:,:,id_ASSO4M) = sulfate(:,:) ! ASSO4M (= SO4) 136 m_allaer(:,:,id_CSSO4M) = 0. ! CSSO4M 137 m_allaer(:,:,id_SSSSM) = sssupco(:,:) ! SSSSM 138 m_allaer(:,:,id_CSSSM) = sscoarse(:,:) ! CSSSM 139 m_allaer(:,:,id_ASSSM) = ssacu(:,:) ! ASSSM 140 m_allaer(:,:,id_CIDUSTM)= cidust(:,:) ! CIDUSTM 141 m_allaer(:,:,id_AIBCM) = bcins(:,:) ! AIBCM 142 m_allaer(:,:,id_AIPOMM) = pomins(:,:) ! AIPOMM 138 143 139 144 ! … … 141 146 ! 142 147 mass_solu_aero(:,:) = sulfate(:,:) + bcsol(:,:) + pomsol(:,:) + & 143 sscoarse(:,:) + ssacu(:,:)148 sscoarse(:,:) + ssacu(:,:) + sssupco(:,:) 144 149 mass_solu_aero_pi(:,:) = sulfate_pi(:,:) + bcsol_pi(:,:) + pomsol_pi(:,:) + & 145 sscoarse_pi(:,:) + ssacu_pi(:,:) 150 sscoarse_pi(:,:) + ssacu_pi(:,:) + sssupco_pi(:,:) 146 151 147 152 !**************************************************************************************** … … 162 167 tau_aero, piz_aero, cg_aero, & 163 168 fractnat_allaer, flag_aerosol, & 164 pplay, t_seri )169 pplay, t_seri, presnivs) 165 170 166 171 ! aeropt_5wv only for validation and diagnostics. … … 169 174 pdtphys, rhcl, aerindex, & 170 175 flag_aerosol, pplay, t_seri, & 171 tausum_aero, tau3d_aero )176 tausum_aero, tau3d_aero, presnivs) 172 177 ELSE 173 178 174 179 CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl, & 175 tau_aero(:,:, 5,:), piz_aero(:,:,5,:), cg_aero(:,:,5,:), aerindex)180 tau_aero(:,:,id_ASSO4M,:), piz_aero(:,:,id_ASSO4M,:), cg_aero(:,:,id_ASSO4M,:), aerindex) 176 181 177 182 END IF
Note: See TracChangeset
for help on using the changeset viewer.