1 SUBROUTINE cv3_vertmix(len,nd,iflag,plim1,plim2,p,ph,t,q,u,v
2 : ,w,wi,nk,tmix,thmix,qmix,qsmix
27 integer nk(len),iflag(len)
28 real t(len,nd),
q(len,nd),w(nd)
29 real u(len,nd),
v(len,nd)
30 real p(len,nd),ph(len,nd+1)
31 real plim1(len),plim2(len)
33 real tmix(len),thmix(len),qmix(len),wi(len,nd)
34 real umix(len),vmix(len)
38 integer j1(len),j2(len),niflag7
40 real ahm(len),dpw(len),coef(len)
41 real p1(len,nd),p2(len,nd)
42 real rdcp(len),a2(len),b2(len),pnk(len)
45 real x,y,p0,p0m1,zdelta,zcor
51 if (plim1(
i).le.ph(
i,
j)) j1(
i) =
j
52 if (plim2(
i).ge.ph(
i,
j+1).and.plim2(
i).lt.ph(
i,
j)) j2(
i) =
j
76 coef(
i) = 1./(plim1(
i)-plim2(
i))
81 if (
j.ge.j1(
i).and.
j.le.j2(
i))
then
82 p1(
i,
j) = min(ph(
i,
j),plim1(
i))
83 p2(
i,
j) = max(ph(
i,
j+1),plim2(
i))
87 wi(
i,
j) = w(
j)*(p1(
i,
j)-p2(
i,
j))*coef(
i)
88 dpw(
i) = dpw(
i)+wi(
i,
j)
98 if (
j.ge.j1(
i).and.
j.le.j2(
i))
then
99 wi(
i,
j)=wi(
i,
j)/dpw(
i)
117 if (
j.ge.j1(
i).and.
j.le.j2(
i))
then
119 y=(.5*(p1(
i,
j)+p2(
i,
j))/pnk(
i))**rdcp(
i)
127 tmix(
i) = ahm(
i)/b2(
i)
128 thmix(
i) =tmix(
i)*(p0/pnk(
i))**rdcp(
i)
135 zdelta=max(0.,sign(1.,rtt-tmix(
i)))
136 qsmix(
i)= r2es*foeew(tmix(
i),zdelta)/(pnk(
i)*100.)
137 qsmix(
i)=min(0.5,qsmix(
i))
138 zcor=1./(1.-retv*qsmix(
i))
139 qsmix(
i)=qsmix(
i)*zcor
154 if (iflag(
i).ne.7)
then
156 rh(
i)=qmix(
i)/qsmix(
i)
157 chi(
i)=tmix(
i)/(a-b*rh(
i)-tmix(
i))
160 chi(
i)=max(chi(
i),0.)
162 plcl(
i)=pnk(
i)*(rh(
i)**chi(
i))
163 if(((plcl(
i).lt.200.0).or.(plcl(
i).ge.2000.0))
164 & .and.(iflag(
i).eq.0))iflag(
i)=8