92 & LBi, UBi, LBj, UBj, &
93 & IminS, ImaxS, JminS, JmaxS, &
94 & ad_zeta, ad_zeta_sol, &
99 & ad_ubar_sol, ad_vbar_sol, &
116 integer,
intent(in) :: ng, tile
117 integer,
intent(in) :: LBi, UBi, LBj, UBj
118 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
121 real(r8),
intent(in) :: ad_zeta(LBi:,LBj:,:)
122 real(r8),
intent(in) :: ad_zeta_sol(LBi:,LBj:)
123 real(r8),
intent(inout) :: f_zetaG(LBi:,LBj:,:)
125 real(r8),
intent(in) :: ad_u(LBi:,LBj:,:,:)
126 real(r8),
intent(in) :: ad_v(LBi:,LBj:,:,:)
127 real(r8),
intent(in) :: ad_t(LBi:,LBj:,:,:,:)
128 real(r8),
intent(inout) :: f_uG(LBi:,LBj:,:,:)
129 real(r8),
intent(inout) :: f_vG(LBi:,LBj:,:,:)
130 real(r8),
intent(inout) :: f_tG(LBi:,LBj:,:,:,:)
132 real(r8),
intent(in) :: ad_ubar(LBi:,LBj:,:)
133 real(r8),
intent(in) :: ad_vbar(LBi:,LBj:,:)
134 real(r8),
intent(in) :: ad_ubar_sol(LBi:,LBj:)
135 real(r8),
intent(inout) :: ad_vbar_sol(LBi:,LBj:)
136 real(r8),
intent(inout) :: f_ubarG(LBi:,LBj:,:)
137 real(r8),
intent(inout) :: f_vbarG(LBi:,LBj:,:)
140 real(r8),
intent(in) :: ad_zeta(LBi:UBi,LBj:UBj,:)
141 real(r8),
intent(in) :: ad_zeta_sol(LBi:UBi,LBj:UBj)
142 real(r8),
intent(inout) :: f_zetaG(LBi:UBi,LBj:UBj,2)
144 real(r8),
intent(in) :: ad_u(LBi:UBi,LBj:UBj,N(ng),2)
145 real(r8),
intent(in) :: ad_v(LBi:UBi,LBj:UBj,N(ng),2)
146 real(r8),
intent(in) :: ad_t(LBi:UBi,LBj:UBj,N(ng),2,NT(ng))
147 real(r8),
intent(inout) :: f_uG(LBi:UBi,LBj:UBj,N(ng),2)
148 real(r8),
intent(inout) :: f_vG(LBi:UBi,LBj:UBj,N(ng),2)
149 real(r8),
intent(inout) :: f_tG(LBi:UBi,LBj:UBj,N(ng),2,NT(ng))
151 real(r8),
intent(in) :: ad_ubar(LBi:UBi,LBj:UBj,:)
152 real(r8),
intent(in) :: ad_vbar(LBi:UBi,LBj:UBj,:)
153 real(r8),
intent(in) :: ad_ubar_sol(LBi:UBi,LBj:UBj)
154 real(r8),
intent(in) :: ad_vbar_sol(LBi:UBi,LBj:UBj)
155 real(r8),
intent(inout) :: f_ubarG(LBi:UBi,LBj:UBj,2)
156 real(r8),
intent(inout) :: f_vbarG(LBi:UBi,LBj:UBj,2)
162 integer :: i, it1, it2, j, k, kout
164 integer :: itrc, nout
166 real(r8) :: fac, fac1, fac2, time1, time2
168# include "set_bounds.h"
179# ifdef GENERIC_DSTART
182 it1=max(0,(
iic(ng)-1)/
nadj(ng))+1
187# ifdef GENERIC_DSTART
190 it1=max(0,(
iic(ng)-1)/
nadj(ng))+1
197 fac=1.0_r8/(fac1+fac2)
223 f_zetag(i,j,1)=0.0_r8
224 f_zetag(i,j,2)=0.0_r8
230 f_ubarg(i,j,1)=0.0_r8
231 f_ubarg(i,j,2)=0.0_r8
236 f_vbarg(i,j,1)=0.0_r8
237 f_vbarg(i,j,2)=0.0_r8
261 f_tg(i,j,k,1,itrc)=0.0_r8
262 f_tg(i,j,k,2,itrc)=0.0_r8
276 f_zetag(i,j,1)=ad_zeta(i,j,kout)
277 f_zetag(i,j,2)=ad_zeta(i,j,kout)
279 f_zetag(i,j,1)=f_zetag(i,j,1)+fac1*ad_zeta(i,j,kout)
280 f_zetag(i,j,2)=f_zetag(i,j,2)+fac2*ad_zeta(i,j,kout)
288 f_zetag(i,j,1)=ad_zeta_sol(i,j)
289 f_zetag(i,j,2)=ad_zeta_sol(i,j)
291 f_zetag(i,j,1)=f_zetag(i,j,1)+fac1*ad_zeta_sol(i,j)
292 f_zetag(i,j,2)=f_zetag(i,j,2)+fac2*ad_zeta_sol(i,j)
306 f_ubarg(i,j,1)=ad_ubar(i,j,kout)
307 f_ubarg(i,j,2)=ad_ubar(i,j,kout)
309 f_ubarg(i,j,1)=f_ubarg(i,j,1)+fac1*ad_ubar(i,j,kout)
310 f_ubarg(i,j,2)=f_ubarg(i,j,2)+fac2*ad_ubar(i,j,kout)
317 f_vbarg(i,j,1)=ad_vbar(i,j,kout)
318 f_vbarg(i,j,2)=ad_vbar(i,j,kout)
320 f_vbarg(i,j,1)=f_vbarg(i,j,1)+fac1*ad_vbar(i,j,kout)
321 f_vbarg(i,j,2)=f_vbarg(i,j,2)+fac2*ad_vbar(i,j,kout)
329 f_ubarg(i,j,1)=ad_ubar_sol(i,j)
330 f_ubarg(i,j,2)=ad_ubar_sol(i,j)
332 f_ubarg(i,j,1)=f_ubarg(i,j,1)+fac1*ad_ubar_sol(i,j)
333 f_ubarg(i,j,2)=f_ubarg(i,j,2)+fac2*ad_ubar_sol(i,j)
340 f_vbarg(i,j,1)=ad_vbar_sol(i,j)
341 f_vbarg(i,j,2)=ad_vbar_sol(i,j)
343 f_vbarg(i,j,1)=f_vbarg(i,j,1)+fac1*ad_vbar_sol(i,j)
344 f_vbarg(i,j,2)=f_vbarg(i,j,2)+fac2*ad_vbar_sol(i,j)
358 f_ug(i,j,k,1)=ad_u(i,j,k,nout)
359 f_ug(i,j,k,2)=ad_u(i,j,k,nout)
361 f_ug(i,j,k,1)=f_ug(i,j,k,1)+fac1*ad_u(i,j,k,nout)
362 f_ug(i,j,k,2)=f_ug(i,j,k,2)+fac2*ad_u(i,j,k,nout)
371 f_vg(i,j,k,1)=ad_v(i,j,k,nout)
372 f_vg(i,j,k,2)=ad_v(i,j,k,nout)
374 f_vg(i,j,k,1)=f_vg(i,j,k,1)+fac1*ad_v(i,j,k,nout)
375 f_vg(i,j,k,2)=f_vg(i,j,k,2)+fac2*ad_v(i,j,k,nout)
388 f_tg(i,j,k,1,itrc)=ad_t(i,j,k,nout,itrc)
389 f_tg(i,j,k,2,itrc)=ad_t(i,j,k,nout,itrc)
391 f_tg(i,j,k,1,itrc)=f_tg(i,j,k,1,itrc)+ &
392 & fac1*ad_t(i,j,k,nout,itrc)
393 f_tg(i,j,k,2,itrc)=f_tg(i,j,k,2,itrc)+ &
394 & fac2*ad_t(i,j,k,nout,itrc)
458 & LBi, UBi, LBj, UBj, &
459 & IminS, ImaxS, JminS, JmaxS, &
475 integer,
intent(in) :: ng, tile
476 integer,
intent(in) :: LBi, UBi, LBj, UBj
477 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
480 real(r8),
intent(inout) :: f_zetaG(LBi:,LBj:,:)
482 real(r8),
intent(inout) :: f_uG(LBi:,LBj:,:,:)
483 real(r8),
intent(inout) :: f_vG(LBi:,LBj:,:,:)
484 real(r8),
intent(inout) :: f_tG(LBi:,LBj:,:,:,:)
486 real(r8),
intent(inout) :: f_ubarG(LBi:,LBj:,:)
487 real(r8),
intent(inout) :: f_vbarG(LBi:,LBj:,:)
490 real(r8),
intent(inout) :: f_zetaG(LBi:UBi,LBj:UBj,2)
492 real(r8),
intent(inout) :: f_uG(LBi:UBi,LBj:UBj,N(ng),2)
493 real(r8),
intent(inout) :: f_vG(LBi:UBi,LBj:UBj,N(ng),2)
494 real(r8),
intent(inout) :: f_tG(LBi:UBi,LBj:UBj,N(ng),2,NT(ng))
496 real(r8),
intent(inout) :: f_ubarG(LBi:UBi,LBj:UBj,2)
497 real(r8),
intent(inout) :: f_vbarG(LBi:UBi,LBj:UBj,2)
503 integer :: i, it1, it2, j, k, kout, nout
507 real(r8) :: fac, fac1, fac2, time1, time2
509# include "set_bounds.h"
526 f_zetag(i,j,2)=f_zetag(i,j,1)
527 f_zetag(i,j,1)=0.0_r8
537 f_ubarg(i,j,2)=f_ubarg(i,j,1)
538 f_ubarg(i,j,1)=0.0_r8
543 f_vbarg(i,j,2)=f_vbarg(i,j,1)
544 f_vbarg(i,j,1)=0.0_r8
555 f_ug(i,j,k,2)=f_ug(i,j,k,1)
561 f_vg(i,j,k,2)=f_vg(i,j,k,1)
573 f_tg(i,j,k,2,itrc)=f_tg(i,j,k,1,itrc)
574 f_tg(i,j,k,1,itrc)=0.0_r8