File indexing completed on 2025-05-05 05:08:24 UTC
view on githubraw file Latest commit 31fb0e0e on 2025-05-05 02:15:14 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(
31fb0e0e6d Jean*0008 I bi, bj, k, deepFacA,
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
31fb0e0e6d Jean*0027
71207ba845 Alis*0028
31fb0e0e6d Jean*0029
bd2e80b12f Jean*0030
0031
0032
31fb0e0e6d Jean*0033
0034 INTEGER bi, bj, k
0035 _RL deepFacA(Nr)
aea29c8517 Alis*0036 _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
0037 _RL wFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
bd2e80b12f Jean*0038 _RL rTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
aea29c8517 Alis*0039 INTEGER myThid
0040
71207ba845 Alis*0041
0042
0043 _RL advectiveFluxWU(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
0044
0045
31fb0e0e6d Jean*0046
0047 INTEGER i, j
71207ba845 Alis*0048
aea29c8517 Alis*0049
e0c3eb6fa1 Jean*0050 IF ( k.EQ.Nr+1 .AND.
9669509dca Jean*0051 & useRealFreshWaterFlux .AND. usingPCoords ) THEN
31fb0e0e6d Jean*0052 DO j=1-OLy+1,sNy+OLy
0053 DO i=1-OLx+1,sNx+OLx
eaba2fd266 Jean*0054 advectiveFluxWU(i,j) = rTrans(i,j)*uFld(i,j,k-1,bi,bj)
31fb0e0e6d Jean*0055 & *deepFacA(k-1)
e0c3eb6fa1 Jean*0056 ENDDO
0057 ENDDO
0058
0059 ELSEIF ( k.GT.Nr .OR. (k.EQ.1.AND.rigidLid) ) THEN
aea29c8517 Alis*0060
0061
31fb0e0e6d Jean*0062 DO j=1-OLy,sNy+OLy
0063 DO i=1-OLx,sNx+OLx
0064 advectiveFluxWU(i,j) = 0.
0065 ENDDO
aea29c8517 Alis*0066 ENDDO
0067
0068 ELSEIF (k.EQ.1) THEN
0069
0070
31fb0e0e6d Jean*0071 DO j=1-OLy+1,sNy+OLy
0072 DO i=1-OLx+1,sNx+OLx
0073 advectiveFluxWU(i,j) = rTrans(i,j)*uFld(i,j,k,bi,bj)
0074 & *deepFacA(k)
0075 ENDDO
aea29c8517 Alis*0076 ENDDO
0077
0078 ELSE
0079
eaba2fd266 Jean*0080
31fb0e0e6d Jean*0081 DO j=1-OLy+1,sNy+OLy
0082 DO i=1-OLx+1,sNx+OLx
0083 advectiveFluxWU(i,j) = rTrans(i,j)*halfRL
229b6d70e7 Jean*0084 #ifdef MOM_BOUNDARY_CONSERVE
31fb0e0e6d Jean*0085 & *( uFld(i,j, k ,bi,bj)*deepFacA( k )*_maskW(i,j,k-1,bi,bj)
0086 & + uFld(i,j,k-1,bi,bj)*deepFacA(k-1)*_maskW(i,j, k ,bi,bj) )
229b6d70e7 Jean*0087 #else
31fb0e0e6d Jean*0088 & *( uFld(i,j, k ,bi,bj)*deepFacA( k )
0089 & + uFld(i,j,k-1,bi,bj)*deepFacA(k-1) )
229b6d70e7 Jean*0090 #endif
31fb0e0e6d Jean*0091 ENDDO
aea29c8517 Alis*0092 ENDDO
0093
31fb0e0e6d Jean*0094 IF ( select_rStar.EQ.0 .AND. .NOT.rigidLid ) THEN
0095
aea29c8517 Alis*0096
31fb0e0e6d Jean*0097 DO j=1-OLy+1,sNy+OLy
0098 DO i=1-OLx+1,sNx+OLx
aea29c8517 Alis*0099 advectiveFluxWU(i,j) = advectiveFluxWU(i,j)
31fb0e0e6d Jean*0100 & +0.25 _d 0*(
0101 & wFld( i ,j,k,bi,bj)*rA( i ,j,bi,bj)
0102 & *(maskC( i ,j,k,bi,bj)-maskC( i ,j,k-1,bi,bj))
0103 & +wFld(i-1,j,k,bi,bj)*rA(i-1,j,bi,bj)
0104 & *(maskC(i-1,j,k,bi,bj)-maskC(i-1,j,k-1,bi,bj))
0105 & )*deepFac2F(k)*rhoFacF(k)
0106 & *uFld(i,j,k,bi,bj)*deepFacA(k)
aea29c8517 Alis*0107 ENDDO
0108 ENDDO
31fb0e0e6d Jean*0109
0110 ENDIF
aea29c8517 Alis*0111
31fb0e0e6d Jean*0112
aea29c8517 Alis*0113 ENDIF
0114
0115 RETURN
0116 END