/[MITgcm]/MITgcm/pkg/mom_vecinv/mom_vi_v_vertshear.F
ViewVC logotype

Diff of /MITgcm/pkg/mom_vecinv/mom_vi_v_vertshear.F

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

revision 1.2 by adcroft, Tue May 29 14:01:39 2001 UTC revision 1.5 by adcroft, Tue Jul 20 17:46:38 2004 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4  #include "CPP_OPTIONS.h"  #include "MOM_VECINV_OPTIONS.h"
5    
6        SUBROUTINE MOM_VI_V_VERTSHEAR(        SUBROUTINE MOM_VI_V_VERTSHEAR(
7       I        bi,bj,K,       I        bi,bj,K,
# Line 48  c1    PARAMETER(upwindShear=.FALSE.) Line 48  c1    PARAMETER(upwindShear=.FALSE.)
48        mask_Km1=1.        mask_Km1=1.
49        IF (K.EQ.1) mask_Km1=0.        IF (K.EQ.1) mask_Km1=0.
50    
51        DO J=1-Oly,sNy+Oly        DO J=2-Oly,sNy+Oly
52         DO I=2-Olx,sNx+Olx         DO I=1-Olx,sNx+Olx
53    
54          vmask_K=_maskS(i,j,k,bi,bj)  c       vmask_K=_maskS(i,j,k,bi,bj)
55    
56  C barZ( barY( W ) )  C barZ( barY( W ) )
57  c       wBarYm=0.5*(wFld(I,J,K,bi,bj)+wFld(I,J-1,K,bi,bj))  c       wBarYm=0.5*(wFld(I,J,K,bi,bj)+wFld(I,J-1,K,bi,bj))
# Line 59  c       wBarYp=0.5*(wFld(I,J,Kp1,bi,bj)+ Line 59  c       wBarYp=0.5*(wFld(I,J,Kp1,bi,bj)+
59  c    &              *mask_Kp1  c    &              *mask_Kp1
60    
61  C       Transport at interface k  C       Transport at interface k
62          wBarYm=0.5*(wFld(I,J,K,bi,bj)*rA(i,j,bi,bj)          wBarYm=0.5*(
63       &             +wFld(I,J-1,K,bi,bj)*rA(i,j-1,bi,bj))       &    wFld(I,J,K,bi,bj)*rA(i,j,bi,bj)*maskC(i,j,Km1,bi,bj)
64         &   +wFld(I,J-1,K,bi,bj)*rA(i,j-1,bi,bj)*maskC(i,j-1,Km1,bi,bj)
65  C       Transport at interface k+1       &             )*mask_Km1
66          wBarYp=0.5*(wFld(I,J,Kp1,bi,bj)*rA(i,j,bi,bj)  
67       &             +wFld(I,J-1,Kp1,bi,bj)*rA(i,j-1,bi,bj))*mask_Kp1  C       Transport at interface k+1 (here wFld is already masked)
68            wBarYp=0.5*(
69         &    wFld(I,J,Kp1,bi,bj)*rA(i,j,bi,bj)
70         &   +wFld(I,J-1,Kp1,bi,bj)*rA(i,j-1,bi,bj)
71         &             )*mask_Kp1
72    
73  C delta_Z( V )  @ interface k  C delta_Z( V )  @ interface k
74          vmask_Km1=mask_Km1*vmask_K  c       vmask_Km1=mask_Km1*maskS(i,j,Km1,bi,bj)
75          vZm=(mask_Km1*vFld(I,J,Km1,bi,bj)-vFld(I,J,K,bi,bj))          vZm=(mask_Km1*vFld(I,J,Km1,bi,bj)-vFld(I,J,K,bi,bj))
76  c2   &      *recip_dRC(K)  c2   &      *recip_dRC(K)
77          IF (freeslip1) vZm=vZm*vmask_Km1  c       IF (freeslip1) vZm=vZm*vmask_Km1
78          IF (noslip1.AND.vmask_Km1.EQ.0.) vZm=vZm*2.  c       IF (noslip1.AND.vmask_Km1.EQ.0.) vZm=vZm*2.
79    
80  C delta_Z( V )  @ interface k+1  C delta_Z( V )  @ interface k+1
81          vmask_Kp1=mask_Kp1*vmask_K  c       vmask_Kp1=mask_Kp1*maskS(i,j,Kp1,bi,bj)
82          vZp=(vFld(I,J,K,bi,bj)-mask_Kp1*vFld(I,J,Kp1,bi,bj))          vZp=(vFld(I,J,K,bi,bj)-mask_Kp1*vFld(I,J,Kp1,bi,bj))
83  c2   &      *recip_dRC(Kp1)  c2   &      *recip_dRC(Kp1)
84          IF (freeslipK) vZp=vZp*vmask_Kp1  c       IF (freeslipK) vZp=vZp*vmask_Kp1
85          IF (noslipK.AND.vmask_Kp1.EQ.0.) vZp=vZp*2.  c       IF (noslipK.AND.vmask_Kp1.EQ.0.) vZp=vZp*2.
86    
87  c1      IF (upwindShear) THEN  c1      IF (upwindShear) THEN
88  c1       wBarYZ=0.5*( wBarXm + wBarXp )  c1       wBarYZ=0.5*( wBarXm + wBarXp )

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

  ViewVC Help
Powered by ViewVC 1.1.22