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

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

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


Revision 1.2 - (show annotations) (download)
Wed Nov 6 00:37:11 2013 UTC (12 years, 2 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, checkpoint65, HEAD
Changes since 1.1: +3 -1 lines
empty routine when ALLOW_SMAG_3D is not defined

1 C $Header: /u/gcmpack/MITgcm/pkg/mom_common/mom_uv_smag_3d.F,v 1.1 2013/11/05 13:33:07 jmc Exp $
2 C $Name: $
3
4 #include "MOM_COMMON_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP
8 C !ROUTINE: MOM_UV_SMAG_3D
9
10 C !INTERFACE:
11 SUBROUTINE MOM_UV_SMAG_3D(
12 I str11, str22, str12, str13, str23,
13 I viscAh3d_00, viscAh3d_12,
14 I viscAh3d_13, viscAh3d_23,
15 c I hFacZ,
16 O uDissip, vDissip,
17 I iMin,iMax,jMin,jMax, k, bi, bj, myThid )
18
19 C !DESCRIPTION:
20
21 C !USES:
22 IMPLICIT NONE
23
24 C == Global variables ==
25 #include "SIZE.h"
26 #include "EEPARAMS.h"
27 #include "GRID.h"
28 #include "PARAMS.h"
29
30 C !INPUT PARAMETERS:
31 C iMin,iMax :: 1rst index loop ranges
32 C jMin,jMax :: 2nd index loop ranges
33 _RL str11(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
34 _RL str22(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
35 _RL str12(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
36 _RL str13(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
37 _RL str23(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
38 c _RS hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
39 _RL viscAh3d_00(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
40 _RL viscAh3d_12(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
41 _RL viscAh3d_13(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
42 _RL viscAh3d_23(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
43 INTEGER iMin,iMax, jMin,jMax
44 INTEGER k, bi, bj
45 INTEGER myThid
46
47 C !OUTPUT PARAMETERS:
48 _RL uDissip(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
49 _RL vDissip(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
50 CEOP
51
52 #ifdef ALLOW_SMAG_3D
53 C !LOCAL VARIABLES:
54 INTEGER i,j
55 INTEGER km1, kp1
56 _RL maskM1, maskP1
57
58 km1 = MAX( 1,k-1)
59 kp1 = MIN(Nr,k+1)
60 maskM1 = 1.
61 maskP1 = 1.
62 IF ( k.LE.1 ) maskM1 = 0.
63 IF ( k.GE.Nr ) maskP1 = 0.
64
65 C - Laplacian and bi-harmonic terms
66 c IF (harmonic) THEN
67
68 C- note: free-slip @ bottom is commented out
69
70 C- use simple (momentum conserving) scaling
71 C (but not conserving angular momentum)
72
73 DO j= jMin,jMax
74 DO i= iMin,iMax
75 uDissip(i,j) = recip_rAw(i,j,bi,bj)*(
76 & ( viscAh3d_00( i , j , k )*str11( i , j , k )
77 & *dyF( i , j ,bi,bj)
78 & -viscAh3d_00(i-1, j , k )*str11(i-1, j , k )
79 & *dyF(i-1, j ,bi,bj)
80 & )
81 & +( viscAh3d_12( i ,j+1, k )*str12( i ,j+1, k )
82 & *dxV( i ,j+1,bi,bj)
83 & -viscAh3d_12( i , j , k )*str12( i , j , k )
84 & *dxV( i , j ,bi,bj)
85 & ) )
86 & + recip_drF( k )
87 & *( viscAh3d_13( i , j ,k+1)*str13( i , j ,k+1)
88 c & *maskW(i,j,kp1,bi,bj)*maskP1
89 & -viscAh3d_13( i , j , k )*str13( i , j , k )
90 c & *maskW(i,j,km1,bi,bj)*maskM1
91 & )*rkSign*recip_hFacW(i,j,k,bi,bj)
92 ENDDO
93 ENDDO
94
95 DO j= jMin,jMax
96 DO i= iMin,iMax
97 vDissip(i,j) = recip_rAs(i,j,bi,bj)*(
98 & ( viscAh3d_12(i+1, j , k )*str12(i+1, j ,k)
99 & *dyU(i+1, j ,bi,bj)
100 & -viscAh3d_12( i , j , k )*str12( i , j ,k)
101 & *dyU( i , j ,bi,bj)
102 & )
103 & +( viscAh3d_00( i , j , k )*str22( i , j ,k)
104 & *dxF( i , j ,bi,bj)
105 & -viscAh3d_00( i ,j-1, k )*str22( i ,j-1,k)
106 & *dxF( i ,j-1,bi,bj)
107 & ) )
108 & + recip_drF( k )
109 & *( viscAh3d_23( i , j ,k+1)*str23( i , j ,k+1)
110 c & *maskS(i,j,kp1,bi,bj)*maskP1
111 & -viscAh3d_23( i , j , k )*str23( i , j , k )
112 c & *maskS(i,j,km1,bi,bj)*maskM1
113 & )*rkSign*recip_hFacS(i,j,k,bi,bj)
114
115 ENDDO
116 ENDDO
117
118 c ENDIF
119
120 c IF (biharmonic) THEN
121 c STOP 'MOM_UV_SMAG_3D: BIHARMONIC NOT ALLOWED WITH SMAG_3D'
122 c ENDIF
123
124 #endif /* ALLOW_SMAG_3D */
125 RETURN
126 END

  ViewVC Help
Powered by ViewVC 1.1.22