/[MITgcm]/MITgcm/pkg/gmredi/gmredi_calc_psi_b.F
ViewVC logotype

Diff of /MITgcm/pkg/gmredi/gmredi_calc_psi_b.F

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

revision 1.5 by heimbach, Tue Jan 21 19:34:12 2003 UTC revision 1.6 by jmc, Sun Nov 21 15:57:17 2004 UTC
# Line 7  CStartOfInterface Line 7  CStartOfInterface
7        SUBROUTINE GMREDI_CALC_PSI_B(        SUBROUTINE GMREDI_CALC_PSI_B(
8       I             bi, bj, iMin, iMax, jMin, jMax,       I             bi, bj, iMin, iMax, jMin, jMax,
9       I             sigmaX, sigmaY, sigmaR,       I             sigmaX, sigmaY, sigmaR,
10         I             ldd97_LrhoW, ldd97_LrhoS,
11       I             myThid )       I             myThid )
12  C     /==========================================================\  C     /==========================================================\
13  C     | SUBROUTINE GMREDI_CALC_PSI_B                             |  C     | SUBROUTINE GMREDI_CALC_PSI_B                             |
# Line 34  C Line 35  C
35        _RL sigmaX(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL sigmaX(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
36        _RL sigmaY(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL sigmaY(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
37        _RL sigmaR(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL sigmaR(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)
38          _RL ldd97_LrhoW(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
39          _RL ldd97_LrhoS(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
40        INTEGER bi,bj,iMin,iMax,jMin,jMax        INTEGER bi,bj,iMin,iMax,jMin,jMax
41        INTEGER myThid        INTEGER myThid
42  CEndOfInterface  CEndOfInterface
# Line 86  CADJ STORE VisbeckK(:,:,bi,bj) = comlev1 Line 89  CADJ STORE VisbeckK(:,:,bi,bj) = comlev1
89         ENDDO         ENDDO
90  #endif  #endif
91    
       DO j=1-Oly+1,sNy+Oly-1  
        DO i=1-Olx+1,sNx+Olx-1  
   
92  C      Gradient of Sigma below U and V points  C      Gradient of Sigma below U and V points
93          SlopeX(i,j)=op5*( sigmaX(i,j,km1)+sigmaX(i,j,k) )         DO j=1-Oly,sNy+Oly
94       &                 *maskW(i,j,k,bi,bj)          DO i=1-Olx+1,sNx+Olx
95          dSigmaDrW(i,j)=op5*( sigmaR(i-1,j,k)+sigmaR(i,j,k) )           SlopeX(i,j)=op5*( sigmaX(i,j,km1)+sigmaX(i,j,k) )
96       &                 *maskW(i,j,k,bi,bj)       &                  *maskW(i,j,k,bi,bj)
97          SlopeY(i,j)=op5*( sigmaY(i,j,km1)+sigmaY(i,j,k) )           dSigmaDrW(i,j)=op5*( sigmaR(i-1,j,k)+sigmaR(i,j,k) )
98       &                 *maskS(i,j,k,bi,bj)       &                  *maskW(i,j,k,bi,bj)
99          dSigmaDrS(i,j)=op5*( sigmaR(i,j-1,k)+sigmaR(i,j,k) )          ENDDO
100       &                 *maskS(i,j,k,bi,bj)         ENDDO
101           DO j=1-Oly+1,sNy+Oly
102         ENDDO          DO i=1-Olx,sNx+Olx
103        ENDDO           SlopeY(i,j)=op5*( sigmaY(i,j,km1)+sigmaY(i,j,k) )
104         &                  *maskS(i,j,k,bi,bj)
105  C     Calculate slopes , taper and/or clip           dSigmaDrS(i,j)=op5*( sigmaR(i,j-1,k)+sigmaR(i,j,k) )
106        CALL GMREDI_SLOPE_PSI(       &                  *maskS(i,j,k,bi,bj)
107       I             dSigmaDrW, dSigmaDrS,          ENDDO
108       I             rF(K),K,         ENDDO
109       U             SlopeX, SlopeY,  
110    C      Calculate slopes , taper and/or clip
111           CALL GMREDI_SLOPE_PSI(
112       O             taperX, taperY,       O             taperX, taperY,
113         U             SlopeX, SlopeY,
114         U             dSigmaDrW, dSigmaDrS,
115         I             ldd97_LrhoW, ldd97_LrhoS, rF(k), k,
116       I             bi, bj, myThid )       I             bi, bj, myThid )
117    
118  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
# Line 117  CADJ STORE taperX(:,:)       = comlev1_b Line 122  CADJ STORE taperX(:,:)       = comlev1_b
122  CADJ STORE taperY(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE taperY(:,:)       = comlev1_bibj_k, key=kkey, byte=isbyte
123  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
124    
       DO j=1-Oly+1,sNy+Oly-1  
        DO i=1-Olx+1,sNx+Olx-1  
   
125  C-  Compute the 2 stream-function Components ( GM bolus vel.)  C-  Compute the 2 stream-function Components ( GM bolus vel.)
126          GM_PsiX(i,j,k,bi,bj) = SlopeX(i,j)*taperX(i,j)         DO j=1-Oly,sNy+Oly
127       &   *( GM_background_K          DO i=1-Olx+1,sNx+Olx
128              GM_PsiX(i,j,k,bi,bj) = SlopeX(i,j)*taperX(i,j)
129         &     *( GM_background_K
130  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
131       &    +op5*(VisbeckK(i-1,j,bi,bj)+VisbeckK(i,j,bi,bj))       &      +op5*(VisbeckK(i-1,j,bi,bj)+VisbeckK(i,j,bi,bj))
132  #endif  #endif
133       &    )*maskW(i,j,k,bi,bj)       &      )*maskW(i,j,k,bi,bj)
134          GM_PsiY(i,j,k,bi,bj) = SlopeY(i,j)*taperY(i,j)          ENDDO
135       &   *( GM_background_K         ENDDO
136           DO j=1-Oly+1,sNy+Oly
137            DO i=1-Olx,sNx+Olx
138             GM_PsiY(i,j,k,bi,bj) = SlopeY(i,j)*taperY(i,j)
139         &     *( GM_background_K
140  #ifdef GM_VISBECK_VARIABLE_K  #ifdef GM_VISBECK_VARIABLE_K
141       &    +op5*(VisbeckK(i,j-1,bi,bj)+VisbeckK(i,j,bi,bj))       &      +op5*(VisbeckK(i,j-1,bi,bj)+VisbeckK(i,j,bi,bj))
142  #endif  #endif
143       &    )*maskS(i,j,k,bi,bj)       &      )*maskS(i,j,k,bi,bj)
144            ENDDO
 #ifdef ALLOW_TIMEAVE  
 C--     Time-average  
         GM_PsiXtave(i,j,k,bi,bj)=GM_PsiXtave(i,j,k,bi,bj)  
      &                          +GM_PsiX(i,j,k,bi,bj)*deltaTclock  
         GM_PsiYtave(i,j,k,bi,bj)=GM_PsiYtave(i,j,k,bi,bj)  
      &                          +GM_PsiY(i,j,k,bi,bj)*deltaTclock  
 #endif /* ALLOW_TIMEAVE */  
   
145         ENDDO         ENDDO
       ENDDO  
146    
147  C-----  C----- end of loop on level k
148         ENDDO         ENDDO
149    
150        ENDIF        ENDIF
151  #endif /* GM_BOLUS_ADVEC */  #endif /* GM_BOLUS_ADVEC */
152  #endif /* ALLOW_GMREDI */  #endif /* ALLOW_GMREDI */

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

  ViewVC Help
Powered by ViewVC 1.1.22