4 SUBROUTINE tlift(p, t, rr, rs, gz, plcl, icb, nk, tvp, tpk, clw, nd, nl, &
 
    9   INTEGER icb, nk, nd, nl
 
   10   INTEGER,
PARAMETER :: na=60
 
   11   REAL gz(nd), tpk(nd), clw(nd), plcl
 
   12   REAL t(nd), rr(nd), rs(nd), tvp(nd), p(nd)
 
   13   REAL dtvpdt1(nd), dtvpdq1(nd) 
 
   16   REAL clw_new(na), qi(na)
 
   17   REAL dtpdt1(na), dtpdq1(na) 
 
   19   REAL gravity, cpd, cpv, cl, ci, cpvmcl, clmci, eps, alv0, alf0
 
   20   REAL cpp, cpinv, ah0, alf, tg, s, ahg, tc, denom, alv, es, esi
 
   22   INTEGER icbl, i, imin, j, icb1
 
   75   cpp = cpd*(1.-rr(nk)) + rr(nk)*cpv
 
   88     tpk(i) = t(nk) - (gz(i)-gz(nk))*cpinv
 
   91     tvp(i) = tpk(i)*(1.+rr(nk)/eps-rr(nk))
 
   93     dtvpdt1(i) = 1. + rr(nk)/eps - rr(nk)
 
   94     dtvpdq1(i) = tpk(i)*(1./eps-1.)
 
  106   ah0 = (cpd*(1.-rr(nk))+cl*rr(nk))*t(nk) + rr(nk)*(alv0-cpvmcl*(t(nk)-273.15 &
 
  113   IF (plcl<p(icb1)) imin = min(imin+1, nl)
 
  118     alv = alv0 - cpvmcl*(t(i)-273.15)
 
  119     alf = alf0 + clmci*(t(i)-273.15)
 
  126     s = cpd*(1.-rr(nk)) + cl*rr(nk) + alv*alv*
rg/(rv*t(i)*t(i))
 
  133       ahg = cpd*tg + (cl-cpd)*rr(nk)*tg + alv*
rg + gz(i)
 
  135       tg = tg + s*(ah0-ahg)
 
  138       denom = max(denom, 1.0)
 
  142       es = 6.112*exp(17.67*tc/denom)
 
  143       rg = eps*es/(p(i)-es*(1.-eps))
 
  150     tpk(i) = (ah0-gz(i)-alv*
rg)/(cpd+(cl-cpd)*rr(nk))
 
  158     clw(i) = max(0.0, clw(i))
 
  161     tvp(i) = tpk(i)*(1.+
rg/eps-rr(nk))
 
  169     dtvpdt1(i) = dtpdt1(i)*(1.+
rg/eps-rr(nk)+alv*
rg/(rd*tpk(i)))
 
  170     dtvpdq1(i) = dtpdq1(i)*(1.+
rg/eps-rr(nk)+alv*
rg/(rd*tpk(i))) - tpk(i)
 
  186       IF (t(i)<263.15) 
THEN 
  190         es = 6.112*exp(17.67*tc/denom)
 
  191         alv = alv0 - cpvmcl*(t(i)-273.15)
 
  192         alf = alf0 + clmci*(t(i)-273.15)
 
  195           esi = exp(23.33086-(6111.72784/tpk(i))+0.15215*log(tpk(i)))
 
  196           qsat_new = eps*esi/(p(i)-esi*(1.-eps))
 
  199           snew = cpd*(1.-rr(nk)) + cl*rr(nk) + alv*alv*qsat_new/(rv*tpk(i)* &
 
  203           tpk(i) = tg + (alf*qi(i)+alv*
rg*(1.-(esi/es)))*snew
 
  209         clw(i) = rr(nk) - qsat_new
 
  210         clw(i) = max(0.0, clw(i))
 
  213         tvp(i) = tpk(i)*(1.+qsat_new/eps-rr(nk))
 
subroutine tlift(p, t, rr, rs, gz, plcl, icb, nk, tvp, tpk, clw, nd, nl, dtvpdt1, dtvpdq1)
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false