/[MITgcm]/MITgcm/pkg/mom_common/mom_quasihydrostatic.F
ViewVC logotype

Contents of /MITgcm/pkg/mom_common/mom_quasihydrostatic.F

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


Revision 1.1 - (show annotations) (download)
Mon Mar 20 14:20:47 2006 UTC (18 years, 2 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint58l_post, checkpoint58e_post, checkpoint58h_post, checkpoint58j_post, checkpoint58f_post, checkpoint58d_post, checkpoint58c_post, checkpoint58i_post, checkpoint58g_post, checkpoint58k_post
move quasiquasihydrostaticterms.F to pkg/mom_common/mom_quasihydrostatic.F
 - fix bug (rhoConst was missing).
 - deal with curvilinear (spherical) grid.

1 C $Header: $
2 C $Name: $
3
4 #include "MOM_COMMON_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: MOM_QUASIHYDROSTATIC
8
9 C !INTERFACE: ==========================================================
10 SUBROUTINE MOM_QUASIHYDROSTATIC(
11 I bi,bj,k,
12 I uFld, vFld,
13 O effectiveBuoy,
14 I myThid )
15
16 C !DESCRIPTION:
17 C *==========================================================*
18 C | o SUBROUTINE MOM_QUASIHYDROSTATIC
19 C | Add Quasi-Hydrostatic Terms to buoyancy
20 C *==========================================================*
21
22 C !USES: ===============================================================
23 IMPLICIT NONE
24
25 C-- == Global data ==
26 #include "SIZE.h"
27 #include "EEPARAMS.h"
28 #include "PARAMS.h"
29 #include "GRID.h"
30
31 C-- == Routine arguments ==
32 C !INPUT VARIABLES: ====================================================
33 C bi,bj :: tile indices
34 C k :: vertical level
35 C uFld :: zonal flow
36 C vFld :: meridional flow
37 C myThid :: my Thread Id number
38 INTEGER bi,bj,k
39 _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
40 _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
41 INTEGER myThid
42
43 C !OUTPUT/MODIFIED VARIABLES: ==========================================
44 C effectiveBuoy :: Density anomaly
45 _RL effectiveBuoy(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
46
47 C !LOCAL VARIABLES: ====================================================
48 C i,j :: loop indices
49 C scalingFactor :: scaling factor (from acceleration to density)
50 INTEGER i,j
51 _RL scalingFactor
52 CEOP
53
54 scalingFactor=rhoConst*gravitySign*recip_gravity
55 C- to reproduce old (wrong) results:
56 c scalingFactor=gravitySign*recip_gravity
57
58 DO j=1-Oly,sNy+Oly-1
59 DO i=1-Olx,sNx+Olx-1
60 effectiveBuoy(i,j)=effectiveBuoy(i,j)
61 & +scalingFactor*
62 & fCoriCos(i,j,bi,bj)*
63 & ( angleCosC(i,j,bi,bj)*0.5 _d 0 *
64 & (uFld(i,j,k,bi,bj)+uFld(i+1,j,k,bi,bj))
65 & -angleSinC(i,j,bi,bj)*0.5 _d 0 *
66 & (vFld(i,j,k,bi,bj)+vFld(i,j+1,k,bi,bj))
67 & )
68 ENDDO
69 ENDDO
70
71 IF (useNHMTerms) THEN
72 DO j=1-Oly,sNy+Oly-1
73 DO i=1-Olx,sNx+Olx-1
74 effectiveBuoy(i,j)=effectiveBuoy(i,j)
75 & +scalingFactor*
76 & ( (uFld( i ,j,k,bi,bj)*uFld( i ,j,k,bi,bj)
77 & +uFld(i+1,j,k,bi,bj)*uFld(i+1,j,k,bi,bj))
78 & + (vFld(i, j ,k,bi,bj)*vFld(i, j ,k,bi,bj)
79 & +vFld(i,j+1,k,bi,bj)*vFld(i,j+1,k,bi,bj))
80 & )* 0.5 _d 0 * recip_rSphere
81 ENDDO
82 ENDDO
83 ENDIF
84
85 RETURN
86 END

  ViewVC Help
Powered by ViewVC 1.1.22