/[MITgcm]/MITgcm/pkg/obcs/obcs_apply_uvice.F
ViewVC logotype

Diff of /MITgcm/pkg/obcs/obcs_apply_uvice.F

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

revision 1.7 by dimitri, Thu Jan 17 20:48:07 2008 UTC revision 1.8 by dimitri, Sat Jan 19 01:57:11 2008 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4  #undef OBCS_SEAICE_SMOOTH_UVICE  #undef OBCS_SEAICE_SMOOTH_UVICE_PERP
5    #undef OBCS_SEAICE_SMOOTH_UVICE_PAR
6  #undef OBCS_SEAICE_COMPUTE_UVICE  #undef OBCS_SEAICE_COMPUTE_UVICE
7    
8  #include "OBCS_OPTIONS.h"  #include "OBCS_OPTIONS.h"
# Line 56  C     Northern boundary Line 57  C     Northern boundary
57  #endif /* OBCS_SEAICE_AVOID_CONVERGENCE */  #endif /* OBCS_SEAICE_AVOID_CONVERGENCE */
58          uFld(I,OB_Jn(I,bi,bj),1,bi,bj)=OBNuice(I,bi,bj)          uFld(I,OB_Jn(I,bi,bj),1,bi,bj)=OBNuice(I,bi,bj)
59       &                              *_maskW(I,OB_Jn(I,bi,bj),K,bi,bj)       &                              *_maskW(I,OB_Jn(I,bi,bj),K,bi,bj)
60  #ifdef OBCS_SEAICE_SMOOTH_UVICE  #ifdef OBCS_SEAICE_SMOOTH_UVICE_PERP
61          if ( _maskS(I,OB_Jn(I,bi,bj)  ,K,bi,bj) .NE. 0. .AND.          if ( _maskS(I,OB_Jn(I,bi,bj)  ,K,bi,bj) .NE. 0. .AND.
62       &       _maskS(I,OB_Jn(I,bi,bj)-2,K,bi,bj) .NE. 0. )       &       _maskS(I,OB_Jn(I,bi,bj)-2,K,bi,bj) .NE. 0. )
63       &  vFld(I,OB_Jn(I,bi,bj)-1,1,bi,bj) = 0.5 _d 0 *       &       vFld(I,OB_Jn(I,bi,bj)-1,1,bi,bj) = 0.5 _d 0 *
64       &      ( vFld(I,OB_Jn(I,bi,bj)  ,1,bi,bj) +       &       ( vFld(I,OB_Jn(I,bi,bj)  ,1,bi,bj) +
65       &        vFld(I,OB_Jn(I,bi,bj)-2,1,bi,bj) ) *       &       vFld(I,OB_Jn(I,bi,bj)-2,1,bi,bj) ) *
66       &      _maskS(I,OB_Jn(I,bi,bj)-1,K,bi,bj)       &       _maskS(I,OB_Jn(I,bi,bj)-1,K,bi,bj)
67  c       uFld(I,OB_Jn(I,bi,bj)-1,1,bi,bj) = 0.5 _d 0 *  #endif /* OBCS_SEAICE_SMOOTH_UVICE_PERP */
68  c    &      ( uFld(I,OB_Jn(I,bi,bj)  ,1,bi,bj) +  #ifdef OBCS_SEAICE_SMOOTH_UVICE_PAR
69  c    &        uFld(I,OB_Jn(I,bi,bj)-2,1,bi,bj) ) *          if ( _maskW(I,OB_Jn(I,bi,bj)  ,K,bi,bj) .NE. 0. .AND.
70  c    &      _maskW(I,OB_Jn(I,bi,bj)-1,K,bi,bj)       &       _maskW(I,OB_Jn(I,bi,bj)-2,K,bi,bj) .NE. 0. )
71  #endif /* OBCS_SEAICE_SMOOTH_UVICE */       &       uFld(I,OB_Jn(I,bi,bj)-1,1,bi,bj) = 0.5 _d 0 *
72         &       ( uFld(I,OB_Jn(I,bi,bj)  ,1,bi,bj) +
73         &       uFld(I,OB_Jn(I,bi,bj)-2,1,bi,bj) ) *
74         &       _maskW(I,OB_Jn(I,bi,bj)-1,K,bi,bj)
75    #endif /* OBCS_SEAICE_SMOOTH_UVICE_PAR */
76  #endif /* OBCS_SEAICE_COMPUTE_UVICE */  #endif /* OBCS_SEAICE_COMPUTE_UVICE */
77         ENDIF         ENDIF
78        ENDDO        ENDDO
# Line 93  C     Southern boundary Line 98  C     Southern boundary
98  #endif /* OBCS_SEAICE_AVOID_CONVERGENCE */  #endif /* OBCS_SEAICE_AVOID_CONVERGENCE */
99          uFld(I,OB_Js(I,bi,bj),1,bi,bj)=OBSuice(I,bi,bj)          uFld(I,OB_Js(I,bi,bj),1,bi,bj)=OBSuice(I,bi,bj)
100       &                              *_maskW(I,OB_Js(I,bi,bj),K,bi,bj)       &                              *_maskW(I,OB_Js(I,bi,bj),K,bi,bj)
101  #ifdef OBCS_SEAICE_SMOOTH_UVICE  #ifdef OBCS_SEAICE_SMOOTH_UVICE_PERP
102          if ( _maskS(I,OB_Js(I,bi,bj)+1,K,bi,bj) .NE. 0. .AND.          if ( _maskS(I,OB_Js(I,bi,bj)+1,K,bi,bj) .NE. 0. .AND.
103       &       _maskS(I,OB_Js(I,bi,bj)+3,K,bi,bj) .NE. 0. )       &       _maskS(I,OB_Js(I,bi,bj)+3,K,bi,bj) .NE. 0. )
104       &  vFld(I,OB_Js(I,bi,bj)+2,1,bi,bj) = 0.5 _d 0 *       &       vFld(I,OB_Js(I,bi,bj)+2,1,bi,bj) = 0.5 _d 0 *
105       &      ( vFld(I,OB_Js(I,bi,bj)+1,1,bi,bj) +       &       ( vFld(I,OB_Js(I,bi,bj)+1,1,bi,bj) +
106       &        vFld(I,OB_Js(I,bi,bj)+3,1,bi,bj) ) *       &       vFld(I,OB_Js(I,bi,bj)+3,1,bi,bj) ) *
107       &      _maskS(I,OB_Js(I,bi,bj)+2,K,bi,bj)       &       _maskS(I,OB_Js(I,bi,bj)+2,K,bi,bj)
108  c       uFld(I,OB_Js(I,bi,bj)+1,1,bi,bj) = 0.5 _d 0 *  #endif /* OBCS_SEAICE_SMOOTH_UVICE_PERP */
109  c    &      ( uFld(I,OB_Js(I,bi,bj)  ,1,bi,bj) +  #ifdef OBCS_SEAICE_SMOOTH_UVICE_PAR
110  c    &        uFld(I,OB_Js(I,bi,bj)+2,1,bi,bj) ) *          if ( _maskW(I,OB_Js(I,bi,bj)  ,K,bi,bj) .NE. 0. .AND.
111  c    &      _maskW(I,OB_Js(I,bi,bj)+1,K,bi,bj)       &       _maskW(I,OB_Js(I,bi,bj)+2,K,bi,bj) .NE. 0. )
112  #endif /* OBCS_SEAICE_SMOOTH_UVICE */       &       uFld(I,OB_Js(I,bi,bj)+1,1,bi,bj) = 0.5 _d 0 *
113         &       ( uFld(I,OB_Js(I,bi,bj)  ,1,bi,bj) +
114         &       uFld(I,OB_Js(I,bi,bj)+2,1,bi,bj) ) *
115         &       _maskW(I,OB_Js(I,bi,bj)+1,K,bi,bj)
116    #endif /* OBCS_SEAICE_SMOOTH_UVICE_PAR */
117  #endif /* OBCS_SEAICE_COMPUTE_UVICE */  #endif /* OBCS_SEAICE_COMPUTE_UVICE */
118         ENDIF         ENDIF
119        ENDDO        ENDDO
# Line 132  C     Eastern boundary Line 141  C     Eastern boundary
141  #endif /* OBCS_SEAICE_AVOID_CONVERGENCE */  #endif /* OBCS_SEAICE_AVOID_CONVERGENCE */
142          vFld(OB_Ie(J,bi,bj),J,1,bi,bj)=OBEvice(J,bi,bj)          vFld(OB_Ie(J,bi,bj),J,1,bi,bj)=OBEvice(J,bi,bj)
143       &                              *_maskS(OB_Ie(J,bi,bj),J,K,bi,bj)       &                              *_maskS(OB_Ie(J,bi,bj),J,K,bi,bj)
144  #ifdef OBCS_SEAICE_SMOOTH_UVICE  #ifdef OBCS_SEAICE_SMOOTH_UVICE_PERP
145          if ( _maskW(OB_Ie(J,bi,bj)  ,J,K,bi,bj) .NE. 0. .AND.          if ( _maskW(OB_Ie(J,bi,bj)  ,J,K,bi,bj) .NE. 0. .AND.
146       &       _maskW(OB_Ie(J,bi,bj)-2,J,K,bi,bj) .NE. 0. )       &       _maskW(OB_Ie(J,bi,bj)-2,J,K,bi,bj) .NE. 0. )
147       &  uFld(OB_Ie(J,bi,bj)-1,J,1,bi,bj) = 0.5 _d 0 *       &       uFld(OB_Ie(J,bi,bj)-1,J,1,bi,bj) = 0.5 _d 0 *
148       &      ( uFld(OB_Ie(J,bi,bj)  ,J,1,bi,bj) +       &       ( uFld(OB_Ie(J,bi,bj)  ,J,1,bi,bj) +
149       &        uFld(OB_Ie(J,bi,bj)-2,J,1,bi,bj) ) *       &       uFld(OB_Ie(J,bi,bj)-2,J,1,bi,bj) ) *
150       &      _maskW(OB_Ie(J,bi,bj)-1,J,K,bi,bj)       &       _maskW(OB_Ie(J,bi,bj)-1,J,K,bi,bj)
151  c       vFld(OB_Ie(J,bi,bj)-1,J,1,bi,bj) = 0.5 _d 0 *  #endif /* OBCS_SEAICE_SMOOTH_UVICE_PERP */
152  c    &      ( vFld(OB_Ie(J,bi,bj)  ,J,1,bi,bj) +  #ifdef OBCS_SEAICE_SMOOTH_UVICE_PAR
153  c    &        vFld(OB_Ie(J,bi,bj)-2,J,1,bi,bj) ) *          if ( _maskS(OB_Ie(J,bi,bj)  ,J,K,bi,bj) .NE. 0. .AND.
154  c    &      _maskS(OB_Ie(J,bi,bj)-1,J,K,bi,bj)       &       _maskS(OB_Ie(J,bi,bj)-2,J,K,bi,bj) .NE. 0. )
155  #endif /* OBCS_SEAICE_SMOOTH_UVICE */       &       vFld(OB_Ie(J,bi,bj)-1,J,1,bi,bj) = 0.5 _d 0 *
156         &       ( vFld(OB_Ie(J,bi,bj)  ,J,1,bi,bj) +
157         &       vFld(OB_Ie(J,bi,bj)-2,J,1,bi,bj) ) *
158         &       _maskS(OB_Ie(J,bi,bj)-1,J,K,bi,bj)
159    #endif /* OBCS_SEAICE_SMOOTH_UVICE_PAR */
160  #endif /* OBCS_SEAICE_COMPUTE_UVICE */  #endif /* OBCS_SEAICE_COMPUTE_UVICE */
161         ENDIF         ENDIF
162        ENDDO        ENDDO
# Line 167  C     Western boundary Line 180  C     Western boundary
180          uFld(OB_Iw(J,bi,bj)+1,J,1,bi,bj)=OBWuice(J,bi,bj)          uFld(OB_Iw(J,bi,bj)+1,J,1,bi,bj)=OBWuice(J,bi,bj)
181       &                              *_maskW(OB_Iw(J,bi,bj)+1,J,K,bi,bj)       &                              *_maskW(OB_Iw(J,bi,bj)+1,J,K,bi,bj)
182  #endif /* OBCS_SEAICE_AVOID_CONVERGENCE */  #endif /* OBCS_SEAICE_AVOID_CONVERGENCE */
183            vFld(OB_Iw(J,bi,bj),J,1,bi,bj)=OBWvice(J,bi,bj)
184         &                              *_maskS(OB_Iw(J,bi,bj),J,K,bi,bj)
185    #ifdef OBCS_SEAICE_SMOOTH_UVICE_PERP
186          if ( _maskW(OB_Iw(J,bi,bj)+1,J,K,bi,bj) .NE. 0. .AND.          if ( _maskW(OB_Iw(J,bi,bj)+1,J,K,bi,bj) .NE. 0. .AND.
187       &       _maskW(OB_Iw(J,bi,bj)+3,J,K,bi,bj) .NE. 0. )       &       _maskW(OB_Iw(J,bi,bj)+3,J,K,bi,bj) .NE. 0. )
188       &  vFld(OB_Iw(J,bi,bj),J,1,bi,bj)=OBWvice(J,bi,bj)       &       uFld(OB_Ie(J,bi,bj)+2,J,1,bi,bj) = 0.5 _d 0 *
189       &                              *_maskS(OB_Iw(J,bi,bj),J,K,bi,bj)       &       ( uFld(OB_Ie(J,bi,bj)+1,J,1,bi,bj) +
190  #ifdef OBCS_SEAICE_SMOOTH_UVICE       &       uFld(OB_Ie(J,bi,bj)+3,J,1,bi,bj) ) *
191          uFld(OB_Ie(J,bi,bj)+2,J,1,bi,bj) = 0.5 _d 0 *       &       _maskW(OB_Ie(J,bi,bj)+2,J,K,bi,bj)
192       &      ( uFld(OB_Ie(J,bi,bj)+1,J,1,bi,bj) +  #endif /* OBCS_SEAICE_SMOOTH_UVICE_PERP */
193       &        uFld(OB_Ie(J,bi,bj)+3,J,1,bi,bj) ) *  #ifdef OBCS_SEAICE_SMOOTH_UVICE_PAR
194       &      _maskW(OB_Ie(J,bi,bj)+2,J,K,bi,bj)          if ( _maskS(OB_Iw(J,bi,bj)  ,J,K,bi,bj) .NE. 0. .AND.
195  c       vFld(OB_Ie(J,bi,bj)+1,J,1,bi,bj) = 0.5 _d 0 *       &       _maskS(OB_Iw(J,bi,bj)+2,J,K,bi,bj) .NE. 0. )
196  c    &      ( vFld(OB_Ie(J,bi,bj)  ,J,1,bi,bj) +       &       vFld(OB_Ie(J,bi,bj)+1,J,1,bi,bj) = 0.5 _d 0 *
197  c    &        vFld(OB_Ie(J,bi,bj)+2,J,1,bi,bj) ) *       &       ( vFld(OB_Ie(J,bi,bj)  ,J,1,bi,bj) +
198  c    &      _maskS(OB_Ie(J,bi,bj)+1,J,K,bi,bj)       &       vFld(OB_Ie(J,bi,bj)+2,J,1,bi,bj) ) *
199  #endif /* OBCS_SEAICE_SMOOTH_UVICE */       &       _maskS(OB_Ie(J,bi,bj)+1,J,K,bi,bj)
200    #endif /* OBCS_SEAICE_SMOOTH_UVICE_PAR */
201  #endif /* OBCS_SEAICE_COMPUTE_UVICE */  #endif /* OBCS_SEAICE_COMPUTE_UVICE */
202         ENDIF         ENDIF
203        ENDDO        ENDDO

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.22