4 SUBROUTINE convect3(dtime, epmax, ok_adj, t1, r1, rs, u, v, tra, p, ph, nd, &
 
    5     ndp1, 
nl, ntra, delt, iflag, ft, fr, fu, fv, ftra, precip, icb, inb, &
 
    6     upwd, dnwd, dnwd0, sig, w0, mike, mke, ma, ments, qents, tps, tls, sigij, &
 
    7     cape, tvp, pbase, buoybase, &  
 
    9     dtvpdt1, dtvpdq1, dplcldt, dplcldr, & 
 
   10     ft2, fr2, fu2, fv2, wd, qcond, qcondc) 
 
   27   INTEGER nd, ndp1, nl, ntra, iflag, icb, inb
 
   28   REAL dtime, epmax, delt, precip, cape
 
   30   REAL t1(nd), r1(nd), rs(nd), u(nd), v(nd), tra(nd, ntra)
 
   32   REAL ft(nd), fr(nd), fu(nd), fv(nd), ftra(nd, ntra)
 
   34   REAL uent(na, na), vent(na, na), traent(na, na, 
nbtr), tratm(na)
 
   35   REAL up(na), vp(na), trap(na, 
nbtr)
 
   36   REAL m(na), mp(na), ment(na, na), qent(na, na), elij(na, na)
 
   37   REAL sij(na, na), tvp(na), tv(na), water(na)
 
   38   REAL rp(na), ep(na), th(na), wt(na), evap(na), clw(na)
 
   39   REAL sigp(na), b(na), tp(na), cpn(na)
 
   40   REAL lv(na), lvcp(na), h(na), hp(na), gz(na)
 
   43   REAL ft2(nd), fr2(nd), fu2(nd), fv2(nd) 
 
   47   REAL dtvpdt1(nd), dtvpdq1(nd) 
 
   49   REAL clw_new(na), qi(na)
 
   53   REAL qcond(nd), nqcond(na), wa(na), maa(na), siga(na), axc(na) 
 
   55   LOGICAL ice_conv, ok_adj
 
   74   REAL :: cpv,cl,cpvmcl,eps,alv0,rdcp,pbcrit,ptcrit,sigd,spfac
 
   75   REAL :: tau,beta,alpha,dtcrit,dtovsh,ahm,rm,um,vm,dphinv
 
   76   REAL :: a2,x,tvx,tvy,plcl,pden,dpbase,tvpbase,tvbase,tdif
 
   77   REAL :: ath1,ath,delti,deltap,dcape,dlnp,sigold,dtmin,fac,w
 
   78   REAL :: amu,rti,cpd,bf2,anum,denom,dei,altem,cwat,stemp,qp
 
   79   REAL :: scrit,alt,smax,asij,wgh,sjmax,sjmin,smid,delp,delm
 
   80   REAL :: asum,bsum,csum,wflux,tinv,wdtrain,awat,afac,afac1,afac2
 
   81   REAL :: bfac,pr1,pr2,sigt,b6,c6,revap,tevap,delth,amfac,amp2
 
   82   REAL :: xf,tf,af,bf,fac2,ur,sru,d,ampmax,dpinv,am,amde,cpinv
 
   83   REAL :: amp1,ad,rat,ax,bx,cx,dx,ex,dsum
 
   84   INTEGER :: nk,i,j,nopt,jn,k,im,jm,n
 
  156     rdcp = (rd*(1.-rr(i))+rr(i)*rv)/(cpd*(1.-rr(i))+rr(i)*cpv)
 
  157     th(i) = t(i)*(1000.0/p(i))**rdcp
 
  164     rdcp = (rd*(1.-rr(i))+rr(i)*rv)/(cpd*(1.-rr(i))+rr(i)*cpv)
 
  166     tls(i) = t(i)*(1000.0/p(i))**rdcp
 
  210   beta = 1. - dtime/tau
 
  213   alpha = 1.5e-3*dtime/tau
 
  227   sig(nd) = sig(nd) + 1.0
 
  228   sig(nd) = amin1(sig(nd), 12.1)
 
  248         IF (th(j)<th(i)) jn = j
 
  259         ahm = ahm + (cpd*(1.-rr(j))+rr(j)*cpv)*t(j)*(ph(j)-ph(j+1))
 
  260         rm = rm + rr(j)*(ph(j)-ph(j+1))
 
  261         um = um + u(j)*(ph(j)-ph(j+1))
 
  262         vm = vm + v(j)*(ph(j)-ph(j+1))
 
  264           tratm(k) = tratm(k) + tra(j, k)*(ph(j)-ph(j+1))
 
  267       dphinv = 1./(ph(i)-ph(jn+1))
 
  272         tratm(k) = tratm(k)*dphinv
 
  282         rdcp = (rd*(1.-rr(j))+rr(j)*rv)/(cpd*(1.-rr(j))+rr(j)*cpv)
 
  283         x = (0.001*p(j))**rdcp
 
  285         a2 = a2 + (cpd*(1.-rr(j))+rr(j)*cpv)*x*(ph(j)-ph(j+1))
 
  300       ft2(i) = (t(i)-t1(i))/delt 
 
  301       fr2(i) = (rr(i)-r1(i))/delt 
 
  302       fu2(i) = (u(i)-u1(i))/delt 
 
  303       fv2(i) = (v(i)-v1(i))/delt 
 
  313   cpn(1) = cpd*(1.-rr(1)) + rr(1)*cpv
 
  316     tvx = t(i)*(1.+rr(i)/eps-rr(i))
 
  317     tvy = t(i-1)*(1.+rr(i-1)/eps-rr(i-1))
 
  318     gz(i) = gz(i-1) + 0.5*rd*(tvx+tvy)*(p(i-1)-p(i))/ph(i)
 
  319     cpn(i) = cpd*(1.-rr(i)) + cpv*rr(i)
 
  320     h(i) = t(i)*cpn(i) + gz(i)
 
  326   IF (t(1)<250.0 .OR. rr(1)<=0.0) 
THEN 
  336   CALL clift(p(1), t(1), rr(1), rs(1), plcl, dplcldt, dplcldr)
 
  341   IF (plcl<200.0 .OR. plcl>=2000.0) 
THEN 
  372   IF (icb==(nl-1)) 
THEN 
  392   IF (plcl>p(icb)) 
THEN 
  394     CALL tlift(p, t, rr, rs, gz, plcl, icb, nk, tvp, tp, clw, nd, nl, &
 
  398     CALL tlift(p, t, rr, rs, gz, plcl, icb+1, nk, tvp, tp, clw, nd, nl, &
 
  419     pden = ptcrit - pbcrit
 
  424     ep(i) = (plcl-p(i)-pbcrit)/pden*epmax 
 
  426     ep(i) = amax1(ep(i), 0.0)
 
  428     ep(i) = amin1(ep(i), epmax) 
 
  434     tv(i) = t(i)*(1.+rr(i)/eps-rr(i))
 
  444     buoy(i) = tvp(i) - tv(i)
 
  450   pbase = plcl + dpbase
 
  451   tvpbase = tvp(icb)*(pbase-p(icb+1))/(p(icb)-p(icb+1)) + &
 
  452     tvp(icb+1)*(p(icb)-pbase)/(p(icb)-p(icb+1))
 
  453   tvbase = tv(icb)*(pbase-p(icb+1))/(p(icb)-p(icb+1)) + &
 
  454     tv(icb+1)*(p(icb)-pbase)/(p(icb)-p(icb+1))
 
  464   buoybase = tvpbase - tvbase
 
  469     IF (p(i)>=pbase) 
THEN 
  506   ath = th(icb-1) - 5.0
 
  509   IF (tdif<dtcrit .OR. ath>ath1) 
THEN 
  511       sig(i) = beta*sig(i) - 2.*alpha*tdif*tdif
 
  512       sig(i) = amax1(sig(i), 0.0)
 
  533       trap(i, j) = tra(i, j)
 
  541     lv(i) = alv0 - cpvmcl*(t(i)-273.15)
 
  542     lvcp(i) = lv(i)/cpn(i)
 
  551         traent(i, j, k) = tra(j, k)
 
  565     IF (buoy(i)<dtovsh) 
THEN 
  577     DO i = inb + 1, nl - 1
 
  581       sig(i) = beta*sig(i) + 2.*alpha*buoy(inb)*abs(buoy(inb))
 
  582       sig(i) = amax1(sig(i), 0.0)
 
  590     sig(i) = beta*sig(i) - 2.*alpha*buoy(icb)*buoy(icb)
 
  591     sig(i) = amax1(sig(i), 0.0)
 
  599   IF (sig(nd)<1.5 .OR. sig(nd)>12.0) 
THEN 
  609     hp(i) = h(1) + (lv(i)+(cpd-cpv)*t(i))*ep(i)*clw(i)
 
  624     deltap = min(pbase, ph(i-1)) - min(pbase, ph(i))
 
  625     cape = cape + rd*buoy(i-1)*deltap/p(i-1)
 
  626     dcape = rd*buoy(i-1)*deltap/p(i-1)
 
  637     cape = amax1(0.0, cape)
 
  644       dtmin = amin1(dtmin, buoy(j))
 
  647     sig(i) = beta*sig(i) + alpha*dtmin*abs(dtmin)
 
  648     sig(i) = amax1(sig(i), 0.0)
 
  649     sig(i) = amin1(sig(i), 0.01)
 
  650     fac = amin1(((dtcrit-dtmin)/dtcrit), 1.0)
 
  655     w = (1.-beta)*fac*sqrt(cape) + beta*w0(i)
 
  656     amu = 0.5*(sig(i)+sigold)*w
 
  657     m(i) = amu*0.007*p(i)*(ph(i)-ph(i+1))/tv(i)
 
  669   w0(icb) = 0.5*w0(icb+1)
 
  670   m(icb) = 0.5*m(icb+1)*(ph(icb)-ph(icb+1))/(ph(icb+1)-ph(icb+2))
 
  671   sig(icb) = sig(icb+1)
 
  672   sig(icb-1) = sig(icb)
 
  689     rti = rr(1) - ep(i)*clw(i)
 
  691       bf2 = 1. + lv(j)*lv(j)*rs(j)/(rv*t(j)*t(j)*cpd)
 
  692       anum = h(j) - hp(i) + (cpv-cpd)*t(j)*(rti-rr(j))
 
  693       denom = h(i) - hp(i) + (cpd-cpv)*(rr(i)-rti)*t(j)
 
  695       IF (abs(dei)<0.01) dei = 0.01
 
  698       altem = sij(i, j)*rr(i) + (1.-sij(i,j))*rti - rs(j)
 
  700       cwat = clw(j)*(1.-ep(j))
 
  702       IF ((stemp<0.0 .OR. stemp>1.0 .OR. altem>cwat) .AND. j>i) 
THEN 
  703         anum = anum - lv(j)*(rti-rs(j)-cwat*bf2)
 
  704         denom = denom + lv(j)*(rr(i)-rti)
 
  705         IF (abs(denom)<0.01) denom = 0.01
 
  706         sij(i, j) = anum/denom
 
  707         altem = sij(i, j)*rr(i) + (1.-sij(i,j))*rti - rs(j)
 
  708         altem = altem - (bf2-1.)*cwat
 
  712       IF (sij(i,j)>0.0 .AND. sij(i,j)<0.95) 
THEN 
  713         qent(i, j) = sij(i, j)*rr(i) + (1.-sij(i,j))*rti
 
  714         uent(i, j) = sij(i, j)*u(i) + (1.-sij(i,j))*u(nk)
 
  715         vent(i, j) = sij(i, j)*v(i) + (1.-sij(i,j))*v(nk)
 
  717           traent(i, j, k) = sij(i, j)*tra(i, k) + (1.-sij(i,j))*tra(nk, k)
 
  720         elij(i, j) = amax1(0.0, elij(i,j))
 
  721         ment(i, j) = m(i)/(1.-sij(i,j))
 
  722         nent(i) = nent(i) + 1
 
  724       sij(i, j) = amax1(0.0, sij(i,j))
 
  725       sij(i, j) = amin1(1.0, sij(i,j))
 
  735       qent(i, i) = rr(nk) - ep(i)*clw(i)
 
  739         traent(i, i, j) = tra(nk, j)
 
  746       sigij(i, j) = sij(i, j)
 
  757       qp = rr(1) - ep(i)*clw(i)
 
  758       anum = h(i) - hp(i) - lv(i)*(qp-rs(i)) + (cpv-cpd)*t(i)*(qp-rr(i))
 
  759       denom = h(i) - hp(i) + lv(i)*(rr(i)-qp) + (cpd-cpv)*t(i)*(rr(i)-qp)
 
  760       IF (abs(denom)<0.01) denom = 0.01
 
  762       alt = qp - rs(i) + scrit*(rr(i)-qp)
 
  763       IF (scrit<=0.0 .OR. alt<=0.0) scrit = 1.0
 
  766       DO j = inb, icb - 1, -1
 
  767         IF (sij(i,j)>1.0e-16 .AND. sij(i,j)<0.95) 
THEN 
  770             sjmax = amax1(sij(i,j+1), smax)
 
  771             sjmax = amin1(sjmax, scrit)
 
  772             smax = amax1(sij(i,j), smax)
 
  773             sjmin = amax1(sij(i,j-1), smax)
 
  774             sjmin = amin1(sjmin, scrit)
 
  775             IF (sij(i,j)<(smax-1.0e-16)) wgh = 0.0
 
  776             smid = amin1(sij(i,j), scrit)
 
  778             sjmax = amax1(sij(i,j+1), scrit)
 
  779             smid = amax1(sij(i,j), scrit)
 
  781             IF (j>1) sjmin = sij(i, j-1)
 
  782             sjmin = amax1(sjmin, scrit)
 
  784           delp = abs(sjmax-smid)
 
  785           delm = abs(sjmin-smid)
 
  786           asij = asij + wgh*(delp+delm)
 
  787           ment(i, j) = ment(i, j)*(delp+delm)*wgh
 
  790       asij = amax1(1.0e-16, asij)
 
  793         ment(i, j) = ment(i, j)*asij
 
  798         asum = asum + ment(i, j)
 
  799         ment(i, j) = ment(i, j)*sig(j)
 
  800         bsum = bsum + ment(i, j)
 
  802       bsum = amax1(bsum, 1.0e-16)
 
  805         ment(i, j) = ment(i, j)*asum*bsum
 
  809         csum = csum + ment(i, j)
 
  815         qent(i, i) = rr(1) - ep(i)*clw(i)
 
  819           traent(i, i, j) = tra(nk, j)
 
  836       qents(im, jm) = qent(im, jm)
 
  837       ments(im, jm) = ment(im, jm)
 
  856   IF (ep(inb)<0.0001) 
GO TO 405
 
  872     wdtrain = 10.0*ep(i)*m(i)*clw(i)
 
  875         awat = elij(j, i) - (1.-ep(i))*clw(i)
 
  876         awat = amax1(awat, 0.0)
 
  877         wdtrain = wdtrain + 10.0*awat*ment(j, i)
 
  888       rp(i) = rp(i+1) + (cpd*(t(i+1)-t(i))+gz(i+1)-gz(i))/lv(i)
 
  889       rp(i) = 0.5*(rp(i)+rr(i))
 
  891     rp(i) = amax1(rp(i), 0.0)
 
  892     rp(i) = amin1(rp(i), rs(i))
 
  895       afac = p(1)*(rs(1)-rp(1))/(1.0e4+2000.0*p(1)*rs(1))
 
  897       rp(i-1) = rp(i) + (cpd*(t(i)-t(i-1))+gz(i)-gz(i-1))/lv(i)
 
  898       rp(i-1) = 0.5*(rp(i-1)+rr(i-1))
 
  899       rp(i-1) = amin1(rp(i-1), rs(i-1))
 
  900       rp(i-1) = amax1(rp(i-1), 0.0)
 
  901       afac1 = p(i)*(rs(i)-rp(i))/(1.0e4+2000.0*p(i)*rs(i))
 
  902       afac2 = p(i-1)*(rs(i-1)-rp(i-1))/(1.0e4+2000.0*p(i-1)*rs(i-1))
 
  903       afac = 0.5*(afac1+afac2)
 
  905     IF (i==inb) afac = 0.0
 
  906     afac = amax1(afac, 0.0)
 
  907     bfac = 1./(sigd*wt(i))
 
  919     pr1 = (plcl-ph(i+1))/(ph(i)-ph(i+1))
 
  920     pr1 = max(0., min(1.,pr1))
 
  921     pr2 = (ph(i)-plcl)/(ph(i)-ph(i+1))
 
  922     pr2 = max(0., min(1.,pr2))
 
  923     sigt = sigp(i)*pr1 + pr2
 
  927     b6 = bfac*50.*sigd*(ph(i)-ph(i+1))*sigt*afac
 
  928     c6 = water(i+1) + bfac*wdtrain - 50.*sigd*bfac*(ph(i)-ph(i+1))*evap(i+1)
 
  930       revap = 0.5*(-b6+sqrt(b6*b6+4.*c6))
 
  931       evap(i) = sigt*afac*revap
 
  932       water(i) = revap*revap
 
  934       evap(i) = -evap(i+1) + 0.02*(wdtrain+sigd*wt(i)*water(i+1))/(sigd*(ph(i &
 
  944     tevap = amax1(0.0, evap(i))
 
  945     delth = amax1(0.001, (th(i)-th(i-1)))
 
  946     mp(i) = 10.*lvcp(i)*sigd*tevap*(p(i-1)-p(i))/delth
 
  952     amfac = sigd*sigd*70.0*ph(i)*(p(i-1)-p(i))*(th(i)-th(i-1))/(tv(i)*th(i))
 
  953     amp2 = abs(mp(i+1)*mp(i+1)-mp(i)*mp(i))
 
  954     IF (amp2>(0.1*amfac)) 
THEN 
  955       xf = 100.0*sigd*sigd*sigd*(ph(i)-ph(i+1))
 
  956       tf = b(i) - 5.0*(th(i)-th(i-1))*t(i)/(lvcp(i)*sigd*th(i))
 
  957       af = xf*tf + mp(i+1)*mp(i+1)*tinv
 
  958       bf = 2.*(tinv*mp(i+1))**3 + tinv*mp(i+1)*xf*tf + &
 
  959         50.*(p(i-1)-p(i))*xf*tevap
 
  961       IF (bf<0.0) fac2 = -1.0
 
  963       ur = 0.25*bf*bf - af*af*af*tinv*tinv*tinv
 
  967         IF ((0.5*bf-sru)<0.0) fac = -1.0
 
  968         mp(i) = mp(i+1)*tinv + (0.5*bf+sru)**tinv + &
 
  969           fac*(abs(0.5*bf-sru))**tinv
 
  971         d = atan(2.*sqrt(-ur)/(bf+1.0e-28))
 
  972         IF (fac2<0.0) d = 3.14159 - d
 
  973         mp(i) = mp(i+1)*tinv + 2.*sqrt(af*tinv)*cos(d*tinv)
 
  975       mp(i) = amax1(0.0, mp(i))
 
  976       b(i-1) = b(i) + 100.0*(p(i-1)-p(i))*tevap/(mp(i)+sigd*0.1) - &
 
  977         10.0*(th(i)-th(i-1))*t(i)/(lvcp(i)*sigd*th(i))
 
  978       b(i-1) = amax1(b(i-1), 0.0)
 
  985     ampmax = 2.0*(ph(i)-ph(i+1))*delti
 
  986     amp2 = 2.0*(ph(i-1)-ph(i))*delti
 
  987     ampmax = amin1(ampmax, amp2)
 
  988     mp(i) = amin1(mp(i), ampmax)
 
  993     IF (p(i)>p(icb)) 
THEN 
  994       mp(i) = mp(icb)*(p(1)-p(i))/(p(1)-p(icb))
 
 1000     IF (i==inb) 
GO TO 400
 
 1002     IF (mp(i)>mp(i+1)) 
THEN 
 1003       rp(i) = rp(i+1)*mp(i+1) + rr(i)*(mp(i)-mp(i+1)) + &
 
 1004         5.*sigd*(ph(i)-ph(i+1))*(evap(i+1)+evap(i))
 
 1006       up(i) = up(i+1)*mp(i+1) + u(i)*(mp(i)-mp(i+1))
 
 1008       vp(i) = vp(i+1)*mp(i+1) + v(i)*(mp(i)-mp(i+1))
 
 1011         trap(i, j) = trap(i+1, j)*mp(i+1) + trap(i, j)*(mp(i)-mp(i+1))
 
 1012         trap(i, j) = trap(i, j)/mp(i)
 
 1015       IF (mp(i+1)>1.0e-16) 
THEN 
 1016         rp(i) = rp(i+1) + 5.0*sigd*(ph(i)-ph(i+1))*(evap(i+1)+evap(i))/mp(i+1 &
 
 1021           trap(i, j) = trap(i+1, j)
 
 1025     rp(i) = amin1(rp(i), rs(i))
 
 1026     rp(i) = amax1(rp(i), 0.0)
 
 1031   precip = wt(1)*sigd*water(1)*8640.0
 
 1041   wd = betad*abs(mp(icb))*0.01*rd*t(icb)/(sigd*p(icb))
 
 1048   dpinv = 1.0/(ph(1)-ph(2))
 
 1053   IF ((0.1*dpinv*am)>=delti) iflag = 4
 
 1054   ft(1) = 0.1*dpinv*am*(t(2)-t(1)+(gz(2)-gz(1))/cpn(1))
 
 1055   ft(1) = ft(1) - 0.5*lvcp(1)*sigd*(evap(1)+evap(2))
 
 1056   ft(1) = ft(1) - 0.09*sigd*mp(2)*t(1)*b(1)*dpinv
 
 1057   ft(1) = ft(1) + 0.01*sigd*wt(1)*(cl-cpd)*water(2)*(t(2)-t(1))*dpinv/cpn(1)
 
 1058   fr(1) = 0.1*mp(2)*(rp(2)-rr(1))* & 
 
 1060     dpinv + sigd*0.5*(evap(1)+evap(2))
 
 1063   fr(1) = fr(1) + 0.1*am*(rr(2)-rr(1))*dpinv
 
 1064   fu(1) = fu(1) + 0.1*dpinv*(mp(2)*(up(2)-u(1))+am*(u(2)-u(1)))
 
 1065   fv(1) = fv(1) + 0.1*dpinv*(mp(2)*(vp(2)-v(1))+am*(v(2)-v(1)))
 
 1067     ftra(1, j) = ftra(1, j) + 0.1*dpinv*(mp(2)*(trap(2,j)-tra(1, &
 
 1068       j))+am*(tra(2,j)-tra(1,j)))
 
 1072     fr(1) = fr(1) + 0.1*dpinv*ment(j, 1)*(qent(j,1)-rr(1))
 
 1073     fu(1) = fu(1) + 0.1*dpinv*ment(j, 1)*(uent(j,1)-u(1))
 
 1074     fv(1) = fv(1) + 0.1*dpinv*ment(j, 1)*(vent(j,1)-v(1))
 
 1076       ftra(1, k) = ftra(1, k) + 0.1*dpinv*ment(j, 1)*(traent(j,1,k)-tra(1,k))
 
 1089     dpinv = 1.0/(ph(i)-ph(i+1))
 
 1092     DO k = i + 1, inb + 1
 
 1096       DO j = i + 1, inb + 1
 
 1097         amp1 = amp1 + ment(k, j)
 
 1100     IF ((0.1*dpinv*amp1)>=delti) iflag = 4
 
 1104         ad = ad + ment(j, k)
 
 1107     ft(i) = 0.1*dpinv*(amp1*(t(i+1)-t(i)+(gz(i+1)-gz(i))*cpinv)-ad*(t(i)-t(i- &
 
 1108       1)+(gz(i)-gz(i-1))*cpinv)) - 0.5*sigd*lvcp(i)*(evap(i)+evap(i+1))
 
 1109     rat = cpn(i-1)*cpinv
 
 1110     ft(i) = ft(i) - 0.09*sigd*(mp(i+1)*t(i)*b(i)-mp(i)*t(i-1)*rat*b(i-1))* &
 
 1112     ft(i) = ft(i) + 0.1*dpinv*ment(i, i)*(hp(i)-h(i)+t(i)*(cpv-cpd)*(rr(i)- &
 
 1114     ft(i) = ft(i) + 0.01*sigd*wt(i)*(cl-cpd)*water(i+1)*(t(i+1)-t(i))*dpinv* &
 
 1116     fr(i) = 0.1*dpinv*(amp1*(rr(i+1)-rr(i))-ad*(rr(i)-rr(i-1)))
 
 1117     fu(i) = fu(i) + 0.1*dpinv*(amp1*(u(i+1)-u(i))-ad*(u(i)-u(i-1)))
 
 1118     fv(i) = fv(i) + 0.1*dpinv*(amp1*(v(i+1)-v(i))-ad*(v(i)-v(i-1)))
 
 1120       ftra(i, k) = ftra(i, k) + 0.1*dpinv*(amp1*(tra(i+1,k)-tra(i, &
 
 1121         k))-ad*(tra(i,k)-tra(i-1,k)))
 
 1124       awat = elij(k, i) - (1.-ep(i))*clw(i)
 
 1125       awat = amax1(awat, 0.0)
 
 1126       fr(i) = fr(i) + 0.1*dpinv*ment(k, i)*(qent(k,i)-awat-rr(i))
 
 1127       fu(i) = fu(i) + 0.1*dpinv*ment(k, i)*(uent(k,i)-u(i))
 
 1128       fv(i) = fv(i) + 0.1*dpinv*ment(k, i)*(vent(k,i)-v(i))
 
 1130       qcond(i) = qcond(i) + (elij(k,i)-awat) 
 
 1131       nqcond(i) = nqcond(i) + 1. 
 
 1133         ftra(i, j) = ftra(i, j) + 0.1*dpinv*ment(k, i)*(traent(k,i,j)-tra(i,j &
 
 1138       fr(i) = fr(i) + 0.1*dpinv*ment(k, i)*(qent(k,i)-rr(i))
 
 1139       fu(i) = fu(i) + 0.1*dpinv*ment(k, i)*(uent(k,i)-u(i))
 
 1140       fv(i) = fv(i) + 0.1*dpinv*ment(k, i)*(vent(k,i)-v(i))
 
 1142         ftra(i, j) = ftra(i, j) + 0.1*dpinv*ment(k, i)*(traent(k,i,j)-tra(i,j &
 
 1146     fr(i) = fr(i) + 0.5*sigd*(evap(i)+evap(i+1)) + 0.1*(mp(i+1)*(rp(i+ &
 
 1147       1)-rr(i))-mp(i)*(rp(i)-rr(i-1)))*dpinv
 
 1148     fu(i) = fu(i) + 0.1*(mp(i+1)*(up(i+1)-u(i))-mp(i)*(up(i)-u(i-1)))*dpinv
 
 1149     fv(i) = fv(i) + 0.1*(mp(i+1)*(vp(i+1)-v(i))-mp(i)*(vp(i)-v(i-1)))*dpinv
 
 1151       ftra(i, j) = ftra(i, j) + 0.1*dpinv*(mp(i+1)*(trap(i+1,j)-tra(i, &
 
 1152         j))-mp(i)*(trap(i,j)-trap(i-1,j)))
 
 1156       qcond(i) = qcond(i) + elij(k, i) 
 
 1157       nqcond(i) = nqcond(i) + 1. 
 
 1160     IF (nent(i)==0) 
THEN  
 1161       qcond(i) = qcond(i) + (1-ep(i))*clw(i) 
 
 1162       nqcond(i) = nqcond(i) + 1. 
 
 1164     IF (nqcond(i)/=0.) 
THEN  
 1165       qcond(i) = qcond(i)/nqcond(i) 
 
 1186   ax = 0.1*ment(inb, inb)*(hp(inb)-h(inb)+t(inb)*(cpv-cpd)*(rr(inb)-qent(inb, &
 
 1187     inb)))/(cpn(inb)*(ph(inb)-ph(inb+1)))
 
 1188   ft(inb) = ft(inb) - ax
 
 1189   ft(inb-1) = ft(inb-1) + ax*cpn(inb)*(ph(inb)-ph(inb+1))/(cpn(inb-1)*(ph(inb &
 
 1191   bx = 0.1*ment(inb, inb)*(qent(inb,inb)-rr(inb))/(ph(inb)-ph(inb+1))
 
 1192   fr(inb) = fr(inb) - bx
 
 1193   fr(inb-1) = fr(inb-1) + bx*(ph(inb)-ph(inb+1))/(ph(inb-1)-ph(inb))
 
 1194   cx = 0.1*ment(inb, inb)*(uent(inb,inb)-u(inb))/(ph(inb)-ph(inb+1))
 
 1195   fu(inb) = fu(inb) - cx
 
 1196   fu(inb-1) = fu(inb-1) + cx*(ph(inb)-ph(inb+1))/(ph(inb-1)-ph(inb))
 
 1197   dx = 0.1*ment(inb, inb)*(vent(inb,inb)-v(inb))/(ph(inb)-ph(inb+1))
 
 1198   fv(inb) = fv(inb) - dx
 
 1199   fv(inb-1) = fv(inb-1) + dx*(ph(inb)-ph(inb+1))/(ph(inb-1)-ph(inb))
 
 1201     ex = 0.1*ment(inb, inb)*(traent(inb,inb,j)-tra(inb,j))/ &
 
 1203     ftra(inb, j) = ftra(inb, j) - ex
 
 1204     ftra(inb-1, j) = ftra(inb-1, j) + ex*(ph(inb)-ph(inb+1))/(ph(inb-1)-ph( &
 
 1215     asum = asum + ft(i)*(ph(i)-ph(i+1))
 
 1216     bsum = bsum + fr(i)*(lv(i)+(cl-cpd)*(t(i)-t(1)))*(ph(i)-ph(i+1))
 
 1217     csum = csum + (lv(i)+(cl-cpd)*(t(i)-t(1)))*(ph(i)-ph(i+1))
 
 1218     dsum = dsum + t(i)*(ph(i)-ph(i+1))/th(i)
 
 1221     ft(i) = asum*t(i)/(th(i)*dsum)
 
 1251         up1 = up1 + ment(n, k)
 
 1252         dn1 = dn1 - ment(k, n)
 
 1254       upwd(i) = upwd(i) + m(k) + up1
 
 1255       dnwd(i) = dnwd(i) + dn1
 
 1288       ma(i) = ma(i) + m(j)
 
 1309     mke(i) = upwd(i) + dnwd(i)
 
 1322     DO k = i + 1, inb + 1 
 
 1323       maa(i) = maa(i) + m(k) 
 
 1329       axc(i) = axc(i) + rd*(tvp(j)-tv(j))*(ph(j)-ph(j+1))/p(j) 
 
 1331     IF (axc(i)>0.0) 
THEN  
 1332       wa(i) = sqrt(2.*axc(i)) 
 
 1337       siga(i) = maa(i)/wa(i)*rd*tvp(i)/p(i)/100./deltac 
 
 1338     siga(i) = min(siga(i), 1.0) 
 
 1339     qcondc(i) = siga(i)*clw(i)*(1.-ep(i)) & 
 
 1340       +(1.-siga(i))*qcond(i) 
 
subroutine clift(p, t, rr, rs, plcl, dplcldt, dplcldq)
 
subroutine tlift(p, t, rr, rs, gz, plcl, icb, nk, tvp, tpk, clw, nd, nl, dtvpdt1, dtvpdq1)
 
subroutine convect3(dtime, epmax, ok_adj, t1, r1, rs, u, v, tra, p, ph, nd,ndp1, nl, ntra, delt, iflag, ft, fr, fu, fv, ftra, precip, icb, inb,upwd, dnwd, dnwd0, sig, w0, mike, mke, ma, ments, qents, tps, tls, sigij,cape, tvp, pbase, buoybase,
 
!$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