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)