/[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.10 by jmc, Wed Jul 30 03:31:35 2014 UTC revision 1.11 by jmc, Wed Dec 24 19:09:33 2014 UTC
# Line 9  C     !ROUTINE: CALC_VISCOSITY Line 9  C     !ROUTINE: CALC_VISCOSITY
9  C     !INTERFACE:  C     !INTERFACE:
10        SUBROUTINE CALC_VISCOSITY(        SUBROUTINE CALC_VISCOSITY(
11       I           bi,bj, iMin,iMax,jMin,jMax,       I           bi,bj, iMin,iMax,jMin,jMax,
12       O           KappaRU, KappaRV,       O           kappaRU, kappaRV,
13       I           myThid )       I           myThid )
14    
15  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
# Line 32  C     !INPUT/OUTPUT PARAMETERS: Line 32  C     !INPUT/OUTPUT PARAMETERS:
32  C     == Routine arguments ==  C     == Routine arguments ==
33  C     iMin,iMax,jMin,jMax :: Range of points for which calculation  C     iMin,iMax,jMin,jMax :: Range of points for which calculation
34  C     bi,bj   :: current tile indices  C     bi,bj   :: current tile indices
35  C     KappaRU :: Total vertical viscosity for zonal flow.  C     kappaRU :: Total vertical viscosity for zonal flow.
36  C     KappaRV :: Total vertical viscosity for meridional flow.  C     kappaRV :: Total vertical viscosity for meridional flow.
37  C     myThid  :: my Thread Id number  C     myThid  :: my Thread Id number
38        INTEGER iMin,iMax,jMin,jMax        INTEGER iMin,iMax,jMin,jMax
39        INTEGER bi,bj        INTEGER bi,bj
40        _RL KappaRU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL kappaRU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
41        _RL KappaRV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL kappaRV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1)
42        INTEGER myThid        INTEGER myThid
43    
44  C     !LOCAL VARIABLES:  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,k        INTEGER i,j,k
48          INTEGER ki
49  CEOP  CEOP
50    
51        DO k = 1,Nr        DO k = 1,Nr+1
52           ki = MIN(k,Nr)
53    
54         DO j = 1-OLy, sNy+OLy         DO j = 1-OLy, sNy+OLy
55          DO i = 1-OLx, sNx+OLx          DO i = 1-OLx, sNx+OLx
56           KappaRU(i,j,k) = viscArNr(k)           kappaRU(i,j,k) = viscArNr(ki)
57           KappaRV(i,j,k) = viscArNr(k)           kappaRV(i,j,k) = viscArNr(ki)
58          ENDDO          ENDDO
59         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             CALL KPP_CALC_VISC(
64       I        bi,bj, iMin,iMax,jMin,jMax, k,       I        bi,bj, iMin,iMax,jMin,jMax, k,
65       O        KappaRU,KappaRV,       O        kappaRU, kappaRV,
66       I        myThid)       I        myThid)
67           ENDIF
68  #endif  #endif
69    
70  #ifdef ALLOW_PP81  #ifdef ALLOW_PP81
71         IF (usePP81) CALL PP81_CALC_VISC(         IF ( usePP81 .AND. k.LE.Nr ) THEN
72             CALL PP81_CALC_VISC(
73       I        bi,bj, iMin,iMax,jMin,jMax, k,       I        bi,bj, iMin,iMax,jMin,jMax, k,
74       O        KappaRU,KappaRV,       O        kappaRU, kappaRV,
75       I        myThid)       I        myThid)
76           ENDIF
77  #endif  #endif
78    
79  #ifdef ALLOW_KL10  #ifdef ALLOW_KL10
80         IF (useKL10) CALL KL10_CALC_VISC(         IF ( useKL10 .AND. k.LE.Nr ) THEN
81             CALL KL10_CALC_VISC(
82       I        bi,bj, iMin,iMax,jMin,jMax, k,       I        bi,bj, iMin,iMax,jMin,jMax, k,
83       O        KappaRU,KappaRV,       O        kappaRU, kappaRV,
84       I        myThid)       I        myThid)
85           ENDIF
86  #endif  #endif
87    
88  #ifdef ALLOW_MY82  #ifdef ALLOW_MY82
89         IF (useMY82) CALL MY82_CALC_VISC(         IF ( useMY82 .AND. k.LE.Nr ) THEN
90             CALL MY82_CALC_VISC(
91       I        bi,bj, iMin,iMax,jMin,jMax, k,       I        bi,bj, iMin,iMax,jMin,jMax, k,
92       O        KappaRU,KappaRV,       O        kappaRU, kappaRV,
93       I        myThid)       I        myThid)
94           ENDIF
95  #endif  #endif
96    
97  #ifdef ALLOW_GGL90  #ifdef ALLOW_GGL90
98         IF (useGGL90) CALL GGL90_CALC_VISC(         IF ( useGGL90 .AND. k.LE.Nr ) THEN
99             CALL GGL90_CALC_VISC(
100       I        bi,bj, iMin,iMax,jMin,jMax, k,       I        bi,bj, iMin,iMax,jMin,jMax, k,
101       O        KappaRU,KappaRV,       O        kappaRU, kappaRV,
102       I        myThid)       I        myThid)
103           ENDIF
104  #endif  #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  C--   end of k loop
118        ENDDO        ENDDO
119    

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

  ViewVC Help
Powered by ViewVC 1.1.22