/[MITgcm]/MITgcm/model/src/calc_viscosity.F
ViewVC logotype

Diff of /MITgcm/model/src/calc_viscosity.F

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

revision 1.2 by heimbach, Mon Aug 13 23:27:53 2001 UTC revision 1.11 by jmc, Wed Dec 24 19:09:33 2014 UTC
# Line 1  Line 1 
1    C $Header$
2    C $Name$
3    
4    #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    
7  CStartOfInterFace  CBOP
8        SUBROUTINE CALC_VISCOSITY(  C     !ROUTINE: CALC_VISCOSITY
9       I        bi,bj,iMin,iMax,jMin,jMax,K,  C     !INTERFACE:
10       O        KappaRU,KappaRV,        SUBROUTINE CALC_VISCOSITY(
11       I        myThid)       I           bi,bj, iMin,iMax,jMin,jMax,
12         O           kappaRU, kappaRV,
13         I           myThid )
14    
15    C     !DESCRIPTION: \bv
16    C     *==========================================================*
17    C     | SUBROUTINE CALC_VISCOSITY
18    C     | o Calculate net vertical viscosity
19    C     *==========================================================*
20    C     \ev
21    
22  C     /==========================================================\  C     !USES:
 C     | SUBROUTINE CALC_VISCOSITY                                |  
 C     | o Calculate net viscosity                                |  
 C     \==========================================================/  
23        IMPLICIT NONE        IMPLICIT NONE
   
24  C     == GLobal variables ==  C     == GLobal variables ==
25  #include "SIZE.h"  #include "SIZE.h"
26  #include "EEPARAMS.h"  #include "EEPARAMS.h"
# Line 20  C     == GLobal variables == Line 28  C     == GLobal variables ==
28  #include "DYNVARS.h"  #include "DYNVARS.h"
29  #include "GRID.h"  #include "GRID.h"
30    
31    C     !INPUT/OUTPUT PARAMETERS:
32  C     == Routine arguments ==  C     == Routine arguments ==
33  C     bi, bj, iMin, iMax, jMin, jMax - Range of points for which calculation  C     iMin,iMax,jMin,jMax :: Range of points for which calculation
34  C     myThid - Instance number for this innvocation of CALC_COMMON_FACTORS  C     bi,bj   :: current tile indices
35  C  C     kappaRU :: Total vertical viscosity for zonal flow.
36        INTEGER bi,bj,iMin,iMax,jMin,jMax,K  C     kappaRV :: Total vertical viscosity for meridional flow.
37        _RL KappaRU(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)  C     myThid  :: my Thread Id number
38        _RL KappaRV(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        INTEGER iMin,iMax,jMin,jMax
39          INTEGER bi,bj
40          _RL kappaRU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
41          _RL kappaRV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
42        INTEGER myThid        INTEGER myThid
 CEndOfInterface  
43    
44    C     !LOCAL VARIABLES:
45  C     == Local variables ==  C     == Local variables ==
46  C     I, J, K - Loop counters  C     i, j, k :: Loop counters
47        INTEGER i,j        INTEGER i,j,k
48          INTEGER ki
49        DO j=jMin,jMax  CEOP
50         DO i=iMin,iMax  
51          KappaRU(i,j,k) = viscAr        DO k = 1,Nr+1
52           ki = MIN(k,Nr)
53    
54           DO j = 1-OLy, sNy+OLy
55            DO i = 1-OLx, sNx+OLx
56             kappaRU(i,j,k) = viscArNr(ki)
57             kappaRV(i,j,k) = viscArNr(ki)
58            ENDDO
59         ENDDO         ENDDO
       ENDDO  
   
       DO j=jMin,jMax  
        DO i=iMin,iMax  
         KappaRV(i,j,k) = viscAr  
        ENDDO  
       ENDDO  
60    
61  #ifdef ALLOW_KPP  #ifdef ALLOW_KPP
62        IF (useKPP) CALL KPP_CALC_VISC(         IF ( useKPP .AND. k.LE.Nr ) THEN
63       I        bi,bj,iMin+1,iMax,jMin+1,jMax,K,           CALL KPP_CALC_VISC(
64       O        KappaRU,KappaRV,       I        bi,bj, iMin,iMax,jMin,jMax, k,
65         O        kappaRU, kappaRV,
66       I        myThid)       I        myThid)
67           ENDIF
68  #endif  #endif
69    
70    #ifdef ALLOW_PP81
71           IF ( usePP81 .AND. k.LE.Nr ) THEN
72             CALL PP81_CALC_VISC(
73         I        bi,bj, iMin,iMax,jMin,jMax, k,
74         O        kappaRU, kappaRV,
75         I        myThid)
76           ENDIF
77    #endif
78    
79    #ifdef ALLOW_KL10
80           IF ( useKL10 .AND. k.LE.Nr ) THEN
81             CALL KL10_CALC_VISC(
82         I        bi,bj, iMin,iMax,jMin,jMax, k,
83         O        kappaRU, kappaRV,
84         I        myThid)
85           ENDIF
86    #endif
87    
88    #ifdef ALLOW_MY82
89           IF ( useMY82 .AND. k.LE.Nr ) THEN
90             CALL MY82_CALC_VISC(
91         I        bi,bj, iMin,iMax,jMin,jMax, k,
92         O        kappaRU, kappaRV,
93         I        myThid)
94           ENDIF
95    #endif
96    
97    #ifdef ALLOW_GGL90
98           IF ( useGGL90 .AND. k.LE.Nr ) THEN
99             CALL GGL90_CALC_VISC(
100         I        bi,bj, iMin,iMax,jMin,jMax, k,
101         O        kappaRU, kappaRV,
102         I        myThid)
103           ENDIF
104    #endif
105    
106           IF ( k.EQ.Nr+1 .AND.
107         &     ( usePP81 .OR. useKL10 .OR. useMY82 .OR. useGGL90 )
108         &    ) THEN
109            DO j = 1-OLy, sNy+OLy
110             DO i = 1-OLx, sNx+OLx
111              kappaRU(i,j,k) = kappaRU(i,j,ki)
112              kappaRV(i,j,k) = kappaRV(i,j,ki)
113             ENDDO
114            ENDDO
115           ENDIF
116    
117    C--   end of k loop
118          ENDDO
119    
120        RETURN        RETURN
121        END        END

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.22