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

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

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

revision 1.1 by adcroft, Tue Jan 30 21:03:00 2001 UTC revision 1.2 by adcroft, Fri Feb 2 21:36:29 2001 UTC
# Line 0  Line 1 
1    C $Header$
2    C $Name$
3    
4    #include "OBCS_OPTIONS.h"
5    
6          SUBROUTINE OBCS_APPLY_UV( bi, bj, K,
7         U                          uFld, vFld,
8         I                          myThid )
9    C     /==========================================================\
10    C     | S/R OBCS_APPLY_UV                                        |
11    C     \==========================================================/
12          IMPLICIT NONE
13    C     == Global variables ==
14    #include "SIZE.h"
15    #include "EEPARAMS.h"
16    #include "PARAMS.h"
17    #include "GRID.h"
18    #include "OBCS.h"
19    
20    C     == Routine Arguments ==
21          INTEGER bi,bj,K
22          _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
23          _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
24          INTEGER myThid
25    
26    #ifdef ALLOW_OBCS
27    
28    C     == Local variables ==
29          INTEGER i,j
30    
31    C     Set model variables to OB values on North/South Boundaries
32          DO I=1-Olx,sNx+Olx
33    C Northern boundary
34           IF (OB_Jn(I,bi,bj).NE.0) THEN
35            vFld(I,OB_Jn(I,bi,bj),K,bi,bj)=OBNv(I,K,bi,bj)
36         &                              *_maskS(I,OB_Jn(I,bi,bj),K,bi,bj)
37            uFld(I,OB_Jn(I,bi,bj),K,bi,bj)=OBNu(I,K,bi,bj)
38         &                              *_maskW(I,OB_Jn(I,bi,bj),K,bi,bj)
39            vFld(I,OB_Jn(I,bi,bj)+1,K,bi,bj)=OBNv(I,K,bi,bj)
40         &                              *_maskS(I,OB_Jn(I,bi,bj),K,bi,bj)
41           ENDIF
42    C Southern boundary
43           IF (OB_Js(I,bi,bj).NE.0) THEN
44            vFld(I,OB_Js(I,bi,bj)+1,K,bi,bj)=OBSv(I,K,bi,bj)
45         &                              *_maskS(I,OB_Js(I,bi,bj)+1,K,bi,bj)
46            uFld(I,OB_Js(I,bi,bj),K,bi,bj)=OBSu(I,K,bi,bj)
47         &                              *_maskW(I,OB_Js(I,bi,bj),K,bi,bj)
48            vFld(I,OB_Js(I,bi,bj),K,bi,bj)=OBSv(I,K,bi,bj)
49         &                              *_maskS(I,OB_Js(I,bi,bj)+1,K,bi,bj)
50           ENDIF
51          ENDDO
52    
53    
54    
55    C     Set model variables to OB values on East/West Boundaries
56          DO J=1-Oly,sNy+Oly
57    C Eastern boundary
58           IF (OB_Ie(J,bi,bj).NE.0) THEN
59            uFld(OB_Ie(J,bi,bj),J,K,bi,bj)=OBEu(J,K,bi,bj)
60         &                              *_maskW(OB_Ie(J,bi,bj),J,K,bi,bj)
61            vFld(OB_Ie(J,bi,bj),J,K,bi,bj)=OBEv(J,K,bi,bj)
62         &                              *_maskS(OB_Ie(J,bi,bj),J,K,bi,bj)
63            uFld(OB_Ie(J,bi,bj)+1,J,K,bi,bj)=OBEu(J,K,bi,bj)
64         &                              *_maskW(OB_Ie(J,bi,bj),J,K,bi,bj)
65           ENDIF
66    C Western boundary
67           IF (OB_Iw(J,bi,bj).NE.0) THEN
68            uFld(OB_Iw(J,bi,bj)+1,J,K,bi,bj)=OBWu(J,K,bi,bj)
69         &                              *_maskW(OB_Iw(J,bi,bj)+1,J,K,bi,bj)
70            vFld(OB_Iw(J,bi,bj),J,K,bi,bj)=OBWv(J,K,bi,bj)
71         &                              *_maskS(OB_Iw(J,bi,bj),J,K,bi,bj)
72            uFld(OB_Iw(J,bi,bj),J,K,bi,bj)=OBWu(J,K,bi,bj)
73         &                              *_maskW(OB_Iw(J,bi,bj)+1,J,K,bi,bj)
74           ENDIF
75          ENDDO
76    
77    #endif
78          RETURN
79          END

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

  ViewVC Help
Powered by ViewVC 1.1.22