Ignore:
Timestamp:
Apr 5, 2013, 1:49:35 PM (11 years ago)
Author:
idelkadi
Message:

1- Inclusion des developpements de la these de Romain Pilon sur le
lessivage des aerosols :

a/ par les pluies convectives (modifs cv30_routines et cv3_routines pour

sortir les champs nécessaires au calcul off-line ; modif cvltr)

b/ par les pluies stratiformes (modifs phytrac et introduction

lsc_scav).

2- Choix entre plusieurs schemas pour les pluies stratiformes, commande
par iflag_lscav.

3- Quelques corrections dans la convection "Nouvelle Physique" pour
assurer la conservation des traceurs (cv3p1_mixing et cva_driver) (travail
de Robin Locatelli).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/phytrac.F90

    r1670 r1742  
    33SUBROUTINE phytrac(                            &
    44     nstep,     julien,   gmtime,   debutphy,  &
    5      lafin,     pdtphys,  u, v,     t_seri,     &
     5     lafin,     pdtphys,  u, v,     t_seri,    &
    66     paprs,     pplay,    pmfu,     pmfd,      &
    77     pen_u,     pde_u,    pen_d,    pde_d,     &
     
    99     yu1,       yv1,      ftsol,    pctsrf,    &
    1010     ustar,     u10m,      v10m,               &
    11      xlat,      frac_impa,frac_nucl,xlon,      &
     11     xlat,      xlon,                          &
     12     frac_impa,frac_nucl,beta_fisrt,beta_v1,   &
    1213     presnivs,  pphis,    pphi,     albsol,    &
    1314     sh,        rh,       cldfra,   rneb,      &
     
    1516     pmflxr,    pmflxs,   prfl,     psfl,      &
    1617     da,        phi,      mp,       upwd,      &
     18     phi2,      d1a,      dam,      sij,       &   ! RomP
     19     wdtrainA,  wdtrainM, sigd,     clw,elij,  &   ! RomP
     20     evap,      ep,       epmlmMm,  eplaMm,    &   ! RomP
    1721     dnwd,      aerosol_couple,     flxmass_w, &
    1822     tau_aero,  piz_aero,  cg_aero, ccm,       &
    1923     rfname,                                   &
     24     d_tr_dyn,                                 &   ! RomP
    2025     tr_seri)         
    2126!
     
    2328! Auteur(s) FH
    2429! Objet: Moniteur general des tendances traceurs
     30! Modification R. Pilon 01 janvier 2012 transport+scavenging KE scheme : cvltr
     31! Modification R. Pilon 10 octobre 2012 large scale scavenging incloud_scav + bc_scav
    2532!======================================================================
    2633
    2734  USE ioipsl
     35  USE phys_cal_mod, only : hour
     36  USE phys_output_mod, only : convers_timesteps
    2837  USE dimphy
    2938  USE infotrac
     
    3645  USE tracreprobus_mod
    3746  USE control_mod
    38 
    3947
    4048  IMPLICIT NONE
     
    6876!--------
    6977  REAL,DIMENSION(klon,klev),INTENT(IN)   :: t_seri  ! Temperature
    70   REAL,DIMENSION(klon,klev),INTENT(IN)   :: u       ! variable not used
    71   REAL,DIMENSION(klon,klev),INTENT(IN)   :: v       ! variable not used
     78  REAL,DIMENSION(klon,klev),INTENT(IN)   :: u       ! variable not used 
     79  REAL,DIMENSION(klon,klev),INTENT(IN)   :: v       ! variable not used 
    7280  REAL,DIMENSION(klon,klev),INTENT(IN)   :: sh      ! humidite specifique
    7381  REAL,DIMENSION(klon,klev),INTENT(IN)   :: rh      ! humidite relative
     
    8189  REAL,DIMENSION(klon,klev),INTENT(IN)   :: diafra  ! fraction nuageuse (convection ou stratus artificiels)
    8290  REAL,DIMENSION(klon,klev),INTENT(IN)   :: rneb    ! fraction nuageuse (grande echelle)
     91!
     92  REAL                                   :: ql_incl ! contenu en eau liquide nuageuse dans le nuage ! ql_incl=oliq/rneb
     93  REAL,DIMENSION(klon,klev),INTENT(IN)   :: beta_fisrt ! taux de conversion de l'eau cond (de fisrtilp)
     94  REAL,DIMENSION(klon,klev),INTENT(out)  :: beta_v1    ! -- (originale version)
     95
     96!
    8397  INTEGER,DIMENSION(klon),INTENT(IN)     :: itop_con
    8498  INTEGER,DIMENSION(klon),INTENT(IN)     :: ibas_con
    8599  REAL,DIMENSION(klon),INTENT(IN)        :: albsol  ! albedo surface
     100!
     101!Dynamique
     102!--------
     103  REAL,DIMENSION(klon,klev,nbtr),INTENT(IN)    :: d_tr_dyn
    86104!
    87105!Convection:
     
    108126  REAL,DIMENSION(klon,klev),INTENT(IN)     :: da
    109127  REAL,DIMENSION(klon,klev,klev),INTENT(IN):: phi
     128! RomP >>>
     129  REAL,DIMENSION(klon,klev),INTENT(IN)      :: d1a,dam
     130  REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: phi2
     131!
     132  REAL,DIMENSION(klon,klev),INTENT(IN)      :: wdtrainA
     133  REAL,DIMENSION(klon,klev),INTENT(IN)      :: wdtrainM
     134  REAL,DIMENSION(klon),INTENT(IN)           :: sigd
     135! ---- RomP flux entraine, detraine et precipitant kerry Emanuel
     136  REAL,DIMENSION(klon,klev),INTENT(IN)      :: evap
     137  REAL,DIMENSION(klon,klev),INTENT(IN)      :: ep
     138  REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: sij
     139  REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: elij
     140  REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: epmlmMm
     141  REAL,DIMENSION(klon,klev),INTENT(IN)      :: eplaMm
     142  REAL,DIMENSION(klon,klev),INTENT(IN)      :: clw
     143! RomP <<<
     144
     145!
    110146  REAL,DIMENSION(klon,klev),INTENT(IN)     :: mp
    111147  REAL,DIMENSION(klon,klev),INTENT(IN)     :: upwd      ! saturated updraft mass flux
     
    120156!--------------
    121157!
    122   REAL,DIMENSION(klon),INTENT(IN)     :: cdragh ! coeff drag pour T et Q
    123   REAL,DIMENSION(klon,klev),INTENT(IN):: coefh  ! coeff melange CL (m**2/s)
    124   REAL,DIMENSION(klon),INTENT(IN)     :: ustar,u10m,v10m ! u* & vent a 10m (m/s)
    125   REAL,DIMENSION(klon),INTENT(IN)     :: yu1    ! vents au premier niveau
    126   REAL,DIMENSION(klon),INTENT(IN)     :: yv1    ! vents au premier niveau
     158  REAL,DIMENSION(klon),INTENT(IN)      :: cdragh ! coeff drag pour T et Q
     159  REAL,DIMENSION(klon,klev),INTENT(IN) :: coefh  ! coeff melange CL (m**2/s)
     160  REAL,DIMENSION(klon),INTENT(IN)      :: ustar,u10m,v10m ! u* & vent a 10m (m/s)
     161  REAL,DIMENSION(klon),INTENT(IN)      :: yu1    ! vents au premier niveau
     162  REAL,DIMENSION(klon),INTENT(IN)      :: yv1    ! vents au premier niveau
    127163!
    128164!Lessivage:
     
    141177! Output argument
    142178!----------------
    143   REAL,DIMENSION(klon,klev,nbtr),INTENT(INOUT) :: tr_seri ! Concentration Traceur [U/KgA] 
    144 
     179  REAL,DIMENSION(klon,klev,nbtr),INTENT(INOUT) :: tr_seri ! Concentration Traceur [U/KgA]
     180  REAL,DIMENSION(klon,klev)                    :: sourceBE
    145181!=======================================================================================
    146182!                        -- LOCAL VARIABLES --
     
    153189!--------------------------------------------
    154190!
    155   REAL,DIMENSION(:,:),ALLOCATABLE,SAVE :: source  ! a voir lorsque le flux de surface est prescrit 
     191  REAL,DIMENSION(:,:),ALLOCATABLE,SAVE :: source  ! a voir lorsque le flux de surface est prescrit
    156192!$OMP THREADPRIVATE(source)
    157193
     
    166202  REAL,DIMENSION(klon)      :: zx_tmp_fi2d ! variable temporaire grille physique
    167203  INTEGER                   :: itau_w      ! pas de temps ecriture = nstep + itau_phy
    168   LOGICAL,PARAMETER :: ok_sync=.TRUE.
     204  LOGICAL,PARAMETER         :: ok_sync=.TRUE.
     205  CHARACTER(len=20)         :: chtratimestep
    169206
    170207!
     
    175212  REAL,DIMENSION(klon,klev)             :: delp     ! epaisseur de couche (Pa)
    176213!
    177 ! Tendances de traceurs (Td):
     214! Tendances de traceurs (Td) et flux de traceurs:
    178215!------------------------
    179 !
    180216  REAL,DIMENSION(klon,klev)      :: d_tr     ! Td dans l'atmosphere
    181217  REAL,DIMENSION(klon,klev,nbtr) :: d_tr_cl  ! Td couche limite/traceur
     218  REAL,DIMENSION(klon,nbtr)      :: d_tr_dry ! Td depot sec/traceur (1st layer)  jyg
     219  REAL,DIMENSION(klon,nbtr)      :: flux_tr_dry ! depot sec/traceur (surface)    jyg
     220  REAL,DIMENSION(klon,klev,nbtr) :: d_tr_dec                            !RomP
    182221  REAL,DIMENSION(klon,klev,nbtr) :: d_tr_cv  ! Td convection/traceur
     222! RomP >>>
     223  REAL,DIMENSION(klon,klev,nbtr) :: d_tr_insc
     224  REAL,DIMENSION(klon,klev,nbtr) :: d_tr_bcscav
     225  REAL,DIMENSION(klon,klev,nbtr) :: d_tr_evapls
     226  REAL,DIMENSION(klon,klev,nbtr) :: d_tr_ls
     227  REAL,DIMENSION(klon,nbtr)      :: qPrls      !jyg: concentration tra dans pluie LS a la surf.
     228  REAL,DIMENSION(klon,klev,nbtr) :: d_tr_trsp
     229  REAL,DIMENSION(klon,klev,nbtr) :: d_tr_sscav
     230  REAL,DIMENSION(klon,klev,nbtr) :: d_tr_sat
     231  REAL,DIMENSION(klon,klev,nbtr) :: d_tr_uscav
     232  REAL,DIMENSION(klon,klev,nbtr) :: qPr,qDi ! concentration tra dans pluie,air descente insaturee
     233  REAL,DIMENSION(klon,klev,nbtr) :: qPa,qMel
     234  REAL,DIMENSION(klon,klev,nbtr) :: qTrdi,dtrcvMA ! conc traceur descente air insaturee et td convective MA
     235  REAL,DIMENSION(klon,klev)      :: Mint
     236  REAL,DIMENSION(klon,klev,nbtr) :: zmfd1a
     237  REAL,DIMENSION(klon,klev,nbtr) :: zmfdam
     238  REAL,DIMENSION(klon,klev,nbtr) :: zmfphi2
     239! RomP <<<
    183240  REAL,DIMENSION(klon,klev,nbtr) :: d_tr_th  ! Td thermique
    184241  REAL,DIMENSION(klon,klev,nbtr) :: d_tr_lessi_impa ! Td du lessivage par impaction
    185   REAL,DIMENSION(klon,klev,nbtr) :: d_tr_lessi_nucl ! Td du lessivage par nucleation 
     242  REAL,DIMENSION(klon,klev,nbtr) :: d_tr_lessi_nucl ! Td du lessivage par nucleation
    186243!
    187244! Physique
    188 !----------  
     245!----------
    189246  REAL,DIMENSION(klon,klev,nbtr) :: flestottr ! flux de lessivage dans chaque couche
    190247  REAL,DIMENSION(klon,klev)      :: zmasse    ! densité atmosphérique Kg/m2
    191248  REAL,DIMENSION(klon,klev)      :: ztra_th
     249!PhH
     250  REAL,DIMENSION(klon,klev)      :: zrho
     251  REAL,DIMENSION(klon,klev)      :: zdz
     252  REAL                           :: evaplsc,dx,beta ! variable pour lessivage Genthon
     253  REAL,DIMENSION(klon)           :: his_dh          ! ---
     254! in-cloud scav variables
     255  REAL           :: ql_incloud_ref     ! ref value of in-cloud condensed water content
    192256 
    193257!Controles:
     
    199263
    200264  CHARACTER(len=8),DIMENSION(nbtr) :: solsym
    201 
    202 
     265!RomP >>>
     266  INTEGER,SAVE  :: iflag_lscav
     267  LOGICAL,SAVE  :: convscav
     268!$OMP THREADPRIVATE(iflag_lscav,convscav)
     269!RomP <<<
    203270!######################################################################
    204271!                    -- INITIALIZATION --
    205272!######################################################################
     273  DO k=1,klev
     274     DO i=1,klon
     275      sourceBE(i,k)=0.
     276      Mint(i,k)=0.
     277      zrho(i,k)=0.
     278      zdz(i,k)=0.
     279     END DO
     280  END DO
     281
     282  DO it=1, nbtr
     283   DO k=1,klev
     284    DO i=1,klon
     285    d_tr_insc(i,k,it)=0.
     286    d_tr_bcscav(i,k,it)=0.
     287    d_tr_evapls(i,k,it)=0.
     288    d_tr_ls(i,k,it)=0.
     289    d_tr_cv(i,k,it)=0.
     290    d_tr_cl(i,k,it)=0.
     291    d_tr_trsp(i,k,it)=0.
     292    d_tr_sscav(i,k,it)=0.
     293    d_tr_sat(i,k,it)=0.
     294    d_tr_uscav(i,k,it)=0.
     295    d_tr_lessi_impa(i,k,it)=0.
     296    d_tr_lessi_nucl(i,k,it)=0.
     297    qDi(i,k,it)=0.
     298    qPr(i,k,it)=0.
     299    qPa(i,k,it)=0.
     300    qMel(i,k,it)=0.
     301    qTrdi(i,k,it)=0.
     302    dtrcvMA(i,k,it)=0.
     303    zmfd1a(i,k,it)=0.
     304    zmfdam(i,k,it)=0.
     305    zmfphi2(i,k,it)=0.
     306    END DO
     307   END DO
     308  END DO
    206309  IF (debutphy) THEN
    207      IF (prt_level >9) WRITE(lunout,*) 'FIRST TIME IN PHYTRAC : pdtphys(sec) = ',pdtphys,'ecrit_tra (sec) = ',ecrit_tra
     310!!jyg
     311   chtratimestep='DefFreq'
     312   CALL getin('tra_time_step',chtratimestep)
     313   IF (chtratimestep .NE. 'DefFreq') THEN
     314     call convers_timesteps(chtratimestep,pdtphys,ecrit_tra)
     315   ENDIF
     316!RomP >>>
     317!
     318!Config Key  = convscav
     319!Config Desc = Convective scavenging switch: 0=off, 1=on.
     320!Config Def  = .false.
     321!Config Help =
     322!
     323  convscav=.false.
     324  call getin('convscav', convscav)
     325  print*,'phytrac passage dans routine conv avec lessivage', convscav
     326!
     327!Config Key  = iflag_lscav
     328!Config Desc = Large scale scavenging parametrization: 0=none, 1=old(Genthon92),
     329!              2=1+PHeinrich, 3=Reddy_Boucher2004, 4=3+RPilon.
     330!Config Def  = 1
     331!Config Help =
     332!
     333  iflag_lscav=1
     334  call getin('iflag_lscav', iflag_lscav)
     335!
     336  SELECT CASE(iflag_lscav)
     337  CASE(0)
     338   PRINT*, 'Large scale scavenging: none'
     339  CASE(1)
     340   PRINT*, 'Large scale scavenging: C. Genthon, Tellus(1992), 44B, 371-389'
     341  CASE(2)
     342   PRINT*, 'Large scale scavenging: C. Genthon, modified P. Heinrich'
     343  CASE(3)
     344   PRINT*, 'Large scale scavenging: M. Shekkar Reddy and O. Boucher, JGR(2004), 109, D14202'
     345  CASE(4)
     346   PRINT*, 'Large scale scavenging: Reddy and Boucher, modified R. Pilon'
     347  END SELECT
     348!RomP <<<
     349     WRITE(*,*) 'FIRST TIME IN PHYTRAC : pdtphys(sec) = ',pdtphys,'ecrit_tra (sec) = ',ecrit_tra
    208350     ALLOCATE( source(klon,nbtr), stat=ierr)
    209351     IF (ierr /= 0) CALL abort_gcm('phytrac', 'pb in allocation 1',1)
     
    237379     END DO
    238380  END DO
     381!
     382  IF (id_be .GT. 0) THEN
     383  DO k=1,klev
     384     DO i=1,klon
     385        sourceBE(i,k)=srcbe(i,k)       !RomP  -> pour sortie histrac
     386     END DO
     387  END DO
     388  ENDIF
    239389
    240390!===============================================================================
     
    246396     !    -- Traitement des traceurs avec traclmdz
    247397     CALL traclmdz(nstep, julien, gmtime, pdtphys, t_seri, paprs, pplay, &
    248           cdragh,  coefh, yu1, yv1, ftsol, pctsrf, xlat, xlon,couchelimite,sh,&
     398          cdragh,  coefh, yu1, yv1, ftsol, pctsrf, xlat, xlon,couchelimite,sh, &
    249399          rh, pphi, ustar, u10m, v10m, &
    250           tr_seri, source, solsym, d_tr_cl, zmasse)
     400!!          tr_seri, source, solsym, d_tr_cl, zmasse)                      !RomP
     401          tr_seri, source, solsym, d_tr_cl,d_tr_dec, zmasse)               !RomP
    251402  CASE('inca')
    252403     !    -- CHIMIE INCA  config_inca = aero or chem --
     
    273424     
    274425  END SELECT
    275 
    276426!======================================================================
    277427!       -- Calcul de l'effet de la convection --
    278428!======================================================================
     429
    279430  IF (convection) THEN
    280431     DO it=1, nbtr
    281432        IF ( conv_flg(it) == 0 ) CYCLE
    282        
    283433        IF (iflag_con.LT.2) THEN
    284            d_tr_cv(:,:,:)=0.
     434           d_tr_cv(:,:,it)=0.
    285435        ELSE IF (iflag_con.EQ.2) THEN
    286436!..Tiedke
    287437           CALL nflxtr(pdtphys, pmfu, pmfd, pen_u, pde_u, pen_d, pde_d, &
    288438                pplay, paprs, tr_seri(:,:,it), d_tr_cv(:,:,it))
    289         ELSE
    290 !..K.Emanuel
    291            CALL cvltr(pdtphys, da, phi, mp, paprs,pplay, tr_seri(:,:,it),&
    292                 upwd,dnwd,d_tr_cv(:,:,it))
     439! RomP >>>               
     440        ELSE   
     441!..K.Emanuel                  !RomP modif arg
     442        if (convscav.and.aerosol(it)) then    ! lessivage convectif pour aerosol
     443!
     444          CALL cvltr(pdtphys, da, phi,phi2,d1a,dam, mp,ep,              &
     445               sigd,sij,clw,elij,epmlmMm,eplaMm,                        &
     446               pmflxr,pmflxs,evap,t_seri,wdtrainA,wdtrainM,             &   
     447               paprs,it,tr_seri,upwd,dnwd,itop_con,ibas_con,            &
     448               d_tr_cv,d_tr_trsp,d_tr_sscav,d_tr_sat,d_tr_uscav,qDi,qPr,&
     449               qPa,qMel,qTrdi,dtrcvMA,Mint,                             &
     450               zmfd1a,zmfphi2,zmfdam)
     451        else  !pas de lessivage convectif ou n'est pas un aerosol
     452           CALL cvltrorig(it,pdtphys, da, phi,mp,paprs,pplay,tr_seri,&
     453                    upwd,dnwd,d_tr_cv)
     454        endif
    293455        END IF
     456! RomP <<<
    294457
    295458        DO k = 1, klev
     
    357520                tr_seri(:,:,it), source(:,it),      &
    358521                paprs, pplay, delp,                 &
    359                 d_tr_cl(:,:,it))
     522                d_tr_cl(:,:,it),d_tr_dry(:,it),flux_tr_dry(:,it))
    360523           
    361524           DO k = 1, klev
     
    372535
    373536!======================================================================
    374 !   Calcul de l'effet de la precipitation
    375 !======================================================================
    376 
     537!   Calcul de l'effet de la precipitation grande echelle
     538!======================================================================
    377539  IF (lessivage) THEN
    378      
     540
     541   ql_incloud_ref = 10.e-4
     542   ql_incloud_ref =  5.e-4
     543
     544
     545! calcul du contenu en eau liquide au sein du nuage
     546     ql_incl = ql_incloud_ref
     547! choix du lessivage
     548!
     549  IF (iflag_lscav .EQ. 3 .OR. iflag_lscav .EQ. 4) THEN
     550! ********  Olivier Boucher version (3) possibly with modified ql_incl (4)
     551!
     552   DO it = 1, nbtr
     553!  incloud scavenging and removal by large scale rain ! orig : ql_incl was replaced by 0.5e-3 kg/kg
     554! the value 0.5e-3 kg/kg is from Giorgi and Chameides (1986), JGR
     555! Liu (2001) proposed to use 1.5e-3 kg/kg
     556
     557    CALL lsc_scav(pdtphys,it,iflag_lscav,ql_incl,prfl,psfl,rneb,beta_fisrt,  &
     558                  beta_v1,pplay,paprs,t_seri,tr_seri,d_tr_insc,   &
     559                  d_tr_bcscav,d_tr_evapls,qPrls)
     560
     561!large scale scavenging tendency
     562   DO k = 1, klev
     563    DO i = 1, klon
     564    d_tr_ls(i,k,it)=d_tr_insc(i,k,it)+d_tr_bcscav(i,k,it)+d_tr_evapls(i,k,it)
     565    tr_seri(i,k,it)=tr_seri(i,k,it)+d_tr_ls(i,k,it)
     566    ENDDO
     567   ENDDO
     568     CALL minmaxqfi(tr_seri(:,:,it),0.,1.e33,'lsc scav it = '//solsym(it))
     569   END DO  !tr
     570
     571 ELSE IF (iflag_lscav .EQ. 2) THEN ! frac_impa, frac_nucl
     572! *********   modified  old version
     573
     574     d_tr_lessi_nucl(:,:,:) = 0.
     575     d_tr_lessi_impa(:,:,:) = 0.
     576     flestottr(:,:,:) = 0.
     577! Tendance des aerosols nuclees et impactes
     578     DO it = 1, nbtr
     579        IF (aerosol(it)) THEN
     580        his_dh(:)=0.
     581           DO k = 1, klev
     582              DO i = 1, klon
     583!PhH
     584              zrho(i,k)=pplay(i,k)/t_seri(i,k)/RD
     585              zdz(i,k)=(paprs(i,k)-paprs(i,k+1))/zrho(i,k)/RG
     586!
     587              END DO
     588           END DO
     589
     590          DO k=klev-1, 1, -1
     591            DO i=1, klon
     592!             d_tr_ls(i,k,it)=tr_seri(i,k,it)*(frac_impa(i,k)*frac_nucl(i,k)-1.)
     593             dx=d_tr_ls(i,k,it)
     594             his_dh(i)=his_dh(i)-dx*zrho(i,k)*zdz(i,k)/pdtphys !  kg/m2/s
     595             evaplsc = prfl(i,k) - prfl(i,k+1) + psfl(i,k) - psfl(i,k+1)
     596! Evaporation Partielle -> Liberation Partielle 0.5*evap
     597            IF ( evaplsc .LT.0..and.abs(prfl(i,k+1)+psfl(i,k+1)).gt.1.e-10) THEN
     598                evaplsc = (-evaplsc)/(prfl(i,k+1)+psfl(i,k+1))
     599! evaplsc est donc positif, his_dh(i) est positif
     600!-------------- 
     601             d_tr_evapls(i,k,it)=0.5*evaplsc*(d_tr_lessi_nucl(i,k+1,it) &
     602                                  +d_tr_lessi_impa(i,k+1,it))
     603!-------------   d_tr_evapls(i,k,it)=-0.5*evaplsc*(d_tr_lsc(i,k+1,it))
     604             beta=0.5*evaplsc
     605              if ((prfl(i,k)+psfl(i,k)).lt.1.e-10) THEN
     606               beta=1.0*evaplsc
     607              endif
     608            dx=beta*his_dh(i)/zrho(i,k)/zdz(i,k)*pdtphys
     609            his_dh(i)=(1.-beta)*his_dh(i)   ! tracer from
     610            d_tr_evapls(i,k,it)=dx
     611            ENDIF
     612            d_tr_ls(i,k,it)=tr_seri(i,k,it)*(frac_impa(i,k)*frac_nucl(i,k)-1.) &
     613                            +d_tr_evapls(i,k,it)
     614
     615!--------------
     616                 d_tr_lessi_nucl(i,k,it) = d_tr_lessi_nucl(i,k,it) +    &
     617                      ( 1 - frac_nucl(i,k) )*tr_seri(i,k,it)
     618                 d_tr_lessi_impa(i,k,it) = d_tr_lessi_impa(i,k,it) +    &
     619                      ( 1 - frac_impa(i,k) )*tr_seri(i,k,it)
     620!
     621! Flux lessivage total
     622                 flestottr(i,k,it) = flestottr(i,k,it) -   &
     623                      ( d_tr_lessi_nucl(i,k,it)   +        &
     624                      d_tr_lessi_impa(i,k,it) ) *          &
     625                      ( paprs(i,k)-paprs(i,k+1) ) /        &
     626                      (RG * pdtphys)
     627!! Mise a jour des traceurs due a l'impaction,nucleation
     628!                 tr_seri(i,k,it)=tr_seri(i,k,it)*frac_impa(i,k)*frac_nucl(i,k)
     629!!  calcul de la tendance liee au lessivage stratiforme
     630!                 d_tr_ls(i,k,it)=tr_seri(i,k,it)*&
     631!                                (1.-1./(frac_impa(i,k)*frac_nucl(i,k)))
     632!--------------
     633              END DO
     634           END DO
     635        END IF
     636     END DO
     637! *********   end modified old version
     638
     639 ELSE IF (iflag_lscav .EQ. 1) THEN ! frac_impa, frac_nucl
     640! *********    old version
     641
    379642     d_tr_lessi_nucl(:,:,:) = 0.
    380643     d_tr_lessi_impa(:,:,:) = 0.
     
    412675     END DO
    413676     
    414   END IF ! lessivage
     677! *********   end old version
     678  ENDIF  !  iflag_lscav . EQ. 1, 2, 3 or 4
     679!
     680  END IF !  lessivage
    415681
    416682!=============================================================
Note: See TracChangeset for help on using the changeset viewer.