/[MITgcm]/MITgcm_contrib/dgoldberg/streamice/streamice_velmask_upd.F
ViewVC logotype

Annotation of /MITgcm_contrib/dgoldberg/streamice/streamice_velmask_upd.F

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


Revision 1.3 - (hide annotations) (download)
Wed Jan 9 21:56:18 2013 UTC (12 years, 6 months ago) by dgoldberg
Branch: MAIN
Changes since 1.2: +15 -12 lines
changes to accept real datasets

1 dgoldberg 1.3 C $Header: /u/gcmpack/MITgcm_contrib/dgoldberg/streamice/streamice_velmask_upd.F,v 1.2 2012/09/04 21:11:44 dgoldberg Exp $
2 heimbach 1.1 C $Name: $
3    
4     #include "STREAMICE_OPTIONS.h"
5    
6     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7    
8     CBOP
9     SUBROUTINE STREAMICE_VELMASK_UPD ( myThid )
10    
11     C /============================================================\
12     C | SUBROUTINE |
13     C | o |
14     C |============================================================|
15     C | |
16     C \============================================================/
17     IMPLICIT NONE
18    
19     C === Global variables ===
20     #include "SIZE.h"
21     #include "GRID.h"
22     #include "EEPARAMS.h"
23     #include "PARAMS.h"
24     #include "STREAMICE.h"
25     ! #include "STREAMICE_ADV.h"
26    
27     INTEGER myThid
28    
29     #ifdef ALLOW_STREAMICE
30    
31     INTEGER i, j, bi, bj, ki, kj
32     INTEGER maskFlag
33    
34 dgoldberg 1.2 _EXCH_XY_RL( H_streamice, myThid )
35     _EXCH_XY_RL( area_shelf_streamice, myThid )
36     _EXCH_XY_RL( STREAMICE_hmask, myThid )
37    
38 heimbach 1.1 DO bj=myByLo(myThid),myByHi(myThid)
39     DO bi=myBxLo(myThid),myBxHi(myThid)
40     DO j=1-OLy,sNy+OLy
41     DO i=1-OLx,sNx+OLx
42     STREAMICE_umask(i,j,bi,bj) = 0. _d 0
43     STREAMICE_vmask(i,j,bi,bj) = 0. _d 0
44     STREAMICE_ufacemask(i,j,bi,bj) = 0. _d 0
45     STREAMICE_vfacemask(i,j,bi,bj) = 0. _d 0
46     ENDDO
47     ENDDO
48     ENDDO
49     ENDDO
50    
51     DO bj=myByLo(myThid),myByHi(myThid)
52     DO bi=myBxLo(myThid),myBxHi(myThid)
53     DO j=0,sNy+1
54     DO i=0,sNx+1
55     IF (STREAMICE_hmask(i,j,bi,bj) .eq. 1) THEN
56    
57     DO kj=0,1
58     DO ki=0,1
59     STREAMICE_umask (i+ki,j+kj,bi,bj) = 1.0
60     STREAMICE_vmask (i+ki,j+kj,bi,bj) = 1.0
61     ENDDO
62     ENDDO
63    
64     DO ki=0,1
65     maskFlag=INT(STREAMICE_ufacemask_bdry(i+ki,j,bi,bj))
66     IF (maskFlag.EQ.3) THEN
67     DO kj=0,1
68     STREAMICE_umask(i+ki,j+kj,bi,bj) = 3.0
69 dgoldberg 1.3 STREAMICE_vmask(i+ki,j+kj,bi,bj) = 3.0
70 heimbach 1.1 ENDDO
71     STREAMICE_ufacemask(i+ki,j,bi,bj) = 3.0
72     ELSE IF (maskFlag.EQ.2) THEN
73 dgoldberg 1.3 !DO kj=0,1
74     STREAMICE_ufacemask(i+ki,j,bi,bj) = 2.0
75     !ENDDO
76 heimbach 1.1 ELSE IF (maskFlag.EQ.4) THEN
77     DO kj=0,1
78     STREAMICE_umask(i+ki,j+kj,bi,bj) = 0.0
79     STREAMICE_vmask(i+ki,j+kj,bi,bj) = 0.0
80     ENDDO
81     STREAMICE_ufacemask(i+ki,j,bi,bj) = 4.0
82     ELSE IF (maskFlag.EQ.0) THEN
83     DO kj=0,1
84     STREAMICE_umask(i+ki,j+kj,bi,bj) = 0.0
85     STREAMICE_vmask(i+ki,j+kj,bi,bj) = 0.0
86     ENDDO
87     STREAMICE_ufacemask(i+ki,j,bi,bj) = 0.0
88     ELSE IF (maskFlag.EQ.1) THEN
89     DO kj=0,1
90     STREAMICE_umask(i+ki,j+kj,bi,bj) = 0.0
91     ENDDO
92     END IF
93     ENDDO
94    
95     DO kj=0,1
96     maskFlag=INT(STREAMICE_vfacemask_bdry(i,j+kj,bi,bj))
97     IF (maskFlag.EQ.3) THEN
98     DO ki=0,1
99     STREAMICE_vmask(i+ki,j+kj,bi,bj) = 3.0
100 dgoldberg 1.3 STREAMICE_umask(i+ki,j+kj,bi,bj) = 3.0
101 heimbach 1.1 ENDDO
102 dgoldberg 1.3 STREAMICE_vfacemask(i,j+kj,bi,bj) = 3.0
103 heimbach 1.1 ELSE IF (maskFlag.EQ.2) THEN
104 dgoldberg 1.3 !DO ki=0,1
105     STREAMICE_vfacemask(i,j+kj,bi,bj) = 2.0
106     !ENDDO
107 heimbach 1.1 ELSE IF (maskFlag.EQ.4) THEN
108     DO ki=0,1
109     STREAMICE_umask(i+ki,j+kj,bi,bj) = 0.0
110     STREAMICE_vmask(i+ki,j+kj,bi,bj) = 0.0
111     ENDDO
112 dgoldberg 1.3 STREAMICE_vfacemask(i,j+kj,bi,bj) = 4.0
113 heimbach 1.1 ELSE IF (maskFlag.EQ.0) THEN
114     DO ki=0,1
115     STREAMICE_umask(i+ki,j+kj,bi,bj) = 0.0
116     STREAMICE_vmask(i+ki,j+kj,bi,bj) = 0.0
117     ENDDO
118     STREAMICE_vfacemask(i+ki,j,bi,bj) = 0.0
119     ELSE IF (maskFlag.EQ.1) THEN
120     DO ki=0,1
121     STREAMICE_vmask(i+ki,j+kj,bi,bj) = 0.0
122     ENDDO
123     ENDIF
124     ENDDO
125    
126     IF (i .lt. sNx+OLx) THEN
127     IF ((STREAMICE_hmask(i+1,j,bi,bj) .eq. 0.0) .OR.
128     & (STREAMICE_hmask(i+1,j,bi,bj) .eq. 2.0)) THEN
129     !right boundary or adjacent to unfilled cell
130     STREAMICE_ufacemask(i+1,j,bi,bj) = 2.0
131     ENDIF
132     ENDIF
133    
134     IF (i .gt. 1-OLx) THEN
135     IF ((STREAMICE_hmask(i-1,j,bi,bj) .eq. 0.0) .OR.
136     & (STREAMICE_hmask(i-1,j,bi,bj) .eq. 2.0)) THEN
137     !left boundary or adjacent to unfilled cell
138     STREAMICE_ufacemask(i,j,bi,bj) = 2
139     ENDIF
140     ENDIF
141    
142     IF (j .lt. sNy+OLy) THEN
143     IF ((STREAMICE_hmask(i,j+1,bi,bj) .eq. 0.0) .OR.
144     & (STREAMICE_hmask(i,j+1,bi,bj) .eq. 2.0)) THEN
145     !top boundary or adjacent to unfilled cell
146     STREAMICE_vfacemask(i,j+1,bi,bj) = 2
147     ENDIF
148     ENDIF
149    
150     IF (j .gt. 1-OLy) THEN
151     IF ((STREAMICE_hmask(i,j-1,bi,bj) .eq. 0.0) .OR.
152     & (STREAMICE_hmask(i,j-1,bi,bj) .eq. 2.0)) THEN
153     !bot boundary or adjacent to unfilled cell
154     STREAMICE_vfacemask(i,j,bi,bj) = 2.0
155     ENDIF
156     ENDIF
157    
158     ENDIF
159     ENDDO
160     ENDDO
161     ENDDO
162     ENDDO
163    
164     _EXCH_XY_RL( STREAMICE_ufacemask, myThid )
165     _EXCH_XY_RL( STREAMICE_vfacemask, myThid )
166     _EXCH_XY_RL( STREAMICE_umask, myThid )
167     _EXCH_XY_RL( STREAMICE_vmask, myThid )
168    
169     ! CALL WRITE_FULLARRAY_RL ("umask",STREAMICE_umask,
170     ! c 1,0,0,1,0,myThid)
171 dgoldberg 1.3 CALL WRITE_FLD_XY_RL ("umask","",STREAMICE_umask,0,myThid)
172     CALL WRITE_FLD_XY_RL ("vmask","",STREAMICE_vmask,0,myThid)
173     CALL WRITE_FLD_XY_RL ("ufacemask","",STREAMICE_ufacemask,0,myThid)
174     CALL WRITE_FLD_XY_RL ("vfacemask","",STREAMICE_vfacemask,0,myThid)
175 heimbach 1.1
176    
177    
178     #endif
179     RETURN
180     END

  ViewVC Help
Powered by ViewVC 1.1.22