4 SUBROUTINE conlmd(dtime, paprs, pplay, t, q, conv_q, d_t, d_q, rain, snow, &
 
   39   INTEGER ibas_bis(
klon)
 
   40   INTEGER itop_bis(
klon)
 
   45   REAL zlvdcp, zlsdcp, zdelta, zz, za, zb
 
   50     (dtime, paprs, pplay, t, q, d_t, d_q, d_ql, rneb, rain, snow, ibas, itop)
 
   56       (dtime, paprs, pplay, t, q, conv_q, d_t_bis, d_q_bis, d_ql_bis, &
 
   57       rneb_bis, rain_bis, snow_bis, ibas_bis, itop_bis)
 
   60         d_t(i, k) = d_t(i, k) + d_t_bis(i, k)
 
   61         d_q(i, k) = d_q(i, k) + d_q_bis(i, k)
 
   62         d_ql(i, k) = d_ql(i, k) + d_ql_bis(i, k)
 
   66       rain(i) = rain(i) + rain_bis(i)
 
   67       snow(i) = snow(i) + snow_bis(i)
 
   68       ibas(i) = min(ibas(i), ibas_bis(i))
 
   69       itop(i) = max(itop(i), itop_bis(i))
 
   77       zlvdcp = rlvtt/rcpd/(1.0+rvtmp2*q(i,k))
 
   78       zlsdcp = rlstt/rcpd/(1.0+rvtmp2*q(i,k))
 
   79       zdelta = max(0., sign(1.,rtt-t(i,k)))
 
   82       za = -max(0.0, zz)*(zlvdcp*(1.-zdelta)+zlsdcp*zdelta)
 
   83       d_t(i, k) = d_t(i, k) + za
 
   84       d_q(i, k) = d_q(i, k) + zb
 
   90 SUBROUTINE conman(dtime, paprs, pplay, t, q, d_t, d_q, d_ql, rneb, rain, &
 
  123   LOGICAL accompli(
klon) 
 
  143   REAL zqs1, zqs2, zdqs1, zdqs2
 
  147   REAL zdelta, zcor, zcvm5
 
  173   DATA appel1er/.
true./
 
  177     print *, 
'conman, nb:', nb
 
  178     print *, 
'conman, frac:', frac
 
  179     print *, 
'conman, opt_cld:', opt_cld
 
  209         zdelta = max(0., sign(1.,rtt-t(i,k)))
 
  210         zcvm5 = r5les*rlvtt*(1.-zdelta) + zdelta*r5ies*rlstt
 
  211         zcvm5 = zcvm5/rcpd/(1.0+rvtmp2*q(i,k))
 
  212         zqs1 = r2es*foeew(t(i,k), zdelta)/pplay(i, k)
 
  213         zqs1 = min(0.5, zqs1)
 
  214         zcor = 1./(1.-retv*zqs1)
 
  216         zdqs1 = foede(t(i,k), zdelta, zcvm5, zqs1, zcor)
 
  218         zdelta = max(0., sign(1.,rtt-t(i,k+1)))
 
  219         zcvm5 = r5les*rlvtt*(1.-zdelta) + zdelta*r5ies*rlstt
 
  220         zcvm5 = zcvm5/rcpd/(1.0+rvtmp2*q(i,k+1))
 
  221         zqs2 = r2es*foeew(t(i,k+1), zdelta)/pplay(i, k+1)
 
  222         zqs2 = min(0.5, zqs2)
 
  223         zcor = 1./(1.-retv*zqs2)
 
  225         zdqs2 = foede(t(i,k+1), zdelta, zcvm5, zqs2, zcor)
 
  227         IF (t(i,k)<t_coup) 
THEN 
  228           zqs1 = qsats(t(i,k))/pplay(i, k)
 
  229           zdqs1 = dqsats(t(i,k), zqs1)
 
  231           zqs2 = qsats(t(i,k+1))/pplay(i, k+1)
 
  232           zdqs2 = dqsats(t(i,k+1), zqs2)
 
  234           zqs1 = qsatl(t(i,k))/pplay(i, k)
 
  235           zdqs1 = dqsatl(t(i,k), zqs1)
 
  237           zqs2 = qsatl(t(i,k+1))/pplay(i, k+1)
 
  238           zdqs2 = dqsatl(t(i,k+1), zqs2)
 
  241       zdp1 = paprs(i, k) - paprs(i, k+1)
 
  242       zdp2 = paprs(i, k+1) - paprs(i, k+2)
 
  243       zgamdz = -(pplay(i,k)-pplay(i,k+1))/paprs(i, k+1)/rcpd*(rd*(t(i, &
 
  244         k)*zdp1+t(i,k+1)*zdp2)/(zdp1+zdp2)+rlvtt*(zqs1*zdp1+zqs2*zdp2)/(zdp1+ &
 
  245         zdp2))/(1.0+(zdqs1*zdp1+zdqs2*zdp2)/(zdp1+zdp2))
 
  246       zflo = t(i, k) + zgamdz - t(i, k+1)
 
  247       zsat = (q(i,k)-zqs1)*zdp1 + (q(i,k+1)-zqs2)*zdp2
 
  248       IF (zflo>0.0) afaire(i) = .
true.
 
  253   imprim = mod(ncpt, 48) == 0
 
  259           zq1 = q(i, k)*(1.0-ratqs)
 
  260           zq2 = q(i, k)*(1.0+ratqs)
 
  261           w_q(i, k) = zq2 - frac(n)/2.0*(zq2-zq1)
 
  266     CALL conmanv(dtime, paprs, pplay, t, w_q, afaire, opt_cld(n), w_d_t, &
 
  267       w_d_q, w_d_ql, w_rneb, w_rain, w_snow, w_ibas, w_itop, accompli, &
 
  271         IF (afaire(i) .AND. accompli(i)) 
THEN 
  272           d_t(i, k) = w_d_t(i, k)*frac(n)
 
  273           d_q(i, k) = w_d_q(i, k)*frac(n)
 
  274           d_ql(i, k) = w_d_ql(i, k)*frac(n)
 
  275           IF (nint(w_rneb(i,k))==1) rneb(i, k) = frac(n)
 
  280       IF (afaire(i) .AND. accompli(i)) 
THEN 
  281         rain(i) = w_rain(i)*frac(n)
 
  282         snow(i) = w_snow(i)*frac(n)
 
  283         ibas(i) = min(ibas(i), w_ibas(i))
 
  284         itop(i) = max(itop(i), w_itop(i))
 
  288       IF (afaire(i) .AND. accompli(i)) afaire(i) = .
false.
 
  297 SUBROUTINE conmanv(dtime, paprs, pplay, t, q, afaire, opt_cld, d_t, d_q, &
 
  298     d_ql, rneb, rain, snow, ibas, itop, accompli, imprim)
 
  329   LOGICAL accompli(
klon) 
 
  350   REAL deep_sig, deep_to 
 
  361   INTEGER i, k, k1min, k1max, k2min, k2max, is
 
  368   REAL zrfl(
klon), zrfln, zqev, zqevt
 
  373   REAL zdelta, zcor, zcvm5
 
  378   INTEGER nbtodo, nbdone
 
  387       delp(i, k) = paprs(i, k) - paprs(i, k+1)
 
  406     accompli(i) = .
false.
 
  420           zdelta = max(0., sign(1.,rtt-zt(i,k)))
 
  421           zcvm5 = r5les*rlvtt*(1.-zdelta) + zdelta*r5ies*rlstt
 
  422           zcvm5 = zcvm5/rcpd/(1.0+rvtmp2*zq(i,k))
 
  423           zqs(i, k) = r2es*foeew(zt(i,k), zdelta)/pplay(i, k)
 
  424           zqs(i, k) = min(0.5, zqs(i,k))
 
  425           zcor = 1./(1.-retv*zqs(i,k))
 
  426           zqs(i, k) = zqs(i, k)*zcor
 
  427           zdqs(i, k) = foede(zt(i,k), zdelta, zcvm5, zqs(i,k), zcor)
 
  429           IF (zt(i,k)<t_coup) 
THEN 
  430             zqs(i, k) = qsats(zt(i,k))/pplay(i, k)
 
  431             zdqs(i, k) = dqsats(zt(i,k), zqs(i,k))
 
  433             zqs(i, k) = qsatl(zt(i,k))/pplay(i, k)
 
  434             zdqs(i, k) = dqsatl(zt(i,k), zqs(i,k))
 
  439         zqmqsdp(i, k) = (zq(i,k)-zqs(i,k))*delp(i, k)
 
  452         zgamdz(i, k) = -(pplay(i,k)-pplay(i,k+1))/paprs(i, k+1)/rcpd*(rd*(zt( &
 
  453           i,k)*delp(i,k)+zt(i,k+1)*delp(i,k+1))/(delp(i,k)+delp(i, &
 
  454           k+1))+rlvtt*(zqs(i,k)*delp(i,k)+zqs(i,k+1)*delp(i,k+1))/(delp(i, &
 
  455           k)+delp(i,k+1)))/(1.0+(zdqs(i,k)*delp(i,k)+zdqs(i,k+1)*delp(i, &
 
  456           k+1))/(delp(i,k)+delp(i,k+1)))
 
  465     possible(i) = .
false.
 
  470         zflo(i) = zt(i, k-1) + zgamdz(i, k-1) - zt(i, k)
 
  471         zsat(i) = zqmqsdp(i, k) + zqmqsdp(i, k-1)
 
  472         IF (zflo(i)>0.0 .AND. zsat(i)>0.0) possible(i) = .
true.
 
  478     IF (possible(i)) 
THEN 
  490     IF (possible(i)) k2min = min(k2min, k2(i))
 
  492   IF (k2min==
klev) 
GO TO 860
 
  493   DO k = k2min, 
klev - 1
 
  495       IF (possible(i) .AND. k>=k2(i) .AND. aller(i)) 
THEN 
  496         zflo(i) = zt(i, k) + zgamdz(i, k) - zt(i, k+1)
 
  497         zsat(i) = zqmqsdp(i, k) + zqmqsdp(i, k+1)
 
  498         IF (zflo(i)>0.0 .AND. zsat(i)>0.0) 
THEN 
  508     IF (possible(i) .AND. aller(i)) 
THEN 
  537     IF (todo(i)) k2min = min(k2min, k2(i))
 
  542         IF (todo(i) .AND. k>k2(i) .AND. aller(i)) 
THEN 
  543           zsat(i) = zsat(i) + zqmqsdp(i, k)
 
  544           zflo(i) = zt(i, k-1) + zgamdz(i, k-1) - zt(i, k)
 
  545           IF (zflo(i)<=0.0 .OR. zsat(i)<=0.0) 
THEN 
  586       IF (k2(i)<=k1(i)) is = is + 1
 
  590     print *, 
'Impossible: k1 trop grand ou k2 trop petit' 
  600       k1min = min(k1min, k1(i))
 
  601       k1max = max(k1max, k1(i))
 
  602       k2max = max(k2max, k2(i))
 
  610       zb(i) = (rcpd*(1.+zdqs(i,k))*(zt(i,k)-za(i))-rlvtt*(zqs(i,k)-zq(i, &
 
  612       zc(i) = delp(i, k)*rcpd*(1.+zdqs(i,k))
 
  618       IF (todo(i) .AND. k>=(k1(i)+1) .AND. k<=k2(i)) 
THEN 
  619         za(i) = za(i) + zgamdz(i, k-1)
 
  620         zb(i) = zb(i) + (rcpd*(1.+zdqs(i,k))*(zt(i,k)-za(i))-rlvtt*(zqs(i, &
 
  621           k)-zq(i,k)))*delp(i, k)
 
  622         zc(i) = zc(i) + delp(i, k)*rcpd*(1.+zdqs(i,k))
 
  630       ztnew(i, k) = zb(i)/zc(i)
 
  631       zqnew(i, k) = zqs(i, k) + (ztnew(i,k)-zt(i,k))*rcpd/rlvtt*zdqs(i, k)
 
  637       IF (todo(i) .AND. k>=(k1(i)+1) .AND. k<=k2(i)) 
THEN 
  638         ztnew(i, k) = ztnew(i, k-1) + zgamdz(i, k-1)
 
  639         zqnew(i, k) = zqs(i, k) + (ztnew(i,k)-zt(i,k))*rcpd/rlvtt*zdqs(i, k)
 
  651       IF (todo(i) .AND. k>=k1(i) .AND. k<=k2(i)) 
THEN 
  653         zcond(i) = zcond(i) + (zq(i,k)-zqnew(i,k))*delp(i, k)/
rg 
  661     IF (todo(i) .AND. zcond(i)<=0.) todo(i) = .
false.
 
  668     IF (todo(i)) accompli(i) = .
true.
 
  682       toliq(i) = tomax - ((paprs(i,k1(i))-paprs(i,k2(i)+1))/paprs(i,1)-dpmin) &
 
  683         *(tomax-tomin)/(dpmax-dpmin)
 
  684       toliq(i) = max(tomin, min(tomax,toliq(i)))
 
  685       IF (pplay(i,k2(i))/paprs(i,1)<=deep_sig) toliq(i) = deep_to
 
  686       IF (old_tau) toliq(i) = 1.0
 
  708       IF (todo(i)) zrfl(i) = zcond(i)/dtime
 
  711   ELSE IF (opt_cld==1) 
THEN 
  714       IF (todo(i)) zvapo(i) = 0.0 
 
  718         IF (todo(i) .AND. k>=k1(i) .AND. k<=k2(i)) zvapo(i) = zvapo(i) + &
 
  719           zqnew(i, k)*delp(i, k)/
rg 
  724         zrapp(i) = toliq(i)*zcond(i)/zvapo(i)
 
  725         zrapp(i) = max(0., min(1.,zrapp(i)))
 
  726         zrfl(i) = (1.0-toliq(i))*zcond(i)/dtime
 
  731         IF (todo(i) .AND. k>=k1(i) .AND. k<=k2(i)) 
THEN 
  732           d_ql(i, k) = d_ql(i, k) + zrapp(i)*zqnew(i, k)
 
  737   ELSE IF (opt_cld==2) 
THEN 
  740       IF (todo(i)) zvapo(i) = 0.0 
 
  744         IF (todo(i) .AND. k>=k1(i) .AND. k<=k2(i)) zvapo(i) = zvapo(i) + &
 
  750         IF (todo(i) .AND. k>=k1(i) .AND. k<=k2(i)) 
THEN 
  751           d_ql(i, k) = d_ql(i, k) + toliq(i)*zcond(i)/zvapo(i)
 
  756       IF (todo(i)) zrfl(i) = (1.0-toliq(i))*zcond(i)/dtime
 
  759   ELSE IF (opt_cld==3) 
THEN 
  762       IF (todo(i)) zvapo(i) = 0.0 
 
  766         IF (todo(i) .AND. k>=k1(i) .AND. k<=k2(i)) zvapo(i) = zvapo(i) + &
 
  767           max(0.0, zq(i,k)-zqnew(i,k))*delp(i, k)/
rg 
  772         IF (todo(i) .AND. k>=k1(i) .AND. k<=k2(i) .AND. zvapo(i)>0.0) d_ql(i, &
 
  773           k) = d_ql(i, k) + toliq(i)*zcond(i)/zvapo(i)*max(0.0, zq(i,k)-zqnew &
 
  778       IF (todo(i)) zrfl(i) = (1.0-toliq(i))*zcond(i)/dtime
 
  781   ELSE IF (opt_cld==4) 
THEN 
  787       IF (todo(i)) zvapo(i) = 0.0 
 
  791         IF (todo(i) .AND. k>=(k1(i)+1) .AND. k<=k2(i)) zvapo(i) = zvapo(i) + &
 
  792           delp(i, k)/
rg*(pplay(i,k1(i))-pplay(i,k))**nexpo
 
  797         IF (todo(i) .AND. k>=(k1(i)+1) .AND. k<=k2(i)) d_ql(i, k) = d_ql(i, &
 
  798           k) + toliq(i)*zcond(i)/zvapo(i)*(pplay(i,k1(i))-pplay(i,k))**nexpo
 
  802       IF (todo(i)) zrfl(i) = (1.0-toliq(i))*zcond(i)/dtime
 
  807     print *, 
'opt_cld est faux:', opt_cld
 
  815   IF (evap_prec .AND. (k1max>=2)) 
THEN 
  816     DO k = k1max - 1, 1, -1
 
  818         IF (todo(i) .AND. k<k1(i) .AND. zrfl(i)>0.0) 
THEN 
  819           zqev = max(0.0, (zqs(i,k)-zq(i,k))*zalfa)
 
  820           zqevt = coef_eva*(1.0-zq(i,k)/zqs(i,k))*sqrt(zrfl(i))*delp(i, k)/ &
 
  821             pplay(i, k)*zt(i, k)*rd/
rg 
  822           zqevt = max(0.0, min(zqevt,zrfl(i)))*
rg*dtime/delp(i, k)
 
  823           zqev = min(zqev, zqevt)
 
  824           zrfln = zrfl(i) - zqev*(delp(i,k))/
rg/dtime
 
  825           zq(i, k) = zq(i, k) - (zrfln-zrfl(i))*(
rg/(delp(i,k)))*dtime
 
  826           zt(i, k) = zt(i, k) + (zrfln-zrfl(i))*(
rg/(delp(i, &
 
  827             k)))*dtime*rlvtt/rcpd/(1.0+rvtmp2*zq(i,k))
 
  838       IF (zt(i,1)>rtt) 
THEN 
  839         rain(i) = rain(i) + zrfl(i)
 
  841         snow(i) = snow(i) + zrfl(i)
 
  850       IF (todo(i) .AND. k>=k1(i) .AND. k<=k2(i)) 
THEN 
  851         zt(i, k) = ztnew(i, k)
 
  852         zq(i, k) = zqnew(i, k)
 
  864             zdelta = max(0., sign(1.,rtt-zt(i,k)))
 
  865             zcvm5 = r5les*rlvtt*(1.-zdelta) + zdelta*r5ies*rlstt
 
  866             zcvm5 = zcvm5/rcpd/(1.0+rvtmp2*zq(i,k))
 
  867             zqs(i, k) = r2es*foeew(zt(i,k), zdelta)/pplay(i, k)
 
  868             zqs(i, k) = min(0.5, zqs(i,k))
 
  869             zcor = 1./(1.-retv*zqs(i,k))
 
  870             zqs(i, k) = zqs(i, k)*zcor
 
  871             zdqs(i, k) = foede(zt(i,k), zdelta, zcvm5, zqs(i,k), zcor)
 
  873             IF (zt(i,k)<t_coup) 
THEN 
  874               zqs(i, k) = qsats(zt(i,k))/pplay(i, k)
 
  875               zdqs(i, k) = dqsats(zt(i,k), zqs(i,k))
 
  877               zqs(i, k) = qsatl(zt(i,k))/pplay(i, k)
 
  878               zdqs(i, k) = dqsatl(zt(i,k), zqs(i,k))
 
  890           zgamdz(i, k) = -(pplay(i,k)-pplay(i,k+1))/paprs(i, k+1)/rcpd*(rd*( &
 
  891             zt(i,k)*delp(i,k)+zt(i,k+1)*delp(i,k+1))/(delp(i,k)+delp(i, &
 
  892             k+1))+rlvtt*(zqs(i,k)*delp(i,k)+zqs(i,k+1)*delp(i,k+1))/(delp(i, &
 
  893             k)+delp(i,k+1)))/(1.0+(zdqs(i,k)*delp(i,k)+zdqs(i,k+1)*delp(i, &
 
  894             k+1))/(delp(i,k)+delp(i,k+1)))
 
  905         zqmqsdp(i, k) = (zq(i,k)-zqs(i,k))*delp(i, k)
 
  918     IF (todo(i) .AND. k1(i)>(kbase+1)) 
THEN 
  920       zflo(i) = zt(i, k-1) + zgamdz(i, k-1) - zt(i, k)
 
  921       zsat(i) = zqmqsdp(i, k) + zqmqsdp(i, k-1)
 
  925       IF (zflo(i)>0.0 .AND. zsat(i)>0.0) 
THEN 
  928         k1max = max(k1max, k1(i))
 
  934   IF (k1max>(kbase+1)) 
THEN 
  935     DO k = k1max, kbase + 1, -1
 
  937         IF (etendre(i) .AND. k<k1(i) .AND. aller(i)) 
THEN 
  938           zsat(i) = zsat(i) + zqmqsdp(i, k)
 
  939           zflo(i) = zt(i, k) + zgamdz(i, k) - zt(i, k+1)
 
  940           IF (zsat(i)<=0.0 .OR. zflo(i)<=0.0) 
THEN 
  949       IF (etendre(i) .AND. aller(i)) 
THEN 
  989     possible(i) = .
false.
 
  993     IF (todobis(i) .AND. k2(i)<
klev) 
THEN 
 1006       IF (accompli(i)) 
THEN 
 1007         d_t(i, k) = zt(i, k) - t(i, k)
 
 1008         zq(i, k) = max(zq(i,k), seuil_vap)
 
 1009         d_q(i, k) = zq(i, k) - q(i, k)
 
 1015     IF (accompli(i)) 
THEN 
 1017         IF (rneb(i,k)>0.0) 
THEN 
 1024         IF (rneb(i,k)>0.0) 
THEN 
 1037       IF (afaire(i)) nbtodo = nbtodo + 1
 
 1038       IF (accompli(i)) nbdone = nbdone + 1
 
 1040     print *, 
'nbTodo, nbDone=', nbtodo, nbdone
 
 1045 SUBROUTINE conkuo(dtime, paprs, pplay, t, q, conv_q, d_t, d_q, d_ql, rneb, &
 
 1046     rain, snow, ibas, itop)
 
 1101   REAL deep_sig, deep_to 
 
 1108   INTEGER i, k, kbmin, kbmax, khmax
 
 1121   REAL zrfl(
klon), zrfln, zqev, zqevt
 
 1122   REAL zdelta, zcvm5, zcor
 
 1134   DATA appel1er/.
true./
 
 1137     print *, 
'conkuo, calcfcl:', calcfcl
 
 1138     IF (.NOT. calcfcl) print *, 
'conkuo, ldepar:', ldepar
 
 1139     print *, 
'conkuo, opt_cld:', opt_cld
 
 1140     print *, 
'conkuo, evap_prec:', evap_prec
 
 1141     print *, 
'conkuo, new_deh:', new_deh
 
 1167         zdelta = max(0., sign(1.,rtt-t(i,k)))
 
 1168         zcvm5 = r5les*rlvtt*(1.-zdelta) + zdelta*r5ies*rlstt
 
 1169         zcvm5 = zcvm5/rcpd/(1.0+rvtmp2*q(i,k))
 
 1170         zqs(i, k) = r2es*foeew(t(i,k), zdelta)/pplay(i, k)
 
 1171         zqs(i, k) = min(0.5, zqs(i,k))
 
 1172         zcor = 1./(1.-retv*zqs(i,k))
 
 1173         zqs(i, k) = zqs(i, k)*zcor
 
 1174         zdqs(i, k) = foede(t(i,k), zdelta, zcvm5, zqs(i,k), zcor)
 
 1176         IF (t(i,k)<t_coup) 
THEN 
 1177           zqs(i, k) = qsats(t(i,k))/pplay(i, k)
 
 1178           zdqs(i, k) = dqsats(t(i,k), zqs(i,k))
 
 1180           zqs(i, k) = qsatl(t(i,k))/pplay(i, k)
 
 1181           zdqs(i, k) = dqsatl(t(i,k), zqs(i,k))
 
 1190     zgz(i, 1) = rd*t(i, 1)/(0.5*(paprs(i,1)+pplay(i, &
 
 1191       1)))*(paprs(i,1)-pplay(i,1))
 
 1195       zgz(i, k) = zgz(i, k-1) + rd*0.5*(t(i,k-1)+t(i,k))/paprs(i, k)*(pplay(i &
 
 1204       ztotal(i, k) = rcpd*t(i, k) + rlvtt*zqs(i, k) + zgz(i, k)
 
 1215         zpres(i, k) = pplay(i, k)
 
 1216         ztemp(i, k) = t(i, k)
 
 1219     CALL kuofcl(ztemp, q, zgz, zpres, ldcum, kb)
 
 1224           zdeh(i, k) = ztotal(i, k-1) - ztotal(i, k)
 
 1226           zdeh(i, k) = rcpd*(t(i,k-1)-t(i,k)) - rd*0.5*(t(i,k-1)+t(i,k))/ &
 
 1227             paprs(i, k)*(pplay(i,k-1)-pplay(i,k)) + &
 
 1228             rlvtt*(zqs(i,k-1)-zqs(i,k))
 
 1230         zdeh(i, k) = zdeh(i, k)*0.5
 
 1235         IF (ldcum(i) .AND. k>=(kb(i)+1)) 
THEN 
 1237             zdeh(i, k) = zdeh(i, k-1) + (ztotal(i,k-1)-ztotal(i,k))
 
 1239             zdeh(i, k) = zdeh(i, k-1) + rcpd*(t(i,k-1)-t(i,k)) - &
 
 1240               rd*0.5*(t(i,k-1)+t(i,k))/paprs(i, k)* &
 
 1241               (pplay(i,k-1)-pplay(i,k)) + rlvtt*(zqs(i,k-1)-zqs(i,k))
 
 1252         zdeh(i, k) = ztotal(i, k-1) - ztotal(i, k)
 
 1254         zdeh(i, k) = rcpd*(t(i,k-1)-t(i,k)) - rd*0.5*(t(i,k-1)+t(i,k))/paprs( &
 
 1255           i, k)*(pplay(i,k-1)-pplay(i,k)) + rlvtt*(zqs(i,k-1)-zqs(i,k))
 
 1257       zdeh(i, k) = zdeh(i, k)*0.5
 
 1259     DO k = ldepar + 1, 
klev 
 1262           zdeh(i, k) = zdeh(i, k-1) + (ztotal(i,k-1)-ztotal(i,k))
 
 1264           zdeh(i, k) = zdeh(i, k-1) + rcpd*(t(i,k-1)-t(i,k)) - &
 
 1265             rd*0.5*(t(i,k-1)+t(i,k))/paprs(i, k)*(pplay(i,k-1)-pplay(i,k)) + &
 
 1266             rlvtt*(zqs(i,k-1)-zqs(i,k))
 
 1286       IF (k>=kb(i) .AND. ldcum(i)) 
THEN 
 1287         nuage(i) = nuage(i) .AND. zdeh(i, k) > 0.0
 
 1290           zconv(i) = zconv(i) + conv_q(i, k)*dtime*(paprs(i,k)-paprs(i,k+1))
 
 1291           zvirt(i) = zvirt(i) + (zdeh(i,k)/rlvtt+zqs(i,k)-q(i,k))*(paprs(i,k) &
 
 1299     todo(i) = ldcum(i) .AND. kh(i) > kb(i) .AND. zconv(i) > 0.0
 
 1307       kbmin = min(kbmin, kb(i))
 
 1308       kbmax = max(kbmax, kb(i))
 
 1309       khmax = max(khmax, kh(i))
 
 1317       zfrac(i) = max(0.0, min(zconv(i)/zvirt(i),1.0))
 
 1330       IF (todo(i) .AND. k>=kb(i) .AND. k<=kh(i)) 
THEN 
 1331         zvar = zdeh(i, k)/(1.+zdqs(i,k))
 
 1332         d_t(i, k) = zvar*zfrac(i)/rcpd
 
 1333         d_q(i, k) = (zvar*zdqs(i,k)/rlvtt+zqs(i,k)-q(i,k))*zfrac(i) - &
 
 1335         zcond(i) = zcond(i) - d_q(i, k)*(paprs(i,k)-paprs(i,k+1))/
rg 
 1336         rneb(i, k) = zfrac(i)
 
 1342     IF (todo(i) .AND. zcond(i)<0.0) 
THEN 
 1343       print *, 
'WARNING: cond. negative (Kuo) ', i, kb(i), kh(i), zcond(i)
 
 1364       toliq(i) = tomax - ((paprs(i,kb(i))-paprs(i,kh(i)+1))/paprs(i,1)-dpmin) &
 
 1365         *(tomax-tomin)/(dpmax-dpmin)
 
 1366       toliq(i) = max(tomin, min(tomax,toliq(i)))
 
 1367       IF (pplay(i,kh(i))/paprs(i,1)<=deep_sig) toliq(i) = deep_to
 
 1368       IF (old_tau) toliq(i) = 1.0
 
 1387   IF (opt_cld==0) 
THEN 
 1390       IF (todo(i)) zrfl(i) = zcond(i)/dtime
 
 1393   ELSE IF (opt_cld==1) 
THEN 
 1396       IF (todo(i)) zvapo(i) = 0.0 
 
 1400         IF (todo(i) .AND. k>=kb(i) .AND. k<=kh(i)) 
THEN 
 1401           zvapo(i) = zvapo(i) + (q(i,k)+d_q(i,k))*(paprs(i,k)-paprs(i,k+1))/ &
 
 1408         zrapp(i) = toliq(i)*zcond(i)/zvapo(i)
 
 1409         zrapp(i) = max(0., min(1.,zrapp(i)))
 
 1414         IF (todo(i) .AND. k>=kb(i) .AND. k<=kh(i)) 
THEN 
 1415           d_ql(i, k) = zrapp(i)*(q(i,k)+d_q(i,k))
 
 1421         zrfl(i) = (1.0-toliq(i))*zcond(i)/dtime
 
 1425   ELSE IF (opt_cld==2) 
THEN 
 1428       IF (todo(i)) zvapo(i) = 0.0 
 
 1432         IF (todo(i) .AND. k>=kb(i) .AND. k<=kh(i)) 
THEN 
 1433           zvapo(i) = zvapo(i) + (paprs(i,k)-paprs(i,k+1))/
rg 
 1439         IF (todo(i) .AND. k>=kb(i) .AND. k<=kh(i)) 
THEN 
 1440           d_ql(i, k) = toliq(i)*zcond(i)/zvapo(i)
 
 1446         zrfl(i) = (1.0-toliq(i))*zcond(i)/dtime
 
 1450   ELSE IF (opt_cld==3) 
THEN 
 1459         IF (todo(i) .AND. k>=kb(i) .AND. k<=kh(i)) 
THEN 
 1460           zvapo(i) = zvapo(i) + max(0.0, -d_q(i,k))*(paprs(i,k)-paprs(i,k+1)) &
 
 1467         IF (todo(i) .AND. k>=kb(i) .AND. k<=kh(i) .AND. zvapo(i)>0.0) 
THEN 
 1468           d_ql(i, k) = d_ql(i, k) + toliq(i)*zcond(i)/zvapo(i)*max(0.0, -d_q( &
 
 1475         zrfl(i) = (1.0-toliq(i))*zcond(i)/dtime
 
 1479   ELSE IF (opt_cld==4) 
THEN 
 1491         IF (todo(i) .AND. k>=(kb(i)+1) .AND. k<=kh(i)) 
THEN 
 1492           zvapo(i) = zvapo(i) + (paprs(i,k)-paprs(i,k+1))/
rg*(pplay(i,kb(i))- &
 
 1499         IF (todo(i) .AND. k>=(kb(i)+1) .AND. k<=kh(i)) 
THEN 
 1500           d_ql(i, k) = d_ql(i, k) + toliq(i)*zcond(i)/zvapo(i)*(pplay(i,kb(i) &
 
 1501             )-pplay(i,k))**nexpo
 
 1507         zrfl(i) = (1.0-toliq(i))*zcond(i)/dtime
 
 1513     print *, 
'opt_cld est faux:', opt_cld
 
 1520   IF (evap_prec .AND. kbmax>=2) 
THEN 
 1523         IF (todo(i) .AND. k<=(kb(i)-1) .AND. zrfl(i)>0.0) 
THEN 
 1524           zqev = max(0.0, (zqs(i,k)-q(i,k))*zfrac(i))
 
 1525           zqevt = coef_eva*(1.0-q(i,k)/zqs(i,k))*sqrt(zrfl(i))* &
 
 1526             (paprs(i,k)-paprs(i,k+1))/pplay(i, k)*t(i, k)*rd/
rg 
 1527           zqevt = max(0.0, min(zqevt,zrfl(i)))*
rg*dtime/ &
 
 1528             (paprs(i,k)-paprs(i,k+1))
 
 1529           zqev = min(zqev, zqevt)
 
 1530           zrfln = zrfl(i) - zqev*(paprs(i,k)-paprs(i,k+1))/
rg/dtime
 
 1531           d_q(i, k) = -(zrfln-zrfl(i))*(
rg/(paprs(i,k)-paprs(i,k+1)))*dtime
 
 1532           d_t(i, k) = (zrfln-zrfl(i))*(
rg/(paprs(i,k)-paprs(i, &
 
 1533             k+1)))*dtime*rlvtt/rcpd
 
 1544       IF (t(i,1)>rtt) 
THEN 
 1545         rain(i) = rain(i) + zrfl(i)
 
 1547         snow(i) = snow(i) + zrfl(i)
 
 1554 SUBROUTINE kuofcl(pt, pq, pg, pp, ldcum, kcbot)
 
 1580   REAL zqold(
klon), zbuo
 
 1594       ztu(i, k) = pt(i, k)
 
 1595       zqu(i, k) = pq(i, k)
 
 1611       IF (klab(i,k-1)==1) is = is + 1
 
 1613       IF (klab(i,k-1)==1) lflag(i) = .
true.
 
 1615     IF (is==0) 
GO TO 290
 
 1621         zqu(i, k) = zqu(i, k-1)
 
 1622         ztu(i, k) = ztu(i, k-1) + (pg(i,k-1)-pg(i,k))/rcpd
 
 1623         zbuo = ztu(i, k)*(1.+retv*zqu(i,k)) - pt(i, k)*(1.+retv*pq(i,k)) + &
 
 1625         IF (zbuo>0.) klab(i, k) = 1
 
 1626         zqold(i) = zqu(i, k)
 
 1632     CALL adjtq(pp(1,k), ztu(1,k), zqu(1,k), lflag, 1)
 
 1638       IF (lflag(i) .AND. zqu(i,k)/=zqold(i)) 
THEN 
 1640         zlu(i, k) = zlu(i, k) + zqold(i) - zqu(i, k)
 
 1641         zbuo = ztu(i, k)*(1.+retv*zqu(i,k)) - pt(i, k)*(1.+retv*pq(i,k)) + &
 
 1654 SUBROUTINE adjtq(pp, pt, pq, ldflag, kcall)
 
 1677   LOGICAL ldflag(
klon)
 
 1683   REAL zcond(
klon), zcond1
 
 1684   REAL zdelta, zcvm5, zldcp, zqsat, zcor, zdqsat
 
 1695       zdelta = max(0., sign(1.,rtt-pt(i)))
 
 1696       zldcp = rlvtt*(1.-zdelta) + zdelta*rlstt
 
 1697       zldcp = zldcp/rcpd/(1.0+rvtmp2*pq(i))
 
 1699         zcvm5 = r5les*rlvtt*(1.-zdelta) + zdelta*r5ies*rlstt
 
 1700         zcvm5 = zcvm5/rcpd/(1.0+rvtmp2*pq(i))
 
 1701         zqsat = r2es*foeew(pt(i), zdelta)/pp(i)
 
 1702         zqsat = min(0.5, zqsat)
 
 1703         zcor = 1./(1.-retv*zqsat)
 
 1705         zdqsat = foede(pt(i), zdelta, zcvm5, zqsat, zcor)
 
 1707         IF (pt(i)<t_coup) 
THEN 
 1708           zqsat = qsats(pt(i))/pp(i)
 
 1709           zdqsat = dqsats(pt(i), zqsat)
 
 1711           zqsat = qsatl(pt(i))/pp(i)
 
 1712           zdqsat = dqsatl(pt(i), zqsat)
 
 1715       zcond(i) = (pq(i)-zqsat)/(1.+zdqsat)
 
 1716       IF (kcall==1) zcond(i) = max(zcond(i), 0.)
 
 1717       IF (kcall==2) zcond(i) = min(zcond(i), 0.)
 
 1718       pt(i) = pt(i) + zldcp*zcond(i)
 
 1719       pq(i) = pq(i) - zcond(i)
 
 1725     IF (zcond(i)/=0.) is = is + 1
 
 1727   IF (is==0) 
GO TO 230
 
 1730     IF (ldflag(i) .AND. zcond(i)/=0.) 
THEN 
 1731       zdelta = max(0., sign(1.,rtt-pt(i)))
 
 1732       zldcp = rlvtt*(1.-zdelta) + zdelta*rlstt
 
 1733       zldcp = zldcp/rcpd/(1.0+rvtmp2*pq(i))
 
 1735         zcvm5 = r5les*rlvtt*(1.-zdelta) + zdelta*r5ies*rlstt
 
 1736         zcvm5 = zcvm5/rcpd/(1.0+rvtmp2*pq(i))
 
 1737         zqsat = r2es*foeew(pt(i), zdelta)/pp(i)
 
 1738         zqsat = min(0.5, zqsat)
 
 1739         zcor = 1./(1.-retv*zqsat)
 
 1741         zdqsat = foede(pt(i), zdelta, zcvm5, zqsat, zcor)
 
 1743         IF (pt(i)<t_coup) 
THEN 
 1744           zqsat = qsats(pt(i))/pp(i)
 
 1745           zdqsat = dqsats(pt(i), zqsat)
 
 1747           zqsat = qsatl(pt(i))/pp(i)
 
 1748           zdqsat = dqsatl(pt(i), zqsat)
 
 1751       zcond1 = (pq(i)-zqsat)/(1.+zdqsat)
 
 1752       pt(i) = pt(i) + zldcp*zcond1
 
 1753       pq(i) = pq(i) - zcond1
 
 1759 END SUBROUTINE adjtq 
 1760 SUBROUTINE fiajh(dtime, paprs, pplay, t, q, d_t, d_q, d_ql, rneb, rain, snow, &
 
 1795   INTEGER k1, k1p, k2, k2p
 
 1799   REAL cp_delta_t(
klev)
 
 1801   REAL v_cptj(
klev), v_cptjk1, v_ssig
 
 1813   REAL zdelta, zcor, zcvm5
 
 1820       local_q(i, k) = q(i, k)
 
 1821       local_t(i, k) = t(i, k)
 
 1839       v_cptt(i, k) = rcpd*local_t(i, k)
 
 1844         zdelta = max(0., sign(1.,rtt-v_t))
 
 1845         zcvm5 = r5les*rlvtt*(1.-zdelta) + zdelta*r5ies*rlstt
 
 1846         zcvm5 = zcvm5/rcpd/(1.0+rvtmp2*local_q(i,k))
 
 1847         v_qs(i, k) = r2es*foeew(v_t, zdelta)/v_p
 
 1848         v_qs(i, k) = min(0.5, v_qs(i,k))
 
 1849         zcor = 1./(1.-retv*v_qs(i,k))
 
 1850         v_qs(i, k) = v_qs(i, k)*zcor
 
 1851         v_qsd(i, k) = foede(v_t, zdelta, zcvm5, v_qs(i,k), zcor)
 
 1853         IF (v_t<t_coup) 
THEN 
 1854           v_qs(i, k) = qsats(v_t)/v_p
 
 1855           v_qsd(i, k) = dqsats(v_t, v_qs(i,k))
 
 1857           v_qs(i, k) = qsatl(v_t)/v_p
 
 1858           v_qsd(i, k) = dqsatl(v_t, v_qs(i,k))
 
 1868       zdp = paprs(i, k) - paprs(i, k+1)
 
 1869       zdpm = paprs(i, k-1) - paprs(i, k)
 
 1870       gamcpdz(i, k) = ((rd/rcpd/(zdpm+zdp)*(v_cptt(i,k-1)*zdpm+ &
 
 1871         v_cptt(i,k)*zdp)+rlvtt/(zdpm+zdp)*(v_qs(i,k-1)*zdpm+ &
 
 1872         v_qs(i,k)*zdp))*(pplay(i,k-1)-pplay(i,k))/paprs(i,k))/(1.0+(v_qsd(i, &
 
 1873         k-1)*zdpm+v_qsd(i,k)*zdp)/(zdpm+zdp))
 
 1886     IF (k2>
klev) 
GO TO 9999
 
 1887     zflo = v_cptt(i, k2-1) - v_cptt(i, k2) - gamcpdz(i, k2)
 
 1888     zsat = (local_q(i,k2-1)-v_qs(i,k2-1))*(paprs(i,k2-1)-paprs(i,k2)) + &
 
 1889       (local_q(i,k2)-v_qs(i,k2))*(paprs(i,k2)-paprs(i,k2+1))
 
 1890     IF (zflo<=0.0 .OR. zsat<=0.0) 
GO TO 810
 
 1895     IF (k2==
klev) 
GO TO 821
 
 1897     zsat = zsat + (paprs(i,k2p)-paprs(i,k2p+1))*(local_q(i,k2p)-v_qs(i,k2p))
 
 1898     zflo = v_cptt(i, k2p-1) - v_cptt(i, k2p) - gamcpdz(i, k2p)
 
 1899     IF (zflo<=0.0 .OR. zsat<=0.0) 
GO TO 821
 
 1907     zdp = paprs(i, k1) - paprs(i, k1+1)
 
 1908     v_cptjk1 = ((1.0+v_qsd(i,k1))*(v_cptt(i,k1)+v_cptj(k1))+rlvtt*(local_q(i, &
 
 1909       k1)-v_qs(i,k1)))*zdp
 
 1910     v_ssig = zdp*(1.0+v_qsd(i,k1))
 
 1914       zdp = paprs(i, k) - paprs(i, k+1)
 
 1915       v_cptj(k) = v_cptj(k-1) + gamcpdz(i, k)
 
 1916       v_cptjk1 = v_cptjk1 + zdp*((1.0+v_qsd(i,k))*(v_cptt(i, &
 
 1917         k)+v_cptj(k))+rlvtt*(local_q(i,k)-v_qs(i,k)))
 
 1918       v_ssig = v_ssig + zdp*(1.0+v_qsd(i,k))
 
 1922       cp_new_t(k) = v_cptjk1/v_ssig - v_cptj(k)
 
 1923       cp_delta_t(k) = cp_new_t(k) - v_cptt(i, k)
 
 1924       new_qb(k) = v_qs(i, k) + v_qsd(i, k)*cp_delta_t(k)/rlvtt
 
 1925       local_q(i, k) = new_qb(k)
 
 1926       local_t(i, k) = cp_new_t(k)/rcpd
 
 1934       v_cptt(i, k) = rcpd*local_t(i, k)
 
 1939         zdelta = max(0., sign(1.,rtt-v_t))
 
 1940         zcvm5 = r5les*rlvtt*(1.-zdelta) + zdelta*r5ies*rlstt
 
 1941         zcvm5 = zcvm5/rcpd/(1.0+rvtmp2*local_q(i,k))
 
 1942         v_qs(i, k) = r2es*foeew(v_t, zdelta)/v_p
 
 1943         v_qs(i, k) = min(0.5, v_qs(i,k))
 
 1944         zcor = 1./(1.-retv*v_qs(i,k))
 
 1945         v_qs(i, k) = v_qs(i, k)*zcor
 
 1946         v_qsd(i, k) = foede(v_t, zdelta, zcvm5, v_qs(i,k), zcor)
 
 1948         IF (v_t<t_coup) 
THEN 
 1949           v_qs(i, k) = qsats(v_t)/v_p
 
 1950           v_qsd(i, k) = dqsats(v_t, v_qs(i,k))
 
 1952           v_qs(i, k) = qsatl(v_t)/v_p
 
 1953           v_qsd(i, k) = dqsatl(v_t, v_qs(i,k))
 
 1958       zdpm = paprs(i, k-1) - paprs(i, k)
 
 1959       zdp = paprs(i, k) - paprs(i, k+1)
 
 1960       gamcpdz(i, k) = ((rd/rcpd/(zdpm+zdp)*(v_cptt(i,k-1)*zdpm+ &
 
 1961         v_cptt(i,k)*zdp)+rlvtt/(zdpm+zdp)*(v_qs(i,k-1)*zdpm+ &
 
 1962         v_qs(i,k)*zdp))*(pplay(i,k-1)-pplay(i,k))/paprs(i,k))/(1.0+(v_qsd(i, &
 
 1963         k-1)*zdpm+v_qsd(i,k)*zdp)/(zdpm+zdp))
 
 1968     IF (k1==1) 
GO TO 841 
 
 1969     zflo = v_cptt(i, k1-1) - v_cptt(i, k1) - gamcpdz(i, k1)
 
 1970     zsat = (local_q(i,k1-1)-v_qs(i,k1-1))*(paprs(i,k1-1)-paprs(i,k1)) + &
 
 1971       (local_q(i,k1)-v_qs(i,k1))*(paprs(i,k1)-paprs(i,k1+1))
 
 1972     IF (zflo<=0.0 .OR. zsat<=0.0) 
GO TO 841 
 
 1976     IF (k1==1) 
GO TO 830 
 
 1977     zsat = zsat + (local_q(i,k1-1)-v_qs(i,k1-1))*(paprs(i,k1-1)-paprs(i,k1))
 
 1978     zflo = v_cptt(i, k1-1) - v_cptt(i, k1) - gamcpdz(i, k1)
 
 1979     IF (zflo>0.0 .AND. zsat>0.0) 
THEN 
 1997         delta_q(i, k) = local_q(i, k) - q(i, k)
 
 1998         IF (delta_q(i,k)<0.) rneb(i, k) = 1.0
 
 2016         zdp = paprs(i, k) - paprs(i, k+1)
 
 2017         zq1(i) = zq1(i) - delta_q(i, k)*zdp
 
 2018         zq2(i) = zq2(i) - min(0.0, delta_q(i,k))*zdp
 
 2025         IF (zq2(i)/=0.0) d_ql(i, k) = -min(0.0, delta_q(i,k))*zq1(i)/zq2(i)
 
 2032       local_q(i, k) = max(local_q(i,k), seuil_vap)
 
 2038       d_t(i, k) = local_t(i, k) - t(i, k)
 
 2039       d_q(i, k) = local_q(i, k) - q(i, k)
 
 2044 END SUBROUTINE fiajh 
 2045 SUBROUTINE fiajc(dtime, paprs, pplay, t, q, conv_q, d_t, d_q, d_ql, rneb, &
 
 2046     rain, snow, ibas, itop)
 
 2082   INTEGER kh(
klon), i, k
 
 2086   REAL ztt, zvar, zfrac(
klon)
 
 2088   REAL zdelta, zcor, zcvm5
 
 2116         zdelta = max(0., sign(1.,rtt-ztt))
 
 2117         zcvm5 = r5les*rlvtt*(1.-zdelta) + zdelta*r5ies*rlstt
 
 2118         zcvm5 = zcvm5/rcpd/(1.0+rvtmp2*q(i,k))
 
 2119         zqs(i, k) = r2es*foeew(ztt, zdelta)/pplay(i, k)
 
 2120         zqs(i, k) = min(0.5, zqs(i,k))
 
 2121         zcor = 1./(1.-retv*zqs(i,k))
 
 2122         zqs(i, k) = zqs(i, k)*zcor
 
 2123         zdqs(i, k) = foede(ztt, zdelta, zcvm5, zqs(i,k), zcor)
 
 2125         IF (ztt<t_coup) 
THEN 
 2126           zqs(i, k) = qsats(ztt)/pplay(i, k)
 
 2127           zdqs(i, k) = dqsats(ztt, zqs(i,k))
 
 2129           zqs(i, k) = qsatl(ztt)/pplay(i, k)
 
 2130           zdqs(i, k) = dqsatl(ztt, zqs(i,k))
 
 2140     zdeh(i, k) = rcpd*(t(i,k-1)-t(i,k)) - rd*0.5*(t(i,k-1)+t(i,k))/paprs(i, k &
 
 2141       )*(pplay(i,k-1)-pplay(i,k)) + rlvtt*(zqs(i,k-1)-zqs(i,k))
 
 2142     zdeh(i, k) = zdeh(i, k)*0.5 
 
 2144   DO k = plb + 1, 
klev 
 2146       zdeh(i, k) = zdeh(i, k-1) + rcpd*(t(i,k-1)-t(i,k)) - &
 
 2147         rd*0.5*(t(i,k-1)+t(i,k))/paprs(i, k)*(pplay(i,k-1)-pplay(i,k)) + &
 
 2148         rlvtt*(zqs(i,k-1)-zqs(i,k))
 
 2163       nuage(i) = nuage(i) .AND. zdeh(i, k) > 0.0
 
 2166         zconv(i) = zconv(i) + conv_q(i, k)*dtime*(paprs(i,k)-paprs(i,k+1))
 
 2167         zvirt(i) = zvirt(i) + (zdeh(i,k)/rlvtt+zqs(i,k)-q(i,k))*(paprs(i,k)- &
 
 2178         IF (k<=kh(i) .AND. kh(i)>plb .AND. zconv(i)>0.0) 
THEN 
 2180           zfrac(i) = max(0.0, min(zconv(i)/zvirt(i),1.0))
 
 2182           test(i, k) = .
false.
 
 2190           zvar = zdeh(i, k)/(1.0+zdqs(i,k))
 
 2191           d_q(i, k) = (zvar*zdqs(i,k)/rlvtt+zqs(i,k)-q(i,k))*zfrac(i) - &
 
 2193           d_t(i, k) = zvar*zfrac(i)/rcpd
 
 2205           IF (d_q(i,k)<0.0) rneb(i, k) = zfrac(i)
 
 2206           zq1(i) = zq1(i) - d_q(i, k)*(paprs(i,k)-paprs(i,k+1))
 
 2207           zq2(i) = zq2(i) - min(0.0, d_q(i,k))*(paprs(i,k)-paprs(i,k+1))
 
 2215           IF (zq2(i)/=0.) d_ql(i, k) = -min(0.0, d_q(i,k))*zq1(i)/zq2(i)
 
 2223       IF (kh(i)>plb .AND. zconv(i)>0.0) 
THEN 
 2226         zfrac(i) = max(0.0, min(zconv(i)/zvirt(i),1.0))
 
 2228           zvar = zdeh(i, k)/(1.0+zdqs(i,k))
 
 2229           d_q(i, k) = (zvar*zdqs(i,k)/rlvtt+zqs(i,k)-q(i,k))*zfrac(i) - &
 
 2231           d_t(i, k) = zvar*zfrac(i)/rcpd
 
 2237           IF (d_q(i,k)<0.0) rneb(i, k) = zfrac(i)
 
 2238           zq1(i) = zq1(i) - d_q(i, k)*(paprs(i,k)-paprs(i,k+1))
 
 2239           zq2(i) = zq2(i) - min(0.0, d_q(i,k))*(paprs(i,k)-paprs(i,k+1))
 
 2242           IF (zq2(i)/=0.) d_ql(i, k) = -min(0.0, d_q(i,k))*zq1(i)/zq2(i)
 
 2250 END SUBROUTINE fiajc 
subroutine conman(dtime, paprs, pplay, t, q, d_t, d_q, d_ql, rneb, rain, snow, ibas, itop)
 
subroutine conlmd(dtime, paprs, pplay, t, q, conv_q, d_t, d_q, rain, snow, ibas, itop)
 
subroutine adjtq(pp, pt, pq, ldflag, kcall)
 
!$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 fiajh(dtime, paprs, pplay, t, q, d_t, d_q, d_ql, rneb, rain, snow, ibas, itop)
 
!$Header!integer nvarmx parameter(nfmx=10, imx=200, jmx=150, lmx=200, nvarmx=1000) real xd(imx
 
!$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 ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
 
subroutine conkuo(dtime, paprs, pplay, t, q, conv_q, d_t, d_q, d_ql, rneb, rain, snow, ibas, itop)
 
subroutine fiajc(dtime, paprs, pplay, t, q, conv_q, d_t, d_q, d_ql, rneb, rain, snow, ibas, itop)
 
subroutine conmanv(dtime, paprs, pplay, t, q, afaire, opt_cld, d_t, d_q, d_ql, rneb, rain, snow, ibas, itop, accompli, imprim)
 
subroutine kuofcl(pt, pq, pg, pp, ldcum, kcbot)