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

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

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

revision 1.2 by jmc, Thu Oct 28 00:30:57 2004 UTC revision 1.9 by dimitri, Sat Apr 14 18:32:32 2007 UTC
# Line 31  C     == GLobal variables == Line 31  C     == GLobal variables ==
31  #include "PARAMS.h"  #include "PARAMS.h"
32  #include "DYNVARS.h"  #include "DYNVARS.h"
33  #include "GRID.h"  #include "GRID.h"
34    #ifdef ALLOW_GENERIC_ADVDIFF
35  #include "GAD.h"  #include "GAD.h"
36    #endif
37  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
38  #include "PTRACERS_SIZE.h"  #include "PTRACERS_SIZE.h"
39  #include "PTRACERS.h"  #include "PTRACERS.h"
# Line 53  C     KappaRTr   :: Net diffusivity for Line 55  C     KappaRTr   :: Net diffusivity for
55        _RL KappaRTr(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL KappaRTr(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
56        INTEGER myThid        INTEGER myThid
57    
58    #ifdef ALLOW_GENERIC_ADVDIFF
59  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
60  C     == Local variables ==  C     == Local variables ==
61  C     i, j, k    :: Loop counters  C     i, j, k    :: Loop counters
62  C     iTr        :: passive tracer index  C     iTr        :: passive tracer index
63  C     msgBuf     :: message buffer  C     msgBuf     :: message buffer
64        INTEGER i,j,k        INTEGER i,j,k
65        INTEGER iTr        _RL KbryanLewis79, KbryanLewisEQ
       _RL KbryanLewis79  
66        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
67    #ifdef ALLOW_PTRACERS
68          INTEGER iTr
69    #endif
70  CEOP  CEOP
71    
72        IF ( trIdentity.EQ.GAD_TEMPERATURE) THEN        IF ( trIdentity.EQ.GAD_TEMPERATURE) THEN
73    
74         DO k = 1,Nr         DO k = 1,Nr
75          KbryanLewis79=diffKrBL79surf+(diffKrBL79deep-diffKrBL79surf)          KbryanLewis79=diffKrBL79surf+(diffKrBL79deep-diffKrBL79surf)
76       &  *( atan( -( rF(k)-diffKrBL79Ho )/diffKrBL79scl )/PI+0.5 _d 0)       &   *( atan( -( rF(k)-diffKrBL79Ho )/diffKrBL79scl )/PI+0.5 _d 0)
77    #ifdef ALLOW_BL79_LAT_VARY
78            KbryanLewisEQ=diffKrBLEQsurf+(diffKrBLEQdeep-diffKrBLEQsurf)
79         &   *( atan( -( rF(k)-diffKrBLEQHo )/diffKrBLEQscl )/PI+0.5 _d 0)
80    #endif
81          DO j = 1-Oly,sNy+Oly          DO j = 1-Oly,sNy+Oly
82           DO i = 1-Olx,sNx+Olx           DO i = 1-Olx,sNx+Olx
83            KappaRTr(i,j,k) =            KappaRTr(i,j,k) =
84       &         IVDConvCount(i,j,k,bi,bj)*ivdc_kappa       &         IVDConvCount(i,j,k,bi,bj)*ivdc_kappa
85  #if (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL))  #if (defined ALLOW_3D_DIFFKR || \
86         (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL)))
87       &       + diffKr(i,j,k,bi,bj)       &       + diffKr(i,j,k,bi,bj)
88  #else  #else
89       &       + diffKrNrT(k)       &       + diffKrNrT(k)
90  #endif  #endif
91       &       + KbryanLewis79       &       + KbryanLewis79
92    #ifdef ALLOW_BL79_LAT_VARY
93         &       + (KbryanLewisEQ-KbryanLewis79)*BL79LatArray(i,j,bi,bj)
94    #endif
95           ENDDO           ENDDO
96          ENDDO          ENDDO
97         ENDDO         ENDDO
# Line 87  CEOP Line 100  CEOP
100    
101         DO k = 1,Nr         DO k = 1,Nr
102          KbryanLewis79=diffKrBL79surf+(diffKrBL79deep-diffKrBL79surf)          KbryanLewis79=diffKrBL79surf+(diffKrBL79deep-diffKrBL79surf)
103       &  *( atan( -( rF(k)-diffKrBL79Ho )/diffKrBL79scl )/PI+0.5 _d 0)       &   *( atan( -( rF(k)-diffKrBL79Ho )/diffKrBL79scl )/PI+0.5 _d 0)
104    #ifdef ALLOW_BL79_LAT_VARY
105            KbryanLewisEQ=diffKrBLEQsurf+(diffKrBLEQdeep-diffKrBLEQsurf)
106         &   *( atan( -( rF(k)-diffKrBLEQHo )/diffKrBLEQscl )/PI+0.5 _d 0)
107    #endif
108          DO j = 1-Oly, sNy+Oly          DO j = 1-Oly, sNy+Oly
109           DO i = 1-Olx, sNx+Olx           DO i = 1-Olx, sNx+Olx
110            KappaRTr(i,j,k) =            KappaRTr(i,j,k) =
111       &         IVDConvCount(i,j,k,bi,bj)*ivdc_kappa       &         IVDConvCount(i,j,k,bi,bj)*ivdc_kappa
112  #if (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL))  #if (defined ALLOW_3D_DIFFKR || \
113         (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL)))
114       &       + diffKr(i,j,k,bi,bj)       &       + diffKr(i,j,k,bi,bj)
115  #else  #else
116       &       + diffKrNrS(k)       &       + diffKrNrS(k)
117  #endif  #endif
118       &       + KbryanLewis79       &       + KbryanLewis79
119    #ifdef ALLOW_BL79_LAT_VARY
120         &       + (KbryanLewisEQ-KbryanLewis79)*BL79LatArray(i,j,bi,bj)
121    #endif
122           ENDDO           ENDDO
123          ENDDO          ENDDO
124         ENDDO         ENDDO
# Line 109  CEOP Line 130  CEOP
130         iTr = trIdentity - GAD_TR1 + 1         iTr = trIdentity - GAD_TR1 + 1
131         DO k = 1,Nr         DO k = 1,Nr
132          KbryanLewis79=diffKrBL79surf+(diffKrBL79deep-diffKrBL79surf)          KbryanLewis79=diffKrBL79surf+(diffKrBL79deep-diffKrBL79surf)
133       &  *( atan( -( rF(k)-diffKrBL79Ho )/diffKrBL79scl )/PI+0.5 _d 0)       &   *( atan( -( rF(k)-diffKrBL79Ho )/diffKrBL79scl )/PI+0.5 _d 0)
134    #ifdef ALLOW_BL79_LAT_VARY
135            KbryanLewisEQ=diffKrBLEQsurf+(diffKrBLEQdeep-diffKrBLEQsurf)
136         &   *( atan( -( rF(k)-diffKrBLEQHo )/diffKrBLEQscl )/PI+0.5 _d 0)
137    #endif
138          DO j = 1-Oly, sNy+Oly          DO j = 1-Oly, sNy+Oly
139           DO i = 1-Olx, sNx+Olx           DO i = 1-Olx, sNx+Olx
140            KappaRTr(i,j,k) =            KappaRTr(i,j,k) =
141       &         IVDConvCount(i,j,k,bi,bj)*ivdc_kappa       &         IVDConvCount(i,j,k,bi,bj)*ivdc_kappa
142  #if (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL))  #if (defined ALLOW_3D_DIFFKR || \
143         (defined (ALLOW_AUTODIFF_TAMC) && defined (ALLOW_DIFFKR_CONTROL)))
144       &       + diffKr(i,j,k,bi,bj)       &       + diffKr(i,j,k,bi,bj)
145  #else  #else
146       &       + PTRACERS_diffKrNr(k,iTr)       &       + PTRACERS_diffKrNr(k,iTr)
147  #endif  #endif
148       &       + KbryanLewis79       &       + KbryanLewis79
149    #ifdef ALLOW_BL79_LAT_VARY
150         &       + (KbryanLewisEQ-KbryanLewis79)*BL79LatArray(i,j,bi,bj)
151    #endif
152           ENDDO           ENDDO
153          ENDDO          ENDDO
154         ENDDO         ENDDO
# Line 195  c       KappaRTr(i,j,k) = maskUp(i,j)*Ka Line 224  c       KappaRTr(i,j,k) = maskUp(i,j)*Ka
224  c      ENDDO  c      ENDDO
225  c     ENDDO  c     ENDDO
226    
227    #endif /* ALLOW_GENERIC_ADVDIFF */
228    
229        RETURN        RETURN
230        END        END

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

  ViewVC Help
Powered by ViewVC 1.1.22