15 REAL zpspsk(klon),pplev(klon)
 
   16 REAL ztemp(klon),zqta(klon),zqsat(klon)
 
   21 REAL Tbef(klon),DT(klon)
 
   22 REAL tdelta,qsatbef,zcor,qlbef,zdelta,zcvm5,dqsat,num,denom,dqsat_dT
 
   25 REAL, 
SAVE :: DDT0=.01
 
   26 LOGICAL afaire(klon),tout_converge
 
   47                zdelta=max(0.,sign(1.,rtt-tbef(ig)))
 
   48                qsatbef= r2es * foeew(tbef(ig),zdelta)/pplev(ig)
 
   49                qsatbef=min(0.5,qsatbef)
 
   50                zcor=1./(1.-retv*qsatbef)
 
   52                qlbef=max(0.,zqta(ig)-qsatbef)
 
   53                dt(ig) = 0.5*rlvcp*qlbef
 
   62       if (0.<abs(dt(ig)).and.abs(dt(ig))<=ddt0) 
then 
   69     afaire(:)=abs(dt(:)).gt.ddt0
 
   72                  tbef(ig)=tbef(ig)+dt(ig)
 
   73                  zdelta=max(0.,sign(1.,rtt-tbef(ig)))
 
   74                  qsatbef= r2es * foeew(tbef(ig),zdelta)/pplev(ig)
 
   75                  qsatbef=min(0.5,qsatbef)
 
   76                  zcor=1./(1.-retv*qsatbef)
 
   78                  qlbef=zqta(ig)-qsatbef
 
   79                  zdelta=max(0.,sign(1.,rtt-tbef(ig)))
 
   80                  zcvm5=r5les*(1.-zdelta) + r5ies*zdelta
 
   81                  zcor=1./(1.-retv*qsatbef)
 
   82                  dqsat_dt=foede(tbef(ig),zdelta,zcvm5,qsatbef,zcor)
 
   83                  num=-tbef(ig)+ztemp(ig)+rlvcp*qlbef
 
   84                  denom=1.+rlvcp*dqsat_dt
 
!$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
 
subroutine thermcell_qsat(klon, active, pplev, ztemp, zqta, zqsat)