Ignore:
Timestamp:
Jul 28, 2009, 10:05:59 AM (15 years ago)
Author:
jghattas
Message:

Bug-fix dans le calcul de aerosol charge(load) dans la colonne pour
l'interpolation des aerosols.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/readaerosol_interp.F90

    r1183 r1216  
    11! $Id$
    22!
    3 SUBROUTINE readaerosol_interp(id_aero, r_day, first, pplay, paprs, mass_out, pi_mass_out)
     3SUBROUTINE readaerosol_interp(id_aero, r_day, first, pplay, paprs, t_seri, mass_out, pi_mass_out)
    44!
    55! This routine will return the mass concentration at actual day(mass_out) and
     
    3636  REAL, DIMENSION(klon,klev), INTENT(IN) :: pplay  ! pression at model mid-layers
    3737  REAL, DIMENSION(klon,klev+1),INTENT(IN):: paprs  ! pression between model layers
     38  REAL, DIMENSION(klon,klev), INTENT(IN) :: t_seri ! air temperature
    3839!     
    3940! Output:     
     
    5152!$OMP THREADPRIVATE(klev_src)
    5253
     54  REAL                              :: zrho      ! Air density [kg/m3]
     55  REAL                              :: volm      ! Volyme de melange [kg/kg]
    5356  REAL, DIMENSION(klon)             :: psurf_day, pi_psurf_day
    5457  REAL, DIMENSION(klon)             :: load_src, pi_load_src  ! Mass load at source grid
     
    149152   
    150153     IF (debug) THEN
     154        CALL writefield_phy('var_year_jan',var_year(:,:,1,id_aero),klev_src)
     155        CALL writefield_phy('var_year_dec',var_year(:,:,12,id_aero),klev_src)
    151156        CALL writefield_phy('psurf_src',psurf_year(:,:,id_aero),1)
    152157        CALL writefield_phy('pi_psurf_src',pi_psurf_year(:,:,id_aero),1)
     
    300305        DO k= 1, klev
    301306           DO i = 1, klon
    302               load_tgt(i) = load_tgt(i) + 1/RG * var_day(i,k,id_aero)*delp(i,k)
     307              zrho = pplay(i,k)/t_seri(i,k)/RD       ! [kg/m3]
     308              volm = var_day(i,k,id_aero)*1.E-9/zrho ! [kg/kg]
     309              load_tgt(i) = load_tgt(i) + 1/RG * volm *delp(i,k)
    303310           END DO
    304311        END DO
     
    315322           DO k= 1, klev
    316323              DO i = 1, klon
    317                  load_tgt_test(i) = load_tgt_test(i) + 1/RG * var_day(i,k,id_aero)*delp(i,k)
     324                 zrho = pplay(i,k)/t_seri(i,k)/RD       ! [kg/m3]
     325                 volm = var_day(i,k,id_aero)*1.E-9/zrho ! [kg/kg]
     326                 load_tgt_test(i) = load_tgt_test(i) + 1/RG * volm*delp(i,k)
    318327              END DO
    319328           END DO
     
    353362        DO k = 1, klev
    354363           DO i = 1, klon
    355               load_tgt(i) = load_tgt(i) + 1/RG * pi_var_day(i,k,id_aero)*delp(i,k)
     364              zrho = pplay(i,k)/t_seri(i,k)/RD          ! [kg/m3]
     365              volm = pi_var_day(i,k,id_aero)*1.E-9/zrho ! [kg/kg]
     366              load_tgt(i) = load_tgt(i) + 1/RG * volm * delp(i,k)
    356367           END DO
    357368        END DO
     
    367378           DO k = 1, klev
    368379              DO i = 1, klon
    369                  load_tgt_test(i) = load_tgt_test(i) + 1/RG * pi_var_day(i,k,id_aero)*delp(i,k)
     380                 zrho = pplay(i,k)/t_seri(i,k)/RD          ! [kg/m3]
     381                 volm = pi_var_day(i,k,id_aero)*1.E-9/zrho ! [kg/kg]
     382                 load_tgt_test(i) = load_tgt_test(i) + 1/RG * volm * delp(i,k)
    370383              END DO
    371384           END DO
Note: See TracChangeset for help on using the changeset viewer.