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

Diff of /MITgcm_contrib/dgoldberg/streamice/streamice_init_fixed.F

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

revision 1.1 by heimbach, Thu Mar 29 15:59:21 2012 UTC revision 1.7 by dgoldberg, Wed Aug 27 19:29:14 2014 UTC
# Line 22  C     !USES: Line 22  C     !USES:
22  #include "STREAMICE_CG.h"  #include "STREAMICE_CG.h"
23  #include "STREAMICE_BDRY.h"  #include "STREAMICE_BDRY.h"
24  #include "GRID.h"  #include "GRID.h"
25    #ifdef ALLOW_STREAMICE_FLUX_CONTROL
26    #include "STREAMICE_CTRL_FLUX.h"
27    #endif
28    
29  C     myThid ::  my Thread Id number  C     myThid ::  my Thread Id number
30        INTEGER myThid        INTEGER myThid
# Line 29  CEOP Line 32  CEOP
32    
33  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
34  C     === Local variables ===  C     === Local variables ===
35        INTEGER bi, bj, i, j, Gi, Gj        INTEGER bi, bj, i, j, Gi, Gj, m, k
36          INTEGER maskFlag, hmaskFlag
37        _RL x, y        _RL x, y
38          _RS dummyRS
39        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
40    
41  #ifdef ALLOW_STREAMICE  #ifdef ALLOW_STREAMICE
42    
43    #ifdef STREAMICE_GEOM_FILE_SETUP
44          _RS temp_ufacemask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
45          _RS temp_vfacemask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
46          _RS temp_hmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
47    #endif
48    
49  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
50    
51        IF ( useMNC .AND. (streamice_tave_mnc.OR.streamice_dump_mnc)        IF ( useMNC .AND. (streamice_tave_mnc.OR.streamice_dump_mnc)
# Line 49  C        CALL STREAMICE_MNC_INIT( myThid Line 60  C        CALL STREAMICE_MNC_INIT( myThid
60        ENDIF        ENDIF
61  #endif  #endif
62    
63    !     CALVING MASK - LIMIT OF ICE SHELF FRONT ADVANCE
64    
65        IF ( STREAMICE_calve_to_mask ) THEN        IF ( STREAMICE_calve_to_mask ) THEN
66         IF ( STREAMICEcalveMaskFile .NE. ' ') THEN         IF ( STREAMICEcalveMaskFile .NE. ' ') THEN
67          _BARRIER          _BARRIER
68  C       The 0 is the "iteration" argument. The ' ' is an empty suffix  C       The 0 is the "iteration" argument. The ' ' is an empty suffix
69          CALL READ_FLD_XY_RL( STREAMICEcalveMaskFile, ' ',          CALL READ_FLD_XY_RS( STREAMICEcalveMaskFile, ' ',
70       &   STREAMICE_calve_mask, 0, myThid )       &   STREAMICE_calve_mask, 0, myThid )
71         ELSE         ELSE
72          WRITE(msgBuf,'(A)') 'INIT CALVE MASK - NOT IMPLENTED'          WRITE(msgBuf,'(A)') 'INIT CALVE MASK - NOT IMPLENTED'
# Line 62  C       The 0 is the "iteration" argumen Line 75  C       The 0 is the "iteration" argumen
75         ENDIF         ENDIF
76        ENDIF        ENDIF
77    
78    !  INITIALIZE SIGMA COORD
79          IF (STREAMICEsigcoordInit.eq.'FILE') THEN
80           WRITE(msgBuf,'(A)') 'SIG FROM FILE - NOT IMPLENTED'
81           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
82         &                    SQUEEZE_RIGHT , 1)
83          ELSEIF (STREAMICEsigcoordInit.eq.'UNIFORM') THEN
84           do m=1,Nr
85            streamice_sigma_coord (m) = 1./Nr * (m-0.5)
86            streamice_delsigma (m) = 1./Nr
87           enddo
88          ELSE
89           WRITE(msgBuf,'(A)') 'SIG COORD INIT - NOT IMPLENTED'
90           CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
91         &                    SQUEEZE_RIGHT , 1)
92          ENDIF
93    
94    #ifdef ALLOW_COST
95           IF ( STREAMICEcostMaskFile .NE. ' ') THEN
96            _BARRIER
97    C       The 0 is the "iteration" argument. The ' ' is an empty suffix
98            CALL READ_FLD_XY_RS( STREAMICEcostMaskFile, ' ',
99         &   STREAMICE_cost_mask, 0, myThid )
100           ELSE
101            WRITE(msgBuf,'(A)') 'COST MASK - NOT IMPLENTED'
102            CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
103         &                    SQUEEZE_RIGHT , 1)
104    
105            DO bj = myByLo(myThid), myByHi(myThid)
106             DO bi = myBxLo(myThid), myBxHi(myThid)
107              DO j=1,sNy
108               DO i=1,sNx
109                STREAMICE_cost_mask (i,j,bi,bj) = 1.0
110               ENDDO
111              ENDDO
112             ENDDO
113            ENDDO
114    
115           ENDIF
116    #endif
117    
118    !    READ IN FILES FOR BOUNDARY MASKS AND DIRICH VALUES
119    #ifdef STREAMICE_GEOM_FILE_SETUP
120    
121          IF ( STREAMICEuFaceBdryFile .NE. ' ') THEN
122            _BARRIER
123           CALL READ_FLD_XY_RS ( STREAMICEuFaceBdryFile, ' ',
124         &   temp_ufacemask, 0, myThid )
125          ELSE
126           WRITE(msgBuf,'(A)') 'U FACE MASK - NOT SET'
127           CALL PRINT_ERROR( msgBuf, myThid)
128          ENDIF
129    
130          IF ( STREAMICEvFaceBdryFile .NE. ' ') THEN
131            _BARRIER
132           CALL READ_FLD_XY_RS ( STREAMICEvFaceBdryFile, ' ',
133         &   temp_vfacemask, 0, myThid )
134          ELSE
135           WRITE(msgBuf,'(A)') 'V FACE MASK - NOT SET'
136           CALL PRINT_ERROR( msgBuf, myThid)
137          ENDIF
138    
139          _EXCH_XY_RS(temp_ufacemask,myThid)
140          _EXCH_XY_RS(temp_vfacemask,myThid)
141    
142          IF ( STREAMICEuDirichValsFile .NE. ' ') THEN
143            _BARRIER
144           CALL READ_FLD_XY_RL ( STREAMICEuDirichValsFile, ' ',
145    #ifdef ALLOW_STREAMICE_FLUX_CONTROL
146         &   u_bdry_values_SI_base, 0, myThid )
147    #else
148         &   u_bdry_values_SI, 0, myThid )
149    #endif
150          ELSE
151           WRITE(msgBuf,'(A)') 'U DIRICH VALS - NOT SET'
152           CALL PRINT_ERROR( msgBuf, myThid)
153          ENDIF
154    
155          IF ( STREAMICEvDirichValsFile .NE. ' ') THEN
156            _BARRIER
157           CALL READ_FLD_XY_RL ( STREAMICEvDirichValsFile, ' ',
158    #ifdef ALLOW_STREAMICE_FLUX_CONTROL
159         &   v_bdry_values_SI_base, 0, myThid )
160    #else
161         &   v_bdry_values_SI, 0, myThid )
162    #endif
163          ELSE
164           WRITE(msgBuf,'(A)') 'V DIRICH VALS - NOT SET'
165           CALL PRINT_ERROR( msgBuf, myThid)
166          ENDIF
167    
168          IF ( STREAMICEHBCxFile .NE. ' ') THEN
169            _BARRIER
170           CALL READ_FLD_XY_RL ( STREAMICEHBCxFile, ' ',
171         &   h_ubdry_values_SI, 0, myThid )
172          ELSE
173           WRITE(msgBuf,'(A)') 'THICK BC AT U FACE - NOT SET'
174           CALL PRINT_ERROR( msgBuf, myThid)
175          ENDIF
176    
177          IF ( STREAMICEHBCyFile .NE. ' ') THEN
178            _BARRIER
179           CALL READ_FLD_XY_RL ( STREAMICEHBCyFile, ' ',
180         &   h_vbdry_values_SI, 0, myThid )
181          ELSE
182           WRITE(msgBuf,'(A)') 'THICK BC AT V FACE - NOT SET'
183           CALL PRINT_ERROR( msgBuf, myThid)
184          ENDIF
185    
186    
187          IF ( streamiceumassfluxfile .NE. ' ') THEN
188            _BARRIER
189           CALL READ_FLD_XY_RL ( streamiceumassfluxfile , ' ',
190         &   u_flux_bdry_SI, 0, myThid )
191          ELSE
192           WRITE(msgBuf,'(A)') 'MASS FLUX AT U FACE - NOT SET'
193           CALL PRINT_ERROR( msgBuf, myThid)
194          ENDIF
195    
196          IF ( streamicevmassfluxfile .NE. ' ') THEN
197            _BARRIER
198           CALL READ_FLD_XY_RL ( streamicevmassfluxfile , ' ',
199         &   v_flux_bdry_SI, 0, myThid )
200          ELSE
201           WRITE(msgBuf,'(A)') 'MASS FLUX AT V FACE - NOT SET'
202           CALL PRINT_ERROR( msgBuf, myThid)
203          ENDIF
204    
205    #ifdef ALLOW_STREAMICE_2DTRACER
206    
207          IF ( STREAMICETrac2dBCxFile .NE. ' ') THEN
208            _BARRIER
209           CALL READ_FLD_XY_RL ( STREAMICETrac2dBCxFile, ' ',
210         &   trac2d_ubdry_values_SI, 0, myThid )
211          ELSE
212           WRITE(msgBuf,'(A)') 'TRAC BC AT U FACE - NOT SET'
213           CALL PRINT_ERROR( msgBuf, myThid)
214          ENDIF
215    
216          IF ( STREAMICETRAC2DBCyFile .NE. ' ') THEN
217            _BARRIER
218           CALL READ_FLD_XY_RL ( STREAMICETrac2dBCyFile, ' ',
219         &   trac2d_vbdry_values_SI, 0, myThid )
220          ELSE
221           WRITE(msgBuf,'(A)') 'TRAC BC AT V FACE - NOT SET'
222           CALL PRINT_ERROR( msgBuf, myThid)
223          ENDIF
224    
225    #endif
226    
227    ! with this setup hmask is initialized here rather than in init_varia,
228    ! because it is needed to set no-flow boundaries, even though the field
229    ! could potentially change due to ice shelf front advance and calving
230    ! (POTENTIAL PROBLEMS WITH TAF ? USE TEMP FIELD HERE AND SET HMASK IN INIT_VARIA ?)
231    
232          IF ( STREAMICEhMaskFile .NE. ' ') THEN
233            _BARRIER
234           CALL READ_FLD_XY_RS ( STREAMICEhMaskFile, ' ',
235         &   temp_hmask, 0, myThid )
236          ELSE
237           WRITE(msgBuf,'(A)') 'H MASK FILE - NOT SET'
238           CALL PRINT_ERROR( msgBuf, myThid)
239          ENDIF
240    
241          _EXCH_XY_RS(temp_hmask,myThid)
242    
243    #ifdef ALLOW_CTRL
244          DO bj = myByLo(myThid), myByHi(myThid)
245           DO bi = myBxLo(myThid), myBxHi(myThid)
246            DO j=1,sNy
247             DO i=1,sNx
248              IF (temp_hmask(i,j,bi,bj) .eq. 1.0) THEN
249               DO k=1,Nr
250               STREAMICE_ctrl_mask(i,j,k,bi,bj) = 1. _d 0
251               ENDDO
252              ENDIF
253             ENDDO
254            ENDDO
255           ENDDO
256          ENDDO
257    #endif
258    
259    #ifdef ALLOW_STREAMICE_FLUX_CONTROL
260         DO bj = myByLo(myThid), myByHi(myThid)
261           DO bi = myBxLo(myThid), myBxHi(myThid)
262            DO j=1,sNy
263             DO i=1,sNx
264              u_bdry_values_SI (i,j,bi,bj) =
265         &     u_bdry_values_SI_base (i,j,bi,bj)
266              v_bdry_values_SI (i,j,bi,bj) =
267         &     v_bdry_values_SI_base (i,j,bi,bj)
268             ENDDO
269            ENDDO
270           ENDDO
271          ENDDO
272    #endif
273    
274    #endif /* STREAMICE_GEOM_FILE_SETUP */
275    
276    !!!!!!!!!!!!!!!!!!!!!!!!!
277    
278  C- fill in the overlap (+ BARRIER):  C- fill in the overlap (+ BARRIER):
279        _EXCH_XY_RL(STREAMICE_calve_mask, myThid )        _EXCH_XY_RS(STREAMICE_calve_mask, myThid )
280    
281        DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
282         DO bi = myBxLo(myThid), myBxHi(myThid)         DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 72  C- fill in the overlap (+ BARRIER): Line 285  C- fill in the overlap (+ BARRIER):
285    
286  C         INIT VALUES FOR METRIC TERMS  C         INIT VALUES FOR METRIC TERMS
287    
288            k1AtC_str(i,j,bi,bj) = recip_rA(i,j,bi,bj) *            k1AtC_str(i,j,bi,bj) = recip_rA(i,j,bi,bj) *
289       &     (dxG(i+1,j,bi,bj)-dxG(i,j,bi,bj))       &     (dxG(i+1,j,bi,bj)-dxG(i,j,bi,bj))
290            k2AtC_str(i,j,bi,bj) = recip_rA(i,j,bi,bj) *            k2AtC_str(i,j,bi,bj) = recip_rA(i,j,bi,bj) *
291       &     (dyG(i,j+1,bi,bj)-dyG(i,j,bi,bj))       &     (dyG(i,j+1,bi,bj)-dyG(i,j,bi,bj))
292    
293    #ifdef STREAMICE_HYBRID_STRESS
294              streamice_basal_geom (i,j,bi,bj) = 1.0
295    #endif
296    
297  C         INIT BDRY CONDITIONS  C         INIT BDRY CONDITIONS
298    
299    #ifndef STREAMICE_GEOM_FILE_SETUP
300    
301            Gi = (myXGlobalLo-1)+(bi-1)*sNx+i            Gi = (myXGlobalLo-1)+(bi-1)*sNx+i
302            Gj = (myYGlobalLo-1)+(bj-1)*sNy+j            Gj = (myYGlobalLo-1)+(bj-1)*sNy+j
303            x = xC(i,j,bi,bj)            x = xC(i,j,bi,bj)
# Line 87  C         INIT BDRY CONDITIONS Line 306  C         INIT BDRY CONDITIONS
306            STREAMICE_ufacemask_bdry (i,j,bi,bj) = -1.0            STREAMICE_ufacemask_bdry (i,j,bi,bj) = -1.0
307            STREAMICE_vfacemask_bdry (i,j,bi,bj) = -1.0            STREAMICE_vfacemask_bdry (i,j,bi,bj) = -1.0
308    
309            IF (Gi .EQ. 1) THEN            IF (Gi.EQ.1 .AND. .NOT. STREAMICE_EW_periodic) THEN
310  C         INITIALIZE BOUNDARY CONDS AT WEST  C         INITIALIZE BOUNDARY CONDS AT WEST
311             IF ((y .gt. min_y_noflow_WEST) .AND.             IF ((y .gt. min_y_noflow_WEST) .AND.
312       &         (y .le. max_y_noflow_WEST)) THEN       &         (y .le. max_y_noflow_WEST)) THEN
# Line 113  C         INITIALIZE BOUNDARY CONDS AT W Line 332  C         INITIALIZE BOUNDARY CONDS AT W
332             ENDIF             ENDIF
333            ENDIF            ENDIF
334    
335            IF (Gi .EQ. Nx) THEN            IF (Gi.EQ.Nx .AND. .NOT. STREAMICE_EW_periodic) THEN
336  C         INITIALIZE BOUNDARY CONDS AT EAST  C         INITIALIZE BOUNDARY CONDS AT EAST
337             IF ((y .gt. min_y_noflow_EAST) .AND.             IF ((y .gt. min_y_noflow_EAST) .AND.
338       &         (y .le. max_y_noflow_EAST)) THEN       &         (y .le. max_y_noflow_EAST)) THEN
# Line 125  C         INITIALIZE BOUNDARY CONDS AT E Line 344  C         INITIALIZE BOUNDARY CONDS AT E
344             ENDIF             ENDIF
345             IF ((y .gt. min_y_FluxBdry_EAST) .AND.             IF ((y .gt. min_y_FluxBdry_EAST) .AND.
346       &         (y .le. max_y_FluxBdry_EAST)) THEN       &         (y .le. max_y_FluxBdry_EAST)) THEN
347              STREAMICE_ufacemask_bdry (i,j,bi,bj) = 4.0              STREAMICE_ufacemask_bdry (i,j,bi,bj) = 4.0
348              u_flux_bdry_SI (i,j,bi,bj) = flux_bdry_val_EAST              u_flux_bdry_SI (i,j,bi,bj) = flux_bdry_val_EAST
349             ENDIF             ENDIF
350             IF ((y .gt. min_y_Dirich_EAST) .AND.             IF ((y .gt. min_y_Dirich_EAST) .AND.
# Line 139  C         INITIALIZE BOUNDARY CONDS AT E Line 358  C         INITIALIZE BOUNDARY CONDS AT E
358             ENDIF             ENDIF
359            ENDIF            ENDIF
360    
361            IF (Gj .EQ. 1) THEN            IF (Gj.EQ.1 .AND. .NOT. STREAMICE_NS_periodic) THEN
362  C         INITIALIZE BOUNDARY CONDS AT SOUTH  C         INITIALIZE BOUNDARY CONDS AT SOUTH
363             IF ((x .gt. min_x_noflow_SOUTH) .AND.             IF ((x .gt. min_x_noflow_SOUTH) .AND.
364       &         (x .le. max_x_noflow_SOUTH)) THEN       &         (x .le. max_x_noflow_SOUTH)) THEN
# Line 165  C         INITIALIZE BOUNDARY CONDS AT S Line 384  C         INITIALIZE BOUNDARY CONDS AT S
384             ENDIF             ENDIF
385            ENDIF            ENDIF
386    
387            IF (Gj .EQ. Ny) THEN            IF (Gj.EQ.Ny .AND. .NOT. STREAMICE_NS_periodic) THEN
388  C         INITIALIZE BOUNDARY CONDS AT NORTH  C         INITIALIZE BOUNDARY CONDS AT NORTH
389             IF ((x .gt. min_x_noflow_NORTH) .AND.             IF ((x .gt. min_x_noflow_NORTH) .AND.
390       &         (x .le. max_x_noflow_NORTH)) THEN       &         (x .le. max_x_noflow_NORTH)) THEN
# Line 190  C         INITIALIZE BOUNDARY CONDS AT N Line 409  C         INITIALIZE BOUNDARY CONDS AT N
409              STREAMICE_vfacemask_bdry (i,j,bi,bj) = 2.0              STREAMICE_vfacemask_bdry (i,j,bi,bj) = 2.0
410             ENDIF             ENDIF
411            ENDIF            ENDIF
412                      
413    #else /* ifndef STREAMICE_GEOM_FILE_SETUP */
414    ! BOUNDARY MASK CONFIGURED FROM FILES
415    
416              IF (temp_hmask(i,j,bi,bj).eq.1.0 .or.
417         &        temp_hmask(i,j,bi,bj).eq.0.0 .or.
418         &        temp_hmask(i-1,j,bi,bj).eq.1.0) THEN
419    
420              ! WEST FACE OF CELL
421               maskFlag=INT(temp_ufacemask(i,j,bi,bj))
422               IF (maskFlag.eq.2) THEN
423                STREAMICE_ufacemask_bdry (i,j,bi,bj) = 2.0
424               ELSEIF (maskflag.eq.4.0) THEN
425                STREAMICE_ufacemask_bdry (i,j,bi,bj) = 4.0
426               ELSEIF (maskFlag.eq.3) THEN
427                STREAMICE_ufacemask_bdry (i,j,bi,bj) = 3.0
428               ELSEIF (maskFlag.eq.1) THEN
429                STREAMICE_ufacemask_bdry (i,j,bi,bj) = 1.0
430               ELSEIF ((maskFlag.eq.0) .or.
431         &      ((maskFlag.eq.-1) .and.
432         &       (temp_hmask(i-1,j,bi,bj).eq.-1.0))) THEN
433                STREAMICE_ufacemask_bdry (i,j,bi,bj) = 0.0
434               ELSEIF (temp_hmask(i,j,bi,bj).eq.-1.0) THEN
435                STREAMICE_vfacemask_bdry (i,j,bi,bj) = 0.0
436               ELSE
437                STREAMICE_ufacemask_bdry (i,j,bi,bj) = -1.0
438               ENDIF
439    
440              ENDIF
441    
442              IF (temp_hmask(i,j,bi,bj).eq.1.0 .or.
443         &        temp_hmask(i,j,bi,bj).eq.0.0) THEN
444    
445               ! EAST FACE OF CELL
446               maskFlag=INT(temp_ufacemask(i+1,j,bi,bj))
447               IF (maskFlag.eq.2) THEN
448                STREAMICE_ufacemask_bdry (i+1,j,bi,bj) = 2.0
449               ELSEIF (maskFlag.eq.4.0) THEN
450                STREAMICE_ufacemask_bdry (i+1,j,bi,bj) = 4.0
451               ELSEIF (maskFlag.eq.3) THEN
452                STREAMICE_ufacemask_bdry (i+1,j,bi,bj) = 3.0
453               ELSEIF (maskFlag.eq.1) THEN
454                STREAMICE_ufacemask_bdry (i+1,j,bi,bj) = 1.0
455               ELSEIF ((maskFlag.eq.0) .or.
456         &      ((maskFlag.eq.-1) .and.
457         &       (temp_hmask(i+1,j,bi,bj).eq.-1.0))) THEN
458                STREAMICE_ufacemask_bdry (i+1,j,bi,bj) = 0.0
459               ELSE
460                STREAMICE_ufacemask_bdry (i+1,j,bi,bj) = -1.0
461               ENDIF
462    
463              ENDIF
464    
465              IF (temp_hmask(i,j,bi,bj).eq.1.0 .or.
466         &        temp_hmask(i,j,bi,bj).eq.0.0 .or.
467         &        temp_hmask(i,j-1,bi,bj).eq.1.0) THEN
468    
469               ! SOUTH FACE OF CELL
470               maskFlag=INT(temp_vfacemask(i,j,bi,bj))
471               IF (maskFlag.eq.2) THEN
472                STREAMICE_vfacemask_bdry (i,j,bi,bj) = 2.0
473               ELSEIF (maskFlag.eq.4.0) THEN
474                STREAMICE_vfacemask_bdry (i,j,bi,bj) = 4.0
475               ELSEIF (maskFlag.eq.3) THEN
476                STREAMICE_vfacemask_bdry (i,j,bi,bj) = 3.0
477               ELSEIF (maskFlag.eq.1) THEN
478                STREAMICE_vfacemask_bdry (i,j,bi,bj) = 1.0
479               ELSEIF ((maskFlag.eq.0) .or.
480         &      ((maskFlag.eq.-1) .and.
481         &       (temp_hmask(i,j-1,bi,bj).eq.-1.0))) THEN
482                STREAMICE_vfacemask_bdry (i,j,bi,bj) = 0.0
483               ELSEIF (temp_hmask(i,j,bi,bj).eq.-1.0) THEN
484                STREAMICE_vfacemask_bdry (i,j,bi,bj) = 0.0
485               ELSE
486                STREAMICE_vfacemask_bdry (i,j,bi,bj) = -1.0
487               ENDIF
488    
489              ENDIF
490    
491              IF (temp_hmask(i,j,bi,bj).eq.1.0 .or.
492         &        temp_hmask(i,j,bi,bj).eq.0.0) THEN
493    
494               ! NORTH FACE OF CELL
495               maskFlag=INT(temp_vfacemask(i,j+1,bi,bj))
496               IF (maskFlag.eq.2) THEN
497                STREAMICE_vfacemask_bdry (i,j+1,bi,bj) = 2.0
498               ELSEIF (maskFlag.eq.4.0) THEN
499                STREAMICE_vfacemask_bdry (i,j+1,bi,bj) = 4.0
500               ELSEIF (maskFlag.eq.3) THEN
501                STREAMICE_vfacemask_bdry (i,j+1,bi,bj) = 3.0
502               ELSEIF (maskFlag.eq.1) THEN
503                STREAMICE_vfacemask_bdry (i,j+1,bi,bj) = 1.0
504               ELSEIF ((maskFlag.eq.0) .or.
505         &      ((maskFlag.eq.-1) .and.
506         &       (temp_hmask(i,j+1,bi,bj).eq.-1.0))) THEN
507                STREAMICE_vfacemask_bdry (i,j+1,bi,bj) = 0.0
508               ELSE
509                STREAMICE_vfacemask_bdry (i,j+1,bi,bj) = -1.0
510               ENDIF
511    
512              ENDIF ! hmask==1 or hmask==0
513    
514    #endif
515    
516           ENDDO           ENDDO
517          ENDDO          ENDDO
518         ENDDO         ENDDO
519        ENDDO        ENDDO
520    
521    #ifdef ALLOW_CTRL
522    !      _EXCH_XY_RL(STREAMICE_ctrl_mask, myThid )
523          CALL ACTIVE_WRITE_GEN_RS( 'maskCtrlL', STREAMICE_ctrl_mask,
524         &  'XY', Nr, 1, .FALSE., 0, myThid, dummyRS )
525    #endif
526    
527    #ifdef ALLOW_COST
528    !      _EXCH_XY_RL(STREAMICE_ctrl_mask, myThid )
529          CALL WRITE_FLD_XY_RS ( 'maskCost', '',
530         & STREAMICE_cost_mask, 0, myThid )
531    #endif
532    
533    
534    
535        _EXCH_XY_RL(k1AtC_str, myThid )        _EXCH_XY_RL(k1AtC_str, myThid )
536        _EXCH_XY_RL(k2AtC_str, myThid )        _EXCH_XY_RL(k2AtC_str, myThid )
537        _EXCH_XY_RL(STREAMICE_ufacemask_bdry, myThid )        _EXCH_XY_RS(STREAMICE_ufacemask_bdry, myThid )
538        _EXCH_XY_RL(STREAMICE_vfacemask_bdry, myThid )        _EXCH_XY_RS(STREAMICE_vfacemask_bdry, myThid )
539        _EXCH_XY_RL(u_bdry_values_SI, myThid )        _EXCH_XY_RL(u_bdry_values_SI, myThid )
540        _EXCH_XY_RL(v_bdry_values_SI, myThid )        _EXCH_XY_RL(v_bdry_values_SI, myThid )
541        _EXCH_XY_RL(u_flux_bdry_SI, myThid )        _EXCH_XY_RL(u_flux_bdry_SI, myThid )
# Line 210  C         INITIALIZE BOUNDARY CONDS AT N Line 546  C         INITIALIZE BOUNDARY CONDS AT N
546    
547        CALL STREAMICE_INIT_PHI( myThid )        CALL STREAMICE_INIT_PHI( myThid )
548    
         
   
549  #endif  #endif
550    
551        RETURN        RETURN
552        END        END
   

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

  ViewVC Help
Powered by ViewVC 1.1.22