/[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.5 - (hide annotations) (download)
Thu Oct 8 20:07:18 2009 UTC (14 years, 7 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 jmc 1.5 C $Header: /u/gcmpack/MITgcm/pkg/ggl90/ggl90_calc_visc.F,v 1.4 2009/01/30 02:23:56 dfer Exp $
2 ce107 1.2 C $Name: $
3 dfer 1.4
4 mlosch 1.1 #include "GGL90_OPTIONS.h"
5    
6 jmc 1.5 SUBROUTINE GGL90_CALC_VISC(
7 mlosch 1.1 I bi,bj,iMin,iMax,jMin,jMax,K,
8     U KappaRU,KappaRV,
9     I myThid)
10    
11     CBOP
12 jmc 1.5 C *==========================================================*
13 mlosch 1.1 C | SUBROUTINE GGL90_CALC_VISC |
14     C | o Add contrubution to net viscosity from GGL90 mixing |
15 jmc 1.5 C *==========================================================*
16 mlosch 1.1 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 jmc 1.5 #include "GGL90.h"
25 mlosch 1.1
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 jmc 1.5 CEOP
35 mlosch 1.1
36     #ifdef ALLOW_GGL90
37    
38     C == Local variables ==
39     C I, J, K - Loop counters
40     INTEGER i,j
41 dfer 1.4 _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 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 jmc 1.5 & ) - viscArNr(k) )
65 dfer 1.4 & *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 jmc 1.5 & - viscArNr(k) )
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 jmc 1.5 & ) - viscArNr(k) )
94 dfer 1.4 & *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 jmc 1.5 & - viscArNr(k) )
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