/[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.5 - (show annotations) (download)
Thu Oct 8 20:07:18 2009 UTC (14 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62i, checkpoint62h, checkpoint61w, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.4: +10 -10 lines
modif for vertical profile of background viscosity

1 C $Header: /u/gcmpack/MITgcm/pkg/ggl90/ggl90_calc_visc.F,v 1.4 2009/01/30 02:23:56 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 #include "GGL90.h"
25
26 C == Routine arguments ==
27 C bi, bj, iMin, iMax, jMin, jMax - Range of points for which calculation
28 C myThid - Instance number for this innvocation of GGL90_CALC_VISC
29 C
30 INTEGER bi,bj,iMin,iMax,jMin,jMax,K
31 _RL KappaRU(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
32 _RL KappaRV(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
33 INTEGER myThid
34 CEOP
35
36 #ifdef ALLOW_GGL90
37
38 C == Local variables ==
39 C I, J, K - Loop counters
40 INTEGER i,j
41 _RL p4, p8, p16
42
43 p4=0.25 _d 0
44 p8=0.125 _d 0
45 p16=0.0625 _d 0
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 & ) - viscArNr(k) )
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 & - viscArNr(k) )
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 & ) - viscArNr(k) )
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 & - viscArNr(k) )
101 #endif
102 ENDDO
103 ENDDO
104
105 #endif /* ALLOW_GGL90 */
106
107 RETURN
108 END

  ViewVC Help
Powered by ViewVC 1.1.22