/[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.1 - (hide annotations) (download)
Thu Mar 29 15:59:21 2012 UTC (13 years, 3 months ago) by heimbach
Branch: MAIN
Initial check-in of Dan Goldberg's streamice package

1 heimbach 1.1 C $Header: /u/gcmpack/MITgcm/pkg/streamice/streamice_init_varia.F,v 1.6 2011/06/29 16:24:10 dng Exp $
2     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     DO bj=myByLo(myThid),myByHi(myThid)
35     DO bi=myBxLo(myThid),myBxHi(myThid)
36     DO j=1-OLy,sNy+OLy
37     DO i=1-OLx,sNx+OLx
38     STREAMICE_umask(i,j,bi,bj) = 0. _d 0
39     STREAMICE_vmask(i,j,bi,bj) = 0. _d 0
40     STREAMICE_ufacemask(i,j,bi,bj) = 0. _d 0
41     STREAMICE_vfacemask(i,j,bi,bj) = 0. _d 0
42     ENDDO
43     ENDDO
44     ENDDO
45     ENDDO
46    
47     DO bj=myByLo(myThid),myByHi(myThid)
48     DO bi=myBxLo(myThid),myBxHi(myThid)
49     DO j=0,sNy+1
50     DO i=0,sNx+1
51     IF (STREAMICE_hmask(i,j,bi,bj) .eq. 1) THEN
52    
53     DO kj=0,1
54     DO ki=0,1
55     STREAMICE_umask (i+ki,j+kj,bi,bj) = 1.0
56     STREAMICE_vmask (i+ki,j+kj,bi,bj) = 1.0
57     ENDDO
58     ENDDO
59    
60     DO ki=0,1
61     maskFlag=INT(STREAMICE_ufacemask_bdry(i+ki,j,bi,bj))
62     IF (maskFlag.EQ.3) THEN
63     DO kj=0,1
64     STREAMICE_umask(i+ki,j+kj,bi,bj) = 3.0
65     STREAMICE_vmask(i+ki,j+kj,bi,bj) = 0.0
66     ENDDO
67     STREAMICE_ufacemask(i+ki,j,bi,bj) = 3.0
68     ELSE IF (maskFlag.EQ.2) THEN
69     DO kj=0,1
70     STREAMICE_ufacemask(i+ki,j+kj,bi,bj) = 2.0
71     ENDDO
72     ELSE IF (maskFlag.EQ.4) THEN
73     DO kj=0,1
74     STREAMICE_umask(i+ki,j+kj,bi,bj) = 0.0
75     STREAMICE_vmask(i+ki,j+kj,bi,bj) = 0.0
76     ENDDO
77     STREAMICE_ufacemask(i+ki,j,bi,bj) = 4.0
78     ELSE IF (maskFlag.EQ.0) THEN
79     DO kj=0,1
80     STREAMICE_umask(i+ki,j+kj,bi,bj) = 0.0
81     STREAMICE_vmask(i+ki,j+kj,bi,bj) = 0.0
82     ENDDO
83     STREAMICE_ufacemask(i+ki,j,bi,bj) = 0.0
84     ELSE IF (maskFlag.EQ.1) THEN
85     DO kj=0,1
86     STREAMICE_umask(i+ki,j+kj,bi,bj) = 0.0
87     ENDDO
88     END IF
89     ENDDO
90    
91     DO kj=0,1
92     maskFlag=INT(STREAMICE_vfacemask_bdry(i,j+kj,bi,bj))
93     IF (maskFlag.EQ.3) THEN
94     DO ki=0,1
95     STREAMICE_vmask(i+ki,j+kj,bi,bj) = 3.0
96     STREAMICE_umask(i+ki,j+kj,bi,bj) = 0.0
97     ENDDO
98     STREAMICE_vfacemask(i+ki,j,bi,bj) = 3.0
99     ELSE IF (maskFlag.EQ.2) THEN
100     DO ki=0,1
101     STREAMICE_vfacemask(i+ki,j+kj,bi,bj) = 2.0
102     ENDDO
103     ELSE IF (maskFlag.EQ.4) THEN
104     DO ki=0,1
105     STREAMICE_umask(i+ki,j+kj,bi,bj) = 0.0
106     STREAMICE_vmask(i+ki,j+kj,bi,bj) = 0.0
107     ENDDO
108     STREAMICE_vfacemask(i+ki,j,bi,bj) = 4.0
109     ELSE IF (maskFlag.EQ.0) THEN
110     DO ki=0,1
111     STREAMICE_umask(i+ki,j+kj,bi,bj) = 0.0
112     STREAMICE_vmask(i+ki,j+kj,bi,bj) = 0.0
113     ENDDO
114     STREAMICE_vfacemask(i+ki,j,bi,bj) = 0.0
115     ELSE IF (maskFlag.EQ.1) THEN
116     DO ki=0,1
117     STREAMICE_vmask(i+ki,j+kj,bi,bj) = 0.0
118     ENDDO
119     ENDIF
120     ENDDO
121    
122     IF (i .lt. sNx+OLx) THEN
123     IF ((STREAMICE_hmask(i+1,j,bi,bj) .eq. 0.0) .OR.
124     & (STREAMICE_hmask(i+1,j,bi,bj) .eq. 2.0)) THEN
125     !right boundary or adjacent to unfilled cell
126     STREAMICE_ufacemask(i+1,j,bi,bj) = 2.0
127     ENDIF
128     ENDIF
129    
130     IF (i .gt. 1-OLx) THEN
131     IF ((STREAMICE_hmask(i-1,j,bi,bj) .eq. 0.0) .OR.
132     & (STREAMICE_hmask(i-1,j,bi,bj) .eq. 2.0)) THEN
133     !left boundary or adjacent to unfilled cell
134     STREAMICE_ufacemask(i,j,bi,bj) = 2
135     ENDIF
136     ENDIF
137    
138     IF (j .lt. sNy+OLy) THEN
139     IF ((STREAMICE_hmask(i,j+1,bi,bj) .eq. 0.0) .OR.
140     & (STREAMICE_hmask(i,j+1,bi,bj) .eq. 2.0)) THEN
141     !top boundary or adjacent to unfilled cell
142     STREAMICE_vfacemask(i,j+1,bi,bj) = 2
143     ENDIF
144     ENDIF
145    
146     IF (j .gt. 1-OLy) THEN
147     IF ((STREAMICE_hmask(i,j-1,bi,bj) .eq. 0.0) .OR.
148     & (STREAMICE_hmask(i,j-1,bi,bj) .eq. 2.0)) THEN
149     !bot boundary or adjacent to unfilled cell
150     STREAMICE_vfacemask(i,j,bi,bj) = 2.0
151     ENDIF
152     ENDIF
153    
154     ENDIF
155     ENDDO
156     ENDDO
157     ENDDO
158     ENDDO
159    
160     _EXCH_XY_RL( STREAMICE_ufacemask, myThid )
161     _EXCH_XY_RL( STREAMICE_vfacemask, myThid )
162     _EXCH_XY_RL( STREAMICE_umask, myThid )
163     _EXCH_XY_RL( STREAMICE_vmask, myThid )
164    
165     ! CALL WRITE_FULLARRAY_RL ("umask",STREAMICE_umask,
166     ! c 1,0,0,1,0,myThid)
167     ! CALL WRITE_FLD_XY_RL ("umask2","",STREAMICE_umask,0,myThid)
168    
169    
170    
171     #endif
172     RETURN
173     END

  ViewVC Help
Powered by ViewVC 1.1.22