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

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

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

revision 1.13 by jmc, Tue Apr 6 00:31:54 2004 UTC revision 1.14 by mlosch, Wed May 19 08:42:00 2004 UTC
# Line 64  C     I,J,K - Loop counters Line 64  C     I,J,K - Loop counters
64        _RL tmp_VbarZ, tmp_UbarZ, tmp_WbarZ        _RL tmp_VbarZ, tmp_UbarZ, tmp_WbarZ
65    
66        _RL  Half        _RL  Half
67          _RL  One
68        PARAMETER(Half=0.5D0)        PARAMETER(Half=0.5D0)
69          PARAMETER(One=0.5D0)
 #define I0 1  
 #define In sNx  
 #define J0 1  
 #define Jn sNy  
70  CEOP  CEOP
71    
72  ceh3 needs an IF ( useNONHYDROSTATIC ) THEN  ceh3 needs an IF ( useNONHYDROSTATIC ) THEN
73    
74          iMin = 1
75          iMax = sNx
76          jMin = 1
77          jMax = sNy
78    
79  C     Adams-Bashforth timestepping weights  C     Adams-Bashforth timestepping weights
80        ab15 =  1.5 _d 0 + abeps        ab15 =  1.5 _d 0 + abeps
81        ab05 = -0.5 _d 0 - abeps        ab05 = -0.5 _d 0 - abeps
82    
83  C     Lateral friction (no-slip, free slip, or half slip):  C     Lateral friction (no-slip, free slip, or half slip):
84        IF ( no_slip_sides ) THEN        IF ( no_slip_sides ) THEN
85          slipSideFac = -Half          slipSideFac = -One
86        ELSE        ELSE
87          slipSideFac =  Half          slipSideFac =  One
88        ENDIF        ENDIF
89  C-    half slip was used before ; keep it for now.  C-    half slip was used before ; keep it for now.
90          slipSideFac = 0. _d 0  C        slipSideFac = 0. _d 0
91    
92        DO bj=myByLo(myThid),myByHi(myThid)        DO bj=myByLo(myThid),myByHi(myThid)
93         DO bi=myBxLo(myThid),myBxHi(myThid)         DO bi=myBxLo(myThid),myBxHi(myThid)
# Line 108  C For each tile Line 110  C For each tile
110         DO bi=myBxLo(myThid),myBxHi(myThid)         DO bi=myBxLo(myThid),myBxHi(myThid)
111    
112  C Boundaries condition at top  C Boundaries condition at top
113          DO J=J0,Jn          DO J=jMin,jMax
114           DO I=I0,In           DO I=iMin,iMax
115            Flx_Dn(I,J,bi,bj)=0.            Flx_Dn(I,J,bi,bj)=0.
116           ENDDO           ENDDO
117          ENDDO          ENDDO
# Line 123  C Sweep down column Line 125  C Sweep down column
125            wOverRide=0.            wOverRide=0.
126           endif           endif
127  C Flux on Southern face  C Flux on Southern face
128           DO J=J0,Jn+1           DO J=jMin,jMax+1
129            DO I=I0,In            DO I=iMin,iMax
130             tmp_VbarZ=Half*(             tmp_VbarZ=Half*(
131       &          _hFacS(I,J,K-1,bi,bj)*vVel( I ,J,K-1,bi,bj)       &          _hFacS(I,J,K-1,bi,bj)*vVel( I ,J,K-1,bi,bj)
132       &         +_hFacS(I,J, K ,bi,bj)*vVel( I ,J, K ,bi,bj))       &         +_hFacS(I,J, K ,bi,bj)*vVel( I ,J, K ,bi,bj))
# Line 132  C Flux on Southern face Line 134  C Flux on Southern face
134       &     tmp_VbarZ*Half*(wVel(I,J,K,bi,bj)+wVel(I,J-1,K,bi,bj))       &     tmp_VbarZ*Half*(wVel(I,J,K,bi,bj)+wVel(I,J-1,K,bi,bj))
135       &    -viscAh*_recip_dyC(I,J,bi,bj)         &    -viscAh*_recip_dyC(I,J,bi,bj)  
136       &      *(1. _d 0 + slipSideFac*       &      *(1. _d 0 + slipSideFac*
137       &         (maskS(I,J,K-1,bi,bj)+maskS(I,J,K,bi,bj)-2. _d 0))       &         (maskS(I,J,K-1,bi,bj)*maskS(I,J,K,bi,bj)-2. _d 0))
138         &        *(max(hFacS(I,J,K-1,bi,bj)-Half,0)
139         &         +min(hFacS(I,J,K,bi,bj),Half))
140       &                   *(wVel(I,J,K,bi,bj)-wVel(I,J-1,K,bi,bj))       &                   *(wVel(I,J,K,bi,bj)-wVel(I,J-1,K,bi,bj))
141            ENDDO            ENDDO
142           ENDDO           ENDDO
143  C Flux on Western face  C Flux on Western face
144           DO J=J0,Jn           DO J=jMin,jMax
145            DO I=I0,In+1            DO I=iMin,iMax+1
146             tmp_UbarZ=Half*(             tmp_UbarZ=Half*(
147       &         _hFacW(I,J,K-1,bi,bj)*uVel( I ,J,K-1,bi,bj)       &         _hFacW(I,J,K-1,bi,bj)*uVel( I ,J,K-1,bi,bj)
148       &        +_hFacW(I,J, K ,bi,bj)*uVel( I ,J, K ,bi,bj))       &        +_hFacW(I,J, K ,bi,bj)*uVel( I ,J, K ,bi,bj))
# Line 146  C Flux on Western face Line 150  C Flux on Western face
150       &     tmp_UbarZ*Half*(wVel(I,J,K,bi,bj)+wVel(I-1,J,K,bi,bj))       &     tmp_UbarZ*Half*(wVel(I,J,K,bi,bj)+wVel(I-1,J,K,bi,bj))
151       &    -viscAh*_recip_dxC(I,J,bi,bj)       &    -viscAh*_recip_dxC(I,J,bi,bj)
152       &      *(1. _d 0 + slipSideFac*       &      *(1. _d 0 + slipSideFac*
153       &         (maskW(I,J,K-1,bi,bj)+maskW(I,J,K,bi,bj)-2. _d 0))       &         (maskW(I,J,K-1,bi,bj)*maskW(I,J,K,bi,bj)-1. _d 0))
154         &        *(max(hFacW(I,J,K-1,bi,bj)-Half,0)
155         &         +min(hFacW(I,J,K,bi,bj),Half))
156       &                   *(wVel(I,J,K,bi,bj)-wVel(I-1,J,K,bi,bj))       &                   *(wVel(I,J,K,bi,bj)-wVel(I-1,J,K,bi,bj))
157            ENDDO            ENDDO
158           ENDDO           ENDDO
159  C Flux on Lower face  C Flux on Lower face
160           DO J=J0,Jn           DO J=jMin,jMax
161            DO I=I0,In            DO I=iMin,iMax
162             Flx_Up(I,J,bi,bj)=Flx_Dn(I,J,bi,bj)             Flx_Up(I,J,bi,bj)=Flx_Dn(I,J,bi,bj)
163             tmp_WbarZ=Half*(wVel(I,J,K,bi,bj)+wVel(I,J,Kp1,bi,bj))             tmp_WbarZ=Half*(wVel(I,J,K,bi,bj)
164         &         +wOverRide*wVel(I,J,Kp1,bi,bj))
165             Flx_Dn(I,J,bi,bj)=             Flx_Dn(I,J,bi,bj)=
166       &     tmp_WbarZ*tmp_WbarZ       &     tmp_WbarZ*tmp_WbarZ
167       &    -viscAr*recip_drF(K)       &    -viscAr*recip_drF(K)
# Line 162  C Flux on Lower face Line 169  C Flux on Lower face
169            ENDDO            ENDDO
170           ENDDO           ENDDO
171  C        Divergence of fluxes  C        Divergence of fluxes
172           DO J=J0,Jn           DO J=jMin,jMax
173            DO I=I0,In            DO I=iMin,iMax
174             gW(I,J,K,bi,bj) = 0.             gW(I,J,K,bi,bj) = 0.
175       &      -(       &      -(
176       &        +_recip_dxF(I,J,bi,bj)*(       &        +_recip_dxF(I,J,bi,bj)*(
# Line 187  caja           and an hFacUS (above V po Line 194  caja           and an hFacUS (above V po
194        DO bj=myByLo(myThid),myByHi(myThid)        DO bj=myByLo(myThid),myByHi(myThid)
195         DO bi=myBxLo(myThid),myBxHi(myThid)         DO bi=myBxLo(myThid),myBxHi(myThid)
196          DO K=2,Nr          DO K=2,Nr
197           DO j=J0,Jn           DO j=jMin,jMax
198            DO i=I0,In            DO i=iMin,iMax
199             wVel(i,j,k,bi,bj) = wVel(i,j,k,bi,bj)             wVel(i,j,k,bi,bj) = wVel(i,j,k,bi,bj)
200       &     +deltatMom*( ab15*gW(i,j,k,bi,bj)       &     +deltatMom*( ab15*gW(i,j,k,bi,bj)
201       &                 +ab05*gWNM1(i,j,k,bi,bj) )       &                 +ab05*gWNM1(i,j,k,bi,bj) )

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.14

  ViewVC Help
Powered by ViewVC 1.1.22