/[MITgcm]/MITgcm/pkg/my82/my82_calc.F
ViewVC logotype

Diff of /MITgcm/pkg/my82/my82_calc.F

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

revision 1.4 by mlosch, Mon May 30 07:41:45 2005 UTC revision 1.5 by jmc, Tue Jan 20 00:26:04 2009 UTC
# Line 31  C !USES: =============================== Line 31  C !USES: ===============================
31  #include "SIZE.h"  #include "SIZE.h"
32  #include "EEPARAMS.h"  #include "EEPARAMS.h"
33  #include "PARAMS.h"  #include "PARAMS.h"
34  #include "DYNVARS.h"  c#include "DYNVARS.h"
35  #include "MY82.h"  #include "MY82.h"
36  #include "FFIELDS.h"  c#include "FFIELDS.h"
37  #include "GRID.h"  #include "GRID.h"
 #ifdef ALLOW_AUTODIFF_TAMC  
 #include "tamc.h"  
 #include "tamc_keys.h"  
 #else /* ALLOW_AUTODIFF_TAMC */  
       integer ikppkey  
 #endif /* ALLOW_AUTODIFF_TAMC */  
38    
39  C !INPUT PARAMETERS: ===================================================  C !INPUT PARAMETERS: ===================================================
40  c Routine arguments  c Routine arguments
# Line 48  c     bi, bj - array indices on which to Line 42  c     bi, bj - array indices on which to
42  c     myTime - Current time in simulation  c     myTime - Current time in simulation
43    
44        INTEGER bi, bj        INTEGER bi, bj
       INTEGER myThid  
45        _RL     myTime        _RL     myTime
46          INTEGER myThid
47    
48  #ifdef ALLOW_MY82  #ifdef ALLOW_MY82
49    
# Line 80  CEOP Line 74  CEOP
74  C     Initialize local fields  C     Initialize local fields
75        DO J=1-Oly,sNy+Oly        DO J=1-Oly,sNy+Oly
76         DO I=1-Olx,sNx+Olx         DO I=1-Olx,sNx+Olx
77          GH(I,J) = 0. _d 0          GH(I,J) = 0. _d 0
78          GM(I,J) = 0. _d 0          GM(I,J) = 0. _d 0
79         ENDDO         ENDDO
80        ENDDO        ENDDO
81        DO K = 1, Nr        DO K = 1, Nr
# Line 91  C     Initialize local fields Line 85  C     Initialize local fields
85           SM(I,J,K)  = 0. _d 0           SM(I,J,K)  = 0. _d 0
86           tke(I,J,K) = 0. _d 0           tke(I,J,K) = 0. _d 0
87          ENDDO          ENDDO
88         ENDDO             ENDDO
89        ENDDO        ENDDO
90  C     first k-loop  C     first k-loop
91  C     compute turbulent kinetic energy from richardson number  C     compute turbulent kinetic energy from richardson number
92        DO K = 2, Nr        DO K = 2, Nr
93         CALL MY82_RI_NUMBER(         CALL MY82_RI_NUMBER(
94       I      bi, bj, K, iMin, iMax, jMin, jMax,       I      bi, bj, K, iMin, iMax, jMin, jMax,
95       O      RiNumber, GH, GM,       O      RiNumber, GH, GM,
96       I      myTime, myThid )       I      myTime, myThid )
97         DO J=jMin,jMax         DO J=jMin,jMax
# Line 106  C     compute turbulent kinetic energy f Line 100  C     compute turbulent kinetic energy f
100           btmp   = beta1+beta4*RiTmp           btmp   = beta1+beta4*RiTmp
101  C     M. Satoh, Atmospheric Circulation Dynamics and General  C     M. Satoh, Atmospheric Circulation Dynamics and General
102  C     Circulation models, Springer, 2004: Eq. (11.3.60)  C     Circulation models, Springer, 2004: Eq. (11.3.60)
103           RiFlux = ( btmp - SQRT(btmp*btmp - 4.*beta2*beta3*RiTmp) )           RiFlux =( btmp - SQRT(btmp*btmp - 4. _d 0 *beta2*beta3*RiTmp) )
104       &        /(2.*beta2)       &        /(2. _d 0*beta2)
105  C     M. Satoh: Eq. (11.3.58)  C     M. Satoh: Eq. (11.3.58)
106           SHtmp       = (alpha1-alpha2*RiFlux)/(1.-RiFlux)           SHtmp       = (alpha1-alpha2*RiFlux)/(1. _d 0-RiFlux)
107           SH(I,J,K)   = SHtmp           SH(I,J,K)   = SHtmp
108           SM(I,J,K)   = SHtmp*(beta1-beta2*RiFlux)/(beta3-beta4*RiFlux)           SM(I,J,K)   = SHtmp*(beta1-beta2*RiFlux)/(beta3-beta4*RiFlux)
109  C     M. Satoh: Eq. (11.3.53/55)  C     M. Satoh: Eq. (11.3.53/55)
# Line 123  CML     &      SH(I,J,K), SM(I,J,K), GH( Line 117  CML     &      SH(I,J,K), SM(I,J,K), GH(
117          ENDDO          ENDDO
118         ENDDO         ENDDO
119  C     end of first k-loop  C     end of first k-loop
120        ENDDO            ENDDO
121    
122  C     re-initilialize GM and GH for abuse, they no longer have  C     re-initilialize GM and GH for abuse, they no longer have
123  C     the meaning of shear and negative  buoyancy frequency  C     the meaning of shear and negative  buoyancy frequency
124        DO J=jMin,jMax        DO J=jMin,jMax
125         DO I=iMin,iMax         DO I=iMin,iMax
# Line 141  C     begin second k-loop Line 135  C     begin second k-loop
135         DO J=jMin,jMax         DO J=jMin,jMax
136          DO I=iMin,iMax          DO I=iMin,iMax
137           GM(I,J) = GM(I,J) + tke(I,J,K)*rF(K)           GM(I,J) = GM(I,J) + tke(I,J,K)*rF(K)
138           GH(I,J) = GH(I,J) + tke(I,J,K)                 GH(I,J) = GH(I,J) + tke(I,J,K)
139          ENDDO          ENDDO
140         ENDDO         ENDDO
141  C     end of second k-loop  C     end of second k-loop
# Line 155  C     compute boundary length scale MYhb Line 149  C     compute boundary length scale MYhb
149           MYhbl(I,J,bi,bj) = -GM(I,J)/GH(I,J)*MYhblScale           MYhbl(I,J,bi,bj) = -GM(I,J)/GH(I,J)*MYhblScale
150          ENDIF          ENDIF
151         ENDDO         ENDDO
152        ENDDO        ENDDO
153  C     begin third k-loop  C     begin third k-loop
154        DO K = 1, Nr        DO K = 1, Nr
155  C     integrate tke to find integral length scale  C     integrate tke to find integral length scale
# Line 175  C     Set a maximum and mask land point Line 169  C     Set a maximum and mask land point
169           MYdiffKr(I,J,K,bi,bj) = MIN(MYdiffKr(I,J,K,bi,bj),MYdiffMax)           MYdiffKr(I,J,K,bi,bj) = MIN(MYdiffKr(I,J,K,bi,bj),MYdiffMax)
170       &        * maskC(I,J,K,bi,bj)       &        * maskC(I,J,K,bi,bj)
171          ENDDO          ENDDO
172         ENDDO         ENDDO
173  C     end third k-loop  C     end third k-loop
174        ENDDO            ENDDO
175    
176  #endif /* ALLOW_MY82 */  #endif /* ALLOW_MY82 */
177    
178        RETURN        RETURN
179        END        END
   

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

  ViewVC Help
Powered by ViewVC 1.1.22