/[MITgcm]/MITgcm/pkg/ggl90/ggl90_calc_visc.F
ViewVC logotype

Contents of /MITgcm/pkg/ggl90/ggl90_calc_visc.F

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


Revision 1.4 - (show annotations) (download)
Fri Jan 30 02:23:56 2009 UTC (15 years, 3 months ago) by dfer
Branch: MAIN
CVS Tags: checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61i, checkpoint61v, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q
Changes since 1.3: +48 -1 lines
A few adjustments

1 C $Header: /u/gcmpack/MITgcm/pkg/ggl90/ggl90_calc_visc.F,v 1.3 2008/10/10 21:18:10 dfer Exp $
2 C $Name: $
3
4 #include "GGL90_OPTIONS.h"
5
6 SUBROUTINE GGL90_CALC_VISC(
7 I bi,bj,iMin,iMax,jMin,jMax,K,
8 U KappaRU,KappaRV,
9 I myThid)
10
11 CBOP
12 C /==========================================================\
13 C | SUBROUTINE GGL90_CALC_VISC |
14 C | o Add contrubution to net viscosity from GGL90 mixing |
15 C \==========================================================/
16 IMPLICIT NONE
17
18 C == GLobal variables ==
19 #include "SIZE.h"
20 #include "EEPARAMS.h"
21 #include "PARAMS.h"
22 #include "DYNVARS.h"
23 #include "GRID.h"
24
25 C == Routine arguments ==
26 C bi, bj, iMin, iMax, jMin, jMax - Range of points for which calculation
27 C myThid - Instance number for this innvocation of GGL90_CALC_VISC
28 C
29 INTEGER bi,bj,iMin,iMax,jMin,jMax,K
30 _RL KappaRU(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
31 _RL KappaRV(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
32 INTEGER myThid
33
34 #ifdef ALLOW_GGL90
35 #include "GGL90.h"
36
37 C == Local variables ==
38 C I, J, K - Loop counters
39 INTEGER i,j
40 _RL p4, p8, p16
41
42 p4=0.25 _d 0
43 p8=0.125 _d 0
44 p16=0.0625 _d 0
45 CEOP
46
47 DO j=jMin,jMax
48 DO i=iMin,iMax
49 #ifdef ALLOW_GGL90_SMOOTH
50 KappaRU(i,j,k) = KappaRU(i,j,k) +
51 & ((
52 & p4 *(GGL90viscAr(i ,j ,k,bi,bj) * mskCor(i ,j ,bi,bj)
53 & +GGL90viscAr(i-1,j ,k,bi,bj) * mskCor(i-1,j ,bi,bj))
54 & +p8 *(GGL90viscAr(i-1,j-1,k,bi,bj) * mskCor(i-1,j-1,bi,bj)
55 & +GGL90viscAr(i-1,j+1,k,bi,bj) * mskCor(i-1,j+1,bi,bj)
56 & +GGL90viscAr(i ,j-1,k,bi,bj) * mskCor(i ,j-1,bi,bj)
57 & +GGL90viscAr(i ,j+1,k,bi,bj) * mskCor(i ,j+1,bi,bj))
58 & )
59 & /(p4 * 2. _d 0
60 & +p8 *( maskC(i-1,j-1,k,bi,bj) * mskCor(i-1,j-1,bi,bj)
61 & + maskC(i-1,j+1,k,bi,bj) * mskCor(i-1,j+1,bi,bj)
62 & + maskC(i ,j-1,k,bi,bj) * mskCor(i ,j-1,bi,bj)
63 & + maskC(i ,j+1,k,bi,bj) * mskCor(i ,j+1,bi,bj))
64 & ) - viscAr )
65 & *maskC(i ,j,k,bi,bj)*mskCor(i ,j,bi,bj)
66 & *maskC(i-1,j,k,bi,bj)*mskCor(i-1,j,bi,bj)
67 #else
68 KappaRU(i,j,k) = KappaRU(i,j,k) + _maskW(i,j,k,bi,bj) *
69 & (.5 _d 0*(GGL90viscAr(i,j,k,bi,bj)
70 & +GGL90viscAr(i-1,j,k,bi,bj))
71 & -viscAr)
72 #endif
73 ENDDO
74 ENDDO
75
76 DO j=jMin,jMax
77 DO i=iMin,iMax
78 #ifdef ALLOW_GGL90_SMOOTH
79 KappaRV(i,j,k) = KappaRV(i,j,k) +
80 & ((
81 & p4 *(GGL90viscAr(i ,j ,k,bi,bj) * mskCor(i ,j ,bi,bj)
82 & +GGL90viscAr(i ,j-1,k,bi,bj) * mskCor(i ,j-1,bi,bj))
83 & +p8 *(GGL90viscAr(i-1,j ,k,bi,bj) * mskCor(i-1,j ,bi,bj)
84 & +GGL90viscAr(i-1,j-1,k,bi,bj) * mskCor(i-1,j-1,bi,bj)
85 & +GGL90viscAr(i+1,j ,k,bi,bj) * mskCor(i+1,j ,bi,bj)
86 & +GGL90viscAr(i+1,j-1,k,bi,bj) * mskCor(i+1,j-1,bi,bj))
87 & )
88 & /(p4 * 2. _d 0
89 & +p8 *( maskC(i-1,j ,k,bi,bj) * mskCor(i-1,j ,bi,bj)
90 & + maskC(i-1,j-1,k,bi,bj) * mskCor(i-1,j-1,bi,bj)
91 & + maskC(i+1,j ,k,bi,bj) * mskCor(i+1,j ,bi,bj)
92 & + maskC(i+1,j-1,k,bi,bj) * mskCor(i+1,j-1,bi,bj))
93 & ) - viscAr )
94 & *maskC(i,j ,k,bi,bj)*mskCor(i,j ,bi,bj)
95 & *maskC(i,j-1,k,bi,bj)*mskCor(i,j-1,bi,bj)
96 #else
97 KappaRV(i,j,k) = KappaRV(i,j,k) + _maskS(i,j,k,bi,bj) *
98 & (.5 _d 0*(GGL90viscAr(i,j,k,bi,bj)
99 & +GGL90viscAr(i,j-1,k,bi,bj))
100 & -viscAr)
101 #endif
102 ENDDO
103 ENDDO
104
105 #endif /* ALLOW_GGL90 */
106
107 RETURN
108 END

  ViewVC Help
Powered by ViewVC 1.1.22