File indexing completed on 2018-03-02 18:42:13 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
6d54cf9ca1 Ed H*0001 #include "MOM_FLUXFORM_OPTIONS.h"
aea29c8517 Alis*0002
71207ba845 Alis*0003
0004
0005
0006
aea29c8517 Alis*0007 SUBROUTINE MOM_U_ADV_WU(
0008 I bi,bj,k,
bd2e80b12f Jean*0009 I uFld,wFld,rTrans,
aea29c8517 Alis*0010 O advectiveFluxWU,
eaba2fd266 Jean*0011 I myThid )
aea29c8517 Alis*0012
71207ba845 Alis*0013
0014
0015
0016
0017
0018
0019
0020 IMPLICIT NONE
aea29c8517 Alis*0021 #include "SIZE.h"
0022 #include "EEPARAMS.h"
0023 #include "PARAMS.h"
0024 #include "GRID.h"
0025
71207ba845 Alis*0026
0027
0028
bd2e80b12f Jean*0029
0030
0031
71207ba845 Alis*0032
aea29c8517 Alis*0033 INTEGER bi,bj,k
0034 _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
0035 _RL wFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
bd2e80b12f Jean*0036 _RL rTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
aea29c8517 Alis*0037 INTEGER myThid
0038
71207ba845 Alis*0039
0040
0041 _RL advectiveFluxWU(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0042
0043
0044
229b6d70e7 Jean*0045 INTEGER i,j
71207ba845 Alis*0046
aea29c8517 Alis*0047
e0c3eb6fa1 Jean*0048 IF ( k.EQ.Nr+1 .AND.
9669509dca Jean*0049 & useRealFreshWaterFlux .AND. usingPCoords ) THEN
bd2e80b12f Jean*0050 DO j=1-Oly+1,sNy+Oly
e0c3eb6fa1 Jean*0051 DO i=1-Olx+1,sNx+Olx
eaba2fd266 Jean*0052 advectiveFluxWU(i,j) = rTrans(i,j)*uFld(i,j,k-1,bi,bj)
e0c3eb6fa1 Jean*0053 ENDDO
0054 ENDDO
0055
0056 ELSEIF ( k.GT.Nr .OR. (k.EQ.1.AND.rigidLid) ) THEN
aea29c8517 Alis*0057
0058
0059 DO j=1-Oly,sNy+Oly
0060 DO i=1-Olx,sNx+Olx
0061 advectiveFluxWU(i,j) = 0.
0062 ENDDO
0063 ENDDO
0064
0065 ELSEIF (k.EQ.1) THEN
0066
0067
bd2e80b12f Jean*0068 DO j=1-Oly+1,sNy+Oly
aea29c8517 Alis*0069 DO i=1-Olx+1,sNx+Olx
eaba2fd266 Jean*0070 advectiveFluxWU(i,j) = rTrans(i,j)*uFld(i,j,k,bi,bj)
aea29c8517 Alis*0071 ENDDO
0072 ENDDO
0073
0074 ELSE
0075
eaba2fd266 Jean*0076
bd2e80b12f Jean*0077 DO j=1-Oly+1,sNy+Oly
aea29c8517 Alis*0078 DO i=1-Olx+1,sNx+Olx
bd2e80b12f Jean*0079 advectiveFluxWU(i,j) = rTrans(i,j)*
229b6d70e7 Jean*0080 #ifdef MOM_BOUNDARY_CONSERVE
0081 & 0.5 _d 0*( uFld(i,j,k,bi,bj)*_maskW(i,j,k-1,bi,bj)
0082 & +uFld(i,j,k-1,bi,bj)*_maskW(i,j,k,bi,bj) )
0083 #else
bd2e80b12f Jean*0084 & 0.5 _d 0*( uFld(i,j,k,bi,bj)+uFld(i,j,k-1,bi,bj) )
229b6d70e7 Jean*0085 #endif
aea29c8517 Alis*0086 ENDDO
0087 ENDDO
0088
bd2e80b12f Jean*0089 IF ( select_rStar.EQ.0 .AND. .NOT.rigidLid ) THEN
eaba2fd266 Jean*0090
aea29c8517 Alis*0091
bd2e80b12f Jean*0092 DO j=1-Oly+1,sNy+Oly
aea29c8517 Alis*0093 DO i=1-Olx+1,sNx+Olx
0094 advectiveFluxWU(i,j) = advectiveFluxWU(i,j)
0095 & +0.25*(
0096 & wFld(i, j ,k,bi,bj)*rA(i, j ,bi,bj)*
eaba2fd266 Jean*0097 & (maskC( i ,j,k,bi,bj)-maskC( i ,j,k-1,bi,bj))
aea29c8517 Alis*0098 & +wFld(i-1,j,k,bi,bj)*rA(i-1,j,bi,bj)*
0099 & (maskC(i-1,j,k,bi,bj)-maskC(i-1,j,k-1,bi,bj))
eaba2fd266 Jean*0100 & )*deepFac2F(k)*rhoFacF(k)
0101 & *uFld(i,j,k,bi,bj)
aea29c8517 Alis*0102 ENDDO
0103 ENDDO
0104
0105 ENDIF
0106
0107 ENDIF
0108
0109 RETURN
0110 END