4 SUBROUTINE cltrac(dtime,coef,t,tr,flux,paprs,pplay,delp, &
 
    5                   d_tr,d_tr_dry,flux_tr_dry)                    
 
   36   REAL,
INTENT(IN)                        :: dtime
 
   37   REAL,
DIMENSION(klon,klev),
INTENT(IN)   :: coef
 
   38   REAL,
DIMENSION(klon,klev),
INTENT(IN)   :: t, tr
 
   39   REAL,
DIMENSION(klon),
INTENT(IN)        :: flux 
 
   40   REAL,
DIMENSION(klon,klev+1),
INTENT(IN) :: paprs 
 
   41   REAL,
DIMENSION(klon,klev),
INTENT(IN)   :: pplay, delp
 
   45   REAL ,
DIMENSION(klon,klev),
INTENT(OUT) :: d_tr
 
   46   REAL ,
DIMENSION(klon),
INTENT(OUT)       :: d_tr_dry          
 
   47   REAL ,
DIMENSION(klon),
INTENT(OUT)       :: flux_tr_dry       
 
   53   REAL,
DIMENSION(klon)      :: cdrag, tr0
 
   54   REAL,
DIMENSION(klon,klev) :: zx_ctr
 
   55   REAL,
DIMENSION(klon,klev) :: zx_dtr
 
   56   REAL,
DIMENSION(klon)      :: zx_buf
 
   57   REAL,
DIMENSION(klon,klev) :: zx_coef
 
   58   REAL,
DIMENSION(klon,klev) :: local_tr
 
   59   REAL,
DIMENSION(klon)      :: zx_alf1,zx_alf2,zx_flux
 
   65         local_tr(i,k) = tr(i,k)
 
   72      zx_alf1(i) = (paprs(i,1)-pplay(i,2))/(pplay(i,1)-pplay(i,2))
 
   73      zx_alf2(i) = 1.0 - zx_alf1(i)
 
   74      flux_tr_dry(i) = -flux(i)*dtime                              
 
   75      zx_flux(i) =  flux_tr_dry(i)*
rg                               
   80      zx_coef(i,1) = cdrag(i)*dtime*
rg  
   89         zx_coef(i,k) = coef(i,k)*
rg/(pplay(i,k-1)-pplay(i,k))   &
 
   90              *(paprs(i,k)*2/(t(i,k)+t(i,k-1))/rd)**2
 
   91         zx_coef(i,k) = zx_coef(i,k)*dtime*
rg   
   98      zx_buf(i) = delp(i,1) + zx_coef(i,1)*zx_alf1(i) + zx_coef(i,2)
 
  100      zx_ctr(i,2) = (local_tr(i,1)*delp(i,1)+                  &
 
  101           zx_coef(i,1)*tr0(i)-zx_flux(i))/zx_buf(i)
 
  103      zx_dtr(i,2) = (zx_coef(i,2)-zx_alf2(i)*zx_coef(i,1)) /   & 
 
  105      d_tr_dry(i) = -zx_flux(i)/zx_buf(i)                          
 
  110         zx_buf(i) = delp(i,k-1) + zx_coef(i,k)      &
 
  111              + zx_coef(i,k-1)*(1.-zx_dtr(i,k-1))
 
  112         zx_ctr(i,k) = (local_tr(i,k-1)*delp(i,k-1)  & 
 
  113              +zx_coef(i,k-1)*zx_ctr(i,k-1) )/zx_buf(i)
 
  114         zx_dtr(i,k) = zx_coef(i,k)/zx_buf(i)
 
  121           / ( delp(i,
klev) + zx_coef(i,
klev)            &
 
  127         local_tr(i,k) = zx_ctr(i,k+1) + zx_dtr(i,k+1)*local_tr(i,k+1)
 
  145         d_tr(i,k) = local_tr(i,k) - tr(i,k)
 
subroutine cltrac(dtime, coef, t, tr, flux, paprs, pplay, delp, d_tr, d_tr_dry, flux_tr_dry)