127 & LBi, UBi, LBj, UBj, &
128 & IminS, ImaxS, JminS, JmaxS, &
129 & nrhs, nstp, nnew, &
131 & rmask, umask, vmask, &
132# if defined SOLAR_SOURCE && defined WET_DRY
139 & btflx, bustr, bvstr, &
140 & stflx, sustr, svstr, &
153# ifdef DIAGNOSTICS_TS
156# ifdef DIAGNOSTICS_UV
157 & DiaU3wrk, DiaV3wrk, &
175 integer,
intent(in) :: ng, tile
176 integer,
intent(in) :: LBi, UBi, LBj, UBj
177 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
178 integer,
intent(in) :: nrhs, nstp, nnew
182 real(r8),
intent(in) :: rmask(LBi:,LBj:)
183 real(r8),
intent(in) :: umask(LBi:,LBj:)
184 real(r8),
intent(in) :: vmask(LBi:,LBj:)
185# if defined SOLAR_SOURCE && defined WET_DRY
186 real(r8),
intent(in) :: rmask_wet(LBi:,LBj:)
189 real(r8),
intent(in) :: pm(LBi:,LBj:)
190 real(r8),
intent(in) :: pn(LBi:,LBj:)
191 real(r8),
intent(in) :: Hz(LBi:,LBj:,:)
192 real(r8),
intent(in) :: Huon(LBi:,LBj:,:)
193 real(r8),
intent(in) :: Hvom(LBi:,LBj:,:)
194 real(r8),
intent(in) :: z_r(LBi:,LBj:,:)
195 real(r8),
intent(in) :: z_w(LBi:,LBj:,0:)
196 real(r8),
intent(in) :: btflx(LBi:,LBj:,:)
197 real(r8),
intent(in) :: bustr(LBi:,LBj:)
198 real(r8),
intent(in) :: bvstr(LBi:,LBj:)
199 real(r8),
intent(in) :: stflx(LBi:,LBj:,:)
200 real(r8),
intent(in) :: sustr(LBi:,LBj:)
201 real(r8),
intent(in) :: svstr(LBi:,LBj:)
203 real(r8),
intent(in) :: srflx(LBi:,LBj:)
206 real(r8),
intent(in) :: Akt(LBi:UBi,LBj:UBj,0:N(ng),NAT)
208 real(r8),
intent(in) :: Akt(LBi:,LBj:,0:,:)
210 real(r8),
intent(in) :: Akv(LBi:,LBj:,0:)
212 real(r8),
intent(in) :: ghats(LBi:,LBj:,0:,:)
214 real(r8),
intent(in) :: W(LBi:,LBj:,0:)
216 real(r8),
intent(in) :: W_stokes(LBi:,LBj:,0:)
218 real(r8),
intent(in) :: ru(LBi:,LBj:,0:,:)
219 real(r8),
intent(in) :: rv(LBi:,LBj:,0:,:)
220# ifdef DIAGNOSTICS_TS
221 real(r8),
intent(inout) :: DiaTwrk(LBi:,LBj:,:,:,:)
223# ifdef DIAGNOSTICS_UV
224 real(r8),
intent(inout) :: DiaU3wrk(LBi:,LBj:,:,:)
225 real(r8),
intent(inout) :: DiaV3wrk(LBi:,LBj:,:,:)
226 real(r8),
intent(inout) :: DiaRU(LBi:,LBj:,:,:,:)
227 real(r8),
intent(inout) :: DiaRV(LBi:,LBj:,:,:,:)
230 real(r8),
intent(inout) :: t(LBi:UBi,LBj:UBj,N(ng),3,NT(ng))
232 real(r8),
intent(inout) :: t(LBi:,LBj:,:,:,:)
234 real(r8),
intent(inout) :: u(LBi:,LBj:,:,:)
235 real(r8),
intent(inout) :: v(LBi:,LBj:,:,:)
240 real(r8),
intent(in) :: rmask(LBi:UBi,LBj:UBj)
241 real(r8),
intent(in) :: umask(LBi:UBi,LBj:UBj)
242 real(r8),
intent(in) :: vmask(LBi:UBi,LBj:UBj)
243# if defined SOLAR_SOURCE && defined WET_DRY
244 real(r8),
intent(in) :: rmask_wet(LBi:UBi,LBj:UBj)
247 real(r8),
intent(in) :: pm(LBi:UBi,LBj:UBj)
248 real(r8),
intent(in) :: pn(LBi:UBi,LBj:UBj)
249 real(r8),
intent(in) :: Hz(LBi:UBi,LBj:UBj,N(ng))
250 real(r8),
intent(in) :: Huon(LBi:UBi,LBj:UBj,N(ng))
251 real(r8),
intent(in) :: Hvom(LBi:UBi,LBj:UBj,N(ng))
252 real(r8),
intent(in) :: z_r(LBi:UBi,LBj:UBj,N(ng))
253 real(r8),
intent(in) :: z_w(LBi:UBi,LBj:UBj,0:N(ng))
254 real(r8),
intent(in) :: btflx(LBi:UBi,LBj:UBj,NT(ng))
255 real(r8),
intent(in) :: bustr(LBi:UBi,LBj:UBj)
256 real(r8),
intent(in) :: bvstr(LBi:UBi,LBj:UBj)
257 real(r8),
intent(in) :: stflx(LBi:UBi,LBj:UBj,NT(ng))
258 real(r8),
intent(in) :: sustr(LBi:UBi,LBj:UBj)
259 real(r8),
intent(in) :: svstr(LBi:UBi,LBj:UBj)
261 real(r8),
intent(in) :: srflx(LBi:UBi,LBj:UBj)
263 real(r8),
intent(in) :: Akt(LBi:UBi,LBj:UBj,0:N(ng),NAT)
264 real(r8),
intent(in) :: Akv(LBi:UBi,LBj:UBj,0:N(ng))
266 real(r8),
intent(in) :: ghats(LBi:UBi,LBj:UBj,0:N(ng),NAT)
268 real(r8),
intent(in) :: W(LBi:UBi,LBj:UBj,0:N(ng))
270 real(r8),
intent(in) :: W_stokes(LBi:UBi,LBj:UBj,0:N(ng))
272 real(r8),
intent(in) :: ru(LBi:UBi,LBj:UBj,0:N(ng),2)
273 real(r8),
intent(in) :: rv(LBi:UBi,LBj:UBj,0:N(ng),2)
274# ifdef DIAGNOSTICS_TS
275 real(r8),
intent(inout) :: DiaTwrk(LBi:UBi,LBj:UBj,N(ng),NT(ng), &
278# ifdef DIAGNOSTICS_UV
279 real(r8),
intent(inout) :: DiaU3wrk(LBi:UBi,LBj:UBj,N(ng),NDM3d)
280 real(r8),
intent(inout) :: DiaV3wrk(LBi:UBi,LBj:UBj,N(ng),NDM3d)
281 real(r8),
intent(inout) :: DiaRU(LBi:UBi,LBj:UBj,N(ng),2,NDrhs)
282 real(r8),
intent(inout) :: DiaRV(LBi:UBi,LBj:UBj,N(ng),2,NDrhs)
284 real(r8),
intent(inout) :: t(LBi:UBi,LBj:UBj,N(ng),3,NT(ng))
285 real(r8),
intent(inout) :: u(LBi:UBi,LBj:UBj,N(ng),2)
286 real(r8),
intent(inout) :: v(LBi:UBi,LBj:UBj,N(ng),2)
291 integer :: Isrc, Jsrc
292 integer :: i, ic, indx, is, itrc, j, k, ltrc
293# if defined AGE_MEAN && defined T_PASSIVE
296# if defined DIAGNOSTICS_TS || defined DIAGNOSTICS_UV
299 real(r8),
parameter :: eps = 1.0e-16_r8
301 real(r8) :: cff, cff1, cff2, cff3, cff4
304 real(r8),
dimension(IminS:ImaxS,0:N(ng)) :: CF
305 real(r8),
dimension(IminS:ImaxS,0:N(ng)) :: DC
306 real(r8),
dimension(IminS:ImaxS,0:N(ng)) :: FC
309 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS,0:N(ng)) :: swdk
311 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: FE
312 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: FX
313 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: curv
314 real(r8),
dimension(IminS:ImaxS,JminS:JmaxS) :: grad
316# include "set_bounds.h"
332 fx(i,j)=z_w(i,j,n(ng))-z_w(i,j,k)
336 & lbi, ubi, lbj, ubj, &
337 & imins, imaxs, jmins, jmaxs, &
354 t_loop1 :
DO itrc=1,nt(ng)
357 hadv_flux :
IF (
hadvection(itrc,ng)%CENTERED2)
THEN
363 fx(i,j)=huon(i,j,k)* &
364 & 0.5_r8*(t(i-1,j,k,nstp,itrc)+ &
365 & t(i ,j,k,nstp,itrc))
370 fe(i,j)=hvom(i,j,k)* &
371 & 0.5_r8*(t(i,j-1,k,nstp,itrc)+ &
372 & t(i,j ,k,nstp,itrc))
383 cff1=max(huon(i,j,k),0.0_r8)
384 cff2=min(huon(i,j,k),0.0_r8)
385 fx(i,j)=cff1*t(i-1,j,k,nstp,itrc)+ &
386 & cff2*t(i ,j,k,nstp,itrc)
391 cff1=max(hvom(i,j,k),0.0_r8)
392 cff2=min(hvom(i,j,k),0.0_r8)
393 fe(i,j)=cff1*t(i,j-1,k,nstp,itrc)+ &
394 & cff2*t(i,j ,k,nstp,itrc)
408 fx(i,j)=t(i ,j,k,nstp,itrc)- &
409 & t(i-1,j,k,nstp,itrc)
411 fx(i,j)=fx(i,j)*umask(i,j)
416 IF (
domain(ng)%Western_Edge(tile))
THEN
418 fx(istr-1,j)=fx(istr,j)
423 IF (
domain(ng)%Eastern_Edge(tile))
THEN
425 fx(iend+2,j)=fx(iend+1,j)
433 curv(i,j)=fx(i+1,j)-fx(i,j)
435 cff=2.0_r8*fx(i+1,j)*fx(i,j)
437 grad(i,j)=cff/(fx(i+1,j)+fx(i,j))
441 ELSE IF ((
hadvection(itrc,ng)%CENTERED4).or. &
443 grad(i,j)=0.5_r8*(fx(i+1,j)+fx(i,j))
453 fx(i,j)=huon(i,j,k)*0.5_r8* &
454 & (t(i-1,j,k,nstp,itrc)+ &
455 & t(i ,j,k,nstp,itrc))- &
456 & cff1*(curv(i-1,j)*max(huon(i,j,k),0.0_r8)+ &
457 & curv(i ,j)*min(huon(i,j,k),0.0_r8))
462 fx(i,j)=huon(i,j,k)*0.5_r8* &
463 & (t(i-1,j,k,nstp,itrc)+ &
464 & t(i ,j,k,nstp,itrc)- &
465 & cff2*(grad(i ,j)- &
473 fe(i,j)=t(i,j ,k,nstp,itrc)- &
474 & t(i,j-1,k,nstp,itrc)
476 fe(i,j)=fe(i,j)*vmask(i,j)
481 IF (
domain(ng)%Southern_Edge(tile))
THEN
483 fe(i,jstr-1)=fe(i,jstr)
488 IF (
domain(ng)%Northern_Edge(tile))
THEN
490 fe(i,jend+2)=fe(i,jend+1)
498 curv(i,j)=fe(i,j+1)-fe(i,j)
500 cff=2.0_r8*fe(i,j+1)*fe(i,j)
502 grad(i,j)=cff/(fe(i,j+1)+fe(i,j))
506 ELSE IF ((
hadvection(itrc,ng)%CENTERED4).or. &
508 grad(i,j)=0.5_r8*(fe(i,j+1)+fe(i,j))
518 fe(i,j)=hvom(i,j,k)*0.5_r8* &
519 & (t(i,j-1,k,nstp,itrc)+ &
520 & t(i,j ,k,nstp,itrc))- &
521 & cff1*(curv(i,j-1)*max(hvom(i,j,k),0.0_r8)+ &
522 & curv(i,j )*min(hvom(i,j,k),0.0_r8))
526 fe(i,j)=hvom(i,j,k)*0.5_r8* &
527 & (t(i,j-1,k,nstp,itrc)+ &
528 & t(i,j ,k,nstp,itrc)- &
529 & cff2*(grad(i,j )- &
546 IF (((istr.le.isrc).and.(isrc.le.iend+1)).and. &
547 & ((jstr.le.jsrc).and.(jsrc.le.jend+1)))
THEN
548 IF (int(
sources(ng)%Dsrc(is)).eq.0)
THEN
550 fx(isrc,jsrc)=huon(isrc,jsrc,k)* &
555 ELSE IF (int(
sources(ng)%Dsrc(is)).eq.1)
THEN
557 fe(isrc,jsrc)=hvom(isrc,jsrc,k)* &
580 cff=(1.0_r8-gamma)*
dt(ng)
586 t(i,j,k,3,itrc)=hz(i,j,k)*(cff1*t(i,j,k,nstp,itrc)+ &
587 & cff2*t(i,j,k,nnew,itrc))- &
588 & cff*pm(i,j)*pn(i,j)* &
589 & (fx(i+1,j)-fx(i,j)+ &
596# if defined AGE_MEAN && defined T_PASSIVE
610 cff=(1.0_r8-gamma)*
dt(ng)
616 t(i,j,k,3,iage)=t(i,j,k,3,iage)+ &
618 & t(i,j,k,nnew,
inert(itrc))
631 j_loop1 :
DO j=jstr,jend
632 t_loop2 :
DO itrc=1,nt(ng)
634 vadv_flux :
IF (
vadvection(itrc,ng)%SPLINES)
THEN
642 fc(i,0)=1.5_r8*t(i,j,1,nstp,itrc)
645 fc(i,0)=2.0_r8*t(i,j,1,nstp,itrc)
651 cff=1.0_r8/(2.0_r8*hz(i,j,k)+ &
652 & hz(i,j,k+1)*(2.0_r8-cf(i,k)))
653 cf(i,k+1)=cff*hz(i,j,k)
654 fc(i,k)=cff*(3.0_r8*(hz(i,j,k )*t(i,j,k+1,nstp,itrc)+ &
655 & hz(i,j,k+1)*t(i,j,k ,nstp,itrc))- &
656 & hz(i,j,k+1)*fc(i,k-1))
661 fc(i,n(ng))=(3.0_r8*t(i,j,n(ng),nstp,itrc)- &
662 & fc(i,n(ng)-1))/(2.0_r8-cf(i,n(ng)))
664 fc(i,n(ng))=(2.0_r8*t(i,j,n(ng),nstp,itrc)- &
665 & fc(i,n(ng)-1))/(1.0_r8-cf(i,n(ng)))
670 fc(i,k)=fc(i,k)-cf(i,k+1)*fc(i,k+1)
672 fc(i,k+1)=(w(i,j,k+1)+w_stokes(i,j,k+1))*fc(i,k+1)
674 fc(i,k+1)=w(i,j,k+1)*fc(i,k+1)
689 fc(i,k)=t(i,j,k+1,nstp,itrc)- &
690 & t(i,j,k ,nstp,itrc)
695 fc(i,n(ng))=fc(i,n(ng)-1)
699 cff=2.0_r8*fc(i,k)*fc(i,k-1)
701 cf(i,k)=cff/(fc(i,k)+fc(i,k-1))
711 fc(i,k)=(w(i,j,k)+w_stokes(i,j,k))* &
715 & 0.5_r8*(t(i,j,k ,nstp,itrc)+ &
716 & t(i,j,k+1,nstp,itrc)- &
717 & cff1*(cf(i,k+1)-cf(i,k)))
732 fc(i,k)=(w(i,j,k)+w_stokes(i,j,k))* &
736 & 0.5_r8*(t(i,j,k ,nstp,itrc)+ &
737 & t(i,j,k+1,nstp,itrc))
753 cff1=max(w(i,j,k)+w_stokes(i,j,k),0.0_r8)
754 cff2=min(w(i,j,k)+w_stokes(i,j,k),0.0_r8)
756 cff1=max(w(i,j,k),0.0_r8)
757 cff2=min(w(i,j,k),0.0_r8)
759 fc(i,k)=cff1*t(i,j,k ,nstp,itrc)+ &
760 & cff2*t(i,j,k+1,nstp,itrc)
768 ELSE IF ((
vadvection(itrc,ng)%CENTERED4).or. &
779 fc(i,k)=(w(i,j,k)+w_stokes(i,j,k))* &
783 & (cff2*(t(i,j,k ,nstp,itrc)+ &
784 & t(i,j,k+1,nstp,itrc))- &
785 & cff3*(t(i,j,k-1,nstp,itrc)+ &
786 & t(i,j,k+2,nstp,itrc)))
792 fc(i,1)=(w(i,j,1)+w_stokes(i,j,1))* &
796 & (cff1*t(i,j,1,nstp,itrc)+ &
797 & cff2*t(i,j,2,nstp,itrc)- &
798 & cff3*t(i,j,3,nstp,itrc))
800 fc(i,n(ng)-1)=(w(i,j,n(ng)-1)+w_stokes(i,j,n(ng)-1))* &
802 fc(i,n(ng)-1)=w(i,j,n(ng)-1)* &
804 & (cff1*t(i,j,n(ng) ,nstp,itrc)+ &
805 & cff2*t(i,j,n(ng)-1,nstp,itrc)- &
806 & cff3*t(i,j,n(ng)-2,nstp,itrc))
825 cff=(1.0_r8-gamma)*
dt(ng)
829 dc(i,k)=1.0_r8/(hz(i,j,k)- &
830 & cff*pm(i,j)*pn(i,j)* &
831 & (huon(i+1,j,k)-huon(i,j,k)+ &
832 & hvom(i,j+1,k)-hvom(i,j,k)+ &
834 & (w_stokes(i,j,k)-w_stokes(i,j,k-1))+ &
836 & (w(i,j,k)-w(i,j,k-1))))
845 cff1=cff*pm(i,j)*pn(i,j)
846 t(i,j,k,3,itrc)=dc(i,k)* &
847 & (t(i,j,k,3,itrc)- &
848 & cff1*(fc(i,k)-fc(i,k-1)))
869 cff=1.0_r8/(z_r(i,j,k+1)-z_r(i,j,k))
870 fc(i,k)=cff3*cff*akt(i,j,k,ltrc)* &
871 & (t(i,j,k+1,nstp,itrc)- &
872 & t(i,j,k ,nstp,itrc))
883 IF (itrc.le.nat)
THEN
887 &
dt(ng)*akt(i,j,k,itrc)*ghats(i,j,k,itrc)
897 IF (itrc.eq.
itemp)
THEN
901 &
dt(ng)*srflx(i,j)* &
914 fc(i,0)=
dt(ng)*btflx(i,j,itrc)
915 fc(i,n(ng))=
dt(ng)*stflx(i,j,itrc)
922 cff1=hz(i,j,k)*t(i,j,k,nstp,itrc)
923 cff2=fc(i,k)-fc(i,k-1)
924 t(i,j,k,nnew,itrc)=cff1+cff2
925# ifdef DIAGNOSTICS_TS
926 diatwrk(i,j,k,itrc,
itrate)=cff1
927 diatwrk(i,j,k,itrc,
itvdif)=cff2
933# endif /* !TS_FIXED */
943 j_loop2:
DO j=jstr,jend
947 cff=1.0_r8/(z_r(i,j,k+1)+z_r(i-1,j,k+1)- &
948 & z_r(i,j,k )-z_r(i-1,j,k ))
949 fc(i,k)=cff3*cff*(u(i,j,k+1,nstp)-u(i,j,k,nstp))* &
950 & (akv(i,j,k)+akv(i-1,j,k))
961 fc(i,0)=
dt(ng)*bustr(i,j)
962 fc(i,n(ng))=
dt(ng)*sustr(i,j)
970 dc(i,0)=cff*(pm(i,j)+pm(i-1,j))*(pn(i,j)+pn(i-1,j))
976 cff1=u(i,j,k,nstp)*0.5_r8*(hz(i,j,k)+hz(i-1,j,k))
977 cff2=fc(i,k)-fc(i,k-1)
978 u(i,j,k,nnew)=cff1+cff2
979# ifdef DIAGNOSTICS_UV
981 diau3wrk(i,j,k,idiag)=0.0_r8
983 diau3wrk(i,j,k,
m3vvis)=cff2
984 diau3wrk(i,j,k,
m3rate)=cff1
991 cff1=u(i,j,k,nstp)*0.5_r8*(hz(i,j,k)+hz(i-1,j,k))
992 cff2=fc(i,k)-fc(i,k-1)
994 u(i,j,k,nnew)=cff1- &
995 & cff3*ru(i,j,k,indx)+ &
997# ifdef DIAGNOSTICS_UV
999 diau3wrk(i,j,k,idiag)=-cff3*diaru(i,j,k,indx,idiag)
1001 diau3wrk(i,j,k,
m3vvis)=cff2
1004 & cff3*diaru(i,j,k,indx,
m3vvis)
1006 diau3wrk(i,j,k,
m3rate)=cff1
1011 cff1= 5.0_r8/12.0_r8
1012 cff2=16.0_r8/12.0_r8
1015 cff3=u(i,j,k,nstp)*0.5_r8*(hz(i,j,k)+hz(i-1,j,k))
1016 cff4=fc(i,k)-fc(i,k-1)
1017 u(i,j,k,nnew)=cff3+ &
1018 & dc(i,0)*(cff1*ru(i,j,k,nrhs)- &
1019 & cff2*ru(i,j,k,indx))+ &
1021# ifdef DIAGNOSTICS_UV
1023 diau3wrk(i,j,k,idiag)=dc(i,0)* &
1024 & (cff1*diaru(i,j,k,nrhs,idiag)- &
1025 & cff2*diaru(i,j,k,indx,idiag))
1027 diau3wrk(i,j,k,
m3vvis)=cff4
1031 & (cff1*diaru(i,j,k,nrhs,
m3vvis)- &
1032 & cff2*diaru(i,j,k,indx,
m3vvis))
1034 diau3wrk(i,j,k,
m3rate)=cff3
1048 IF (j.ge.jstrv)
THEN
1052 cff=1.0_r8/(z_r(i,j,k+1)+z_r(i,j-1,k+1)- &
1053 & z_r(i,j,k )-z_r(i,j-1,k ))
1054 fc(i,k)=cff3*cff*(v(i,j,k+1,nstp)-v(i,j,k,nstp))* &
1055 & (akv(i,j,k)+akv(i,j-1,k))
1066 fc(i,0)=
dt(ng)*bvstr(i,j)
1067 fc(i,n(ng))=
dt(ng)*svstr(i,j)
1075 dc(i,0)=cff*(pm(i,j)+pm(i,j-1))*(pn(i,j)+pn(i,j-1))
1080 cff1=v(i,j,k,nstp)*0.5_r8*(hz(i,j,k)+hz(i,j-1,k))
1081 cff2=fc(i,k)-fc(i,k-1)
1082 v(i,j,k,nnew)=cff1+cff2
1083# ifdef DIAGNOSTICS_UV
1085 diav3wrk(i,j,k,idiag)=0.0_r8
1087 diav3wrk(i,j,k,
m3vvis)=cff2
1088 diav3wrk(i,j,k,
m3rate)=cff1
1095 cff1=v(i,j,k,nstp)*0.5_r8*(hz(i,j,k)+hz(i,j-1,k))
1096 cff2=fc(i,k)-fc(i,k-1)
1098 v(i,j,k,nnew)=cff1- &
1099 & cff3*rv(i,j,k,indx)+ &
1101# ifdef DIAGNOSTICS_UV
1103 diav3wrk(i,j,k,idiag)=-cff3*diarv(i,j,k,indx,idiag)
1105 diav3wrk(i,j,k,
m3vvis)=cff2
1108 & cff3*diarv(i,j,k,indx,
m3vvis)
1110 diav3wrk(i,j,k,
m3rate)=cff1
1115 cff1= 5.0_r8/12.0_r8
1116 cff2=16.0_r8/12.0_r8
1119 cff3=v(i,j,k,nstp)*0.5_r8*(hz(i,j,k)+hz(i,j-1,k))
1120 cff4=fc(i,k)-fc(i,k-1)
1121 v(i,j,k,nnew)=cff3+ &
1122 & dc(i,0)*(cff1*rv(i,j,k,nrhs)- &
1123 & cff2*rv(i,j,k,indx))+ &
1125# ifdef DIAGNOSTICS_UV
1127 diav3wrk(i,j,k,idiag)=dc(i,0)* &
1128 & (cff1*diarv(i,j,k,nrhs,idiag)- &
1129 & cff2*diarv(i,j,k,indx,idiag))
1131 diav3wrk(i,j,k,
m3vvis)=cff4
1135 & (cff1*diarv(i,j,k,nrhs,
m3vvis)- &
1136 & cff2*diarv(i,j,k,indx,
m3vvis))
1138 diav3wrk(i,j,k,
m3rate)=cff3
1158 & lbi, ubi, lbj, ubj, n(ng), nt(ng), &
1159 & imins, imaxs, jmins, jmaxs, &
1165 & lbi, ubi, lbj, ubj, 1, n(ng), &
1172 & lbi, ubi, lbj, ubj, 1, n(ng), 1, nt(ng), &