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

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

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


Revision 1.4 - (hide 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 dfer 1.4 C $Header: /u/gcmpack/MITgcm/pkg/ggl90/ggl90_calc_visc.F,v 1.3 2008/10/10 21:18:10 dfer Exp $
2 ce107 1.2 C $Name: $
3 dfer 1.4
4 mlosch 1.1 #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 dfer 1.4 _RL p4, p8, p16
41    
42     p4=0.25 _d 0
43     p8=0.125 _d 0
44     p16=0.0625 _d 0
45 mlosch 1.1 CEOP
46 dfer 1.4
47 mlosch 1.1 DO j=jMin,jMax
48     DO i=iMin,iMax
49 dfer 1.4 #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 dfer 1.3 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 dfer 1.4 #endif
73 mlosch 1.1 ENDDO
74     ENDDO
75    
76     DO j=jMin,jMax
77     DO i=iMin,iMax
78 dfer 1.4 #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 dfer 1.3 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 dfer 1.4 #endif
102 mlosch 1.1 ENDDO
103     ENDDO
104    
105     #endif /* ALLOW_GGL90 */
106    
107     RETURN
108     END

  ViewVC Help
Powered by ViewVC 1.1.22