7 |
C !ROUTINE: MOM_V_CORIOLIS |
C !ROUTINE: MOM_V_CORIOLIS |
8 |
|
|
9 |
C !INTERFACE: ========================================================== |
C !INTERFACE: ========================================================== |
10 |
SUBROUTINE MOM_V_CORIOLIS( |
SUBROUTINE MOM_V_CORIOLIS( |
11 |
I bi,bj,k,uFld, |
I bi,bj,k,uFld, |
12 |
U vCoriolisTerm, |
U vCoriolisTerm, |
13 |
I myThid) |
I myThid) |
31 |
C k :: vertical level |
C k :: vertical level |
32 |
C uFld :: zonal flow |
C uFld :: zonal flow |
33 |
C myThid :: thread number |
C myThid :: thread number |
34 |
INTEGER bi,bj,K |
INTEGER bi,bj,k |
35 |
_RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
36 |
INTEGER myThid |
INTEGER myThid |
37 |
|
|
41 |
|
|
42 |
C !LOCAL VARIABLES: ==================================================== |
C !LOCAL VARIABLES: ==================================================== |
43 |
C i,j :: loop indices |
C i,j :: loop indices |
44 |
INTEGER I,J |
INTEGER i,j |
45 |
_RL one |
_RS one |
46 |
PARAMETER(one=1.d0) |
PARAMETER( one = 1. _d 0 ) |
47 |
CEOP |
CEOP |
48 |
|
|
49 |
IF (useEnergyConservingCoriolis) THEN |
IF (useEnergyConservingCoriolis) THEN |
77 |
DO j=1-Oly+1,sNy+Oly |
DO j=1-Oly+1,sNy+Oly |
78 |
DO i=1-Olx,sNx+Olx-1 |
DO i=1-Olx,sNx+Olx-1 |
79 |
vCoriolisTerm(i,j) = vCoriolisTerm(i,j) |
vCoriolisTerm(i,j) = vCoriolisTerm(i,j) |
80 |
& *4.d0/max(one, maskW( i , j ,k,bi,bj)+maskW(i+1, j ,k,bi,bj) |
& *4. _d 0/MAX( one, |
81 |
& +maskW( i ,j-1,k,bi,bj)+maskW(i+1,j-1,k,bi,bj) ) |
& maskW( i , j ,k,bi,bj)+maskW(i+1, j ,k,bi,bj) |
82 |
|
& +maskW( i ,j-1,k,bi,bj)+maskW(i+1,j-1,k,bi,bj) ) |
83 |
ENDDO |
ENDDO |
84 |
ENDDO |
ENDDO |
85 |
ENDIF |
ENDIF |