4 SUBROUTINE advy(limit,dty,pbarv,sm,s0,sx,sy,sz)
28 #include "dimensions.h"
45 REAL pbarv ( iip1,jjm, llm )
51 REAL sm(iip1,
jjp1,llm)
52 + ,s0(iip1,
jjp1,llm,ntra)
53 REAL sx(iip1,
jjp1,llm,ntra)
54 + ,sy(iip1,
jjp1,llm,ntra)
55 + ,sz(iip1,
jjp1,llm,ntra)
65 REAL vgri(iip1,0:
jjp1,llm)
88 REAL sbms,sfms,sfzs,sbmn,sfmn,sfzn
89 REAL sns0(ntra),snsz(ntra),snsm
90 REAL s1v(llm),slatv(llm)
91 REAL qy1(
iim,llm,ntra),qylat(
iim,llm,ntra)
92 REAL cx1(llm,ntra), cxlat(llm,ntra)
93 REAL cy1(llm,ntra), cylat(llm,ntra)
95 real smpn,smps,s0pn,s0ps
116 vgri(
i,
j,llm+1-
l)=-1.*pbarv(
i,
j,
l)
130 IF(.NOT.limit) go to 11
135 sy(
i,
k,
l,jv)=sign(amin1(amax1(s0(
i,
k,
l,jv),0.),
136 + abs(sy(
i,
k,
l,jv))),sy(
i,
k,
l,jv))
151 IF(vgri(
i,0,
l).LE.0.)
THEN
152 fm(
i,0)=-vgri(
i,0,
l)*dty
153 alf(
i,0)=fm(
i,0)/sm(
i,1,
l)
154 sm(
i,1,
l)=sm(
i,1,
l)-fm(
i,0)
158 alfq(
i,0)=alf(
i,0)*alf(
i,0)
159 alf1(
i,0)=1.-alf(
i,0)
160 alf1q(
i,0)=alf1(
i,0)*alf1(
i,0)
167 IF(vgri(
i,0,
l).LE.0.)
THEN
170 + ( s0(
i,1,
l,jv)-alf1(
i,0)*sy(
i,1,
l,jv) )
172 s00(jv)=s00(jv)+f0(
i,0,jv)
173 s0(
i,1,
l,jv)=s0(
i,1,
l,jv)-f0(
i,0,jv)
174 sy(
i,1,
l,jv)=alf1q(
i,0)*sy(
i,1,
l,jv)
175 sx(
i,1,
l,jv)=alf1(
i,0)*sx(
i,1,
l,jv)
176 sz(
i,1,
l,jv)=alf1(
i,0)*sz(
i,1,
l,jv)
184 IF(vgri(
i,0,
l).GT.0.)
THEN
185 fm(
i,0)=vgri(
i,0,
l)*dty
192 IF(vgri(
i,0,
l).GT.0.)
THEN
193 f0(
i,0,jv)=alf(
i,0)*s00(jv)
202 IF(vgri(
i,0,
l).GT.0.)
THEN
203 sm(
i,1,
l)=sm(
i,1,
l)+fm(
i,0)
204 alf(
i,0)=fm(
i,0)/sm(
i,1,
l)
207 alf1(
i,0)=1.-alf(
i,0)
214 IF(vgri(
i,0,
l).GT.0.)
THEN
216 temptm=alf(
i,0)*s0(
i,1,
l,jv)-alf1(
i,0)*f0(
i,0,jv)
217 s0(
i,1,
l,jv)=s0(
i,1,
l,jv)+f0(
i,0,jv)
218 sy(
i,1,
l,jv)=alf1(
i,0)*sy(
i,1,
l,jv)+3.*temptm
235 IF(vgri(
i,
k,
l).LT.0.)
THEN
236 fm(
i,
k)=-vgri(
i,
k,
l)*dty
237 alf(
i,
k)=fm(
i,
k)/sm(
i,kp,
l)
238 sm(
i,kp,
l)=sm(
i,kp,
l)-fm(
i,
k)
240 fm(
i,
k)=vgri(
i,
k,
l)*dty
245 alfq(
i,
k)=alf(
i,
k)*alf(
i,
k)
246 alf1(
i,
k)=1.-alf(
i,
k)
247 alf1q(
i,
k)=alf1(
i,
k)*alf1(
i,
k)
257 IF(vgri(
i,
k,
l).LT.0.)
THEN
260 + ( s0(
i,kp,
l,jv)-alf1(
i,
k)*sy(
i,kp,
l,jv) )
263 fz(
i,
k,jv)=alf(
i,
k)*sz(
i,kp,
l,jv)
265 s0(
i,kp,
l,jv)=s0(
i,kp,
l,jv)-f0(
i,
k,jv)
266 sy(
i,kp,
l,jv)=alf1q(
i,
k)*sy(
i,kp,
l,jv)
267 sx(
i,kp,
l,jv)=sx(
i,kp,
l,jv)-
fx(
i,
k,jv)
268 sz(
i,kp,
l,jv)=sz(
i,kp,
l,jv)-fz(
i,
k,jv)
273 + ( s0(
i,
k,
l,jv)+alf1(
i,
k)*sy(
i,
k,
l,jv) )
276 fz(
i,
k,jv)=alf(
i,
k)*sz(
i,
k,
l,jv)
278 s0(
i,
k,
l,jv)=s0(
i,
k,
l,jv)-f0(
i,
k,jv)
279 sy(
i,
k,
l,jv)=alf1q(
i,
k)*sy(
i,
k,
l,jv)
281 sz(
i,
k,
l,jv)=sz(
i,
k,
l,jv)-fz(
i,
k,jv)
294 IF(vgri(
i,
k,
l).LT.0.)
THEN
298 sm(
i,kp,
l)=sm(
i,kp,
l)+fm(
i,
k)
299 alf(
i,
k)=fm(
i,
k)/sm(
i,kp,
l)
302 alf1(
i,
k)=1.-alf(
i,
k)
312 IF(vgri(
i,
k,
l).LT.0.)
THEN
314 temptm=-alf(
i,
k)*s0(
i,
k,
l,jv)+alf1(
i,
k)*f0(
i,
k,jv)
315 s0(
i,
k,
l,jv)=s0(
i,
k,
l,jv)+f0(
i,
k,jv)
316 sy(
i,
k,
l,jv)=alf(
i,
k)*
fy(
i,
k,jv)+alf1(
i,
k)*sy(
i,
k,
l,jv)
319 sz(
i,
k,
l,jv)=sz(
i,
k,
l,jv)+fz(
i,
k,jv)
323 temptm=alf(
i,
k)*s0(
i,kp,
l,jv)-alf1(
i,
k)*f0(
i,
k,jv)
324 s0(
i,kp,
l,jv)=s0(
i,kp,
l,jv)+f0(
i,
k,jv)
325 sy(
i,kp,
l,jv)=alf(
i,
k)*
fy(
i,
k,jv)+alf1(
i,
k)*sy(
i,kp,
l,jv)
327 sx(
i,kp,
l,jv)=sx(
i,kp,
l,jv)+
fx(
i,
k,jv)
328 sz(
i,kp,
l,jv)=sz(
i,kp,
l,jv)+fz(
i,
k,jv)
346 IF(vgri(
i,
k,
l).GE.0.)
THEN
347 fm(
i,
k)=vgri(
i,
k,
l)*dty
353 alfq(
i,
k)=alf(
i,
k)*alf(
i,
k)
354 alf1(
i,
k)=1.-alf(
i,
k)
355 alf1q(
i,
k)=alf1(
i,
k)*alf1(
i,
k)
362 IF(vgri(
i,
k,
l).GE.0.)
THEN
364 + ( s0(
i,
k,
l,jv)+alf1(
i,
k)*sy(
i,
k,
l,jv) )
365 s00(jv)=s00(jv)+f0(
i,
k,jv)
367 s0(
i,
k,
l,jv)=s0(
i,
k,
l,jv)-f0(
i,
k,jv)
368 sy(
i,
k,
l,jv)=alf1q(
i,
k)*sy(
i,
k,
l,jv)
377 IF(vgri(
i,
k,
l).LT.0.)
THEN
378 fm(
i,
k)=-vgri(
i,
k,
l)*dty
385 IF(vgri(
i,
k,
l).LT.0.)
THEN
386 f0(
i,
k,jv)=alf(
i,
k)*s00(jv)
395 IF(vgri(
i,
k,
l).LT.0.)
THEN
400 alf1(
i,
k)=1.-alf(
i,
k)
407 IF(vgri(
i,
k,
l).LT.0.)
THEN
409 temptm=-alf(
i,
k)*s0(
i,
k,
l,jv)+alf1(
i,
k)*f0(
i,
k,jv)
410 s0(
i,
k,
l,jv)=s0(
i,
k,
l,jv)+f0(
i,
k,jv)
411 sy(
i,
k,
l,jv)=alf1(
i,
k)*sy(
i,
k,
l,jv)+3.*temptm