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

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

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

revision 1.3 by dfer, Fri Oct 10 21:18:10 2008 UTC revision 1.4 by dfer, Fri Jan 30 02:23:56 2009 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4  #include "GGL90_OPTIONS.h"  #include "GGL90_OPTIONS.h"
5    
6        SUBROUTINE GGL90_CALC_VISC(        SUBROUTINE GGL90_CALC_VISC(
# Line 36  C Line 37  C
37  C     == Local variables ==  C     == Local variables ==
38  C     I, J, K - Loop counters  C     I, J, K - Loop counters
39        INTEGER i,j        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  CEOP
46    
47        DO j=jMin,jMax        DO j=jMin,jMax
48         DO i=iMin,iMax         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) *          KappaRU(i,j,k) = KappaRU(i,j,k) + _maskW(i,j,k,bi,bj) *
69       &                   (.5 _d 0*(GGL90viscAr(i,j,k,bi,bj)       &                   (.5 _d 0*(GGL90viscAr(i,j,k,bi,bj)
70       &                            +GGL90viscAr(i-1,j,k,bi,bj))       &                            +GGL90viscAr(i-1,j,k,bi,bj))
71       &                    -viscAr)       &                    -viscAr)
72    #endif
73         ENDDO         ENDDO
74        ENDDO        ENDDO
75    
76        DO j=jMin,jMax        DO j=jMin,jMax
77         DO i=iMin,iMax         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) *          KappaRV(i,j,k) = KappaRV(i,j,k) + _maskS(i,j,k,bi,bj) *
98       &                   (.5 _d 0*(GGL90viscAr(i,j,k,bi,bj)       &                   (.5 _d 0*(GGL90viscAr(i,j,k,bi,bj)
99       &                            +GGL90viscAr(i,j-1,k,bi,bj))       &                            +GGL90viscAr(i,j-1,k,bi,bj))
100       &                    -viscAr)       &                    -viscAr)
101    #endif
102         ENDDO         ENDDO
103        ENDDO        ENDDO
104    

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22