/[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.9 - (show annotations) (download)
Wed Jun 7 01:55:15 2006 UTC (17 years, 11 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint62v, checkpoint62u, checkpoint62t, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint62c, checkpoint59, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62w, checkpoint62z, checkpoint62y, checkpoint62x, checkpoint58y_post, checkpoint58t_post, checkpoint58m_post, checkpoint63g, checkpoint64, checkpoint65, checkpoint60, checkpoint61, checkpoint62, checkpoint63, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint58w_post, checkpoint58o_post, checkpoint58p_post, checkpoint58q_post, mitgcm_mapl_00, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63k, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint58r_post, checkpoint58n_post, checkpoint65o, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59a, checkpoint59c, checkpoint59b, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59i, checkpoint59h, checkpoint59k, checkpoint58k_post, checkpoint62b, checkpoint58v_post, checkpoint64y, checkpoint64x, checkpoint58l_post, checkpoint64z, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint61f, checkpoint58x_post, checkpoint61n, checkpoint59j, checkpoint58h_post, checkpoint58j_post, checkpoint61q, checkpoint61e, checkpoint58i_post, checkpoint58u_post, checkpoint58s_post, checkpoint61g, checkpoint61d, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61z, checkpoint61x, checkpoint61y, HEAD
Changes since 1.8: +13 -13 lines
Modifications for bottom topography control
o replace hFacC by _hFacC at various places
o replace ALLOW_HFACC_CONTROL by ALLOW_DEPTH_CONTROL
o add non-self-adjoint cg2d_nsa
o update autodiff support routines
o re-initialise hfac after ctrl_depth_ini
o works for 5x5 box, doesnt work for global_ocean.90x40x15

1 C $Header: /u/gcmpack/MITgcm/pkg/mom_vecinv/mom_vi_coriolis.F,v 1.8 2005/11/04 01:31:59 jmc 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
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-1, j )*dxG(i-1, j ,bi,bj)*_hFacS(i-1, j ,k,bi,bj))
46 & +(vFld( i ,j+1)*dxG( i ,j+1,bi,bj)*_hFacS( i ,j+1,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-1, j )*dxG(i-1, j ,bi,bj))
62 & +(vFld( i ,j+1)*dxG( i ,j+1,bi,bj)
63 & +vFld(i-1,j+1)*dxG(i-1,j+1,bi,bj))
64 & )
65 uCoriolisTerm(i,j)=
66 & +0.5*( fCoriG(i,j,bi,bj)+fCoriG(i,j+1,bi,bj)
67 & )*vBarXY*recip_dxC(i,j,bi,bj)*_maskW(I,J,K,bi,bj)
68 ENDDO
69 ENDDO
70 ENDIF
71
72 IF (useJamartWetPoints) THEN
73 C- Partial-cell generalization of the Wet-point average method :
74 DO J=2-Oly,sNy+Oly
75 DO I=1-Olx,sNx+Olx-1
76 uBarXY=(
77 & (uFld( i , j )*dyG( i , j ,bi,bj)*_hFacW( i , j ,k,bi,bj)
78 & +uFld( i ,j-1)*dyG( i ,j-1,bi,bj)*_hFacW( i ,j-1,k,bi,bj))
79 & +(uFld(i+1, j )*dyG(i+1, j ,bi,bj)*_hFacW(i+1, j ,k,bi,bj)
80 & +uFld(i+1,j-1)*dyG(i+1,j-1,bi,bj)*_hFacW(i+1,j-1,k,bi,bj)))
81 & / MAX( epsil,(_hFacW( i ,j,k,bi,bj)+_hFacW( i ,j-1,k,bi,bj))
82 & +(_hFacW(i+1,j,k,bi,bj)+_hFacW(i+1,j-1,k,bi,bj)) )
83 vCoriolisTerm(i,j)=
84 & -0.5*( fCoriG(i,j,bi,bj)+fCoriG(i+1,j,bi,bj)
85 & )*uBarXY*recip_dyC(i,j,bi,bj)*_maskS(I,J,K,bi,bj)
86 ENDDO
87 ENDDO
88 ELSE
89 C- Simple average, no hFac :
90 DO J=2-Oly,sNy+Oly
91 DO I=1-Olx,sNx+Olx-1
92 uBarXY=0.25*(
93 & (uFld( i , j )*dyG( i , j ,bi,bj)
94 & +uFld( i ,j-1)*dyG( i ,j-1,bi,bj))
95 & +(uFld(i+1, j )*dyG(i+1, j ,bi,bj)
96 & +uFld(i+1,j-1)*dyG(i+1,j-1,bi,bj))
97 & )
98 vCoriolisTerm(i,j)=
99 & -0.5*( fCoriG(i,j,bi,bj)+fCoriG(i+1,j,bi,bj)
100 & )*uBarXY*recip_dyC(i,j,bi,bj)*_maskS(I,J,K,bi,bj)
101 ENDDO
102 ENDDO
103 ENDIF
104
105 RETURN
106 END

  ViewVC Help
Powered by ViewVC 1.1.22