Changeset 2634 for LMDZ5/trunk/libf/phylmd/rrtm/aeropt_6bands_rrtm.F90
- Timestamp:
- Sep 24, 2016, 7:14:59 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/rrtm/aeropt_6bands_rrtm.F90
r2311 r2634 36 36 ! 37 37 ! Output arguments: 38 ! 1= total aerosols39 ! 2= natural aerosols38 ! 2= total aerosols 39 ! 1= natural aerosols 40 40 ! 41 41 REAL, DIMENSION(klon,klev,2,nbands_sw_rrtm), INTENT(out) :: tau_allaer ! epaisseur optique aerosol … … 66 66 REAL :: Fact_RH(nbre_RH) 67 67 REAL :: fac 68 REAL :: zd p1(klon,klev)68 REAL :: zdh(klon,klev) 69 69 INTEGER, ALLOCATABLE, DIMENSION(:) :: aerosol_name 70 70 INTEGER :: nb_aer 71 71 72 REAL, DIMENSION(klon,klev,naero_tot) :: mass_temp73 REAL, DIMENSION(klon,klev,naero_tot) :: mass_temp_pi74 72 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: tau_ae 75 73 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: tau_ae_pi 76 74 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: piz_ae 77 75 REAL, DIMENSION(klon,klev,naero_tot,nbands_sw_rrtm) :: cg_ae 78 79 80 76 ! 81 77 ! Proprietes optiques … … 89 85 90 86 INTEGER :: id 91 LOGICAL :: used_aer(naero_tot)92 87 REAL :: tmp_var, tmp_var_pi 93 88 … … 277 272 spsol = 0 278 273 spinsol = 0 274 279 275 IF (NSW.NE.nbands_sw_rrtm) THEN 280 276 print *,'Erreur NSW doit etre egal a 6 pour cette routine' … … 282 278 ENDIF 283 279 284 DO k=1, klev 285 DO i=1, klon 286 !CDIR UNROLL=naero_tot 287 mass_temp(i,k,:) = m_allaer(i,k,:) / zrho(i,k) / 1.e+9 !--kg/kg 288 !CDIR UNROLL=naero_tot 289 mass_temp_pi(i,k,:) = m_allaer_pi(i,k,:) / zrho(i,k) / 1.e+9 290 zdp1(i,k)=pdel(i,k)/(RG*delt) ! air mass auxiliary variable --> zdp1 [kg/(m^2 *s)] 291 ENDDO 292 ENDDO 280 zdh(:,:)=pdel(:,:)/(RG*zrho(:,:)) ! m 293 281 294 282 IF (flag_aerosol .EQ. 1) THEN … … 339 327 ! compute optical_thickness_at_gridpoint_per_species 340 328 341 !!CDIR ON_ADB(RH_tab)342 !CDIR ON_ADB(fact_RH)343 !CDIR SHORTLOOP344 329 DO n=1,nbre_RH-1 345 330 fact_RH(n)=1./(RH_tab(n+1)-RH_tab(n)) 346 331 ENDDO 347 332 348 DO k=1, KLEV 349 !CDIR ON_ADB(fact_RH) 350 DO i=1, KLON 333 DO k=1, klev 334 DO i=1, klon 351 335 rh(i,k)=MIN(RHcl(i,k)*100.,RH_MAX) 352 336 RH_num(i,k) = INT(rh(i,k)/10. + 1.) … … 357 341 ENDDO 358 342 359 used_aer(:)=.FALSE. 343 tau_ae(:,:,:,:)=0. 344 tau_ae_pi(:,:,:,:)=0. 345 piz_ae(:,:,:,:)=0. 346 cg_ae(:,:,:,:)=0. 360 347 361 348 DO m=1,nb_aer ! tau is only computed for each mass … … 398 385 399 386 id=aerosol_name(m) 400 used_aer(id)=.TRUE.401 387 402 388 IF (soluble) THEN 403 389 404 DO k=1, KLEV405 DO i=1, KLON406 tmp_var=m ass_temp(i,k,spsol)*1000.*zdp1(i,k)*delt*fac407 tmp_var_pi=m ass_temp_pi(i,k,spsol)*1000.*zdp1(i,k)*delt*fac390 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 408 394 409 395 DO inu=1,NSW … … 432 418 ELSE ! For all aerosol insoluble components 433 419 434 DO k=1, KLEV435 DO i=1, KLON436 tmp_var=m ass_temp(i,k,naero_soluble+ spinsol)*1000.*zdp1(i,k)*delt*fac437 tmp_var_pi=m ass_temp_pi(i,k,naero_soluble+spinsol)*1000.*zdp1(i,k)*delt*fac420 DO k=1, klev 421 DO i=1, klon 422 tmp_var=m_allaer(i,k,naero_soluble+spinsol)/1.e6*zdh(i,k)*fac 423 tmp_var_pi=m_allaer_pi(i,k,naero_soluble+spinsol)/1.e6*zdh(i,k)*fac 438 424 439 425 DO inu=1,NSW … … 454 440 ENDDO ! nb_aer 455 441 456 DO m=1,naero_tot457 IF (.NOT. used_aer(m)) THEN458 tau_ae(:,:,m,:)=0.459 tau_ae_pi(:,:,m,:)=0.460 piz_ae(:,:,m,:)=0.461 cg_ae(:,:,m,:)=0.462 ENDIF463 ENDDO464 465 442 DO inu=1, NSW 466 DO k=1, KLEV467 DO i=1, KLON443 DO k=1, klev 444 DO i=1, klon 468 445 !--anthropogenic aerosol 469 446 tau_allaer(i,k,2,inu)=tau_ae(i,k,id_ASSO4M_phy,inu)+tau_ae(i,k,id_CSSO4M_phy,inu)+ & … … 536 513 ENDDO 537 514 538 !-- ???????539 inu= 1540 DO i=1, KLON541 absvisaer(i)=SUM((1-piz_allaer(i,:, :,inu))*tau_allaer(i,:,:,inu))542 END DO515 !--waveband 2 and all aerosol 516 inu=2 517 DO i=1, klon 518 absvisaer(i)=SUM((1-piz_allaer(i,:,2,inu))*tau_allaer(i,:,2,inu)) 519 ENDDO 543 520 544 521 DEALLOCATE(aerosol_name)
Note: See TracChangeset
for help on using the changeset viewer.