- Timestamp:
- Oct 14, 2016, 2:57:28 PM (8 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 2642-2664
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/libf/phylmd/rrtm/aeropt_6bands_rrtm.F90
r2641 r2669 3 3 ! 4 4 SUBROUTINE AEROPT_6BANDS_RRTM ( & 5 pdel, m_allaer, delt,RHcl, &5 pdel, m_allaer, RHcl, & 6 6 tau_allaer, piz_allaer, & 7 7 cg_allaer, m_allaer_pi, & 8 flag_aerosol, zrho )8 flag_aerosol, flag_bc_internal_mixture, zrho ) 9 9 10 10 USE dimphy … … 28 28 ! 29 29 REAL, DIMENSION(klon,klev), INTENT(in) :: pdel 30 REAL, INTENT(in) :: delt31 30 REAL, DIMENSION(klon,klev,naero_tot), INTENT(in) :: m_allaer 32 31 REAL, DIMENSION(klon,klev,naero_tot), INTENT(in) :: m_allaer_pi 33 32 REAL, DIMENSION(klon,klev), INTENT(in) :: RHcl ! humidite relative ciel clair 34 33 INTEGER, INTENT(in) :: flag_aerosol 34 LOGICAL, INTENT(in) :: flag_bc_internal_mixture 35 35 REAL, DIMENSION(klon,klev), INTENT(in) :: zrho 36 36 ! … … 71 71 72 72 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: tau_ae 73 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: tau_ae_pi74 73 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: piz_ae 75 74 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: cg_ae 75 76 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: tau_ae_pi 77 REAL, DIMENSION(klon,klev,id_ASBCM_phy:id_ASBCM_phy,nbands_sw_rrtm) :: piz_ae_pi 78 REAL, DIMENSION(klon,klev,id_ASBCM_phy:id_ASBCM_phy,nbands_sw_rrtm) :: cg_ae_pi 76 79 ! 77 80 ! Proprietes optiques … … 83 86 REAL:: piz_aers_6bands(nbre_RH,nbands_sw_rrtm,naero_soluble) !-- unit 84 87 REAL:: piz_aeri_6bands(nbands_sw_rrtm,naero_insoluble) !-- unit 85 86 INTEGER :: id 87 REAL :: tmp_var, tmp_var_pi 88 ! 89 ! BC internal mixture 90 ! 91 INTEGER, PARAMETER :: nbclassbc = 5 ! Added by Rong Wang/OB for the 5 fractions 92 ! of BC in the soluble mode: 93 ! bc_content/0.001, 0.01, 0.02, 0.05, 0.1/ 94 ! for Maxwell-Garnet internal mixture 95 ! Detailed theory can be found in R. Wang Estimation of global black carbon direct 96 ! radiative forcing and its uncertainty constrained by observations. J. 97 ! Geophys. Res. Atmos. Added by R. Wang and OB 98 REAL :: alpha_MG_6bands(nbre_RH,nbands_sw_rrtm,nbclassbc) 99 REAL :: cg_MG_6bands(nbre_RH,nbands_sw_rrtm,nbclassbc) 100 REAL :: piz_MG_6bands(nbre_RH,nbands_sw_rrtm,nbclassbc) 101 ! 102 INTEGER :: id, classbc, classbc_pi 103 REAL :: tmp_var, tmp_var_pi, BC_massfra, BC_massfra_pi 104 105 ! 106 REAL, PARAMETER :: tau_min = 1.e-15 107 ! REAL, PARAMETER :: tau_min = 1.e-7 88 108 89 109 !*************************************************************************** … … 268 288 0.973, 0.973, 0.972, 0.940, 0.816, 0.663 / 269 289 290 ! Added by R. Wang (July 31 2016) 291 ! properties for BC assuming Maxwell-Garnett rule and internal mixture 292 293 DATA alpha_MG_6bands/ & 294 ! bc content = 0.001 295 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 296 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 297 5.900, 5.900, 5.900, 5.900, 5.900, 6.502, 7.151, 8.496, 9.818, 9.965,10.124,11.564, & 298 4.284, 4.284, 4.284, 4.284, 4.284, 4.721, 5.193, 6.169, 7.129, 7.236, 7.352, 8.397, & 299 2.163, 2.163, 2.163, 2.163, 2.163, 2.384, 2.622, 3.115, 3.600, 3.654, 3.712, 4.240, & 300 0.966, 0.966, 0.966, 0.966, 0.966, 1.065, 1.171, 1.392, 1.608, 1.632, 1.658, 1.894, & 301 ! bc content = 0.01 302 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 303 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 304 5.900, 5.900, 5.900, 5.900, 5.900, 6.502, 7.151, 8.496, 9.818, 9.965,10.124,11.564, & 305 4.284, 4.284, 4.284, 4.284, 4.284, 4.721, 5.193, 6.169, 7.129, 7.236, 7.352, 8.397, & 306 2.163, 2.163, 2.163, 2.163, 2.163, 2.384, 2.622, 3.115, 3.600, 3.654, 3.712, 4.240, & 307 0.966, 0.966, 0.966, 0.966, 0.966, 1.065, 1.171, 1.392, 1.608, 1.632, 1.658, 1.894, & 308 ! bc content = 0.02 309 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 310 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 311 5.900, 5.900, 5.900, 5.900, 5.900, 6.502, 7.151, 8.496, 9.818, 9.965,10.124,11.564, & 312 4.284, 4.284, 4.284, 4.284, 4.284, 4.721, 5.193, 6.169, 7.129, 7.236, 7.352, 8.397, & 313 2.163, 2.163, 2.163, 2.163, 2.163, 2.384, 2.622, 3.115, 3.600, 3.654, 3.712, 4.240, & 314 0.966, 0.966, 0.966, 0.966, 0.966, 1.065, 1.171, 1.392, 1.608, 1.632, 1.658, 1.894, & 315 ! bc content = 0.05 316 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 317 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 318 5.900, 5.900, 5.900, 5.900, 5.900, 6.502, 7.151, 8.496, 9.818, 9.965,10.124,11.564, & 319 4.284, 4.284, 4.284, 4.284, 4.284, 4.721, 5.193, 6.169, 7.129, 7.236, 7.352, 8.397, & 320 2.163, 2.163, 2.163, 2.163, 2.163, 2.384, 2.622, 3.115, 3.600, 3.654, 3.712, 4.240, & 321 0.966, 0.966, 0.966, 0.966, 0.966, 1.065, 1.171, 1.392, 1.608, 1.632, 1.658, 1.894, & 322 ! bc content = 0.10 323 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 324 6.497, 6.497, 6.497, 6.497, 6.497, 7.160, 7.875, 9.356,10.811,10.974,11.149,12.734, & 325 5.900, 5.900, 5.900, 5.900, 5.900, 6.502, 7.151, 8.496, 9.818, 9.965,10.124,11.564, & 326 4.284, 4.284, 4.284, 4.284, 4.284, 4.721, 5.193, 6.169, 7.129, 7.236, 7.352, 8.397, & 327 2.163, 2.163, 2.163, 2.163, 2.163, 2.384, 2.622, 3.115, 3.600, 3.654, 3.712, 4.240, & 328 0.966, 0.966, 0.966, 0.966, 0.966, 1.065, 1.171, 1.392, 1.608, 1.632, 1.658, 1.894 / 329 330 DATA cg_MG_6bands/ & 331 ! bc content = 0.001 332 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 333 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 334 0.643, 0.643, 0.643, 0.654, 0.662, 0.670, 0.677, 0.688, 0.698, 0.704, 0.707, 0.715, & 335 0.513, 0.513, 0.513, 0.522, 0.530, 0.536, 0.542, 0.552, 0.560, 0.565, 0.568, 0.575, & 336 0.321, 0.321, 0.321, 0.323, 0.325, 0.327, 0.328, 0.331, 0.333, 0.334, 0.335, 0.337, & 337 0.153, 0.153, 0.153, 0.149, 0.145, 0.142, 0.139, 0.135, 0.130, 0.128, 0.127, 0.123, & 338 ! bc content = 0.01 339 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 340 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 341 0.643, 0.643, 0.643, 0.654, 0.662, 0.670, 0.677, 0.688, 0.698, 0.704, 0.707, 0.715, & 342 0.513, 0.513, 0.513, 0.522, 0.530, 0.536, 0.542, 0.552, 0.560, 0.565, 0.568, 0.575, & 343 0.321, 0.321, 0.321, 0.323, 0.325, 0.327, 0.328, 0.331, 0.333, 0.334, 0.335, 0.337, & 344 0.153, 0.153, 0.153, 0.149, 0.145, 0.142, 0.139, 0.135, 0.130, 0.128, 0.127, 0.123, & 345 ! bc content = 0.02 346 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 347 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 348 0.643, 0.643, 0.643, 0.654, 0.662, 0.670, 0.677, 0.688, 0.698, 0.704, 0.707, 0.715, & 349 0.513, 0.513, 0.513, 0.522, 0.530, 0.536, 0.542, 0.552, 0.560, 0.565, 0.568, 0.575, & 350 0.321, 0.321, 0.321, 0.323, 0.325, 0.327, 0.328, 0.331, 0.333, 0.334, 0.335, 0.337, & 351 0.153, 0.153, 0.153, 0.149, 0.145, 0.142, 0.139, 0.135, 0.130, 0.128, 0.127, 0.123, & 352 ! bc content = 0.05 353 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 354 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 355 0.643, 0.643, 0.643, 0.654, 0.662, 0.670, 0.677, 0.688, 0.698, 0.704, 0.707, 0.715, & 356 0.513, 0.513, 0.513, 0.522, 0.530, 0.536, 0.542, 0.552, 0.560, 0.565, 0.568, 0.575, & 357 0.321, 0.321, 0.321, 0.323, 0.325, 0.327, 0.328, 0.331, 0.333, 0.334, 0.335, 0.337, & 358 0.153, 0.153, 0.153, 0.149, 0.145, 0.142, 0.139, 0.135, 0.130, 0.128, 0.127, 0.123, & 359 ! bc content = 0.10 360 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 361 0.721, 0.721, 0.721, 0.729, 0.735, 0.741, 0.746, 0.754, 0.762, 0.766, 0.769, 0.775, & 362 0.643, 0.643, 0.643, 0.654, 0.662, 0.670, 0.677, 0.688, 0.698, 0.704, 0.707, 0.715, & 363 0.513, 0.513, 0.513, 0.522, 0.530, 0.536, 0.542, 0.552, 0.560, 0.565, 0.568, 0.575, & 364 0.321, 0.321, 0.321, 0.323, 0.325, 0.327, 0.328, 0.331, 0.333, 0.334, 0.335, 0.337, & 365 0.153, 0.153, 0.153, 0.149, 0.145, 0.142, 0.139, 0.135, 0.130, 0.128, 0.127, 0.123 / 366 367 DATA piz_MG_6bands/ & 368 ! bc content = 0.001 369 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 370 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 371 0.445, 0.445, 0.445, 0.445, 0.445, 0.521, 0.583, 0.679, 0.741, 0.747, 0.753, 0.798, & 372 0.394, 0.394, 0.394, 0.394, 0.394, 0.477, 0.545, 0.649, 0.718, 0.724, 0.730, 0.779, & 373 0.267, 0.267, 0.267, 0.267, 0.267, 0.365, 0.446, 0.571, 0.652, 0.660, 0.667, 0.725, & 374 0.121, 0.121, 0.121, 0.121, 0.121, 0.139, 0.155, 0.178, 0.193, 0.195, 0.196, 0.207, & 375 ! bc content = 0.01 376 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 377 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 378 0.445, 0.445, 0.445, 0.445, 0.445, 0.521, 0.583, 0.679, 0.741, 0.747, 0.753, 0.798, & 379 0.394, 0.394, 0.394, 0.394, 0.394, 0.477, 0.545, 0.649, 0.718, 0.724, 0.730, 0.779, & 380 0.267, 0.267, 0.267, 0.267, 0.267, 0.365, 0.446, 0.571, 0.652, 0.660, 0.667, 0.725, & 381 0.121, 0.121, 0.121, 0.121, 0.121, 0.139, 0.155, 0.178, 0.193, 0.195, 0.196, 0.207, & 382 ! bc content = 0.02 383 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 384 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 385 0.445, 0.445, 0.445, 0.445, 0.445, 0.521, 0.583, 0.679, 0.741, 0.747, 0.753, 0.798, & 386 0.394, 0.394, 0.394, 0.394, 0.394, 0.477, 0.545, 0.649, 0.718, 0.724, 0.730, 0.779, & 387 0.267, 0.267, 0.267, 0.267, 0.267, 0.365, 0.446, 0.571, 0.652, 0.660, 0.667, 0.725, & 388 0.121, 0.121, 0.121, 0.121, 0.121, 0.139, 0.155, 0.178, 0.193, 0.195, 0.196, 0.207, & 389 ! bc content = 0.05 390 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 391 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 392 0.445, 0.445, 0.445, 0.445, 0.445, 0.521, 0.583, 0.679, 0.741, 0.747, 0.753, 0.798, & 393 0.394, 0.394, 0.394, 0.394, 0.394, 0.477, 0.545, 0.649, 0.718, 0.724, 0.730, 0.779, & 394 0.267, 0.267, 0.267, 0.267, 0.267, 0.365, 0.446, 0.571, 0.652, 0.660, 0.667, 0.725, & 395 0.121, 0.121, 0.121, 0.121, 0.121, 0.139, 0.155, 0.178, 0.193, 0.195, 0.196, 0.207, & 396 ! bc content = 0.10 397 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 398 0.460, 0.460, 0.460, 0.460, 0.460, 0.534, 0.594, 0.688, 0.748, 0.754, 0.760, 0.803, & 399 0.445, 0.445, 0.445, 0.445, 0.445, 0.521, 0.583, 0.679, 0.741, 0.747, 0.753, 0.798, & 400 0.394, 0.394, 0.394, 0.394, 0.394, 0.477, 0.545, 0.649, 0.718, 0.724, 0.730, 0.779, & 401 0.267, 0.267, 0.267, 0.267, 0.267, 0.365, 0.446, 0.571, 0.652, 0.660, 0.667, 0.725, & 402 0.121, 0.121, 0.121, 0.121, 0.121, 0.139, 0.155, 0.178, 0.193, 0.195, 0.196, 0.207 / 403 270 404 !----BEGINNING OF CALCULATIONS 271 405 … … 342 476 343 477 tau_ae(:,:,:,:)=0. 344 tau_ae_pi(:,:,:,:)=0.345 478 piz_ae(:,:,:,:)=0. 346 479 cg_ae(:,:,:,:)=0. 480 481 tau_ae_pi(:,:,:,:)=0. 482 piz_ae_pi(:,:,:,:)=0. 483 cg_ae_pi(:,:,:,:)=0. 347 484 348 485 DO m=1,nb_aer ! tau is only computed for each mass … … 357 494 soluble=.TRUE. 358 495 spsol=3 359 fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD496 fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for AOD 360 497 ELSEIF (aerosol_name(m).EQ.id_CSSO4M_phy) THEN 361 498 soluble=.TRUE. 362 499 spsol=4 363 fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for OD500 fac=1.375 ! (NH4)2-SO4/SO4 132/96 mass conversion factor for AOD 364 501 ELSEIF (aerosol_name(m).EQ.id_SSSSM_phy) THEN 365 502 soluble=.TRUE. … … 384 521 ENDIF 385 522 523 !--shortname for aerosol index 386 524 id=aerosol_name(m) 387 525 388 526 IF (soluble) THEN 389 527 390 DO k=1, klev 391 DO i=1, klon 392 tmp_var=m_allaer(i,k,spsol)/1.e6*zdh(i,k)*fac 393 tmp_var_pi=m_allaer_pi(i,k,spsol)/1.e6*zdh(i,k)*fac 394 395 DO inu=1,NSW 396 397 tau_ae2b_int= alpha_aers_6bands(RH_num(i,k),inu,spsol)+ & 398 delta(i,k)* (alpha_aers_6bands(RH_num(i,k)+1,inu,spsol) - & 399 alpha_aers_6bands(RH_num(i,k),inu,spsol)) 528 !--here we treat the special case of soluble BC internal mixture with Maxwell-Garnett rule 529 IF (spsol.EQ.1 .AND. flag_bc_internal_mixture) THEN 530 531 DO k=1, klev 532 DO i=1, klon 533 534 tmp_var=m_allaer(i,k,spsol)/1.e6*zdh(i,k)*fac 535 tmp_var_pi=m_allaer_pi(i,k,spsol)/1.e6*zdh(i,k)*fac 536 537 ! Calculate the dry BC/(BC+SUL) mass ratio for all (natural+anthropogenic) aerosols 538 BC_massfra = m_allaer(i,k,id_ASBCM_phy)/(m_allaer(i,k,id_ASBCM_phy)+m_allaer(i,k,id_ASSO4M_phy)) 539 540 IF (BC_massfra.GE.0.10) THEN 541 classbc = 5 542 ELSEIF (BC_massfra.GE.0.05) THEN 543 classbc = 4 544 ELSEIF (BC_massfra.GE.0.02) THEN 545 classbc = 3 546 ELSEIF (BC_massfra.GE.0.01) THEN 547 classbc = 2 548 ELSE 549 classbc = 1 550 ENDIF 551 552 ! Calculate the dry BC/(BC+SUL) mass ratio for natural aerosols 553 BC_massfra_pi = m_allaer_pi(i,k,id_ASBCM_phy)/(m_allaer_pi(i,k,id_ASBCM_phy)+m_allaer_pi(i,k,id_ASSO4M_phy)) 554 555 IF (BC_massfra_pi.GE.0.10) THEN 556 classbc_pi = 5 557 ELSEIF (BC_massfra_pi.GE.0.05) THEN 558 classbc_pi = 4 559 ELSEIF (BC_massfra_pi.GE.0.02) THEN 560 classbc_pi = 3 561 ELSEIF (BC_massfra_pi.GE.0.01) THEN 562 classbc_pi = 2 563 ELSE 564 classbc_pi = 1 565 ENDIF 566 567 DO inu=1,NSW 568 569 !--all aerosols 570 tau_ae2b_int= alpha_MG_6bands(RH_num(i,k),inu,classbc)+ & 571 delta(i,k)* (alpha_MG_6bands(RH_num(i,k)+1,inu,classbc) - & 572 alpha_MG_6bands(RH_num(i,k),inu,classbc)) 400 573 401 piz_ae2b_int = piz_aers_6bands(RH_num(i,k),inu,spsol) + &402 delta(i,k)* (piz_aers_6bands(RH_num(i,k)+1,inu,spsol) - &403 piz_aers_6bands(RH_num(i,k),inu,spsol))574 piz_ae2b_int = piz_MG_6bands(RH_num(i,k),inu,classbc) + & 575 delta(i,k)* (piz_MG_6bands(RH_num(i,k)+1,inu,classbc) - & 576 piz_MG_6bands(RH_num(i,k),inu,classbc)) 404 577 405 cg_ae2b_int = cg_aers_6bands(RH_num(i,k),inu,spsol) + & 406 delta(i,k)* (cg_aers_6bands(RH_num(i,k)+1,inu,spsol) - & 407 cg_aers_6bands(RH_num(i,k),inu,spsol)) 408 409 tau_ae(i,k,id,inu) = tmp_var*tau_ae2b_int 410 tau_ae_pi(i,k,id,inu) = tmp_var_pi* tau_ae2b_int 411 piz_ae(i,k,id,inu) = piz_ae2b_int 412 cg_ae(i,k,id,inu) = cg_ae2b_int 413 578 cg_ae2b_int = cg_MG_6bands(RH_num(i,k),inu,classbc) + & 579 delta(i,k)* (cg_MG_6bands(RH_num(i,k)+1,inu,classbc) - & 580 cg_MG_6bands(RH_num(i,k),inu,classbc)) 581 582 tau_ae(i,k,id,inu) = tmp_var*tau_ae2b_int 583 piz_ae(i,k,id,inu) = piz_ae2b_int 584 cg_ae(i,k,id,inu) = cg_ae2b_int 585 586 !--natural aerosols 587 tau_ae2b_int= alpha_MG_6bands(RH_num(i,k),inu,classbc_pi)+ & 588 delta(i,k)* (alpha_MG_6bands(RH_num(i,k)+1,inu,classbc_pi) - & 589 alpha_MG_6bands(RH_num(i,k),inu,classbc_pi)) 590 591 piz_ae2b_int = piz_MG_6bands(RH_num(i,k),inu,classbc_pi) + & 592 delta(i,k)* (piz_MG_6bands(RH_num(i,k)+1,inu,classbc_pi) - & 593 piz_MG_6bands(RH_num(i,k),inu,classbc_pi)) 594 595 cg_ae2b_int = cg_MG_6bands(RH_num(i,k),inu,classbc_pi) + & 596 delta(i,k)* (cg_MG_6bands(RH_num(i,k)+1,inu,classbc_pi) - & 597 cg_MG_6bands(RH_num(i,k),inu,classbc_pi)) 598 599 tau_ae_pi(i,k,id,inu) = tmp_var_pi* tau_ae2b_int 600 piz_ae_pi(i,k,id,inu) = piz_ae2b_int 601 cg_ae_pi(i,k,id,inu) = cg_ae2b_int 602 603 ENDDO 414 604 ENDDO 415 605 ENDDO 416 ENDDO 606 607 !--else treat all other cases of soluble aerosols 608 ELSE 609 610 DO k=1, klev 611 DO i=1, klon 612 tmp_var=m_allaer(i,k,spsol)/1.e6*zdh(i,k)*fac 613 tmp_var_pi=m_allaer_pi(i,k,spsol)/1.e6*zdh(i,k)*fac 614 615 DO inu=1,NSW 616 617 tau_ae2b_int= alpha_aers_6bands(RH_num(i,k),inu,spsol)+ & 618 delta(i,k)* (alpha_aers_6bands(RH_num(i,k)+1,inu,spsol) - & 619 alpha_aers_6bands(RH_num(i,k),inu,spsol)) 620 621 piz_ae2b_int = piz_aers_6bands(RH_num(i,k),inu,spsol) + & 622 delta(i,k)* (piz_aers_6bands(RH_num(i,k)+1,inu,spsol) - & 623 piz_aers_6bands(RH_num(i,k),inu,spsol)) 624 625 cg_ae2b_int = cg_aers_6bands(RH_num(i,k),inu,spsol) + & 626 delta(i,k)* (cg_aers_6bands(RH_num(i,k)+1,inu,spsol) - & 627 cg_aers_6bands(RH_num(i,k),inu,spsol)) 628 629 tau_ae(i,k,id,inu) = tmp_var*tau_ae2b_int 630 tau_ae_pi(i,k,id,inu) = tmp_var_pi* tau_ae2b_int 631 piz_ae(i,k,id,inu) = piz_ae2b_int 632 cg_ae(i,k,id,inu) = cg_ae2b_int 633 634 ENDDO 635 ENDDO 636 ENDDO 637 638 !--external mixture case for soluble BC 639 IF (spsol.EQ.1) THEN 640 piz_ae_pi(:,:,id,:) = piz_ae(:,:,id,:) 641 cg_ae_pi(:,:,id,:) = cg_ae(:,:,id,:) 642 ENDIF 643 644 ENDIF 417 645 418 646 ELSE ! For all aerosol insoluble components … … 443 671 DO k=1, klev 444 672 DO i=1, klon 445 !--a nthropogenicaerosol673 !--all (natural + anthropogenic) aerosol 446 674 tau_allaer(i,k,2,inu)=tau_ae(i,k,id_ASSO4M_phy,inu)+tau_ae(i,k,id_CSSO4M_phy,inu)+ & 447 675 tau_ae(i,k,id_ASBCM_phy,inu)+tau_ae(i,k,id_AIBCM_phy,inu)+ & … … 449 677 tau_ae(i,k,id_ASSSM_phy,inu)+tau_ae(i,k,id_CSSSM_phy,inu)+ & 450 678 tau_ae(i,k,id_SSSSM_phy,inu)+ tau_ae(i,k,id_CIDUSTM_phy,inu) 451 tau_allaer(i,k,2,inu)=MAX(tau_allaer(i,k,2,inu), 1e-15)452 453 piz_allaer(i,k,2,inu)=(tau_ae(i,k,id_ASSO4M_phy,inu)*piz_ae(i,k,id_ASSO4M_phy,inu)+ &454 tau_ae(i,k,id_CSSO4M_phy,inu)*piz_ae(i,k,id_CSSO4M_phy,inu)+ &455 tau_ae(i,k,id_ASBCM_phy,inu)*piz_ae(i,k,id_ASBCM_phy,inu)+ &456 tau_ae(i,k,id_AIBCM_phy,inu)*piz_ae(i,k,id_AIBCM_phy,inu)+ &457 tau_ae(i,k,id_ASPOMM_phy,inu)*piz_ae(i,k,id_ASPOMM_phy,inu)+ &458 tau_ae(i,k,id_AIPOMM_phy,inu)*piz_ae(i,k,id_AIPOMM_phy,inu)+ &459 tau_ae(i,k,id_ASSSM_phy,inu)*piz_ae(i,k,id_ASSSM_phy,inu)+ &460 tau_ae(i,k,id_CSSSM_phy,inu)*piz_ae(i,k,id_CSSSM_phy,inu)+ &461 tau_ae(i,k,id_SSSSM_phy,inu)*piz_ae(i,k,id_SSSSM_phy,inu)+ &679 tau_allaer(i,k,2,inu)=MAX(tau_allaer(i,k,2,inu),tau_min) 680 681 piz_allaer(i,k,2,inu)=(tau_ae(i,k,id_ASSO4M_phy,inu)*piz_ae(i,k,id_ASSO4M_phy,inu)+ & 682 tau_ae(i,k,id_CSSO4M_phy,inu)*piz_ae(i,k,id_CSSO4M_phy,inu)+ & 683 tau_ae(i,k,id_ASBCM_phy,inu)*piz_ae(i,k,id_ASBCM_phy,inu)+ & 684 tau_ae(i,k,id_AIBCM_phy,inu)*piz_ae(i,k,id_AIBCM_phy,inu)+ & 685 tau_ae(i,k,id_ASPOMM_phy,inu)*piz_ae(i,k,id_ASPOMM_phy,inu)+ & 686 tau_ae(i,k,id_AIPOMM_phy,inu)*piz_ae(i,k,id_AIPOMM_phy,inu)+ & 687 tau_ae(i,k,id_ASSSM_phy,inu)*piz_ae(i,k,id_ASSSM_phy,inu)+ & 688 tau_ae(i,k,id_CSSSM_phy,inu)*piz_ae(i,k,id_CSSSM_phy,inu)+ & 689 tau_ae(i,k,id_SSSSM_phy,inu)*piz_ae(i,k,id_SSSSM_phy,inu)+ & 462 690 tau_ae(i,k,id_CIDUSTM_phy,inu)*piz_ae(i,k,id_CIDUSTM_phy,inu)) & 463 691 /tau_allaer(i,k,2,inu) 464 piz_allaer(i,k,2,inu)=MAX(piz_allaer(i,k,2,inu),0.01) 692 piz_allaer(i,k,2,inu)=MIN(MAX(piz_allaer(i,k,2,inu),0.01),1.0) 693 IF (tau_allaer(i,k,2,inu).LE.tau_min) piz_allaer(i,k,2,inu)=1.0 465 694 466 695 cg_allaer(i,k,2,inu)=(tau_ae(i,k,id_ASSO4M_phy,inu)*piz_ae(i,k,id_ASSO4M_phy,inu)*cg_ae(i,k,id_ASSO4M_phy,inu)+ & 467 696 tau_ae(i,k,id_CSSO4M_phy,inu)*piz_ae(i,k,id_CSSO4M_phy,inu)*cg_ae(i,k,id_CSSO4M_phy,inu)+ & 468 tau_ae(i,k,id_ASBCM_phy,inu)*piz_ae(i,k,id_ASBCM_phy,inu)*cg_ae(i,k,id_ASBCM_phy,inu)+ &469 tau_ae(i,k,id_AIBCM_phy,inu)*piz_ae(i,k,id_AIBCM_phy,inu)*cg_ae(i,k,id_AIBCM_phy,inu)+ &697 tau_ae(i,k,id_ASBCM_phy,inu)*piz_ae(i,k,id_ASBCM_phy,inu)*cg_ae(i,k,id_ASBCM_phy,inu)+ & 698 tau_ae(i,k,id_AIBCM_phy,inu)*piz_ae(i,k,id_AIBCM_phy,inu)*cg_ae(i,k,id_AIBCM_phy,inu)+ & 470 699 tau_ae(i,k,id_ASPOMM_phy,inu)*piz_ae(i,k,id_ASPOMM_phy,inu)*cg_ae(i,k,id_ASPOMM_phy,inu)+ & 471 700 tau_ae(i,k,id_AIPOMM_phy,inu)*piz_ae(i,k,id_AIPOMM_phy,inu)*cg_ae(i,k,id_AIPOMM_phy,inu)+ & 472 tau_ae(i,k,id_ASSSM_phy,inu)*piz_ae(i,k,id_ASSSM_phy,inu)*cg_ae(i,k,id_ASSSM_phy,inu)+ &473 tau_ae(i,k,id_CSSSM_phy,inu)*piz_ae(i,k,id_CSSSM_phy,inu)*cg_ae(i,k,id_CSSSM_phy,inu)+ &474 tau_ae(i,k,id_SSSSM_phy,inu)*piz_ae(i,k,id_SSSSM_phy,inu)*cg_ae(i,k,id_SSSSM_phy,inu)+ &701 tau_ae(i,k,id_ASSSM_phy,inu)*piz_ae(i,k,id_ASSSM_phy,inu)*cg_ae(i,k,id_ASSSM_phy,inu)+ & 702 tau_ae(i,k,id_CSSSM_phy,inu)*piz_ae(i,k,id_CSSSM_phy,inu)*cg_ae(i,k,id_CSSSM_phy,inu)+ & 703 tau_ae(i,k,id_SSSSM_phy,inu)*piz_ae(i,k,id_SSSSM_phy,inu)*cg_ae(i,k,id_SSSSM_phy,inu)+ & 475 704 tau_ae(i,k,id_CIDUSTM_phy,inu)*piz_ae(i,k,id_CIDUSTM_phy,inu)*cg_ae(i,k,id_CIDUSTM_phy,inu))/ & 476 705 (tau_allaer(i,k,2,inu)*piz_allaer(i,k,2,inu)) 706 cg_allaer(i,k,2,inu)=MIN(MAX(cg_allaer(i,k,2,inu),0.0),1.0) 477 707 478 708 !--natural aerosol 709 !--ASBCM aerosols take _pi value because of internal mixture option 479 710 tau_allaer(i,k,1,inu)=tau_ae_pi(i,k,id_ASSO4M_phy,inu)+tau_ae_pi(i,k,id_CSSO4M_phy,inu)+ & 480 711 tau_ae_pi(i,k,id_ASBCM_phy,inu)+tau_ae_pi(i,k,id_AIBCM_phy,inu)+ & … … 482 713 tau_ae_pi(i,k,id_ASSSM_phy,inu)+tau_ae_pi(i,k,id_CSSSM_phy,inu)+ & 483 714 tau_ae_pi(i,k,id_SSSSM_phy,inu)+ tau_ae_pi(i,k,id_CIDUSTM_phy,inu) 484 tau_allaer(i,k,1,inu)=MAX(tau_allaer(i,k,1,inu), 1e-15)485 486 piz_allaer(i,k,1,inu)=(tau_ae_pi(i,k,id_ASSO4M_phy,inu)*piz_ae(i,k,id_ASSO4M_phy,inu)+ &487 tau_ae_pi(i,k,id_CSSO4M_phy,inu)*piz_ae(i,k,id_CSSO4M_phy,inu)+ &488 tau_ae_pi(i,k,id_ASBCM_phy,inu)*piz_ae (i,k,id_ASBCM_phy,inu)+&489 tau_ae_pi(i,k,id_AIBCM_phy,inu)*piz_ae(i,k,id_AIBCM_phy,inu)+ &490 tau_ae_pi(i,k,id_ASPOMM_phy,inu)*piz_ae(i,k,id_ASPOMM_phy,inu)+ &491 tau_ae_pi(i,k,id_AIPOMM_phy,inu)*piz_ae(i,k,id_AIPOMM_phy,inu)+ &492 tau_ae_pi(i,k,id_ASSSM_phy,inu)*piz_ae(i,k,id_ASSSM_phy,inu)+ &493 tau_ae_pi(i,k,id_CSSSM_phy,inu)*piz_ae(i,k,id_CSSSM_phy,inu)+ &494 tau_ae_pi(i,k,id_SSSSM_phy,inu)*piz_ae(i,k,id_SSSSM_phy,inu)+ &715 tau_allaer(i,k,1,inu)=MAX(tau_allaer(i,k,1,inu),tau_min) 716 717 piz_allaer(i,k,1,inu)=(tau_ae_pi(i,k,id_ASSO4M_phy,inu)*piz_ae(i,k,id_ASSO4M_phy,inu)+ & 718 tau_ae_pi(i,k,id_CSSO4M_phy,inu)*piz_ae(i,k,id_CSSO4M_phy,inu)+ & 719 tau_ae_pi(i,k,id_ASBCM_phy,inu)*piz_ae_pi(i,k,id_ASBCM_phy,inu)+ & 720 tau_ae_pi(i,k,id_AIBCM_phy,inu)*piz_ae(i,k,id_AIBCM_phy,inu)+ & 721 tau_ae_pi(i,k,id_ASPOMM_phy,inu)*piz_ae(i,k,id_ASPOMM_phy,inu)+ & 722 tau_ae_pi(i,k,id_AIPOMM_phy,inu)*piz_ae(i,k,id_AIPOMM_phy,inu)+ & 723 tau_ae_pi(i,k,id_ASSSM_phy,inu)*piz_ae(i,k,id_ASSSM_phy,inu)+ & 724 tau_ae_pi(i,k,id_CSSSM_phy,inu)*piz_ae(i,k,id_CSSSM_phy,inu)+ & 725 tau_ae_pi(i,k,id_SSSSM_phy,inu)*piz_ae(i,k,id_SSSSM_phy,inu)+ & 495 726 tau_ae_pi(i,k,id_CIDUSTM_phy,inu)*piz_ae(i,k,id_CIDUSTM_phy,inu)) & 496 727 /tau_allaer(i,k,1,inu) 497 piz_allaer(i,k,1,inu)=MAX(piz_allaer(i,k,1,inu),0.01) 498 499 cg_allaer(i,k,1,inu)=(tau_ae_pi(i,k,id_ASSO4M_phy,inu)*piz_ae(i,k,id_ASSO4M_phy,inu)*cg_ae(i,k,id_ASSO4M_phy,inu)+ & 500 tau_ae_pi(i,k,id_CSSO4M_phy,inu)*piz_ae(i,k,id_CSSO4M_phy,inu)*cg_ae(i,k,id_CSSO4M_phy,inu)+ & 501 tau_ae_pi(i,k,id_ASBCM_phy,inu)*piz_ae(i,k,id_ASBCM_phy,inu)*cg_ae(i,k,id_ASBCM_phy,inu)+ & 502 tau_ae_pi(i,k,id_AIBCM_phy,inu)*piz_ae(i,k,id_AIBCM_phy,inu)*cg_ae(i,k,id_AIBCM_phy,inu)+ & 503 tau_ae_pi(i,k,id_ASPOMM_phy,inu)*piz_ae(i,k,id_ASPOMM_phy,inu)*cg_ae(i,k,id_ASPOMM_phy,inu)+ & 504 tau_ae_pi(i,k,id_AIPOMM_phy,inu)*piz_ae(i,k,id_AIPOMM_phy,inu)*cg_ae(i,k,id_AIPOMM_phy,inu)+ & 505 tau_ae_pi(i,k,id_ASSSM_phy,inu)*piz_ae(i,k,id_ASSSM_phy,inu)*cg_ae(i,k,id_ASSSM_phy,inu)+ & 506 tau_ae_pi(i,k,id_CSSSM_phy,inu)*piz_ae(i,k,id_CSSSM_phy,inu)*cg_ae(i,k,id_CSSSM_phy,inu)+ & 507 tau_ae_pi(i,k,id_SSSSM_phy,inu)*piz_ae(i,k,id_SSSSM_phy,inu)*cg_ae(i,k,id_SSSSM_phy,inu)+ & 728 piz_allaer(i,k,1,inu)=MIN(MAX(piz_allaer(i,k,1,inu),0.01),1.0) 729 IF (tau_allaer(i,k,1,inu).LE.tau_min) piz_allaer(i,k,1,inu)=1.0 730 731 cg_allaer(i,k,1,inu)=(tau_ae_pi(i,k,id_ASSO4M_phy,inu)*piz_ae(i,k,id_ASSO4M_phy,inu)*cg_ae(i,k,id_ASSO4M_phy,inu)+ & 732 tau_ae_pi(i,k,id_CSSO4M_phy,inu)*piz_ae(i,k,id_CSSO4M_phy,inu)*cg_ae(i,k,id_CSSO4M_phy,inu)+ & 733 tau_ae_pi(i,k,id_ASBCM_phy,inu)*piz_ae_pi(i,k,id_ASBCM_phy,inu)*cg_ae_pi(i,k,id_ASBCM_phy,inu)+ & 734 tau_ae_pi(i,k,id_AIBCM_phy,inu)*piz_ae(i,k,id_AIBCM_phy,inu)*cg_ae(i,k,id_AIBCM_phy,inu)+ & 735 tau_ae_pi(i,k,id_ASPOMM_phy,inu)*piz_ae(i,k,id_ASPOMM_phy,inu)*cg_ae(i,k,id_ASPOMM_phy,inu)+ & 736 tau_ae_pi(i,k,id_AIPOMM_phy,inu)*piz_ae(i,k,id_AIPOMM_phy,inu)*cg_ae(i,k,id_AIPOMM_phy,inu)+ & 737 tau_ae_pi(i,k,id_ASSSM_phy,inu)*piz_ae(i,k,id_ASSSM_phy,inu)*cg_ae(i,k,id_ASSSM_phy,inu)+ & 738 tau_ae_pi(i,k,id_CSSSM_phy,inu)*piz_ae(i,k,id_CSSSM_phy,inu)*cg_ae(i,k,id_CSSSM_phy,inu)+ & 739 tau_ae_pi(i,k,id_SSSSM_phy,inu)*piz_ae(i,k,id_SSSSM_phy,inu)*cg_ae(i,k,id_SSSSM_phy,inu)+ & 508 740 tau_ae_pi(i,k,id_CIDUSTM_phy,inu)*piz_ae(i,k,id_CIDUSTM_phy,inu)*cg_ae(i,k,id_CIDUSTM_phy,inu))/ & 509 741 (tau_allaer(i,k,1,inu)*piz_allaer(i,k,1,inu)) 742 cg_allaer(i,k,1,inu)=MIN(MAX(cg_allaer(i,k,1,inu),0.0),1.0) 510 743 511 744 ENDDO … … 513 746 ENDDO 514 747 515 !--waveband 2 and all aerosol 748 !--waveband 2 and all aerosol (third index = 2) 516 749 inu=2 517 750 DO i=1, klon
Note: See TracChangeset
for help on using the changeset viewer.