1 |
C $Header$ |
C $Header$ |
2 |
C $Name$ |
C $Name$ |
3 |
|
|
4 |
#include "CPP_OPTIONS.h" |
#include "MOM_FLUXFORM_OPTIONS.h" |
5 |
|
|
6 |
CBOP |
CBOP |
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) |
21 |
C !USES: =============================================================== |
C !USES: =============================================================== |
22 |
IMPLICIT NONE |
IMPLICIT NONE |
23 |
#include "SIZE.h" |
#include "SIZE.h" |
|
#include "DYNVARS.h" |
|
24 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
25 |
#include "PARAMS.h" |
#include "PARAMS.h" |
26 |
#include "GRID.h" |
#include "GRID.h" |
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 |
|
_RS one |
46 |
|
PARAMETER( one = 1. _d 0 ) |
47 |
CEOP |
CEOP |
48 |
|
|
49 |
IF (useEnergyConservingCoriolis) THEN |
IF (useEnergyConservingCoriolis) THEN |
69 |
ENDDO |
ENDDO |
70 |
ENDDO |
ENDDO |
71 |
ENDIF |
ENDIF |
72 |
|
|
73 |
|
IF (useJamartWetPoints) THEN |
74 |
|
C Scale term so that only "wet" points are used |
75 |
|
C Due to: Jamart and Ozer, 1986, JGR 91 (C9), 10,621-10,631 |
76 |
|
C "Numerical Boundary Layers and Spurious Residual Flows" |
77 |
|
DO j=1-Oly+1,sNy+Oly |
78 |
|
DO i=1-Olx,sNx+Olx-1 |
79 |
|
vCoriolisTerm(i,j) = vCoriolisTerm(i,j) |
80 |
|
& *4. _d 0/MAX( one, |
81 |
|
& 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 |
84 |
|
ENDDO |
85 |
|
ENDIF |
86 |
|
|
87 |
RETURN |
RETURN |
88 |
END |
END |