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