119 & LBi, UBi, LBj, UBj, &
120 & IminS, ImaxS, JminS, JmaxS, &
130# if defined FORWARD_WRITE && defined SOLVE3D
140# if defined BBL_MODEL
143# if defined SEDIMENT && defined BEDLOAD
168 integer,
intent(in) :: ng, tile
169 integer,
intent(in) :: LBi, UBi, LBj, UBj
170 integer,
intent(in) :: IminS, ImaxS, JminS, JmaxS
171 integer,
intent(in) :: Kout
173 integer,
intent(in) :: Nout
179 integer :: i, it, j, k
183 real(r8) :: pfac(IminS:ImaxS,JminS:JmaxS)
184 real(r8) :: rfac(IminS:ImaxS,JminS:JmaxS)
185 real(r8) :: ufac(IminS:ImaxS,JminS:JmaxS)
186 real(r8) :: vfac(IminS:ImaxS,JminS:JmaxS)
189 real(r8) :: potvor(LBi:UBi,LBj:UBj,N(ng))
190 real(r8) :: relvor(LBi:UBi,LBj:UBj,N(ng))
192 real(r8) :: potvor_bar(LBi:UBi,LBj:UBj)
193 real(r8) :: relvor_bar(LBi:UBi,LBj:UBj)
195 real(r8),
allocatable :: wrk(:,:)
198# include "set_bounds.h"
204 IF (
navg(ng).eq.0)
RETURN
213 & lbi, ubi, lbj, ubj, &
214 & imins, imaxs, jmins, jmaxs, &
221 &
grid(ng) % pmask, &
222 &
grid(ng) % umask, &
223 &
grid(ng) % vmask, &
233 &
ocean(ng) % pden, &
237 &
ocean(ng) % ubar, &
238 &
ocean(ng) % vbar, &
239 &
ocean(ng) % zeta, &
243 & potvor_bar, relvor_bar)
253 & (mod(
iic(ng)-1,
navg(ng)).eq.1)).or. &
265 grid(ng)%pmask_avg(i,j)=max(0.0_r8, &
266 & min(
grid(ng)%pmask_full(i,j), &
272 grid(ng)%rmask_avg(i,j)=max(0.0_r8, &
273 & min(
grid(ng)%rmask_full(i,j), &
279 grid(ng)%umask_avg(i,j)=max(0.0_r8, &
280 & min(
grid(ng)%umask_full(i,j), &
286 grid(ng)%vmask_avg(i,j)=max(0.0_r8, &
287 & min(
grid(ng)%vmask_full(i,j), &
301 &
grid(ng)%rmask_full(i,j)
313 &
grid(ng)%umask_full(i,j)
324 &
grid(ng)%vmask_full(i,j)
332 & lbi, ubi, lbj, ubj, &
333 &
grid(ng) % CosAngler, &
334 &
grid(ng) % SinAngler, &
336 &
grid(ng)%rmask_full, &
338 &
ocean(ng) % ubar(:,:,kout), &
339 &
ocean(ng) % vbar(:,:,kout), &
352 &
grid(ng)%umask_full(i,j)
365 &
grid(ng)%vmask_full(i,j)
379 &
grid(ng)%vmask_full(i,j)
392 &
grid(ng)%vmask_full(i,j)
404 &
grid(ng)%pm(i,j)* &
408 &
grid(ng)%rmask_full(i,j)
421 &
grid(ng)%rmask_full(i,j)
435 &
grid(ng)%rmask_full(i,j)
449 &
grid(ng)%rmask_full(i,j)
457# if defined SEDIMENT && defined BEDLOAD
464 sedbed(ng)%avgbedldu(i,j,it)=
sedbed(ng)%bedldu(i,j,it)* &
465 &
grid(ng)%umask_full(i,j)
476 sedbed(ng)%avgbedldv(i,j,it)=
sedbed(ng)%bedldv(i,j,it)* &
477 &
grid(ng)%vmask_full(i,j)
485# if defined LMD_MIXING || defined MY25_MIXING || defined GLS_MIXING
493 &
grid(ng)%rmask_full(i,j)
506 &
grid(ng)%rmask_full(i,j)
520 &
grid(ng)%rmask_full(i,j)
535 &
grid(ng)%rmask_full(i,j)
548 &
grid(ng)%rmask_full(i,j)
556# if defined FORWARD_WRITE && defined SOLVE3D
566 &
grid(ng)%umask_full(i,j)
577 &
grid(ng)%umask_full(i,j)
589 &
grid(ng)%vmask_full(i,j)
600 &
grid(ng)%vmask_full(i,j)
615 &
grid(ng)%umask_full(i,j)
626 &
grid(ng)%vmask_full(i,j)
638 &
grid(ng)%umask_full(i,j)
649 &
grid(ng)%vmask_full(i,j)
661 &
grid(ng)%umask_full(i,j)
672 &
grid(ng)%umask_full(i,j)
683 &
grid(ng)%umask_full(i,j)
694 &
grid(ng)%umask_full(i,j)
702 average(ng)%avgUbcs(i,j)=
bbl(ng)%bustrcwmax(i,j)
705 &
grid(ng)%umask_full(i,j)
713 average(ng)%avgVbcs(i,j)=
bbl(ng)%bvstrcwmax(i,j)
716 &
grid(ng)%umask_full(i,j)
722 allocate (wrk(lbi:ubi,lbj:ubj))
723 wrk(lbi:ubi,lbj:ubj)=0.0_r8
724 wrk=sqrt(
bbl(ng)%bustrcwmax*
bbl(ng)%bustrcwmax+ &
725 &
bbl(ng)%bvstrcwmax*
bbl(ng)%bvstrcwmax+1.0e-10_r8)
728 average(ng)%avgUVwc(i,j)=wrk(i,j)
731 &
grid(ng)%umask_full(i,j)
743 &
grid(ng)%umask_full(i,j)
754 &
grid(ng)%umask_full(i,j)
765 &
grid(ng)%umask_full(i,j)
776 &
grid(ng)%umask_full(i,j)
783# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
790 &
grid(ng)%rmask_full(i,j)
796# if defined BULK_FLUXES
803 &
grid(ng)%rmask_full(i,j)
809# if defined BULK_FLUXES || defined ECOSIM
816 &
grid(ng)%rmask_full(i,j)
828 &
grid(ng)%rmask_full(i,j)
836 & lbi, ubi, lbj, ubj, &
837 &
grid(ng) % CosAngler, &
838 &
grid(ng) % SinAngler, &
840 &
grid(ng)%rmask_full, &
855 &
grid(ng)%rmask_full(i,j)
867 &
grid(ng)%rmask_full(i,j)
880 &
grid(ng)%rmask_full(i,j)
887# if defined BULK_FLUXES || defined FRC_COUPLING
894 &
grid(ng)%rmask_full(i,j)
906 &
grid(ng)%rmask_full(i,j)
918 &
grid(ng)%rmask_full(i,j)
925# if defined BULK_FLUXES && defined EMINUSP
932 &
grid(ng)%rmask_full(i,j)
944 &
grid(ng)%rmask_full(i,j)
961 &
grid(ng)%umask_full(i,j)
972 &
grid(ng)%vmask_full(i,j)
984 &
grid(ng)%umask_full(i,j)
995 &
grid(ng)%vmask_full(i,j)
1010 &
grid(ng)%umask_full(i,j)
1023 &
grid(ng)%vmask_full(i,j)
1036 &
grid(ng)%vmask_full(i,j)
1049 &
grid(ng)%vmask_full(i,j)
1062 &
grid(ng)%umask_full(i,j)
1075 &
grid(ng)%vmask_full(i,j)
1089 &
grid(ng)%rmask_full(i,j)
1100 &
grid(ng)%rmask_full(i,j)
1111 &
grid(ng)%rmask_full(i,j)
1125 &
grid(ng)%rmask_full(i,j)
1137 &
grid(ng)%rmask_full(i,j)
1150 &
grid(ng)%rmask_full(i,j)
1156# ifdef WAVES_LENGTHP
1163 &
grid(ng)%rmask_full(i,j)
1176 &
grid(ng)%rmask_full(i,j)
1189 &
grid(ng)%rmask_full(i,j)
1195# ifdef WAVES_TOP_PERIOD
1202 &
grid(ng)%rmask_full(i,j)
1208# ifdef WAVES_BOT_PERIOD
1215 &
grid(ng)%rmask_full(i,j)
1228 &
grid(ng)%rmask_full(i,j)
1234# if defined WAV_COUPLING || (defined WEC_VF && defined BOTTOM_STREAMING)
1241 &
grid(ng)%rmask_full(i,j)
1247# if defined WAV_COUPLING || defined TKE_WAVEDISS || \
1248 defined wdiss_thorguza || defined wdiss_churthor
1255 &
grid(ng)%rmask_full(i,j)
1266 &
grid(ng)%rmask_full(i,j)
1272# ifdef ROLLER_SVENDSEN
1279 &
grid(ng)%rmask_full(i,j)
1292 &
grid(ng)%rmask_full(i,j)
1303 &
grid(ng)%rmask_full(i,j)
1316 &
grid(ng)%rmask_full(i,j)
1327 &
grid(ng)%rmask_full(i,j)
1339 average(ng)%avgpvor2d(i,j)=potvor_bar(i,j)
1342 &
grid(ng)%pmask_full(i,j)
1350 average(ng)%avgrvor2d(i,j)=relvor_bar(i,j)
1353 &
grid(ng)%pmask_full(i,j)
1363 average(ng)%avgpvor3d(i,j,k)=potvor(i,j,k)
1367 &
grid(ng)%pmask_full(i,j)
1377 average(ng)%avgrvor3d(i,j,k)=relvor(i,j,k)
1381 &
grid(ng)%pmask_full(i,j)
1395 &
ocean(ng)%zeta(i,j,kout)
1398 &
grid(ng)%rmask_full(i,j)
1407 &
ocean(ng)%ubar(i,j,kout)
1410 &
grid(ng)%umask_full(i,j)
1419 &
ocean(ng)%vbar(i,j,kout)
1422 &
grid(ng)%vmask_full(i,j)
1434 &
ocean(ng)%u(i,j,k,nout)
1437 &
grid(ng)%umask_full(i,j)
1448 &
ocean(ng)%v(i,j,k,nout)
1451 &
grid(ng)%vmask_full(i,j)
1461 average(ng)%avgUV(i,j,k)=0.25_r8* &
1462 & (
ocean(ng)%u(i ,j ,k,nout)+ &
1463 &
ocean(ng)%u(i+1,j ,k,nout))* &
1464 & (
ocean(ng)%v(i ,j ,k,nout)+ &
1465 &
ocean(ng)%v(i ,j+1,k,nout))
1468 &
grid(ng)%rmask_full(i,j)
1482 &
grid(ng)%umask_full(i,j)
1495 &
grid(ng)%vmask_full(i,j)
1509 &
ocean(ng)%t(i,j,k, &
1514 &
grid(ng)%rmask_full(i,j)
1524 average(ng)%avgUT(i,j,k,it)=0.5_r8* &
1525 &
ocean(ng)%u(i,j,k,nout)* &
1526 & (
ocean(ng)%t(i-1,j,k, &
1528 &
ocean(ng)%t(i ,j,k, &
1533 &
grid(ng)%umask_full(i,j)
1543 average(ng)%avgVT(i,j,k,it)=0.5_r8* &
1544 &
ocean(ng)%v(i,j,k,nout)* &
1545 & (
ocean(ng)%t(i,j-1,k, &
1547 &
ocean(ng)%t(i,j ,k, &
1552 &
grid(ng)%vmask_full(i,j)
1563 average(ng)%avgHuonT(i,j,k,it)=0.5_r8* &
1564 &
grid(ng)%Huon(i,j,k)* &
1565 & (
ocean(ng)%t(i-1,j,k, &
1567 &
ocean(ng)%t(i ,j,k, &
1572 &
grid(ng)%umask_full(i, &
1583 average(ng)%avgHvomT(i,j,k,it)=0.5_r8* &
1584 &
grid(ng)%Hvom(i,j,k)* &
1585 & (
ocean(ng)%t(i,j-1,k, &
1587 &
ocean(ng)%t(i,j ,k, &
1592 &
grid(ng)%vmask_full(i, &
1616 grid(ng)%pmask_avg(i,j)=
grid(ng)%pmask_avg(i,j)+ &
1618 & min(
grid(ng)%pmask_full(i,j), &
1624 grid(ng)%rmask_avg(i,j)=
grid(ng)%rmask_avg(i,j)+ &
1626 & min(
grid(ng)%rmask_full(i,j), &
1632 grid(ng)%umask_avg(i,j)=
grid(ng)%umask_avg(i,j)+ &
1634 & min(
grid(ng)%umask_full(i,j), &
1640 grid(ng)%vmask_avg(i,j)=
grid(ng)%vmask_avg(i,j)+ &
1642 & min(
grid(ng)%vmask_full(i,j), &
1655 &
grid(ng)%rmask_full(i,j)* &
1657 &
ocean(ng)%zeta(i,j,kout)
1667 &
grid(ng)%umask_full(i,j)* &
1669 &
ocean(ng)%ubar(i,j,kout)
1678 &
grid(ng)%vmask_full(i,j)* &
1680 &
ocean(ng)%vbar(i,j,kout)
1687 & lbi, ubi, lbj, ubj, &
1688 &
grid(ng) % CosAngler, &
1689 &
grid(ng) % SinAngler, &
1691 &
grid(ng)%rmask_full, &
1693 &
ocean(ng) % ubar(:,:,kout), &
1694 &
ocean(ng) % vbar(:,:,kout), &
1706 &
grid(ng)%umask_full(i,j)* &
1708 &
ocean(ng)%u(i,j,k,nout)
1719 &
grid(ng)%vmask_full(i,j)* &
1721 &
ocean(ng)%v(i,j,k,nout)
1733 &
grid(ng)%umask_full(i,j)* &
1735 &
ocean(ng)%ua(i,j,k)
1746 &
grid(ng)%vmask_full(i,j)* &
1748 &
ocean(ng)%va(i,j,k)
1760 &
grid(ng)%rmask_full(i,j)* &
1762 &
ocean(ng)%W(i,j,k)* &
1763 &
grid(ng)%pm(i,j)* &
1775 &
grid(ng)%rmask_full(i,j)* &
1777 &
ocean(ng)%wvel(i,j,k)
1789 &
grid(ng)%rmask_full(i,j)* &
1791 &
ocean(ng)%rho(i,j,k)
1803 &
grid(ng)%rmask_full(i,j)* &
1805 &
ocean(ng)%t(i,j,k,nout,it)
1812# if defined SEDIMENT && defined BEDLOAD
1817 sedbed(ng)%avgbedldu(i,j,it)=
sedbed(ng)%avgbedldu(i,j, &
1820 &
grid(ng)%umask_full(i,j)* &
1822 &
sedbed(ng)%bedldu(i,j,it)
1830 sedbed(ng)%avgbedldv(i,j,it)=
sedbed(ng)%avgbedldv(i,j, &
1833 &
grid(ng)%vmask_full(i,j)* &
1835 &
sedbed(ng)%bedldv(i,j,it)
1842# if defined LMD_MIXING || defined MY25_MIXING || defined GLS_MIXING
1849 &
grid(ng)%rmask_full(i,j)* &
1862 &
grid(ng)%rmask_full(i,j)* &
1876 &
grid(ng)%rmask_full(i,j)* &
1891 &
grid(ng)%rmask_full(i,j)* &
1904 &
grid(ng)%rmask_full(i,j)* &
1913# if defined FORWARD_WRITE && defined SOLVE3D
1922 &
grid(ng)%umask_full(i,j)* &
1933 &
grid(ng)%umask_full(i,j)* &
1945 &
grid(ng)%vmask_full(i,j)* &
1956 &
grid(ng)%vmask_full(i,j)* &
1971 &
grid(ng)%umask_full(i,j)* &
1982 &
grid(ng)%vmask_full(i,j)* &
1994 &
grid(ng)%umask_full(i,j)* &
2005 &
grid(ng)%vmask_full(i,j)* &
2017 &
grid(ng)%rmask_full(i,j)* &
2028 &
grid(ng)%rmask_full(i,j)* &
2039 &
grid(ng)%rmask_full(i,j)* &
2050 &
grid(ng)%rmask_full(i,j)* &
2061 &
grid(ng)%rmask_full(i,j)* &
2063 &
forces(ng)%bustrcwmax(i,j)
2072 &
grid(ng)%rmask_full(i,j)* &
2074 &
forces(ng)%bvstrcwmax(i,j)
2079 allocate (wrk(lbi:ubi,lbj:ubj))
2080 wrk(lbi:ubi,lbj:ubj)=0.0_r8
2081 wrk=sqrt(
bbl(ng)%bustrcwmax*
bbl(ng)%bustrcwmax+ &
2082 &
bbl(ng)%bvstrcwmax*
bbl(ng)%bvstrcwmax+1.0e-10_r8)
2087 &
grid(ng)%rmask_full(i,j)* &
2099 &
grid(ng)%rmask_full(i,j)* &
2110 &
grid(ng)%rmask_full(i,j)* &
2121 &
grid(ng)%rmask_full(i,j)* &
2132 &
grid(ng)%rmask_full(i,j)* &
2141# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
2147 &
grid(ng)%rmask_full(i,j)* &
2154# if defined BULK_FLUXES
2160 &
grid(ng)%rmask_full(i,j)* &
2167# if defined BULK_FLUXES || defined ECOSIM
2173 &
grid(ng)%rmask_full(i,j)* &
2185 &
grid(ng)%rmask_full(i,j)* &
2194 & lbi, ubi, lbj, ubj, &
2195 &
grid(ng) % CosAngler, &
2196 &
grid(ng) % SinAngler, &
2198 &
grid(ng)%rmask_full, &
2212 &
grid(ng)%rmask_full(i,j)* &
2224 &
grid(ng)%rmask_full(i,j)* &
2237 &
grid(ng)%rmask_full(i,j)* &
2245# if defined BULK_FLUXES || defined FRC_COUPLING
2251 &
grid(ng)%rmask_full(i,j)* &
2263 &
grid(ng)%rmask_full(i,j)* &
2275 &
grid(ng)%rmask_full(i,j)* &
2283# if defined BULK_FLUXES && defined EMINUSP
2289 &
grid(ng)%rmask_full(i,j)* &
2301 &
grid(ng)%rmask_full(i,j)* &
2315 &
grid(ng)%umask_full(i,j)* &
2317 &
ocean(ng)%ubar_stokes(i,j)
2326 &
grid(ng)%vmask_full(i,j)* &
2328 &
ocean(ng)%vbar_stokes(i,j)
2338 &
grid(ng)%umask_full(i,j)* &
2340 &
mixing(ng)%rustr2d(i,j)
2349 &
grid(ng)%vmask_full(i,j)* &
2351 &
mixing(ng)%rvstr2d(i,j)
2363 &
grid(ng)%umask_full(i,j)* &
2365 &
ocean(ng)%u_stokes(i,j,k)
2376 &
grid(ng)%vmask_full(i,j)* &
2378 &
ocean(ng)%v_stokes(i,j,k)
2389 &
grid(ng)%rmask_full(i,j)* &
2391 &
ocean(ng)%W_stokes(i,j,k)
2402 &
grid(ng)%rmask_full(i,j)* &
2404 &
ocean(ng)%wstvel(i,j,k)
2415 &
grid(ng)%umask_full(i,j)* &
2417 &
mixing(ng)%rustr3d(i,j,k)
2428 &
grid(ng)%vmask_full(i,j)* &
2430 &
mixing(ng)%rvstr3d(i,j,k)
2442 &
grid(ng)%rmask_full(i,j)* &
2444 &
ocean(ng)%zetaw(i,j)
2453 &
grid(ng)%rmask_full(i,j)* &
2455 &
ocean(ng)%qsp(i,j)
2464 &
grid(ng)%rmask_full(i,j)* &
2477 &
grid(ng)%rmask_full(i,j)* &
2488 &
grid(ng)%rmask_full(i,j)* &
2490 &
forces(ng)%Hwave(i,j)* &
2502 &
grid(ng)%rmask_full(i,j)* &
2509# ifdef WAVES_LENGTHP
2515 &
grid(ng)%rmask_full(i,j)* &
2528 &
grid(ng)%rmask_full(i,j)* &
2541 &
grid(ng)%rmask_full(i,j)* &
2548# ifdef WAVES_TOP_PERIOD
2554 &
grid(ng)%rmask_full(i,j)* &
2556 &
forces(ng)%Pwave_top(i,j)
2561# ifdef WAVES_BOT_PERIOD
2567 &
grid(ng)%rmask_full(i,j)* &
2569 &
forces(ng)%Pwave_bot(i,j)
2580 &
grid(ng)%rmask_full(i,j)* &
2582 &
forces(ng)%Uwave_rms(i,j)
2587# if defined WAV_COUPLING || (defined WEC_VF && defined BOTTOM_STREAMING)
2593 &
grid(ng)%rmask_full(i,j)* &
2595 &
forces(ng)%Dissip_fric(i,j)
2600# if defined WAV_COUPLING || defined TKE_WAVEDISS || \
2601 defined wdiss_thorguza || defined wdiss_churthor
2607 &
grid(ng)%rmask_full(i,j)* &
2609 &
forces(ng)%Dissip_break(i,j)
2618 &
grid(ng)%rmask_full(i,j)* &
2620 &
forces(ng)%Dissip_wcap(i,j)
2625# ifdef ROLLER_SVENDSEN
2631 &
grid(ng)%rmask_full(i,j)* &
2633 &
forces(ng)%Wave_break(i,j)
2644 &
grid(ng)%rmask_full(i,j)* &
2646 &
forces(ng)%Dissip_roller(i,j)
2655 &
grid(ng)%rmask_full(i,j)* &
2668 &
grid(ng)%rmask_full(i,j)* &
2670 &
ocean(ng)%uWave(i,j)
2679 &
grid(ng)%rmask_full(i,j)* &
2681 &
ocean(ng)%vWave(i,j)
2694 &
grid(ng)%pmask_full(i,j)* &
2705 &
grid(ng)%pmask_full(i,j)* &
2719 &
grid(ng)%pmask_full(i,j)* &
2733 &
grid(ng)%pmask_full(i,j)* &
2749 &
grid(ng)%rmask_full(i,j)* &
2751 &
ocean(ng)%zeta(i,j,kout)* &
2752 &
ocean(ng)%zeta(i,j,kout)
2761 &
grid(ng)%umask_full(i,j)* &
2763 &
ocean(ng)%ubar(i,j,kout)* &
2764 &
ocean(ng)%ubar(i,j,kout)
2773 &
grid(ng)%vmask_full(i,j)* &
2775 &
ocean(ng)%vbar(i,j,kout)* &
2776 &
ocean(ng)%vbar(i,j,kout)
2788 &
grid(ng)%umask_full(i,j)* &
2790 &
ocean(ng)%u(i,j,k,nout)* &
2791 &
ocean(ng)%u(i,j,k,nout)
2802 &
grid(ng)%vmask_full(i,j)* &
2804 &
ocean(ng)%v(i,j,k,nout)* &
2805 &
ocean(ng)%v(i,j,k,nout)
2816 &
grid(ng)%rmask_full(i,j)* &
2819 & (
ocean(ng)%u(i ,j ,k,nout)+ &
2820 &
ocean(ng)%u(i+1,j ,k,nout))* &
2821 & (
ocean(ng)%v(i ,j ,k,nout)+ &
2822 &
ocean(ng)%v(i ,j+1,k,nout))
2834 &
grid(ng)%umask_full(i,j)* &
2836 &
grid(ng)%Huon(i,j,k)
2847 &
grid(ng)%vmask_full(i,j)* &
2849 &
grid(ng)%Hvom(i,j,k)
2863 &
grid(ng)%rmask_full(i,j)* &
2865 &
ocean(ng)%t(i,j,k, &
2867 &
ocean(ng)%t(i,j,k, &
2880 &
grid(ng)%umask_full(i,j)* &
2883 &
ocean(ng)%u(i,j,k,nout)* &
2884 & (
ocean(ng)%t(i-1,j,k, &
2886 &
ocean(ng)%t(i ,j,k, &
2899 &
grid(ng)%vmask_full(i,j)* &
2902 &
ocean(ng)%v(i,j,k,nout)* &
2903 & (
ocean(ng)%t(i,j-1,k, &
2905 &
ocean(ng)%t(i,j ,k, &
2919 &
grid(ng)%umask_full(i, &
2923 &
grid(ng)%Huon(i,j,k)* &
2924 & (
ocean(ng)%t(i-1,j,k, &
2926 &
ocean(ng)%t(i ,j,k, &
2939 &
grid(ng)%vmask_full(i, &
2943 &
grid(ng)%Hvom(i,j,k)* &
2944 & (
ocean(ng)%t(i,j-1,k, &
2946 &
ocean(ng)%t(i,j ,k, &
2963 & (mod(
iic(ng)-1,
navg(ng)).eq.0).and. &
2966 IF (
domain(ng)%SouthWest_Test(tile))
THEN
2967 IF (
navg(ng).eq.1)
THEN
2984 pfac(i,j)=1.0_r8/max(1.0_r8,
grid(ng)%pmask_avg(i,j))
2985 rfac(i,j)=1.0_r8/max(1.0_r8,
grid(ng)%rmask_avg(i,j))
2986 ufac(i,j)=1.0_r8/max(1.0_r8,
grid(ng)%umask_avg(i,j))
2987 vfac(i,j)=1.0_r8/max(1.0_r8,
grid(ng)%vmask_avg(i,j))
2991 fac=1.0_r8/real(
navg(ng),r8)
3007 average(ng)%avgzeta(i,j)=rfac(i,j)* &
3013 & lbi, ubi, lbj, ubj, &
3017 & lbi, ubi, lbj, ubj, &
3028 average(ng)%avgu2d(i,j)=ufac(i,j)* &
3034 & lbi, ubi, lbj, ubj, &
3038 & lbi, ubi, lbj, ubj, &
3049 average(ng)%avgv2d(i,j)=vfac(i,j)* &
3055 & lbi, ubi, lbj, ubj, &
3059 & lbi, ubi, lbj, ubj, &
3070 average(ng)%avgu2dE(i,j)=rfac(i,j)* &
3072 average(ng)%avgv2dN(i,j)=rfac(i,j)* &
3078 & lbi, ubi, lbj, ubj, &
3081 & lbi, ubi, lbj, ubj, &
3085 & lbi, ubi, lbj, ubj, &
3099 average(ng)%avgu3d(i,j,k)=ufac(i,j)* &
3106 & lbi, ubi, lbj, ubj, 1, n(ng), &
3110 & lbi, ubi, lbj, ubj, 1, n(ng), &
3122 average(ng)%avgv3d(i,j,k)=vfac(i,j)* &
3129 & lbi, ubi, lbj, ubj, 1, n(ng), &
3133 & lbi, ubi, lbj, ubj, 1, n(ng), &
3145 average(ng)%avgu3dE(i,j,k)=rfac(i,j)* &
3152 & lbi, ubi, lbj, ubj, 1, n(ng), &
3156 & lbi, ubi, lbj, ubj, 1, n(ng), &
3168 average(ng)%avgv3dN(i,j,k)=rfac(i,j)* &
3175 & lbi, ubi, lbj, ubj, 1, n(ng), &
3179 & lbi, ubi, lbj, ubj, 1, n(ng), &
3191 average(ng)%avgw3d(i,j,k)=rfac(i,j)* &
3198 & lbi, ubi, lbj, ubj, 0, n(ng), &
3202 & lbi, ubi, lbj, ubj, 0, n(ng), &
3214 average(ng)%avgwvel(i,j,k)=rfac(i,j)* &
3221 & lbi, ubi, lbj, ubj, 0, n(ng), &
3225 & lbi, ubi, lbj, ubj, 0, n(ng), &
3237 average(ng)%avgrho(i,j,k)=rfac(i,j)* &
3244 & lbi, ubi, lbj, ubj, 1, n(ng), &
3248 & lbi, ubi, lbj, ubj, 1, n(ng), &
3261 average(ng)%avgt(i,j,k,it)=rfac(i,j)* &
3268 & lbi, ubi, lbj, ubj, 1, n(ng), &
3272 & lbi, ubi, lbj, ubj, 1, n(ng), &
3281# if defined SEDIMENT && defined BEDLOAD
3286 sedbed(ng)%avgbedldu(i,j,it)=ufac(i,j)* &
3287 &
sedbed(ng)%avgbedldu(i,j, &
3293 & lbi, ubi, lbj, ubj, &
3294 &
sedbed(ng)%avgbedldu(:,:,it))
3297 & lbi, ubi, lbj, ubj, &
3300 &
sedbed(ng)%avgbedldu(:,:,it))
3308 sedbed(ng)%avgbedldv(i,j,it)=vfac(i,j)* &
3309 &
sedbed(ng)%avgbedldv(i,j, &
3315 & lbi, ubi, lbj, ubj, &
3316 &
sedbed(ng)%avgbedldv(:,:,it))
3319 & lbi, ubi, lbj, ubj, &
3322 &
sedbed(ng)%avgbedldv(:,:,it))
3329# if defined LMD_MIXING || defined MY25_MIXING || defined GLS_MIXING
3334 average(ng)%avgAKv(i,j,k)=rfac(i,j)* &
3341 & lbi, ubi, lbj, ubj, 0, n(ng), &
3345 & lbi, ubi, lbj, ubj, 0, n(ng), &
3357 average(ng)%avgAKt(i,j,k)=rfac(i,j)* &
3364 & lbi, ubi, lbj, ubj, 0, n(ng), &
3368 & lbi, ubi, lbj, ubj, 0, n(ng), &
3380 average(ng)%avgAKs(i,j,k)=rfac(i,j)* &
3387 & lbi, ubi, lbj, ubj, 0, n(ng), &
3391 & lbi, ubi, lbj, ubj, 0, n(ng), &
3405 average(ng)%avghsbl(i,j)=rfac(i,j)* &
3411 & lbi, ubi, lbj, ubj, &
3415 & lbi, ubi, lbj, ubj, &
3428 average(ng)%avghbbl(i,j)=rfac(i,j)* &
3434 & lbi, ubi, lbj, ubj, &
3438 & lbi, ubi, lbj, ubj, &
3448# if defined FORWARD_WRITE && defined SOLVE3D
3455 average(ng)%avgDU_avg1(i,j)=ufac(i,j)* &
3461 & lbi, ubi, lbj, ubj, &
3465 & lbi, ubi, lbj, ubj, &
3476 average(ng)%avgDU_avg2(i,j)=ufac(i,j)* &
3482 & lbi, ubi, lbj, ubj, &
3486 & lbi, ubi, lbj, ubj, &
3497 average(ng)%avgDV_avg1(i,j)=vfac(i,j)* &
3503 & lbi, ubi, lbj, ubj, &
3507 & lbi, ubi, lbj, ubj, &
3518 average(ng)%avgDV_avg2(i,j)=vfac(i,j)* &
3524 & lbi, ubi, lbj, ubj, &
3528 & lbi, ubi, lbj, ubj, &
3542 average(ng)%avgsus(i,j)=ufac(i,j)* &
3548 & lbi, ubi, lbj, ubj, &
3552 & lbi, ubi, lbj, ubj, &
3563 average(ng)%avgsvs(i,j)=vfac(i,j)* &
3569 & lbi, ubi, lbj, ubj, &
3573 & lbi, ubi, lbj, ubj, &
3584 average(ng)%avgbus(i,j)=ufac(i,j)* &
3590 & lbi, ubi, lbj, ubj, &
3594 & lbi, ubi, lbj, ubj, &
3605 average(ng)%avgbvs(i,j)=vfac(i,j)* &
3611 & lbi, ubi, lbj, ubj, &
3615 & lbi, ubi, lbj, ubj, &
3626 average(ng)%avgUbrs(i,j)=rfac(i,j)* &
3632 & lbi, ubi, lbj, ubj, &
3636 & lbi, ubi, lbj, ubj, &
3646 average(ng)%avgVbrs(i,j)=rfac(i,j)* &
3652 & lbi, ubi, lbj, ubj, &
3656 & lbi, ubi, lbj, ubj, &
3666 average(ng)%avgUbws(i,j)=rfac(i,j)* &
3672 & lbi, ubi, lbj, ubj, &
3676 & lbi, ubi, lbj, ubj, &
3686 average(ng)%avgVbws(i,j)=rfac(i,j)* &
3692 & lbi, ubi, lbj, ubj, &
3696 & lbi, ubi, lbj, ubj, &
3706 average(ng)%avgUbcs(i,j)=rfac(i,j)* &
3712 & lbi, ubi, lbj, ubj, &
3716 & lbi, ubi, lbj, ubj, &
3726 average(ng)%avgVbcs(i,j)=rfac(i,j)* &
3732 & lbi, ubi, lbj, ubj, &
3736 & lbi, ubi, lbj, ubj, &
3746 average(ng)%avgUVwc(i,j)=rfac(i,j)* &
3752 & lbi, ubi, lbj, ubj, &
3756 & lbi, ubi, lbj, ubj, &
3766 average(ng)%avgUbot(i,j)=rfac(i,j)* &
3772 & lbi, ubi, lbj, ubj, &
3776 & lbi, ubi, lbj, ubj, &
3786 average(ng)%avgVbot(i,j)=rfac(i,j)* &
3792 & lbi, ubi, lbj, ubj, &
3796 & lbi, ubi, lbj, ubj, &
3806 average(ng)%avgUbur(i,j)=rfac(i,j)* &
3812 & lbi, ubi, lbj, ubj, &
3816 & lbi, ubi, lbj, ubj, &
3826 average(ng)%avgVbvr(i,j)=rfac(i,j)* &
3832 & lbi, ubi, lbj, ubj, &
3836 & lbi, ubi, lbj, ubj, &
3845# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
3849 average(ng)%avgPair(i,j)=rfac(i,j)* &
3855 & lbi, ubi, lbj, ubj, &
3859 & lbi, ubi, lbj, ubj, &
3868# if defined BULK_FLUXES
3872 average(ng)%avgTair(i,j)=rfac(i,j)* &
3878 & lbi, ubi, lbj, ubj, &
3882 & lbi, ubi, lbj, ubj, &
3891# if defined BULK_FLUXES || defined ECOSIM
3895 average(ng)%avgUwind(i,j)=rfac(i,j)* &
3901 & lbi, ubi, lbj, ubj, &
3905 & lbi, ubi, lbj, ubj, &
3916 average(ng)%avgVwind(i,j)=rfac(i,j)* &
3922 & lbi, ubi, lbj, ubj, &
3926 & lbi, ubi, lbj, ubj, &
3937 average(ng)%avgUwindE(i,j)=rfac(i,j)* &
3939 average(ng)%avgVwindN(i,j)=rfac(i,j)* &
3945 & lbi, ubi, lbj, ubj, &
3948 & lbi, ubi, lbj, ubj, &
3952 & lbi, ubi, lbj, ubj, &
3965 average(ng)%avgstf(i,j)=rfac(i,j)* &
3971 & lbi, ubi, lbj, ubj, &
3975 & lbi, ubi, lbj, ubj, &
3987 average(ng)%avgswf(i,j)=rfac(i,j)* &
3993 & lbi, ubi, lbj, ubj, &
3997 & lbi, ubi, lbj, ubj, &
4010 average(ng)%avgsrf(i,j)=rfac(i,j)* &
4016 & lbi, ubi, lbj, ubj, &
4020 & lbi, ubi, lbj, ubj, &
4029# if defined BULK_FLUXES || defined FRC_COUPLING
4033 average(ng)%avglhf(i,j)=rfac(i,j)* &
4039 & lbi, ubi, lbj, ubj, &
4043 & lbi, ubi, lbj, ubj, &
4054 average(ng)%avgshf(i,j)=rfac(i,j)* &
4060 & lbi, ubi, lbj, ubj, &
4064 & lbi, ubi, lbj, ubj, &
4075 average(ng)%avglrf(i,j)=rfac(i,j)* &
4081 & lbi, ubi, lbj, ubj, &
4085 & lbi, ubi, lbj, ubj, &
4094# if defined BULK_FLUXES && defined EMINUSP
4098 average(ng)%avgevap(i,j)=rfac(i,j)* &
4104 & lbi, ubi, lbj, ubj, &
4108 & lbi, ubi, lbj, ubj, &
4119 average(ng)%avgrain(i,j)=rfac(i,j)* &
4125 & lbi, ubi, lbj, ubj, &
4129 & lbi, ubi, lbj, ubj, &
4145 average(ng)%avgu2Sd(i,j)=ufac(i,j)* &
4151 & lbi, ubi, lbj, ubj, &
4155 & lbi, ubi, lbj, ubj, &
4166 average(ng)%avgv2Sd(i,j)=vfac(i,j)* &
4172 & lbi, ubi, lbj, ubj, &
4176 & lbi, ubi, lbj, ubj, &
4187 average(ng)%avgu2rs(i,j)=ufac(i,j)* &
4193 & lbi, ubi, lbj, ubj, &
4197 & lbi, ubi, lbj, ubj, &
4208 average(ng)%avgv2rs(i,j)=vfac(i,j)* &
4214 & lbi, ubi, lbj, ubj, &
4218 & lbi, ubi, lbj, ubj, &
4232 average(ng)%avgu3Sd(i,j,k)=ufac(i,j)* &
4239 & lbi, ubi, lbj, ubj, 1, n(ng), &
4243 & lbi, ubi, lbj, ubj, 1, n(ng), &
4255 average(ng)%avgv3Sd(i,j,k)=vfac(i,j)* &
4262 & lbi, ubi, lbj, ubj, 1, n(ng), &
4266 & lbi, ubi, lbj, ubj, 1, n(ng), &
4278 average(ng)%avgu3rs(i,j,k)=ufac(i,j)* &
4285 & lbi, ubi, lbj, ubj, 1, n(ng), &
4289 & lbi, ubi, lbj, ubj, 1, n(ng), &
4301 average(ng)%avgv3RS(i,j,k)=vfac(i,j)* &
4308 & lbi, ubi, lbj, ubj, 1, n(ng), &
4312 & lbi, ubi, lbj, ubj, 1, n(ng), &
4324 average(ng)%avgW3Sd(i,j,k)=rfac(i,j)* &
4331 & lbi, ubi, lbj, ubj, 1, n(ng), &
4335 & lbi, ubi, lbj, ubj, 1, n(ng), &
4346 average(ng)%avgW3St(i,j,k)=rfac(i,j)* &
4353 & lbi, ubi, lbj, ubj, 1, n(ng), &
4357 & lbi, ubi, lbj, ubj, 1, n(ng), &
4370 average(ng)%avgWztw(i,j)=rfac(i,j)* &
4376 & lbi, ubi, lbj, ubj, &
4380 & lbi, ubi, lbj, ubj, &
4390 average(ng)%avgWqsp(i,j)=rfac(i,j)* &
4396 & lbi, ubi, lbj, ubj, &
4400 & lbi, ubi, lbj, ubj, &
4410 average(ng)%avgWbeh(i,j)=rfac(i,j)* &
4416 & lbi, ubi, lbj, ubj, &
4420 & lbi, ubi, lbj, ubj, &
4432 average(ng)%avgWamp(i,j)=rfac(i,j)* &
4438 & lbi, ubi, lbj, ubj, &
4442 & lbi, ubi, lbj, ubj, &
4452 average(ng)%avgWam2(i,j)=rfac(i,j)* &
4458 & lbi, ubi, lbj, ubj, &
4462 & lbi, ubi, lbj, ubj, &
4474 average(ng)%avgWlen(i,j)=rfac(i,j)* &
4480 & lbi, ubi, lbj, ubj, &
4484 & lbi, ubi, lbj, ubj, &
4492# ifdef WAVES_LENGTHP
4496 average(ng)%avgWlep(i,j)=rfac(i,j)* &
4502 & lbi, ubi, lbj, ubj, &
4506 & lbi, ubi, lbj, ubj, &
4518 average(ng)%avgWdir(i,j)=rfac(i,j)* &
4524 & lbi, ubi, lbj, ubj, &
4528 & lbi, ubi, lbj, ubj, &
4540 average(ng)%avgWdip(i,j)=rfac(i,j)* &
4546 & lbi, ubi, lbj, ubj, &
4550 & lbi, ubi, lbj, ubj, &
4558# ifdef WAVES_TOP_PERIOD
4562 average(ng)%avgWptp(i,j)=rfac(i,j)* &
4568 & lbi, ubi, lbj, ubj, &
4572 & lbi, ubi, lbj, ubj, &
4580# ifdef WAVES_BOT_PERIOD
4584 average(ng)%avgWpbt(i,j)=rfac(i,j)* &
4590 & lbi, ubi, lbj, ubj, &
4594 & lbi, ubi, lbj, ubj, &
4606 average(ng)%avgWorb(i,j)=rfac(i,j)* &
4612 & lbi, ubi, lbj, ubj, &
4616 & lbi, ubi, lbj, ubj, &
4624# if defined WAV_COUPLING || (defined WEC_VF && defined BOTTOM_STREAMING)
4628 average(ng)%avgWdif(i,j)=rfac(i,j)* &
4634 & lbi, ubi, lbj, ubj, &
4638 & lbi, ubi, lbj, ubj, &
4646# if defined WAV_COUPLING || defined TKE_WAVEDISS || \
4647 defined wdiss_thorguza || defined wdiss_churthor
4651 average(ng)%avgWdib(i,j)=rfac(i,j)* &
4657 & lbi, ubi, lbj, ubj, &
4661 & lbi, ubi, lbj, ubj, &
4671 average(ng)%avgWdiw(i,j)=rfac(i,j)* &
4677 & lbi, ubi, lbj, ubj, &
4681 & lbi, ubi, lbj, ubj, &
4689# ifdef ROLLER_SVENDSEN
4693 average(ng)%avgWbrk(i,j)=rfac(i,j)* &
4699 & lbi, ubi, lbj, ubj, &
4703 & lbi, ubi, lbj, ubj, &
4715 average(ng)%avgWdis(i,j)=rfac(i,j)* &
4721 & lbi, ubi, lbj, ubj, &
4725 & lbi, ubi, lbj, ubj, &
4735 average(ng)%avgWrol(i,j)=rfac(i,j)* &
4741 & lbi, ubi, lbj, ubj, &
4745 & lbi, ubi, lbj, ubj, &
4757 average(ng)%avgUwav(i,j)=rfac(i,j)* &
4763 & lbi, ubi, lbj, ubj, &
4767 & lbi, ubi, lbj, ubj, &
4777 average(ng)%avgVwav(i,j)=rfac(i,j)* &
4783 & lbi, ubi, lbj, ubj, &
4787 & lbi, ubi, lbj, ubj, &
4801 average(ng)%avgpvor2d(i,j)=pfac(i,j)* &
4807 & lbi, ubi, lbj, ubj, &
4811 & lbi, ubi, lbj, ubj, &
4822 average(ng)%avgrvor2d(i,j)=pfac(i,j)* &
4828 & lbi, ubi, lbj, ubj, &
4832 & lbi, ubi, lbj, ubj, &
4845 average(ng)%avgpvor3d(i,j,k)=pfac(i,j)* &
4846 &
average(ng)%avgpvor3d(i,j,k)
4852 & lbi, ubi, lbj, ubj, 1, n(ng), &
4856 & lbi, ubi, lbj, ubj, 1, n(ng), &
4868 average(ng)%avgrvor3d(i,j,k)=pfac(i,j)* &
4869 &
average(ng)%avgrvor3d(i,j,k)
4875 & lbi, ubi, lbj, ubj, 1, n(ng), &
4879 & lbi, ubi, lbj, ubj, 1, n(ng), &
4893 average(ng)%avgZZ(i,j)=rfac(i,j)* &
4899 & lbi, ubi, lbj, ubj, &
4903 & lbi, ubi, lbj, ubj, &
4914 average(ng)%avgU2(i,j)=ufac(i,j)* &
4920 & lbi, ubi, lbj, ubj, &
4924 & lbi, ubi, lbj, ubj, &
4935 average(ng)%avgV2(i,j)=vfac(i,j)* &
4941 & lbi, ubi, lbj, ubj, &
4945 & lbi, ubi, lbj, ubj, &
4958 average(ng)%avgUU(i,j,k)=ufac(i,j)* &
4965 & lbi, ubi, lbj, ubj, 1, n(ng), &
4969 & lbi, ubi, lbj, ubj, 1, n(ng), &
4981 average(ng)%avgVV(i,j,k)=vfac(i,j)* &
4988 & lbi, ubi, lbj, ubj, 1, n(ng), &
4992 & lbi, ubi, lbj, ubj, 1, n(ng), &
5004 average(ng)%avgUV(i,j,k)=rfac(i,j)* &
5011 & lbi, ubi, lbj, ubj, 1, n(ng), &
5015 & lbi, ubi, lbj, ubj, 1, n(ng), &
5027 average(ng)%avgHuon(i,j,k)=ufac(i,j)* &
5034 & lbi, ubi, lbj, ubj, 1, n(ng), &
5038 & lbi, ubi, lbj, ubj, 1, n(ng), &
5050 average(ng)%avgHvom(i,j,k)=vfac(i,j)* &
5057 & lbi, ubi, lbj, ubj, 1, n(ng), &
5061 & lbi, ubi, lbj, ubj, 1, n(ng), &
5074 average(ng)%avgTT(i,j,k,it)=rfac(i,j)* &
5081 & lbi, ubi, lbj, ubj, 1, n(ng), &
5082 &
average(ng)%avgTT(:,:,:,it))
5085 & lbi, ubi, lbj, ubj, 1, n(ng), &
5088 &
average(ng)%avgTT(:,:,:,it))
5097 average(ng)%avgUT(i,j,k,it)=ufac(i,j)* &
5104 & lbi, ubi, lbj, ubj, 1, n(ng), &
5105 &
average(ng)%avgUT(:,:,:,it))
5108 & lbi, ubi, lbj, ubj, 1, n(ng), &
5111 &
average(ng)%avgUT(:,:,:,it))
5120 average(ng)%avgVT(i,j,k,it)=vfac(i,j)* &
5127 & lbi, ubi, lbj, ubj, 1, n(ng), &
5128 &
average(ng)%avgVT(:,:,:,it))
5131 & lbi, ubi, lbj, ubj, 1, n(ng), &
5134 &
average(ng)%avgVT(:,:,:,it))
5143 average(ng)%avgHuonT(i,j,k,it)=ufac(i,j)* &
5144 &
average(ng)%avgHuonT(i,j,k,it)
5150 & lbi, ubi, lbj, ubj, 1, n(ng), &
5151 &
average(ng)%avgHuonT(:,:,:,it))
5154 & lbi, ubi, lbj, ubj, 1, n(ng), &
5157 &
average(ng)%avgHuonT(:,:,:,it))
5166 average(ng)%avgHvomT(i,j,k,it)=vfac(i,j)* &
5167 &
average(ng)%avgHvomT(i,j,k,it)
5173 & lbi, ubi, lbj, ubj, 1, n(ng), &
5174 &
average(ng)%avgHvomT(:,:,:,it))
5177 & lbi, ubi, lbj, ubj, 1, n(ng), &
5180 &
average(ng)%avgHvomT(:,:,:,it))