70   alpha = 1.5e-3*delt/tau
 
   85 SUBROUTINE cv30_prelim(len, nd, ndp1, t, q, p, ph, lv, cpn, tv, gz, h, hm, &
 
   97   REAL t(len, nd), q(len, nd), p(len, nd), ph(len, ndp1)
 
  100   REAL lv(len, nd), cpn(len, nd), tv(len, nd)
 
  101   REAL gz(len, nd), h(len, nd), hm(len, nd)
 
  111   include 
"cv30param.h" 
  119       cpn(i, k) = 
cpd*(1.0-q(i,k)) + 
cpv*q(i, k)
 
  120       cpx(i, k) = 
cpd*(1.0-q(i,k)) + 
cl*q(i, k)
 
  122       tv(i, k) = t(i, k)*(1.0+q(i,k)/
eps-q(i,k))
 
  123       rdcp = (
rrd*(1.-q(i,k))+q(i,k)*
rrv)/cpn(i, k)
 
  124       th(i, k) = t(i, k)*(1000.0/p(i,k))**rdcp
 
  136       tvx = t(i, k)*(1.+q(i,k)/
eps-q(i,k)) 
 
  137       tvy = t(i, k-1)*(1.+q(i,k-1)/
eps-q(i,k-1)) 
 
  138       gz(i, k) = gz(i, k-1) + 0.5*
rrd*(tvx+tvy) & 
 
  139         *(p(i,k-1)-p(i,k))/ph(i, k) 
 
  152       h(i, k) = gz(i, k) + cpn(i, k)*t(i, k)
 
  153       hm(i, k) = gz(i, k) + cpx(i, k)*(t(i,k)-t(i,1)) + lv(i, k)*q(i, k)
 
  160 SUBROUTINE cv30_feed(len, nd, t, q, qs, p, ph, hm, gz, nk, icb, icbmax, &
 
  161     iflag, tnk, qnk, gznk, plcl)
 
  178   include 
"cv30param.h" 
  182   REAL t(len, nd), q(len, nd), qs(len, nd), p(len, nd)
 
  183   REAL hm(len, nd), gz(len, nd)
 
  187   INTEGER iflag(len), nk(len), icb(len), icbmax
 
  188   REAL tnk(len), qnk(len), gznk(len), plcl(len)
 
  194   REAL pnk(len), qsnk(len), rh(len), chi(len)
 
  256     IF (((t(i,nk(i))<250.0) .OR. (q(i,nk(i))<=0.0)) & 
 
  259       .AND. (iflag(i)==0)) iflag(i) = 7
 
  271     IF (iflag(i)/=7) 
THEN  
  275       gznk(i) = gz(i, nk(i))
 
  277       qsnk(i) = qs(i, nk(i))
 
  279       rh(i) = qnk(i)/qsnk(i)
 
  282       chi(i) = tnk(i)/(a-b*rh(i)-tnk(i)) 
 
  283       plcl(i) = pnk(i)*(rh(i)**chi(i))
 
  284       IF (((plcl(i)<200.0) .OR. (plcl(i)>=2000.0)) .AND. (iflag(i)==0)) iflag &
 
  319       IF (ph(i,k)<plcl(i)) icb(i) = min(icb(i), k)
 
  325     IF ((icb(i)==nlm) .AND. (iflag(i)==0)) iflag(i) = 9
 
  337     IF (iflag(i)<7) icbmax = max(icbmax, icb(i)) 
 
  343 SUBROUTINE cv30_undilute1(len, nd, t, q, qs, gz, plcl, p, nk, icb, tp, tvp, &
 
  361   include 
"cv30param.h" 
  365   INTEGER nk(len), icb(len)
 
  366   REAL t(len, nd), q(len, nd), qs(len, nd), gz(len, nd)
 
  371   REAL tp(len, nd), tvp(len, nd), clw(len, nd)
 
  375   INTEGER icb1(len), icbs(len), icbsmax2 
 
  376   REAL tg, qg, alv, s, ahg, tc, denom, es, rg
 
  377   REAL ah0(len), cpp(len)
 
  378   REAL tnk(len), qnk(len), gznk(len), ticb(len), gzicb(len)
 
  392     gznk(i) = gz(i, nk(i))
 
  400     ah0(i) = (
cpd*(1.-qnk(i))+
cl*qnk(i))*tnk(i) + qnk(i)*(
lv0-
clmcpv*(tnk(i)- &
 
  402     cpp(i) = 
cpd*(1.-qnk(i)) + qnk(i)*
cpv 
  409     icb1(i) = max(icb(i), 2) 
 
  410     icb1(i) = min(icb(i), 
nl) 
 
  414     IF (plcl(i)<p(i,icb1(i))) 
THEN 
  415       icbs(i) = min(icbs(i)+1, 
nl) 
 
  420     ticb(i) = t(i, icbs(i)) 
 
  421     gzicb(i) = gz(i, icbs(i)) 
 
  422     qsicb(i) = qs(i, icbs(i)) 
 
  430     icbsmax2 = max(icbsmax2, icbs(i)) 
 
  447       tp(i, k) = tnk(i) - (gz(i,k)-gznk(i))*cpinv(i)
 
  448       tvp(i, k) = tp(i, k)*(1.+qnk(i)/
eps-qnk(i)) 
 
  464     s = 
cpd*(1.-qnk(i)) + 
cl*qnk(i) & 
 
  465       +alv*alv*qg/(
rrv*ticb(i)*ticb(i)) 
 
  468     ahg = 
cpd*tg + (
cl-
cpd)*qnk(i)*tg + alv*qg + gzicb(i) 
 
  469     tg = tg + s*(ah0(i)-ahg)
 
  474     denom = max(denom, 1.0) 
 
  476     es = 6.112*exp(17.67*tc/denom)
 
  481     qg = 
eps*es/(p(i,icbs(i))-es*(1.-
eps))
 
  489     ahg = 
cpd*tg + (
cl-
cpd)*qnk(i)*tg + alv*qg + gzicb(i) 
 
  490     tg = tg + s*(ah0(i)-ahg)
 
  495     denom = max(denom, 1.0) 
 
  497     es = 6.112*exp(17.67*tc/denom)
 
  502     qg = 
eps*es/(p(i,icbs(i))-es*(1.-
eps))
 
  511     tp(i, icbs(i)) = (ah0(i)-gz(i,icbs(i))-alv*qg)/(
cpd+(
cl-
cpd)*qnk(i))
 
  515     clw(i, icbs(i)) = qnk(i) - qg
 
  516     clw(i, icbs(i)) = max(0.0, clw(i,icbs(i)))
 
  521     tvp(i, icbs(i)) = tp(i, icbs(i))*(1.+qg/
eps-qnk(i)) 
 
  548     ticb(i) = t(i, icb(i)+1)
 
  549     gzicb(i) = gz(i, icb(i)+1)
 
  550     qsicb(i) = qs(i, icb(i)+1)
 
  562     s = 
cpd*(1.-qnk(i)) + 
cl*qnk(i) & 
 
  563       +alv*alv*qg/(
rrv*ticb(i)*ticb(i)) 
 
  566     ahg = 
cpd*tg + (
cl-
cpd)*qnk(i)*tg + alv*qg + gzicb(i) 
 
  567     tg = tg + s*(ah0(i)-ahg)
 
  572     denom = max(denom, 1.0) 
 
  574     es = 6.112*exp(17.67*tc/denom)
 
  579     qg = 
eps*es/(p(i,icb(i)+1)-es*(1.-
eps))
 
  587     ahg = 
cpd*tg + (
cl-
cpd)*qnk(i)*tg + alv*qg + gzicb(i) 
 
  588     tg = tg + s*(ah0(i)-ahg)
 
  593     denom = max(denom, 1.0) 
 
  595     es = 6.112*exp(17.67*tc/denom)
 
  600     qg = 
eps*es/(p(i,icb(i)+1)-es*(1.-
eps))
 
  609     tp(i, icb(i)+1) = (ah0(i)-gz(i,icb(i)+1)-alv*qg)/(
cpd+(
cl-
cpd)*qnk(i))
 
  613     clw(i, icb(i)+1) = qnk(i) - qg
 
  614     clw(i, icb(i)+1) = max(0.0, clw(i,icb(i)+1))
 
  619     tvp(i, icb(i)+1) = tp(i, icb(i)+1)*(1.+qg/
eps-qnk(i)) 
 
  626 SUBROUTINE cv30_trigger(len, nd, icb, plcl, p, th, tv, tvp, pbase, buoybase, &
 
  645   include 
"cv30param.h" 
  650   REAL plcl(len), p(len, nd)
 
  651   REAL th(len, nd), tv(len, nd), tvp(len, nd)
 
  654   REAL pbase(len), buoybase(len)
 
  658   REAL sig(len, nd), w0(len, nd)
 
  662   REAL tvpbase, tvbase, tdif, ath, ath1
 
  668     pbase(i) = plcl(i) + 
dpbase 
  669     tvpbase = tvp(i, icb(i))*(pbase(i)-p(i,icb(i)+1))/ &
 
  670       (p(i,icb(i))-p(i,icb(i)+1)) + tvp(i, icb(i)+1)*(p(i,icb(i))-pbase(i))/( &
 
  671       p(i,icb(i))-p(i,icb(i)+1))
 
  672     tvbase = tv(i, icb(i))*(pbase(i)-p(i,icb(i)+1))/ &
 
  673       (p(i,icb(i))-p(i,icb(i)+1)) + tv(i, icb(i)+1)*(p(i,icb(i))-pbase(i))/(p &
 
  674       (i,icb(i))-p(i,icb(i)+1))
 
  675     buoybase(i) = tvpbase - tvbase
 
  712       ath = th(i, icb(i)-1) - dttrig
 
  714       IF (tdif<
dtcrit .OR. ath>ath1) 
THEN 
  715         sig(i, k) = 
beta*sig(i, k) - 2.*
alpha*tdif*tdif
 
  716         sig(i, k) = amax1(sig(i,k), 0.0)
 
  717         w0(i, k) = 
beta*w0(i, k)
 
  730 SUBROUTINE cv30_compress(len, nloc, ncum, nd, ntra, iflag1, nk1, icb1, icbs1, &
 
  731     plcl1, tnk1, qnk1, gznk1, pbase1, buoybase1, t1, q1, qs1, u1, v1, gz1, &
 
  732     th1, tra1, h1, lv1, cpn1, p1, ph1, tv1, tp1, tvp1, clw1, sig1, w01, &
 
  733     iflag, nk, icb, icbs, plcl, tnk, qnk, gznk, pbase, buoybase, t, q, qs, 
u, &
 
  734     v, gz, th, tra, h, lv, cpn, p, ph, tv, tp, tvp, clw, sig, w0)
 
  738   include 
"cv30param.h" 
  741   INTEGER len, ncum, nd, ntra, nloc
 
  742   INTEGER iflag1(len), nk1(len), icb1(len), icbs1(len)
 
  743   REAL plcl1(len), tnk1(len), qnk1(len), gznk1(len)
 
  744   REAL pbase1(len), buoybase1(len)
 
  745   REAL t1(len, nd), q1(len, nd), qs1(len, nd), u1(len, nd), v1(len, nd)
 
  746   REAL gz1(len, nd), h1(len, nd), lv1(len, nd), cpn1(len, nd)
 
  747   REAL p1(len, nd), ph1(len, nd+1), tv1(len, nd), tp1(len, nd)
 
  748   REAL tvp1(len, nd), clw1(len, nd)
 
  750   REAL sig1(len, nd), w01(len, nd)
 
  751   REAL tra1(len, nd, ntra)
 
  755   INTEGER iflag(nloc), nk(nloc), icb(nloc), icbs(nloc)
 
  756   REAL plcl(nloc), tnk(nloc), qnk(nloc), gznk(nloc)
 
  757   REAL pbase(nloc), buoybase(nloc)
 
  758   REAL t(nloc, nd), q(nloc, nd), qs(nloc, nd), u(nloc, nd), v(nloc, nd)
 
  759   REAL gz(nloc, nd), h(nloc, nd), lv(nloc, nd), cpn(nloc, nd)
 
  760   REAL p(nloc, nd), ph(nloc, nd+1), tv(nloc, nd), tp(nloc, nd)
 
  761   REAL tvp(nloc, nd), clw(nloc, nd)
 
  763   REAL sig(nloc, nd), w0(nloc, nd)
 
  764   REAL tra(nloc, nd, ntra)
 
  769   CHARACTER (LEN=20) :: modname = 
'cv30_compress' 
  770   CHARACTER (LEN=80) :: abort_message
 
  776       IF (iflag1(i)==0) 
THEN 
  778         sig(nn, k) = sig1(i, k)
 
  779         w0(nn, k) = w01(i, k)
 
  782         qs(nn, k) = qs1(i, k)
 
  785         gz(nn, k) = gz1(i, k)
 
  787         lv(nn, k) = lv1(i, k)
 
  788         cpn(nn, k) = cpn1(i, k)
 
  790         ph(nn, k) = ph1(i, k)
 
  791         tv(nn, k) = tv1(i, k)
 
  792         tp(nn, k) = tp1(i, k)
 
  793         tvp(nn, k) = tvp1(i, k)
 
  794         clw(nn, k) = clw1(i, k)
 
  795         th(nn, k) = th1(i, k)
 
  813     WRITE (
lunout, *) 
'strange! nn not equal to ncum: ', nn, ncum
 
  820     IF (iflag1(i)==0) 
THEN 
  822       pbase(nn) = pbase1(i)
 
  823       buoybase(nn) = buoybase1(i)
 
  831       iflag(nn) = iflag1(i)
 
  838 SUBROUTINE cv30_undilute2(nloc, ncum, nd, icb, icbs, nk, tnk, qnk, gznk, t, &
 
  839     q, qs, gz, p, h, tv, lv, pbase, buoybase, plcl, inb, tp, tvp, clw, hp, &
 
  862   include 
"cv30param.h" 
  866   INTEGER ncum, nd, nloc
 
  867   INTEGER icb(nloc), icbs(nloc), nk(nloc)
 
  868   REAL t(nloc, nd), q(nloc, nd), qs(nloc, nd), gz(nloc, nd)
 
  870   REAL tnk(nloc), qnk(nloc), gznk(nloc)
 
  871   REAL lv(nloc, nd), tv(nloc, nd), h(nloc, nd)
 
  872   REAL pbase(nloc), buoybase(nloc), plcl(nloc)
 
  876   REAL tp(nloc, nd), tvp(nloc, nd), clw(nloc, nd)
 
  877   REAL ep(nloc, nd), sigp(nloc, nd), hp(nloc, nd)
 
  882   REAL tg, qg, ahg, alv, s, tc, es, denom, rg, tca, elacrit
 
  883   REAL by, defrac, pden
 
  884   REAL ah0(nloc), cape(nloc), capem(nloc), byp(nloc)
 
  909     ah0(i) = (
cpd*(1.-qnk(i))+
cl*qnk(i))*tnk(i) & 
 
  911       +qnk(i)*(
lv0-
clmcpv*(tnk(i)-273.15)) + gznk(i)
 
  921       IF (k>=(icbs(i)+1)) 
THEN  
  930         s = 
cpd*(1.-qnk(i)) + 
cl*qnk(i) & 
 
  931           +alv*alv*qg/(
rrv*t(i,k)*t(i,k)) 
 
  934         ahg = 
cpd*tg + (
cl-
cpd)*qnk(i)*tg + alv*qg + gz(i, k) 
 
  935         tg = tg + s*(ah0(i)-ahg)
 
  940         denom = max(denom, 1.0) 
 
  942         es = 6.112*exp(17.67*tc/denom)
 
  946         qg = 
eps*es/(p(i,k)-es*(1.-
eps))
 
  953         ahg = 
cpd*tg + (
cl-
cpd)*qnk(i)*tg + alv*qg + gz(i, k) 
 
  954         tg = tg + s*(ah0(i)-ahg)
 
  959         denom = max(denom, 1.0) 
 
  961         es = 6.112*exp(17.67*tc/denom)
 
  965         qg = 
eps*es/(p(i,k)-es*(1.-
eps))
 
  978         tp(i, k) = (ah0(i)-gz(i,k)-alv*qg)/(
cpd+(
cl-
cpd)*qnk(i))
 
  980         clw(i, k) = qnk(i) - qg
 
  981         clw(i, k) = max(0.0, clw(i,k))
 
  985         tvp(i, k) = tp(i, k)*(1.+qg/
eps-qnk(i)) 
 
 1001       ep(i, k) = amax1(ep(i,k), 0.0)
 
 1002       ep(i, k) = amin1(ep(i,k), 
epmax)
 
 1043     tp(i, 
nlp) = tp(i, 
nl) 
 
 1056       buoy(i, k) = tvp(i, k) - tv(i, k)
 
 1065       IF ((k>=icb(i)) .AND. (k<=
nl) .AND. (p(i,k)>=pbase(i))) 
THEN 
 1066         buoy(i, k) = buoybase(i)
 
 1070     buoy(i, icb(i)) = buoybase(i)
 
 1088       IF ((k>=icb(i)) .AND. (buoy(i,k)<
dtovsh)) 
THEN 
 1089         inb(i) = min(inb(i), k)
 
 1202       IF ((k>=icb(i)) .AND. (k<=inb(i))) 
THEN 
 1203         hp(i, k) = h(i, nk(i)) + (lv(i,k)+(
cpd-
cpv)*t(i,k))*ep(i, k)*clw(i, k &
 
 1212 SUBROUTINE cv30_closure(nloc, ncum, nd, icb, inb, pbase, p, ph, tv, buoy, &
 
 1222   include 
"cvthermo.h" 
 1223   include 
"cv30param.h" 
 1226   INTEGER ncum, nd, nloc
 
 1227   INTEGER icb(nloc), inb(nloc)
 
 1229   REAL p(nloc, nd), ph(nloc, nd+1)
 
 1230   REAL tv(nloc, nd), buoy(nloc, nd)
 
 1233   REAL sig(nloc, nd), w0(nloc, nd)
 
 1240   INTEGER i, j, k, icbmax
 
 1241   REAL deltap, fac, w, amu
 
 1242   REAL dtmin(nloc, nd), sigold(nloc, nd)
 
 1263       IF ((inb(i)<(
nl-1)) .AND. (k>=(inb(i)+1))) 
THEN 
 1264         sig(i, k) = 
beta*sig(i, k) + 2.*
alpha*buoy(i, inb(i))*abs(buoy(i,inb( &
 
 1266         sig(i, k) = amax1(sig(i,k), 0.0)
 
 1267         w0(i, k) = 
beta*w0(i, k)
 
 1276     icbmax = max(icbmax, icb(i))
 
 1284         sig(i, k) = 
beta*sig(i, k) - 2.*
alpha*buoy(i, icb(i))*buoy(i, icb(i))
 
 1285         sig(i, k) = amax1(sig(i,k), 0.0)
 
 1286         w0(i, k) = 
beta*w0(i, k)
 
 1313       IF (sig(i,nd)<1.5 .OR. sig(i,nd)>12.0) 
THEN 
 1341         IF ((k>=(icb(i)+1)) .AND. (k<=inb(i)) .AND. (j>=icb(i)) .AND. (j<=(k- &
 
 1343           dtmin(i, k) = amin1(dtmin(i,k), buoy(i,j))
 
 1354       IF ((k>=(icb(i)+1)) .AND. (k<=inb(i))) 
THEN 
 1356         deltap = min(pbase(i), ph(i,k-1)) - min(pbase(i), ph(i,k))
 
 1357         cape(i) = cape(i) + 
rrd*buoy(i, k-1)*deltap/p(i, k-1)
 
 1358         cape(i) = amax1(0.0, cape(i))
 
 1359         sigold(i, k) = sig(i, k)
 
 1366         sig(i, k) = 
beta*sig(i, k) + 
alpha*dtmin(i, k)*abs(dtmin(i,k))
 
 1367         sig(i, k) = amax1(sig(i,k), 0.0)
 
 1368         sig(i, k) = amin1(sig(i,k), 0.01)
 
 1370         w = (1.-
beta)*fac*sqrt(cape(i)) + 
beta*w0(i, k)
 
 1371         amu = 0.5*(sig(i,k)+sigold(i,k))*w
 
 1372         m(i, k) = amu*0.007*p(i, k)*(ph(i,k)-ph(i,k+1))/tv(i, k)
 
 1380     w0(i, icb(i)) = 0.5*w0(i, icb(i)+1)
 
 1381     m(i, icb(i)) = 0.5*m(i, icb(i)+1)*(ph(i,icb(i))-ph(i,icb(i)+1))/ &
 
 1382       (ph(i,icb(i)+1)-ph(i,icb(i)+2))
 
 1383     sig(i, icb(i)) = sig(i, icb(i)+1)
 
 1384     sig(i, icb(i)-1) = sig(i, icb(i))
 
 1419 SUBROUTINE cv30_mixing(nloc, ncum, nd, na, ntra, icb, nk, inb, ph, t, rr, rs, &
 
 1420     u, v, tra, h, lv, qnk, hp, tv, tvp, ep, clw, m, sig, ment, qent, uent, &
 
 1421     vent, sij, elij, ments, qents, traent)
 
 1430   include 
"cvthermo.h" 
 1431   include 
"cv30param.h" 
 1434   INTEGER ncum, nd, na, ntra, nloc
 
 1435   INTEGER icb(nloc), inb(nloc), nk(nloc)
 
 1439   REAL t(nloc, nd), rr(nloc, nd), rs(nloc, nd)
 
 1440   REAL u(nloc, nd), v(nloc, nd)
 
 1441   REAL tra(nloc, nd, ntra) 
 
 1442   REAL lv(nloc, na), h(nloc, na), hp(nloc, na)
 
 1443   REAL tv(nloc, na), tvp(nloc, na), ep(nloc, na), clw(nloc, na)
 
 1447   REAL ment(nloc, na, na), qent(nloc, na, na)
 
 1448   REAL uent(nloc, na, na), vent(nloc, na, na)
 
 1449   REAL sij(nloc, na, na), elij(nloc, na, na)
 
 1450   REAL traent(nloc, nd, nd, ntra)
 
 1451   REAL ments(nloc, nd, nd), qents(nloc, nd, nd)
 
 1452   REAL sigij(nloc, nd, nd)
 
 1455   INTEGER i, j, k, il, im, jm
 
 1457   INTEGER nent(nloc, na)
 
 1458   REAL rti, bf2, anum, denom, dei, altem, cwat, stemp, qp
 
 1459   REAL alt, smid, sjmin, sjmax, delp, delm
 
 1460   REAL asij(nloc), smax(nloc), scrit(nloc)
 
 1461   REAL asum(nloc, nd), bsum(nloc, nd), csum(nloc, nd)
 
 1484         qent(i, k, j) = rr(i, j)
 
 1485         uent(i, k, j) = u(i, j)
 
 1486         vent(i, k, j) = v(i, j)
 
 1495   ment(1:ncum, 1:nd, 1:nd) = 0.0
 
 1496   sij(1:ncum, 1:nd, 1:nd) = 0.0
 
 1519         IF ((i>=icb(il)) .AND. (i<=inb(il)) .AND. (j>=(icb(il)- &
 
 1520             1)) .AND. (j<=inb(il))) 
THEN 
 1522           rti = rr(il, 1) - ep(il, i)*clw(il, i)
 
 1523           bf2 = 1. + lv(il, j)*lv(il, j)*rs(il, j)/(
rrv*t(il,j)*t(il,j)*
cpd)
 
 1524           anum = h(il, j) - hp(il, i) + (
cpv-
cpd)*t(il, j)*(rti-rr(il,j))
 
 1525           denom = h(il, i) - hp(il, i) + (
cpd-
cpv)*(rr(il,i)-rti)*t(il, j)
 
 1527           IF (abs(dei)<0.01) dei = 0.01
 
 1528           sij(il, i, j) = anum/dei
 
 1530           altem = sij(il, i, j)*rr(il, i) + (1.-sij(il,i,j))*rti - rs(il, j)
 
 1532           cwat = clw(il, j)*(1.-ep(il,j))
 
 1533           stemp = sij(il, i, j)
 
 1534           IF ((stemp<0.0 .OR. stemp>1.0 .OR. altem>cwat) .AND. j>i) 
THEN 
 1535             anum = anum - lv(il, j)*(rti-rs(il,j)-cwat*bf2)
 
 1536             denom = denom + lv(il, j)*(rr(il,i)-rti)
 
 1537             IF (abs(denom)<0.01) denom = 0.01
 
 1538             sij(il, i, j) = anum/denom
 
 1539             altem = sij(il, i, j)*rr(il, i) + (1.-sij(il,i,j))*rti - &
 
 1541             altem = altem - (bf2-1.)*cwat
 
 1543           IF (sij(il,i,j)>0.0 .AND. sij(il,i,j)<0.95) 
THEN 
 1544             qent(il, i, j) = sij(il, i, j)*rr(il, i) + (1.-sij(il,i,j))*rti
 
 1545             uent(il, i, j) = sij(il, i, j)*u(il, i) + &
 
 1546               (1.-sij(il,i,j))*u(il, nk(il))
 
 1547             vent(il, i, j) = sij(il, i, j)*v(il, i) + &
 
 1548               (1.-sij(il,i,j))*v(il, nk(il))
 
 1553             elij(il, i, j) = altem
 
 1554             elij(il, i, j) = amax1(0.0, elij(il,i,j))
 
 1555             ment(il, i, j) = m(il, i)/(1.-sij(il,i,j))
 
 1556             nent(il, i) = nent(il, i) + 1
 
 1558           sij(il, i, j) = amax1(0.0, sij(il,i,j))
 
 1559           sij(il, i, j) = amin1(1.0, sij(il,i,j))
 
 1586       IF ((i>=icb(il)) .AND. (i<=inb(il)) .AND. (nent(il,i)==0)) 
THEN 
 1588         ment(il, i, i) = m(il, i)
 
 1589         qent(il, i, i) = rr(il, nk(il)) - ep(il, i)*clw(il, i)
 
 1590         uent(il, i, i) = u(il, nk(il))
 
 1591         vent(il, i, i) = v(il, nk(il))
 
 1592         elij(il, i, i) = clw(il, i)
 
 1612         IF ((j>=(icb(il)-1)) .AND. (j<=inb(il)) .AND. (i>=icb(il)) .AND. (i<= &
 
 1614           sigij(il, i, j) = sij(il, i, j)
 
 1631   CALL zilch(asum, nloc*nd)
 
 1632   CALL zilch(csum, nloc*nd)
 
 1633   CALL zilch(csum, nloc*nd)
 
 1643       IF (i>=icb(il) .AND. i<=inb(il)) num1 = num1 + 1
 
 1645     IF (num1<=0) 
GO TO 789
 
 1649       IF (i>=icb(il) .AND. i<=inb(il)) 
THEN 
 1650         lwork(il) = (nent(il,i)/=0)
 
 1651         qp = rr(il, 1) - ep(il, i)*clw(il, i)
 
 1652         anum = h(il, i) - hp(il, i) - lv(il, i)*(qp-rs(il,i)) + &
 
 1653           (
cpv-
cpd)*t(il, i)*(qp-rr(il,i))
 
 1654         denom = h(il, i) - hp(il, i) + lv(il, i)*(rr(il,i)-qp) + &
 
 1655           (
cpd-
cpv)*t(il, i)*(rr(il,i)-qp)
 
 1656         IF (abs(denom)<0.01) denom = 0.01
 
 1657         scrit(il) = anum/denom
 
 1658         alt = qp - rs(il, i) + scrit(il)*(rr(il,i)-qp)
 
 1659         IF (scrit(il)<=0.0 .OR. alt<=0.0) scrit(il) = 1.0
 
 1669         IF (i>=icb(il) .AND. i<=inb(il) .AND. j>=(icb( &
 
 1670           il)-1) .AND. j<=inb(il) .AND. lwork(il)) num2 = num2 + 1
 
 1672       IF (num2<=0) 
GO TO 175
 
 1675         IF (i>=icb(il) .AND. i<=inb(il) .AND. j>=(icb( &
 
 1676             il)-1) .AND. j<=inb(il) .AND. lwork(il)) 
THEN 
 1678           IF (sij(il,i,j)>1.0e-16 .AND. sij(il,i,j)<0.95) 
THEN 
 1681               sjmax = amax1(sij(il,i,j+1), smax(il))
 
 1682               sjmax = amin1(sjmax, scrit(il))
 
 1683               smax(il) = amax1(sij(il,i,j), smax(il))
 
 1684               sjmin = amax1(sij(il,i,j-1), smax(il))
 
 1685               sjmin = amin1(sjmin, scrit(il))
 
 1686               IF (sij(il,i,j)<(smax(il)-1.0e-16)) wgh = 0.0
 
 1687               smid = amin1(sij(il,i,j), scrit(il))
 
 1689               sjmax = amax1(sij(il,i,j+1), scrit(il))
 
 1690               smid = amax1(sij(il,i,j), scrit(il))
 
 1692               IF (j>1) sjmin = sij(il, i, j-1)
 
 1693               sjmin = amax1(sjmin, scrit(il))
 
 1695             delp = abs(sjmax-smid)
 
 1696             delm = abs(sjmin-smid)
 
 1697             asij(il) = asij(il) + wgh*(delp+delm)
 
 1698             ment(il, i, j) = ment(il, i, j)*(delp+delm)*wgh
 
 1706       IF (i>=icb(il) .AND. i<=inb(il) .AND. lwork(il)) 
THEN 
 1707         asij(il) = amax1(1.0e-16, asij(il))
 
 1708         asij(il) = 1.0/asij(il)
 
 1717         IF (i>=icb(il) .AND. i<=inb(il) .AND. lwork(il) .AND. j>=(icb( &
 
 1718             il)-1) .AND. j<=inb(il)) 
THEN 
 1719           ment(il, i, j) = ment(il, i, j)*asij(il)
 
 1726         IF (i>=icb(il) .AND. i<=inb(il) .AND. lwork(il) .AND. j>=(icb( &
 
 1727             il)-1) .AND. j<=inb(il)) 
THEN 
 1728           asum(il, i) = asum(il, i) + ment(il, i, j)
 
 1729           ment(il, i, j) = ment(il, i, j)*sig(il, j)
 
 1730           bsum(il, i) = bsum(il, i) + ment(il, i, j)
 
 1736       IF (i>=icb(il) .AND. i<=inb(il) .AND. lwork(il)) 
THEN 
 1737         bsum(il, i) = amax1(bsum(il,i), 1.0e-16)
 
 1738         bsum(il, i) = 1.0/bsum(il, i)
 
 1744         IF (i>=icb(il) .AND. i<=inb(il) .AND. lwork(il) .AND. j>=(icb( &
 
 1745             il)-1) .AND. j<=inb(il)) 
THEN 
 1746           ment(il, i, j) = ment(il, i, j)*asum(il, i)*bsum(il, i)
 
 1753         IF (i>=icb(il) .AND. i<=inb(il) .AND. lwork(il) .AND. j>=(icb( &
 
 1754             il)-1) .AND. j<=inb(il)) 
THEN 
 1755           csum(il, i) = csum(il, i) + ment(il, i, j)
 
 1761       IF (i>=icb(il) .AND. i<=inb(il) .AND. lwork(il) .AND. &
 
 1762           csum(il,i)<m(il,i)) 
THEN 
 1764         ment(il, i, i) = m(il, i)
 
 1765         qent(il, i, i) = rr(il, 1) - ep(il, i)*clw(il, i)
 
 1766         uent(il, i, i) = u(il, nk(il))
 
 1767         vent(il, i, i) = v(il, nk(il))
 
 1768         elij(il, i, i) = clw(il, i)
 
 1788         zm(il, im) = zm(il, im) + (1.-sij(il,im,jm))*ment(il, im, jm)
 
 1796         IF (zm(il,im)/=0.) 
THEN 
 1797           ment(il, im, jm) = ment(il, im, jm)*m(il, im)/zm(il, im)
 
 1806         qents(il, im, jm) = qent(il, im, jm)
 
 1807         ments(il, im, jm) = ment(il, im, jm)
 
 1816 SUBROUTINE cv30_unsat(nloc, ncum, nd, na, ntra, icb, inb, t, rr, rs, gz, u, &
 
 1817     v, tra, p, ph, th, tv, lv, cpn, ep, sigp, clw, m, ment, elij, delt, plcl, &
 
 1818     mp, rp, up, vp, trap, wt, water, evap, b & 
 
 1819     , wdtraina, wdtrainm) 
 
 1823   include 
"cvthermo.h" 
 1824   include 
"cv30param.h" 
 1828   INTEGER ncum, nd, na, ntra, nloc
 
 1829   INTEGER icb(nloc), inb(nloc)
 
 1830   REAL delt, plcl(nloc)
 
 1831   REAL t(nloc, nd), rr(nloc, nd), rs(nloc, nd)
 
 1832   REAL u(nloc, nd), v(nloc, nd)
 
 1833   REAL tra(nloc, nd, ntra)
 
 1834   REAL p(nloc, nd), ph(nloc, nd+1)
 
 1835   REAL th(nloc, na), gz(nloc, na)
 
 1836   REAL lv(nloc, na), ep(nloc, na), sigp(nloc, na), clw(nloc, na)
 
 1837   REAL cpn(nloc, na), tv(nloc, na)
 
 1838   REAL m(nloc, na), ment(nloc, na, na), elij(nloc, na, na)
 
 1841   REAL mp(nloc, na), rp(nloc, na), up(nloc, na), vp(nloc, na)
 
 1842   REAL water(nloc, na), evap(nloc, na), wt(nloc, na)
 
 1843   REAL trap(nloc, na, ntra)
 
 1849   REAL wdtraina(nloc, na), wdtrainm(nloc, na)
 
 1852   INTEGER i, j, k, il, num1
 
 1854   REAL awat, afac, afac1, afac2, bfac
 
 1855   REAL pr1, pr2, sigt, b6, c6, revap, tevap, delth
 
 1856   REAL amfac, amp2, xf, tf, fac2, ur, sru, fac, d, af, bf
 
 1873       rp(il, i) = rr(il, i)
 
 1874       up(il, i) = u(il, i)
 
 1875       vp(il, i) = v(il, i)
 
 1880       lvcp(il, i) = lv(il, i)/cpn(il, i)
 
 1894       wdtraina(il, i) = 0.0
 
 1895       wdtrainm(il, i) = 0.0
 
 1906     IF (ep(il,inb(il))<0.0001) lwork(il) = .
false.
 
 1909   CALL zilch(wdtrain, ncum)
 
 1911   DO i = 
nl + 1, 1, -1
 
 1915       IF (i<=inb(il) .AND. lwork(il)) num1 = num1 + 1
 
 1917     IF (num1<=0) 
GO TO 400
 
 1932       IF (i<=inb(il) .AND. lwork(il)) 
THEN 
 1934           wdtrain(il) = grav*ep(il, i)*m(il, i)*clw(il, i)
 
 1935           wdtraina(il, i) = wdtrain(il)/grav 
 
 1937           wdtrain(il) = 10.0*ep(il, i)*m(il, i)*clw(il, i)
 
 1938           wdtraina(il, i) = wdtrain(il)/10. 
 
 1947           IF (i<=inb(il) .AND. lwork(il)) 
THEN 
 1948             awat = elij(il, j, i) - (1.-ep(il,i))*clw(il, i)
 
 1949             awat = amax1(awat, 0.0)
 
 1951               wdtrain(il) = wdtrain(il) + grav*awat*ment(il, j, i)
 
 1953               wdtrain(il) = wdtrain(il) + 10.0*awat*ment(il, j, i)
 
 1960           wdtrainm(il, i) = wdtrain(il)/grav - wdtraina(il, i) 
 
 1962           wdtrainm(il, i) = wdtrain(il)/10. - wdtraina(il, i) 
 
 1975       IF (i<=inb(il) .AND. lwork(il)) 
THEN 
 1980           rp(il, i) = rp(il, i+1) + (
cpd*(t(il,i+1)-t(il, &
 
 1981             i))+gz(il,i+1)-gz(il,i))/lv(il, i)
 
 1982           rp(il, i) = 0.5*(rp(il,i)+rr(il,i))
 
 1984         rp(il, i) = amax1(rp(il,i), 0.0)
 
 1985         rp(il, i) = amin1(rp(il,i), rs(il,i))
 
 1986         rp(il, inb(il)) = rr(il, inb(il))
 
 1989           afac = p(il, 1)*(rs(il,1)-rp(il,1))/(1.0e4+2000.0*p(il,1)*rs(il,1))
 
 1991           rp(il, i-1) = rp(il, i) + (
cpd*(t(il,i)-t(il, &
 
 1992             i-1))+gz(il,i)-gz(il,i-1))/lv(il, i)
 
 1993           rp(il, i-1) = 0.5*(rp(il,i-1)+rr(il,i-1))
 
 1994           rp(il, i-1) = amin1(rp(il,i-1), rs(il,i-1))
 
 1995           rp(il, i-1) = amax1(rp(il,i-1), 0.0)
 
 1996           afac1 = p(il, i)*(rs(il,i)-rp(il,i))/(1.0e4+2000.0*p(il,i)*rs(il,i) &
 
 1998           afac2 = p(il, i-1)*(rs(il,i-1)-rp(il,i-1))/ &
 
 1999             (1.0e4+2000.0*p(il,i-1)*rs(il,i-1))
 
 2000           afac = 0.5*(afac1+afac2)
 
 2002         IF (i==inb(il)) afac = 0.0
 
 2003         afac = amax1(afac, 0.0)
 
 2004         bfac = 1./(
sigd*wt(il,i))
 
 2016         pr1 = (plcl(il)-ph(il,i+1))/(ph(il,i)-ph(il,i+1))
 
 2017         pr1 = max(0., min(1.,pr1))
 
 2018         pr2 = (ph(il,i)-plcl(il))/(ph(il,i)-ph(il,i+1))
 
 2019         pr2 = max(0., min(1.,pr2))
 
 2020         sigt = sigp(il, i)*pr1 + pr2
 
 2023         b6 = bfac*50.*
sigd*(ph(il,i)-ph(il,i+1))*sigt*afac
 
 2024         c6 = water(il, i+1) + bfac*wdtrain(il) - 50.*
sigd*bfac*(ph(il,i)-ph( &
 
 2025           il,i+1))*evap(il, i+1)
 
 2027           revap = 0.5*(-b6+sqrt(b6*b6+4.*c6))
 
 2028           evap(il, i) = sigt*afac*revap
 
 2029           water(il, i) = revap*revap
 
 2031           evap(il, i) = -evap(il, i+1) + 0.02*(wdtrain(il)+
sigd*wt(il,i)* &
 
 2032             water(il,i+1))/(
sigd*(ph(il,i)-ph(il,i+1)))
 
 2040           tevap = amax1(0.0, evap(il,i))
 
 2041           delth = amax1(0.001, (th(il,i)-th(il,i-1)))
 
 2043             mp(il, i) = 100.*
ginv*lvcp(il, i)*
sigd*tevap*(p(il,i-1)-p(il,i))/ &
 
 2046             mp(il, i) = 10.*lvcp(il, i)*
sigd*tevap*(p(il,i-1)-p(il,i))/delth
 
 2053           amfac = 
sigd*
sigd*70.0*ph(il, i)*(p(il,i-1)-p(il,i))* &
 
 2054             (th(il,i)-th(il,i-1))/(tv(il,i)*th(il,i))
 
 2055           amp2 = abs(mp(il,i+1)*mp(il,i+1)-mp(il,i)*mp(il,i))
 
 2056           IF (amp2>(0.1*amfac)) 
THEN 
 2058             tf = b(il, i) - 5.0*(th(il,i)-th(il,i-1))*t(il, i)/(lvcp(il,i)* &
 
 2060             af = xf*tf + mp(il, i+1)*mp(il, i+1)*tinv
 
 2061             bf = 2.*(tinv*mp(il,i+1))**3 + tinv*mp(il, i+1)*xf*tf + &
 
 2062               50.*(p(il,i-1)-p(il,i))*xf*tevap
 
 2064             IF (bf<0.0) fac2 = -1.0
 
 2066             ur = 0.25*bf*bf - af*af*af*tinv*tinv*tinv
 
 2070               IF ((0.5*bf-sru)<0.0) fac = -1.0
 
 2071               mp(il, i) = mp(il, i+1)*tinv + (0.5*bf+sru)**tinv + &
 
 2072                 fac*(abs(0.5*bf-sru))**tinv
 
 2074               d = atan(2.*sqrt(-ur)/(bf+1.0e-28))
 
 2075               IF (fac2<0.0) d = 3.14159 - d
 
 2076               mp(il, i) = mp(il, i+1)*tinv + 2.*sqrt(af*tinv)*cos(d*tinv)
 
 2078             mp(il, i) = amax1(0.0, mp(il,i))
 
 2086               b(il, i-1) = b(il, i) + 100.0*(p(il,i-1)-p(il,i))*tevap/(mp(il, &
 
 2087                 i)+
sigd*0.1) - 10.0*(th(il,i)-th(il,i-1))*t(il, i)/(lvcp(il,i &
 
 2090               b(il, i-1) = b(il, i) + 100.0*(p(il,i-1)-p(il,i))*tevap/(mp(il, &
 
 2091                 i)+
sigd*0.1) - 10.0*(th(il,i)-th(il,i-1))*t(il, i)/(lvcp(il,i &
 
 2094             b(il, i-1) = amax1(b(il,i-1), 0.0)
 
 2100           ampmax = 2.0*(ph(il,i)-ph(il,i+1))*delti
 
 2101           amp2 = 2.0*(ph(il,i-1)-ph(il,i))*delti
 
 2102           ampmax = amin1(ampmax, amp2)
 
 2103           mp(il, i) = amin1(mp(il,i), ampmax)
 
 2110           IF (p(il,i)>p(il,icb(il))) 
THEN 
 2111             mp(il, i) = mp(il, icb(il))*(p(il,1)-p(il,i))/ &
 
 2112               (p(il,1)-p(il,icb(il)))
 
 2120         IF (i/=inb(il)) 
THEN 
 2122           rp(il, i) = rr(il, i)
 
 2124           IF (mp(il,i)>mp(il,i+1)) 
THEN 
 2127               rp(il, i) = rp(il, i+1)*mp(il, i+1) + &
 
 2128                 rr(il, i)*(mp(il,i)-mp(il,i+1)) + 100.*
ginv*0.5*
sigd*(ph(il,i &
 
 2129                 )-ph(il,i+1))*(evap(il,i+1)+evap(il,i))
 
 2131               rp(il, i) = rp(il, i+1)*mp(il, i+1) + &
 
 2132                 rr(il, i)*(mp(il,i)-mp(il,i+1)) + 5.*
sigd*(ph(il,i)-ph(il,i+1 &
 
 2133                 ))*(evap(il,i+1)+evap(il,i))
 
 2135             rp(il, i) = rp(il, i)/mp(il, i)
 
 2136             up(il, i) = up(il, i+1)*mp(il, i+1) + u(il, i)*(mp(il,i)-mp(il,i+ &
 
 2138             up(il, i) = up(il, i)/mp(il, i)
 
 2139             vp(il, i) = vp(il, i+1)*mp(il, i+1) + v(il, i)*(mp(il,i)-mp(il,i+ &
 
 2141             vp(il, i) = vp(il, i)/mp(il, i)
 
 2152             IF (mp(il,i+1)>1.0e-16) 
THEN 
 2154                 rp(il, i) = rp(il, i+1) + 100.*
ginv*0.5*
sigd*(ph(il,i)-ph(il, &
 
 2155                   i+1))*(evap(il,i+1)+evap(il,i))/mp(il, i+1)
 
 2157                 rp(il, i) = rp(il, i+1) + 5.*
sigd*(ph(il,i)-ph(il,i+1))*(evap &
 
 2158                   (il,i+1)+evap(il,i))/mp(il, i+1)
 
 2160               up(il, i) = up(il, i+1)
 
 2161               vp(il, i) = vp(il, i+1)
 
 2169           rp(il, i) = amin1(rp(il,i), rs(il,i))
 
 2170           rp(il, i) = amax1(rp(il,i), 0.0)
 
 2181 SUBROUTINE cv30_yield(nloc, ncum, nd, na, ntra, icb, inb, delt, t, rr, u, v, &
 
 2182     tra, gz, p, ph, h, hp, lv, cpn, th, ep, clw, m, tp, mp, rp, up, vp, trap, &
 
 2183     wt, water, evap, b, ment, qent, uent, vent, nent, elij, traent, sig, tv, &
 
 2184     tvp, iflag, precip, vprecip, ft, fr, fu, fv, ftra, upwd, dnwd, dnwd0, ma, &
 
 2185     mike, tls, tps, qcondc, wd)
 
 2188   include 
"cvthermo.h" 
 2189   include 
"cv30param.h" 
 2194   INTEGER ncum, nd, na, ntra, nloc
 
 2195   INTEGER icb(nloc), inb(nloc)
 
 2197   REAL t(nloc, nd), rr(nloc, nd), u(nloc, nd), v(nloc, nd)
 
 2198   REAL tra(nloc, nd, ntra), sig(nloc, nd)
 
 2199   REAL gz(nloc, na), ph(nloc, nd+1), h(nloc, na), hp(nloc, na)
 
 2200   REAL th(nloc, na), p(nloc, nd), tp(nloc, na)
 
 2201   REAL lv(nloc, na), cpn(nloc, na), ep(nloc, na), clw(nloc, na)
 
 2202   REAL m(nloc, na), mp(nloc, na), rp(nloc, na), up(nloc, na)
 
 2203   REAL vp(nloc, na), wt(nloc, nd), trap(nloc, nd, ntra)
 
 2204   REAL water(nloc, na), evap(nloc, na), b(nloc, na)
 
 2205   REAL ment(nloc, na, na), qent(nloc, na, na), uent(nloc, na, na)
 
 2207   REAL vent(nloc, na, na), elij(nloc, na, na)
 
 2208   INTEGER nent(nloc, na)
 
 2209   REAL traent(nloc, na, na, ntra)
 
 2210   REAL tv(nloc, nd), tvp(nloc, nd)
 
 2217   REAL vprecip(nloc, nd+1)
 
 2218   REAL ft(nloc, nd), fr(nloc, nd), fu(nloc, nd), fv(nloc, nd)
 
 2219   REAL ftra(nloc, nd, ntra)
 
 2220   REAL upwd(nloc, nd), dnwd(nloc, nd), ma(nloc, nd)
 
 2221   REAL dnwd0(nloc, nd), mike(nloc, nd)
 
 2222   REAL tls(nloc, nd), tps(nloc, nd)
 
 2223   REAL qcondc(nloc, nd) 
 
 2227   INTEGER i, k, il, n, j, num1
 
 2228   REAL rat, awat, delti
 
 2229   REAL ax, bx, cx, dx, ex
 
 2230   REAL cpinv, rdcp, dpinv
 
 2231   REAL lvcp(nloc, na), mke(nloc, na)
 
 2232   REAL am(nloc), work(nloc), ad(nloc), amp1(nloc)
 
 2234   REAL up1(nloc, nd, nd), dn1(nloc, nd, nd)
 
 2235   REAL asum(nloc), bsum(nloc), csum(nloc), dsum(nloc)
 
 2236   REAL qcond(nloc, nd), nqcond(nloc, nd), wa(nloc, nd) 
 
 2237   REAL siga(nloc, nd), sax(nloc, nd), mac(nloc, nd) 
 
 2249     vprecip(il, nd+1) = 0.
 
 2254       vprecip(il, i) = 0.0
 
 2275       lvcp(il, i) = lv(il, i)/cpn(il, i)
 
 2284     IF (ep(il,inb(il))>=0.0001) 
THEN 
 2286         precip(il) = wt(il, 1)*
sigd*water(il, 1)*86400.*1000./(
rowl*grav)
 
 2288         precip(il) = wt(il, 1)*
sigd*water(il, 1)*8640.
 
 2298       IF (k<=inb(il)) 
THEN 
 2300           vprecip(il, k) = wt(il, k)*
sigd*water(il, k)/grav
 
 2302           vprecip(il, k) = wt(il, k)*
sigd*water(il, k)/10.
 
 2322     work(il) = 1.0/(ph(il,1)-ph(il,2))
 
 2328       IF (k<=inb(il)) 
THEN 
 2329         am(il) = am(il) + m(il, k)
 
 2338       IF ((0.01*grav*work(il)*am(il))>=delti) iflag(il) = 1 
 
 2339       ft(il, 1) = 0.01*grav*work(il)*am(il)*(t(il,2)-t(il,1)+(gz(il,2)-gz(il, &
 
 2342       IF ((0.1*work(il)*am(il))>=delti) iflag(il) = 1 
 
 2343       ft(il, 1) = 0.1*work(il)*am(il)*(t(il,2)-t(il,1)+(gz(il,2)-gz(il, &
 
 2347     ft(il, 1) = ft(il, 1) - 0.5*lvcp(il, 1)*
sigd*(evap(il,1)+evap(il,2))
 
 2350       ft(il, 1) = ft(il, 1) - 0.009*grav*
sigd*mp(il, 2)*t(il, 1)*b(il, 1)* &
 
 2353       ft(il, 1) = ft(il, 1) - 0.09*
sigd*mp(il, 2)*t(il, 1)*b(il, 1)*work(il)
 
 2356     ft(il, 1) = ft(il, 1) + 0.01*
sigd*wt(il, 1)*(
cl-
cpd)*water(il, 2)*(t(il,2 &
 
 2357       )-t(il,1))*work(il)/cpn(il, 1)
 
 2364       fr(il, 1) = 0.01*grav*mp(il, 2)*(rp(il,2)-rr(il,1))*work(il) + &
 
 2365         sigd*0.5*(evap(il,1)+evap(il,2))
 
 2368       fr(il, 1) = fr(il, 1) + 0.01*grav*am(il)*(rr(il,2)-rr(il,1))*work(il)
 
 2370       fu(il, 1) = fu(il, 1) + 0.01*grav*work(il)*(mp(il,2)*(up(il,2)-u(il, &
 
 2371         1))+am(il)*(u(il,2)-u(il,1)))
 
 2372       fv(il, 1) = fv(il, 1) + 0.01*grav*work(il)*(mp(il,2)*(vp(il,2)-v(il, &
 
 2373         1))+am(il)*(v(il,2)-v(il,1)))
 
 2375       fr(il, 1) = 0.1*mp(il, 2)*(rp(il,2)-rr(il,1))*work(il) + &
 
 2376         sigd*0.5*(evap(il,1)+evap(il,2))
 
 2377       fr(il, 1) = fr(il, 1) + 0.1*am(il)*(rr(il,2)-rr(il,1))*work(il)
 
 2378       fu(il, 1) = fu(il, 1) + 0.1*work(il)*(mp(il,2)*(up(il,2)-u(il, &
 
 2379         1))+am(il)*(u(il,2)-u(il,1)))
 
 2380       fv(il, 1) = fv(il, 1) + 0.1*work(il)*(mp(il,2)*(vp(il,2)-v(il, &
 
 2381         1))+am(il)*(v(il,2)-v(il,1)))
 
 2402       IF (j<=inb(il)) 
THEN 
 2404           fr(il, 1) = fr(il, 1) + 0.01*grav*work(il)*ment(il, j, 1)*(qent(il, &
 
 2406           fu(il, 1) = fu(il, 1) + 0.01*grav*work(il)*ment(il, j, 1)*(uent(il, &
 
 2408           fv(il, 1) = fv(il, 1) + 0.01*grav*work(il)*ment(il, j, 1)*(vent(il, &
 
 2411           fr(il, 1) = fr(il, 1) + 0.1*work(il)*ment(il, j, 1)*(qent(il,j,1)- &
 
 2413           fu(il, 1) = fu(il, 1) + 0.1*work(il)*ment(il, j, 1)*(uent(il,j,1)-u &
 
 2415           fv(il, 1) = fv(il, 1) + 0.1*work(il)*ment(il, j, 1)*(vent(il,j,1)-v &
 
 2452       IF (i<=inb(il)) num1 = num1 + 1
 
 2454     IF (num1<=0) 
GO TO 500
 
 2456     CALL zilch(amp1, ncum)
 
 2457     CALL zilch(ad, ncum)
 
 2459     DO k = i + 1, 
nl + 1
 
 2461         IF (i<=inb(il) .AND. k<=(inb(il)+1)) 
THEN 
 2462           amp1(il) = amp1(il) + m(il, k)
 
 2468       DO j = i + 1, 
nl + 1
 
 2470           IF (i<=inb(il) .AND. j<=(inb(il)+1)) 
THEN 
 2471             amp1(il) = amp1(il) + ment(il, k, j)
 
 2480           IF (i<=inb(il) .AND. j<=inb(il)) 
THEN 
 2481             ad(il) = ad(il) + ment(il, j, k)
 
 2488       IF (i<=inb(il)) 
THEN 
 2489         dpinv = 1.0/(ph(il,i)-ph(il,i+1))
 
 2490         cpinv = 1.0/cpn(il, i)
 
 2494           IF ((0.01*grav*dpinv*amp1(il))>=delti) iflag(il) = 1 
 
 2496           IF ((0.1*dpinv*amp1(il))>=delti) iflag(il) = 1 
 
 2500           ft(il, i) = 0.01*grav*dpinv*(amp1(il)*(t(il,i+1)-t(il, &
 
 2501             i)+(gz(il,i+1)-gz(il,i))*cpinv)-ad(il)*(t(il,i)-t(il, &
 
 2502             i-1)+(gz(il,i)-gz(il,i-1))*cpinv)) - 0.5*
sigd*lvcp(il, i)*(evap( &
 
 2504           rat = cpn(il, i-1)*cpinv
 
 2505           ft(il, i) = ft(il, i) - 0.009*grav*
sigd*(mp(il,i+1)*t(il,i)*b(il,i) &
 
 2506             -mp(il,i)*t(il,i-1)*rat*b(il,i-1))*dpinv
 
 2507           ft(il, i) = ft(il, i) + 0.01*grav*dpinv*ment(il, i, i)*(hp(il,i)-h( &
 
 2508             il,i)+t(il,i)*(
cpv-
cpd)*(rr(il,i)-qent(il,i,i)))*cpinv
 
 2510           ft(il, i) = 0.1*dpinv*(amp1(il)*(t(il,i+1)-t(il, &
 
 2511             i)+(gz(il,i+1)-gz(il,i))*cpinv)-ad(il)*(t(il,i)-t(il, &
 
 2512             i-1)+(gz(il,i)-gz(il,i-1))*cpinv)) - 0.5*
sigd*lvcp(il, i)*(evap( &
 
 2514           rat = cpn(il, i-1)*cpinv
 
 2515           ft(il, i) = ft(il, i) - 0.09*
sigd*(mp(il,i+1)*t(il,i)*b(il,i)-mp(il &
 
 2516             ,i)*t(il,i-1)*rat*b(il,i-1))*dpinv
 
 2517           ft(il, i) = ft(il, i) + 0.1*dpinv*ment(il, i, i)*(hp(il,i)-h(il,i)+ &
 
 2518             t(il,i)*(
cpv-
cpd)*(rr(il,i)-qent(il,i,i)))*cpinv
 
 2522         ft(il, i) = ft(il, i) + 0.01*
sigd*wt(il, i)*(
cl-
cpd)*water(il, i+1)*( &
 
 2523           t(il,i+1)-t(il,i))*dpinv*cpinv
 
 2526           fr(il, i) = 0.01*grav*dpinv*(amp1(il)*(rr(il,i+1)-rr(il, &
 
 2527             i))-ad(il)*(rr(il,i)-rr(il,i-1)))
 
 2528           fu(il, i) = fu(il, i) + 0.01*grav*dpinv*(amp1(il)*(u(il,i+1)-u(il, &
 
 2529             i))-ad(il)*(u(il,i)-u(il,i-1)))
 
 2530           fv(il, i) = fv(il, i) + 0.01*grav*dpinv*(amp1(il)*(v(il,i+1)-v(il, &
 
 2531             i))-ad(il)*(v(il,i)-v(il,i-1)))
 
 2533           fr(il, i) = 0.1*dpinv*(amp1(il)*(rr(il,i+1)-rr(il, &
 
 2534             i))-ad(il)*(rr(il,i)-rr(il,i-1)))
 
 2535           fu(il, i) = fu(il, i) + 0.1*dpinv*(amp1(il)*(u(il,i+1)-u(il, &
 
 2536             i))-ad(il)*(u(il,i)-u(il,i-1)))
 
 2537           fv(il, i) = fv(il, i) + 0.1*dpinv*(amp1(il)*(v(il,i+1)-v(il, &
 
 2538             i))-ad(il)*(v(il,i)-v(il,i-1)))
 
 2564         IF (i<=inb(il)) 
THEN 
 2565           dpinv = 1.0/(ph(il,i)-ph(il,i+1))
 
 2566           cpinv = 1.0/cpn(il, i)
 
 2568           awat = elij(il, k, i) - (1.-ep(il,i))*clw(il, i)
 
 2569           awat = amax1(awat, 0.0)
 
 2572             fr(il, i) = fr(il, i) + 0.01*grav*dpinv*ment(il, k, i)*(qent(il,k &
 
 2574             fu(il, i) = fu(il, i) + 0.01*grav*dpinv*ment(il, k, i)*(uent(il,k &
 
 2576             fv(il, i) = fv(il, i) + 0.01*grav*dpinv*ment(il, k, i)*(vent(il,k &
 
 2579             fr(il, i) = fr(il, i) + 0.1*dpinv*ment(il, k, i)*(qent(il,k,i)- &
 
 2581             fu(il, i) = fu(il, i) + 0.01*grav*dpinv*ment(il, k, i)*(uent(il,k &
 
 2583             fv(il, i) = fv(il, i) + 0.1*dpinv*ment(il, k, i)*(vent(il,k,i)-v( &
 
 2588           qcond(il, i) = qcond(il, i) + (elij(il,k,i)-awat) 
 
 2589           nqcond(il, i) = nqcond(il, i) + 1. 
 
 2614         IF (i<=inb(il) .AND. k<=inb(il)) 
THEN 
 2615           dpinv = 1.0/(ph(il,i)-ph(il,i+1))
 
 2616           cpinv = 1.0/cpn(il, i)
 
 2619             fr(il, i) = fr(il, i) + 0.01*grav*dpinv*ment(il, k, i)*(qent(il,k &
 
 2621             fu(il, i) = fu(il, i) + 0.01*grav*dpinv*ment(il, k, i)*(uent(il,k &
 
 2623             fv(il, i) = fv(il, i) + 0.01*grav*dpinv*ment(il, k, i)*(vent(il,k &
 
 2626             fr(il, i) = fr(il, i) + 0.1*dpinv*ment(il, k, i)*(qent(il,k,i)-rr &
 
 2628             fu(il, i) = fu(il, i) + 0.1*dpinv*ment(il, k, i)*(uent(il,k,i)-u( &
 
 2630             fv(il, i) = fv(il, i) + 0.1*dpinv*ment(il, k, i)*(vent(il,k,i)-v( &
 
 2656       IF (i<=inb(il)) 
THEN 
 2657         dpinv = 1.0/(ph(il,i)-ph(il,i+1))
 
 2658         cpinv = 1.0/cpn(il, i)
 
 2663           fr(il, i) = fr(il, i) + 0.5*
sigd*(evap(il,i)+evap(il,i+1)) + &
 
 2664             0.01*grav*(mp(il,i+1)*(rp(il,i+1)-rr(il,i))-mp(il,i)*(rp(il, &
 
 2665             i)-rr(il,i-1)))*dpinv
 
 2667           fu(il, i) = fu(il, i) + 0.01*grav*(mp(il,i+1)*(up(il,i+1)-u(il, &
 
 2668             i))-mp(il,i)*(up(il,i)-u(il,i-1)))*dpinv
 
 2669           fv(il, i) = fv(il, i) + 0.01*grav*(mp(il,i+1)*(vp(il,i+1)-v(il, &
 
 2670             i))-mp(il,i)*(vp(il,i)-v(il,i-1)))*dpinv
 
 2672           fr(il, i) = fr(il, i) + 0.5*
sigd*(evap(il,i)+evap(il,i+1)) + &
 
 2673             0.1*(mp(il,i+1)*(rp(il,i+1)-rr(il,i))-mp(il,i)*(rp(il,i)-rr(il, &
 
 2675           fu(il, i) = fu(il, i) + 0.1*(mp(il,i+1)*(up(il,i+1)-u(il, &
 
 2676             i))-mp(il,i)*(up(il,i)-u(il,i-1)))*dpinv
 
 2677           fv(il, i) = fv(il, i) + 0.1*(mp(il,i+1)*(vp(il,i+1)-v(il, &
 
 2678             i))-mp(il,i)*(vp(il,i)-v(il,i-1)))*dpinv
 
 2688         IF (k<=inb(il) .AND. i<=inb(il)) 
THEN  
 2690           qcond(il, i) = qcond(il, i) + elij(il, k, i) 
 
 2691           nqcond(il, i) = nqcond(il, i) + 1. 
 
 2698       IF (i<=inb(il) .AND. nent(il,i)==0) 
THEN  
 2699         qcond(il, i) = qcond(il, i) + (1.-ep(il,i))*clw(il, i) 
 
 2700         nqcond(il, i) = nqcond(il, i) + 1. 
 
 2705       IF (i<=inb(il) .AND. nqcond(il,i)/=0.) 
THEN  
 2706         qcond(il, i) = qcond(il, i)/nqcond(il, i) 
 
 2738     ax = 0.1*ment(il, inb(il), inb(il))*(hp(il,inb(il))-h(il,inb(il))+t(il, &
 
 2739       inb(il))*(
cpv-
cpd)*(rr(il,inb(il))-qent(il,inb(il), &
 
 2740       inb(il))))/(cpn(il,inb(il))*(ph(il,inb(il))-ph(il,inb(il)+1)))
 
 2741     ft(il, inb(il)) = ft(il, inb(il)) - ax
 
 2742     ft(il, inb(il)-1) = ft(il, inb(il)-1) + ax*cpn(il, inb(il))*(ph(il,inb(il &
 
 2743       ))-ph(il,inb(il)+1))/(cpn(il,inb(il)-1)*(ph(il,inb(il)-1)-ph(il, &
 
 2746     bx = 0.1*ment(il, inb(il), inb(il))*(qent(il,inb(il),inb(il))-rr(il,inb( &
 
 2747       il)))/(ph(il,inb(il))-ph(il,inb(il)+1))
 
 2748     fr(il, inb(il)) = fr(il, inb(il)) - bx
 
 2749     fr(il, inb(il)-1) = fr(il, inb(il)-1) + bx*(ph(il,inb(il))-ph(il,inb(il)+ &
 
 2750       1))/(ph(il,inb(il)-1)-ph(il,inb(il)))
 
 2752     cx = 0.1*ment(il, inb(il), inb(il))*(uent(il,inb(il),inb(il))-u(il,inb(il &
 
 2753       )))/(ph(il,inb(il))-ph(il,inb(il)+1))
 
 2754     fu(il, inb(il)) = fu(il, inb(il)) - cx
 
 2755     fu(il, inb(il)-1) = fu(il, inb(il)-1) + cx*(ph(il,inb(il))-ph(il,inb(il)+ &
 
 2756       1))/(ph(il,inb(il)-1)-ph(il,inb(il)))
 
 2758     dx = 0.1*ment(il, inb(il), inb(il))*(vent(il,inb(il),inb(il))-v(il,inb(il &
 
 2759       )))/(ph(il,inb(il))-ph(il,inb(il)+1))
 
 2760     fv(il, inb(il)) = fv(il, inb(il)) - dx
 
 2761     fv(il, inb(il)-1) = fv(il, inb(il)-1) + dx*(ph(il,inb(il))-ph(il,inb(il)+ &
 
 2762       1))/(ph(il,inb(il)-1)-ph(il,inb(il)))
 
 2791       IF (i<=(icb(il)-1)) 
THEN 
 2792         asum(il) = asum(il) + ft(il, i)*(ph(il,i)-ph(il,i+1))
 
 2793         bsum(il) = bsum(il) + fr(il, i)*(lv(il,i)+(
cl-
cpd)*(t(il,i)-t(il, &
 
 2794           1)))*(ph(il,i)-ph(il,i+1))
 
 2795         csum(il) = csum(il) + (lv(il,i)+(
cl-
cpd)*(t(il,i)-t(il, &
 
 2796           1)))*(ph(il,i)-ph(il,i+1))
 
 2797         dsum(il) = dsum(il) + t(il, i)*(ph(il,i)-ph(il,i+1))/th(il, i)
 
 2805       IF (i<=(icb(il)-1)) 
THEN 
 2806         ft(il, i) = asum(il)*t(il, i)/(th(il,i)*dsum(il))
 
 2807         fr(il, i) = bsum(il)/csum(il)
 
 2829       dnwd0(il, i) = -mp(il, i)
 
 2841       IF (i>=icb(il) .AND. i<=inb(il)) 
THEN 
 2861           IF (i>=icb(il) .AND. i<=inb(il) .AND. k<=inb(il)) 
THEN 
 2862             up1(il, k, i) = up1(il, k, i) + ment(il, n, k)
 
 2863             dn1(il, k, i) = dn1(il, k, i) - ment(il, k, n)
 
 2875         IF (i<=inb(il) .AND. k<=inb(il)) 
THEN 
 2876           upwd(il, i) = upwd(il, i) + m(il, k) + up1(il, k, i)
 
 2877           dnwd(il, i) = dnwd(il, i) + dn1(il, k, i)
 
 2910       mike(il, i) = m(il, i)
 
 2929         ma(il, i) = ma(il, i) + m(il, j)
 
 2942       IF (i<=(icb(il)-1)) 
THEN 
 2955       mke(il, i) = upwd(il, i) + dnwd(il, i)
 
 2961       rdcp = (
rrd*(1.-rr(il,i))-rr(il,i)*
rrv)/(
cpd*(1.-rr(il, &
 
 2963       tls(il, i) = t(il, i)*(1000.0/p(il,i))**rdcp
 
 2964       tps(il, i) = tp(il, i)
 
 2983     DO k = i + 1, 
nl + 1 
 
 2985         IF (i<=inb(il) .AND. k<=(inb(il)+1)) 
THEN  
 2986           mac(il, i) = mac(il, i) + m(il, k) 
 
 2995         IF (i>=icb(il) .AND. i<=(inb(il)-1) & 
 
 2996             .AND. j>=icb(il)) 
THEN  
 2997           sax(il, i) = sax(il, i) + 
rrd*(tvp(il,j)-tv(il,j)) & 
 
 2998             *(ph(il,j)-ph(il,j+1))/p(il, j) 
 
 3006       IF (i>=icb(il) .AND. i<=(inb(il)-1) & 
 
 3007           .AND. sax(il,i)>0.0) 
THEN  
 3008         wa(il, i) = sqrt(2.*sax(il,i)) 
 
 3016         siga(il, i) = mac(il, i)/wa(il, i) & 
 
 3017         *
rrd*tvp(il, i)/p(il, i)/100./
delta  
 3018       siga(il, i) = min(siga(il,i), 1.0) 
 
 3021         qcondc(il, i) = siga(il, i)*clw(il, i)*(1.-ep(il,i)) & 
 
 3022           +(1.-siga(il,i))*qcond(il, i) 
 
 3024         qcondc(il, i) = qcond(il, i) 
 
 3034 SUBROUTINE cv30_tracer(nloc, len, ncum, nd, na, ment, sij, da, phi, phi2, &
 
 3035     d1a, dam, ep, vprecip, elij, clw, epmlmmm, eplamm, icb, inb)
 
 3038   include 
"cv30param.h" 
 3041   INTEGER ncum, nd, na, nloc, len
 
 3042   REAL ment(nloc, na, na), sij(nloc, na, na)
 
 3043   REAL clw(nloc, nd), elij(nloc, na, na)
 
 3045   INTEGER icb(nloc), inb(nloc)
 
 3046   REAL vprecip(nloc, nd+1)
 
 3048   REAL da(nloc, na), phi(nloc, na, na)
 
 3049   REAL phi2(nloc, na, na)
 
 3050   REAL d1a(nloc, na), dam(nloc, na)
 
 3051   REAL epmlmmm(nloc, na, na), eplamm(nloc, na)
 
 3055   REAL epm(nloc, na, na)
 
 3077         epmlmmm(i, j, k) = 0.
 
 3089         IF (k>=icb(i) .AND. k<=inb(i) .AND. j<=inb(i)) 
THEN 
 3091           epm(i, j, k) = 1. - (1.-ep(i,j))*clw(i, j)/max(elij(i,k,j), 1.e-16)
 
 3093           epm(i, j, k) = max(epm(i,j,k), 0.0)
 
 3102         IF (k>=icb(i) .AND. k<=inb(i)) 
THEN 
 3103           eplamm(i, j) = eplamm(i, j) + ep(i, j)*clw(i, j)*ment(i, j, k)*(1.- &
 
 3113         IF (k>=icb(i) .AND. k<=inb(i) .AND. j<=inb(i)) 
THEN 
 3114           epmlmmm(i, j, k) = epm(i, j, k)*elij(i, k, j)*ment(i, k, j)
 
 3124         da(i, j) = da(i, j) + (1.-sij(i,k,j))*ment(i, k, j)
 
 3125         phi(i, j, k) = sij(i, k, j)*ment(i, k, j)
 
 3126         d1a(i, j) = d1a(i, j) + ment(i, k, j)*ep(i, k)*(1.-sij(i,k,j))
 
 3134         dam(i, j) = dam(i, j) + ment(i, k, j)*epm(i, j, k)*(1.-ep(i,k))*(1.- &
 
 3136         phi2(i, j, k) = phi(i, j, k)*epm(i, j, k)
 
 3145 SUBROUTINE cv30_uncompress(nloc, len, ncum, nd, ntra, idcum, iflag, precip, &
 
 3146     vprecip, evap, ep, sig, w0, ft, fq, fu, fv, ftra, inb, ma, upwd, dnwd, &
 
 3147     dnwd0, qcondc, wd, cape, da, phi, mp, phi2, d1a, dam, sij, elij, clw, &
 
 3148     epmlmmm, eplamm, wdtraina, wdtrainm, iflag1, precip1, vprecip1, evap1, &
 
 3149     ep1, sig1, w01, ft1, fq1, fu1, fv1, ftra1, inb1, ma1, upwd1, dnwd1, &
 
 3150     dnwd01, qcondc1, wd1, cape1, da1, phi1, mp1, phi21, d1a1, dam1, sij1, &
 
 3151     elij1, clw1, epmlmmm1, eplamm1, wdtraina1, wdtrainm1)
 
 3154   include 
"cv30param.h" 
 3157   INTEGER len, ncum, nd, ntra, nloc
 
 3162   REAL vprecip(nloc, nd+1), evap(nloc, nd)
 
 3164   REAL sig(nloc, nd), w0(nloc, nd)
 
 3165   REAL ft(nloc, nd), fq(nloc, nd), fu(nloc, nd), fv(nloc, nd)
 
 3166   REAL ftra(nloc, nd, ntra)
 
 3168   REAL upwd(nloc, nd), dnwd(nloc, nd), dnwd0(nloc, nd)
 
 3169   REAL qcondc(nloc, nd)
 
 3170   REAL wd(nloc), cape(nloc)
 
 3171   REAL da(nloc, nd), phi(nloc, nd, nd), mp(nloc, nd)
 
 3173   REAL phi2(nloc, nd, nd)
 
 3174   REAL d1a(nloc, nd), dam(nloc, nd)
 
 3175   REAL wdtraina(nloc, nd), wdtrainm(nloc, nd)
 
 3176   REAL sij(nloc, nd, nd)
 
 3177   REAL elij(nloc, nd, nd), clw(nloc, nd)
 
 3178   REAL epmlmmm(nloc, nd, nd), eplamm(nloc, nd)
 
 3185   REAL vprecip1(len, nd+1), evap1(len, nd)
 
 3187   REAL sig1(len, nd), w01(len, nd)
 
 3188   REAL ft1(len, nd), fq1(len, nd), fu1(len, nd), fv1(len, nd)
 
 3189   REAL ftra1(len, nd, ntra)
 
 3191   REAL upwd1(len, nd), dnwd1(len, nd), dnwd01(len, nd)
 
 3192   REAL qcondc1(nloc, nd)
 
 3193   REAL wd1(nloc), cape1(nloc)
 
 3194   REAL da1(nloc, nd), phi1(nloc, nd, nd), mp1(nloc, nd)
 
 3196   REAL phi21(len, nd, nd)
 
 3197   REAL d1a1(len, nd), dam1(len, nd)
 
 3198   REAL wdtraina1(len, nd), wdtrainm1(len, nd)
 
 3199   REAL sij1(len, nd, nd)
 
 3200   REAL elij1(len, nd, nd), clw1(len, nd)
 
 3201   REAL epmlmmm1(len, nd, nd), eplamm1(len, nd)
 
 3208     precip1(idcum(i)) = precip(i)
 
 3209     iflag1(idcum(i)) = iflag(i)
 
 3210     wd1(idcum(i)) = wd(i)
 
 3211     inb1(idcum(i)) = inb(i)
 
 3212     cape1(idcum(i)) = cape(i)
 
 3217       vprecip1(idcum(i), k) = vprecip(i, k)
 
 3218       evap1(idcum(i), k) = evap(i, k) 
 
 3219       sig1(idcum(i), k) = sig(i, k)
 
 3220       w01(idcum(i), k) = w0(i, k)
 
 3221       ft1(idcum(i), k) = ft(i, k)
 
 3222       fq1(idcum(i), k) = fq(i, k)
 
 3223       fu1(idcum(i), k) = fu(i, k)
 
 3224       fv1(idcum(i), k) = fv(i, k)
 
 3225       ma1(idcum(i), k) = ma(i, k)
 
 3226       upwd1(idcum(i), k) = upwd(i, k)
 
 3227       dnwd1(idcum(i), k) = dnwd(i, k)
 
 3228       dnwd01(idcum(i), k) = dnwd0(i, k)
 
 3229       qcondc1(idcum(i), k) = qcondc(i, k)
 
 3230       da1(idcum(i), k) = da(i, k)
 
 3231       mp1(idcum(i), k) = mp(i, k)
 
 3233       ep1(idcum(i), k) = ep(i, k)
 
 3234       d1a1(idcum(i), k) = d1a(i, k)
 
 3235       dam1(idcum(i), k) = dam(i, k)
 
 3236       clw1(idcum(i), k) = clw(i, k)
 
 3237       eplamm1(idcum(i), k) = eplamm(i, k)
 
 3238       wdtraina1(idcum(i), k) = wdtraina(i, k)
 
 3239       wdtrainm1(idcum(i), k) = wdtrainm(i, k)
 
 3245     sig1(idcum(i), nd) = sig(i, nd)
 
 3259         sij1(idcum(i), k, j) = sij(i, k, j)
 
 3260         phi1(idcum(i), k, j) = phi(i, k, j)
 
 3261         phi21(idcum(i), k, j) = phi2(i, k, j)
 
 3262         elij1(idcum(i), k, j) = elij(i, k, j)
 
 3263         epmlmmm1(idcum(i), k, j) = epmlmmm(i, k, j)
 
!$Id!Thermodynamical constants for t0 real clmcpv
 
!$Id!Thermodynamical constants for cpv
 
!$Id!logical cvflag_grav logical cvflag_ice COMMON cvflag cvflag_grav
 
subroutine cv30_undilute1(len, nd, t, q, qs, gz, plcl, p, nk, icb, tp, tvp, clw, icbs)
 
!$Id!Parameters for nlm real spfac!IM cf epmax real ptcrit real omtrain real dpbase
 
!$Id!Parameters for minorig
 
!$Id!Parameters for nlm real spfac!IM cf epmax real ptcrit real omtrain real dttrig real alpha real delta real betad COMMON cv30param nlm spfac &!IM cf ptcrit omtrain dttrig delta
 
!$Id!Parameters for nlm real spfac!IM cf epmax real ptcrit real omtrain real dttrig real beta
 
!$Id!Parameters for nlm real spfac!IM cf ptcrit
 
subroutine cv30_mixing(nloc, ncum, nd, na, ntra, icb, nk, inb, ph, t, rr, rs, u, v, tra, h, lv, qnk, hp, tv, tvp, ep, clw, m, sig, ment, qent, uent, vent, sij, elij, ments, qents, traent)
 
!$Id!Thermodynamical constants for t0 real clmci real epsim1 real ginv
 
!$Id!Thermodynamical constants for t0 real clmci real eps
 
!$Id!Parameters for parameters that control the rate of approach!to quasi equilibrium noff nlm real tlcrit real entp real sigd real omtrain
 
!$Id!Thermodynamical constants for rrd
 
!$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
 
!$Id!Thermodynamical constants for cl
 
!$Id!Parameters for nlm real spfac!IM cf epmax real pbcrit
 
!$Id!Parameters for nlm real spfac!IM cf epmax real ptcrit real omtrain real dttrig real alpha real delta real betad COMMON cv30param noff
 
!$Id!Parameters for parameters that control the rate of approach!to quasi equilibrium noff nlm real tlcrit real entp real sigd real coeffs real dtmax real cu real betad real damp real delta COMMON cvparam nlm tlcrit sigd coeffs betad
 
!$Id!Parameters for nlm real spfac!IM cf epmax real ptcrit real omtrain real dttrig real dtcrit
 
subroutine cv30_closure(nloc, ncum, nd, icb, inb, pbase, p, ph, tv, buoy, sig, w0, cape, m)
 
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm u(l)
 
subroutine cv30_undilute2(nloc, ncum, nd, icb, icbs, nk, tnk, qnk, gznk, t, q, qs, gz, p, h, tv, lv, pbase, buoybase, plcl, inb, tp, tvp, clw, hp, ep, sigp, buoy)
 
!$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 cv30_prelim(len, nd, ndp1, t, q, p, ph, lv, cpn, tv, gz, h, hm, th)
 
subroutine cv30_feed(len, nd, t, q, qs, p, ph, hm, gz, nk, icb, icbmax, iflag, tnk, qnk, gznk, plcl)
 
!$Id!Parameters for nlm real spfac!IM cf epmax real ptcrit real omtrain real dtovsh
 
!$Id!Parameters for nlm real spfac!IM cf epmax real ptcrit real omtrain real dttrig real alpha real delta real betad COMMON cv30param nlm spfac &!IM cf ptcrit omtrain dttrig alpha
 
subroutine cv30_unsat(nloc, ncum, nd, na, ntra, icb, inb, t, rr, rs, gz, u, v, tra, p, ph, th, tv, lv, cpn, ep, sigp, clw, m, ment, elij, delt, plcl, mp, rp, up, vp, trap, wt, water, evap, b, wdtraina, wdtrainm)
 
subroutine cv30_uncompress(nloc, len, ncum, nd, ntra, idcum, iflag, precip, vprecip, evap, ep, sig, w0, ft, fq, fu, fv, ftra, inb, ma, upwd, dnwd, dnwd0, qcondc, wd, cape, da, phi, mp, phi2, d1a, dam, sij, elij, clw, epmlmmm, eplamm, wdtraina, wdtrainm, iflag1, precip1, vprecip1, evap1, ep1, sig1, w01, ft1, fq1, fu1, fv1, ftra1, inb1, ma1, upwd1, dnwd1, dnwd01, qcondc1, wd1, cape1, da1, phi1, mp1, phi21, d1a1, dam1, sij1, elij1, clw1, epmlmmm1, eplamm1, wdtraina1, wdtrainm1)
 
subroutine cv30_param(nd, delt)
 
subroutine cv30_compress(len, nloc, ncum, nd, ntra, iflag1, nk1, icb1, icbs1, plcl1, tnk1, qnk1, gznk1, pbase1, buoybase1, t1, q1, qs1, u1, v1, gz1, th1, tra1, h1, lv1, cpn1, p1, ph1, tv1, tp1, tvp1, clw1, sig1, w01, iflag, nk, icb, icbs, plcl, tnk, qnk, gznk, pbase, buoybase, t, q, qs, u, v, gz, th, tra, h, lv, cpn, p, ph, tv, tp, tvp, clw, sig, w0)
 
!$Id!Thermodynamical constants for t0 real clmci real epsim1 real hrd real grav COMMON cvthermo cpd
 
!$Id!Thermodynamical constants for rrv
 
subroutine abort_physic(modname, message, ierr)
 
!$Id!Thermodynamical constants for lv0
 
!$Id sig2feed!common comconema2 iflag_cvl_sigd common comconema1 epmax
 
subroutine cv30_trigger(len, nd, icb, plcl, p, th, tv, tvp, pbase, buoybase, iflag, sig, w0)
 
!$Id!Thermodynamical constants for rowl
 
!$Id!Parameters for nlm real sigd
 
subroutine cv30_yield(nloc, ncum, nd, na, ntra, icb, inb, delt, t, rr, u, v, tra, gz, p, ph, h, hp, lv, cpn, th, ep, clw, m, tp, mp, rp, up, vp, trap, wt, water, evap, b, ment, qent, uent, vent, nent, elij, traent, sig, tv, tvp, iflag, precip, vprecip, ft, fr, fu, fv, ftra, upwd, dnwd, dnwd0, ma, mike, tls, tps, qcondc, wd)
 
subroutine cv30_tracer(nloc, len, ncum, nd, na, ment, sij, da, phi, phi2, d1a, dam, ep, vprecip, elij, clw, epmlmmm, eplamm, icb, inb)
 
!$Header!gestion des impressions de sorties et de débogage la sortie standard prt_level COMMON comprint lunout