/[MITgcm]/MITgcm/pkg/mom_vecinv/mom_vi_coriolis.F
ViewVC logotype

Contents of /MITgcm/pkg/mom_vecinv/mom_vi_coriolis.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.6 - (show annotations) (download)
Tue Jul 20 17:46:38 2004 UTC (19 years, 10 months ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint57m_post, checkpoint57g_pre, checkpoint57s_post, checkpoint57b_post, checkpoint57g_post, checkpoint56b_post, checkpoint54d_post, checkpoint54e_post, checkpoint57r_post, checkpoint57d_post, checkpoint57i_post, checkpoint55, checkpoint57, checkpoint56, checkpoint57n_post, checkpoint54f_post, checkpoint55i_post, checkpoint57l_post, checkpoint55c_post, checkpoint57f_post, checkpoint57a_post, checkpoint57h_pre, checkpoint57h_post, checkpoint55g_post, checkpoint57c_post, checkpoint55d_post, checkpoint55d_pre, checkpoint57c_pre, checkpoint55j_post, checkpoint55h_post, checkpoint57e_post, checkpoint55b_post, checkpoint55f_post, checkpoint57p_post, checkpoint57q_post, eckpoint57e_pre, checkpoint56a_post, checkpoint57h_done, checkpoint57j_post, checkpoint57f_pre, checkpoint56c_post, checkpoint57a_pre, checkpoint55a_post, checkpoint57o_post, checkpoint57k_post, checkpoint55e_post
Changes since 1.5: +2 -2 lines
Replaced CPP_OPTIONS.h with MOM_VECINV_OPTIONS
 - this was causing a call to diagnostics to not happen

1 C $Header: /u/gcmpack/MITgcm/pkg/mom_vecinv/mom_vi_coriolis.F,v 1.5 2004/06/02 13:23:55 adcroft Exp $
2 C $Name: $
3
4 #include "MOM_VECINV_OPTIONS.h"
5
6 SUBROUTINE MOM_VI_CORIOLIS(
7 I bi,bj,K,
8 I uFld,vFld,hFacZ,r_hFacZ,
9 O uCoriolisTerm,vCoriolisTerm,
10 I myThid)
11 IMPLICIT NONE
12 C *==========================================================*
13 C | S/R MOM_VI_CORIOLIS
14 C *==========================================================*
15 C *==========================================================*
16
17 C == Global variables ==
18 #include "SIZE.h"
19 #include "EEPARAMS.h"
20 #include "GRID.h"
21 #include "PARAMS.h"
22
23 C == Routine arguments ==
24 INTEGER bi,bj,K
25 _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
26 _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
27 _RS hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
28 _RS r_hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
29 _RL uCoriolisTerm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
30 _RL vCoriolisTerm(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
31 INTEGER myThid
32
33 C == Local variables ==
34 INTEGER I,J
35 _RL vBarXY,uBarXY,vort3u,vort3v
36 _RS epsil
37 epsil = 1. _d -9
38
39 IF (useJamartWetPoints) THEN
40 C- Partial-cell generalization of the Wet-point average method :
41 DO J=1-Oly,sNy+Oly-1
42 DO I=2-Olx,sNx+Olx
43 vBarXY=(
44 & vFld( i , j )*dxG( i , j ,bi,bj)*hFacS( i , j ,k,bi,bj)
45 & +vFld( i ,j+1)*dxG( i ,j+1,bi,bj)*hFacS( i ,j+1,k,bi,bj)
46 & +vFld(i-1, j )*dxG(i-1, j ,bi,bj)*hFacS(i-1, j ,k,bi,bj)
47 & +vFld(i-1,j+1)*dxG(i-1,j+1,bi,bj)*hFacS(i-1,j+1,k,bi,bj) )
48 & / MAX( epsil, hFacS( i , j ,k,bi,bj)+hFacS(i-1, j ,k,bi,bj)
49 & +hFacS( i ,j+1,k,bi,bj)+hFacS(i-1,j+1,k,bi,bj) )
50 uCoriolisTerm(i,j)=
51 & +0.5*( fCoriG(i,j,bi,bj)+fCoriG(i,j+1,bi,bj)
52 & )*vBarXY*recip_dxC(i,j,bi,bj)*_maskW(I,J,K,bi,bj)
53 ENDDO
54 ENDDO
55 ELSE
56 C- Simple average, no hFac :
57 DO J=1-Oly,sNy+Oly-1
58 DO I=2-Olx,sNx+Olx
59 vBarXY=0.25*(
60 & vFld( i , j )*dxG( i , j ,bi,bj)
61 & +vFld( i ,j+1)*dxG( i ,j+1,bi,bj)
62 & +vFld(i-1, j )*dxG(i-1, j ,bi,bj)
63 & +vFld(i-1,j+1)*dxG(i-1,j+1,bi,bj) )
64 uCoriolisTerm(i,j)=
65 & +0.5*( fCoriG(i,j,bi,bj)+fCoriG(i,j+1,bi,bj)
66 & )*vBarXY*recip_dxC(i,j,bi,bj)*_maskW(I,J,K,bi,bj)
67 ENDDO
68 ENDDO
69 ENDIF
70
71 IF (useJamartWetPoints) THEN
72 C- Partial-cell generalization of the Wet-point average method :
73 DO J=2-Oly,sNy+Oly
74 DO I=1-Olx,sNx+Olx-1
75 uBarXY=(
76 & uFld( i , j )*dyG( i , j ,bi,bj)*hFacW( i , j ,k,bi,bj)
77 & +uFld( i ,j-1)*dyG( i ,j-1,bi,bj)*hFacW( i ,j-1,k,bi,bj)
78 & +uFld(i+1, j )*dyG(i+1, j ,bi,bj)*hFacW(i+1, j ,k,bi,bj)
79 & +uFld(i+1,j-1)*dyG(i+1,j-1,bi,bj)*hFacW(i+1,j-1,k,bi,bj) )
80 & / MAX( epsil, hFacW( i , j ,k,bi,bj)+hFacW( i ,j-1,k,bi,bj)
81 & +hFacW(i+1, j ,k,bi,bj)+hFacW(i+1,j-1,k,bi,bj) )
82 vCoriolisTerm(i,j)=
83 & -0.5*( fCoriG(i,j,bi,bj)+fCoriG(i+1,j,bi,bj)
84 & )*uBarXY*recip_dyC(i,j,bi,bj)*_maskS(I,J,K,bi,bj)
85 ENDDO
86 ENDDO
87 ELSE
88 C- Simple average, no hFac :
89 DO J=2-Oly,sNy+Oly
90 DO I=1-Olx,sNx+Olx-1
91 uBarXY=0.25*(
92 & uFld( i , j )*dyG( i , j ,bi,bj)
93 & +uFld( i ,j-1)*dyG( i ,j-1,bi,bj)
94 & +uFld(i+1, j )*dyG(i+1, j ,bi,bj)
95 & +uFld(i+1,j-1)*dyG(i+1,j-1,bi,bj) )
96 vCoriolisTerm(i,j)=
97 & -0.5*( fCoriG(i,j,bi,bj)+fCoriG(i+1,j,bi,bj)
98 & )*uBarXY*recip_dyC(i,j,bi,bj)*_maskS(I,J,K,bi,bj)
99 ENDDO
100 ENDDO
101 ENDIF
102
103 RETURN
104 END

  ViewVC Help
Powered by ViewVC 1.1.22