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

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

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


Revision 1.6 - (show annotations) (download)
Sat Jun 8 22:15:33 2013 UTC (12 years, 1 month ago) by dgoldberg
Branch: MAIN
Changes since 1.5: +71 -5 lines
new advected scalar; new advection scheme for thickness update; corresponding TAF directives

1 C $Header: /u/gcmpack/MITgcm_contrib/dgoldberg/streamice/streamice_init_fixed.F,v 1.5 2013/03/07 15:23:19 dgoldberg Exp $
2 C $Name: $
3
4 #include "STREAMICE_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP 0
8 C !ROUTINE: STREAMICE_INIT_FIXED
9
10 C !INTERFACE:
11 SUBROUTINE STREAMICE_INIT_FIXED( myThid )
12
13 C !DESCRIPTION:
14 C Initialize STREAMICE variables that are kept fixed during the run.
15
16 C !USES:
17 IMPLICIT NONE
18 #include "EEPARAMS.h"
19 #include "SIZE.h"
20 #include "PARAMS.h"
21 #include "STREAMICE.h"
22 #include "STREAMICE_CG.h"
23 #include "STREAMICE_BDRY.h"
24 #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
30 INTEGER myThid
31 CEOP
32
33 C !LOCAL VARIABLES:
34 C === Local variables ===
35 INTEGER bi, bj, i, j, Gi, Gj, m, k
36 INTEGER maskFlag, hmaskFlag
37 _RL x, y
38 _RS dummyRS
39 CHARACTER*(MAX_LEN_MBUF) msgBuf
40
41 #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
50
51 IF ( useMNC .AND. (streamice_tave_mnc.OR.streamice_dump_mnc)
52 & ) THEN
53 C CALL STREAMICE_MNC_INIT( myThid )
54 ENDIF
55 #endif /* ALLOW_MNC */
56
57 #ifdef ALLOW_DIAGNOSTICS
58 IF ( useDiagnostics ) THEN
59 CALL STREAMICE_INIT_DIAGNOSTICS( myThid )
60 ENDIF
61 #endif
62
63 ! CALVING MASK - LIMIT OF ICE SHELF FRONT ADVANCE
64
65 IF ( STREAMICE_calve_to_mask ) THEN
66 IF ( STREAMICEcalveMaskFile .NE. ' ') THEN
67 _BARRIER
68 C The 0 is the "iteration" argument. The ' ' is an empty suffix
69 CALL READ_FLD_XY_RL( STREAMICEcalveMaskFile, ' ',
70 & STREAMICE_calve_mask, 0, myThid )
71 ELSE
72 WRITE(msgBuf,'(A)') 'INIT CALVE MASK - NOT IMPLENTED'
73 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
74 & SQUEEZE_RIGHT , 1)
75 ENDIF
76 ENDIF
77
78
79 ! INITIALIZE SIGMA COORD
80 IF (STREAMICEsigcoordInit.eq.'FILE') THEN
81 WRITE(msgBuf,'(A)') 'SIG FROM FILE - NOT IMPLENTED'
82 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
83 & SQUEEZE_RIGHT , 1)
84 ELSEIF (STREAMICEsigcoordInit.eq.'UNIFORM') THEN
85 do m=1,Nr
86 streamice_sigma_coord (m) = 1./Nr * (m-0.5)
87 streamice_delsigma (m) = 1./Nr
88 enddo
89 ELSE
90 WRITE(msgBuf,'(A)') 'SIG COORD INIT - NOT IMPLENTED'
91 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
92 & SQUEEZE_RIGHT , 1)
93 ENDIF
94
95
96 #ifdef ALLOW_COST
97 IF ( STREAMICEcostMaskFile .NE. ' ') THEN
98 _BARRIER
99 C The 0 is the "iteration" argument. The ' ' is an empty suffix
100 CALL READ_FLD_XY_RL( STREAMICEcostMaskFile, ' ',
101 & STREAMICE_cost_mask, 0, myThid )
102 ELSE
103 WRITE(msgBuf,'(A)') 'COST MASK - NOT IMPLENTED'
104 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
105 & SQUEEZE_RIGHT , 1)
106
107 DO bj = myByLo(myThid), myByHi(myThid)
108 DO bi = myBxLo(myThid), myBxHi(myThid)
109 DO j=1,sNy
110 DO i=1,sNx
111 STREAMICE_cost_mask (i,j,bi,bj) = 1.0
112 ENDDO
113 ENDDO
114 ENDDO
115 ENDDO
116
117 ENDIF
118 #endif
119
120
121 ! READ IN FILES FOR BOUNDARY MASKS AND DIRICH VALUES
122 #ifdef STREAMICE_GEOM_FILE_SETUP
123
124 IF ( STREAMICEuFaceBdryFile .NE. ' ') THEN
125 _BARRIER
126 CALL READ_FLD_XY_RS ( STREAMICEuFaceBdryFile, ' ',
127 & temp_ufacemask, 0, myThid )
128 ELSE
129 WRITE(msgBuf,'(A)') 'U FACE MASK - NOT SET'
130 CALL PRINT_ERROR( msgBuf, myThid)
131 ENDIF
132
133 IF ( STREAMICEvFaceBdryFile .NE. ' ') THEN
134 _BARRIER
135 CALL READ_FLD_XY_RS ( STREAMICEvFaceBdryFile, ' ',
136 & temp_vfacemask, 0, myThid )
137 ELSE
138 WRITE(msgBuf,'(A)') 'V FACE MASK - NOT SET'
139 CALL PRINT_ERROR( msgBuf, myThid)
140 ENDIF
141
142 _EXCH_XY_RS(temp_ufacemask,myThid)
143 _EXCH_XY_RS(temp_ufacemask,myThid)
144
145 IF ( STREAMICEuDirichValsFile .NE. ' ') THEN
146 _BARRIER
147 CALL READ_FLD_XY_RL ( STREAMICEuDirichValsFile, ' ',
148 #ifdef ALLOW_STREAMICE_FLUX_CONTROL
149 & u_bdry_values_SI_base, 0, myThid )
150 #else
151 & u_bdry_values_SI, 0, myThid )
152 #endif
153 ELSE
154 WRITE(msgBuf,'(A)') 'U DIRICH VALS - NOT SET'
155 CALL PRINT_ERROR( msgBuf, myThid)
156 ENDIF
157
158 IF ( STREAMICEvDirichValsFile .NE. ' ') THEN
159 _BARRIER
160 CALL READ_FLD_XY_RL ( STREAMICEvDirichValsFile, ' ',
161 #ifdef ALLOW_STREAMICE_FLUX_CONTROL
162 & v_bdry_values_SI_base, 0, myThid )
163 #else
164 & v_bdry_values_SI, 0, myThid )
165 #endif
166 ELSE
167 WRITE(msgBuf,'(A)') 'V DIRICH VALS - NOT SET'
168 CALL PRINT_ERROR( msgBuf, myThid)
169 ENDIF
170
171 IF ( STREAMICEHBCxFile .NE. ' ') THEN
172 _BARRIER
173 CALL READ_FLD_XY_RL ( STREAMICEHBCxFile, ' ',
174 & h_ubdry_values_SI, 0, myThid )
175 ELSE
176 WRITE(msgBuf,'(A)') 'THICK BC AT U FACE - NOT SET'
177 CALL PRINT_ERROR( msgBuf, myThid)
178 ENDIF
179
180 IF ( STREAMICEHBCyFile .NE. ' ') THEN
181 _BARRIER
182 CALL READ_FLD_XY_RL ( STREAMICEHBCyFile, ' ',
183 & h_vbdry_values_SI, 0, myThid )
184 ELSE
185 WRITE(msgBuf,'(A)') 'THICK BC AT V FACE - NOT SET'
186 CALL PRINT_ERROR( msgBuf, myThid)
187 ENDIF
188
189 #ifdef ALLOW_STREAMICE_2DTRACER
190
191 IF ( STREAMICETrac2dBCxFile .NE. ' ') THEN
192 _BARRIER
193 CALL READ_FLD_XY_RL ( STREAMICETrac2dBCxFile, ' ',
194 & trac2d_ubdry_values_SI, 0, myThid )
195 ELSE
196 WRITE(msgBuf,'(A)') 'TRAC BC AT U FACE - NOT SET'
197 CALL PRINT_ERROR( msgBuf, myThid)
198 ENDIF
199
200 IF ( STREAMICETRAC2DBCyFile .NE. ' ') THEN
201 _BARRIER
202 CALL READ_FLD_XY_RL ( STREAMICETrac2dBCyFile, ' ',
203 & trac2d_vbdry_values_SI, 0, myThid )
204 ELSE
205 WRITE(msgBuf,'(A)') 'TRAC BC AT V FACE - NOT SET'
206 CALL PRINT_ERROR( msgBuf, myThid)
207 ENDIF
208
209 #endif
210
211
212 ! with this setup hmask is initialized here rather than in init_varia,
213 ! because it is needed to set no-flow boundaries, even though the field
214 ! could potentially change due to ice shelf front advance and calving
215 ! (POTENTIAL PROBLEMS WITH TAF?????? USE TEMP FIELD HERE AND SET HMASK IN INIT_VARIA??)
216
217 IF ( STREAMICEhMaskFile .NE. ' ') THEN
218 _BARRIER
219 CALL READ_FLD_XY_RS ( STREAMICEhMaskFile, ' ',
220 & temp_hmask, 0, myThid )
221 ELSE
222 WRITE(msgBuf,'(A)') 'H MASK FILE - NOT SET'
223 CALL PRINT_ERROR( msgBuf, myThid)
224 ENDIF
225
226 _EXCH_XY_RS(temp_hmask,myThid)
227
228
229 #ifdef ALLOW_CTRL
230 DO bj = myByLo(myThid), myByHi(myThid)
231 DO bi = myBxLo(myThid), myBxHi(myThid)
232 DO j=1,sNy
233 DO i=1,sNx
234 IF (temp_hmask(i,j,bi,bj) .eq. 1.0) THEN
235 DO k=1,Nr
236 STREAMICE_ctrl_mask(i,j,k,bi,bj) = 1. _d 0
237 ENDDO
238 ENDIF
239 ENDDO
240 ENDDO
241 ENDDO
242 ENDDO
243 #endif
244
245 #ifdef ALLOW_STREAMICE_FLUX_CONTROL
246 DO bj = myByLo(myThid), myByHi(myThid)
247 DO bi = myBxLo(myThid), myBxHi(myThid)
248 DO j=1,sNy
249 DO i=1,sNx
250 u_bdry_values_SI (i,j,bi,bj) =
251 & u_bdry_values_SI_base (i,j,bi,bj)
252 v_bdry_values_SI (i,j,bi,bj) =
253 & v_bdry_values_SI_base (i,j,bi,bj)
254 ENDDO
255 ENDDO
256 ENDDO
257 ENDDO
258 #endif
259
260 #endif /* STREAMICE_GEOM_FILE_SETUP */
261
262
263 !!!!!!!!!!!!!!!!!!!!!!!!!
264
265 C- fill in the overlap (+ BARRIER):
266 _EXCH_XY_RL(STREAMICE_calve_mask, myThid )
267
268 DO bj = myByLo(myThid), myByHi(myThid)
269 DO bi = myBxLo(myThid), myBxHi(myThid)
270 DO j=1,sNy
271 DO i=1,sNx
272
273 C INIT VALUES FOR METRIC TERMS
274
275 k1AtC_str(i,j,bi,bj) = recip_rA(i,j,bi,bj) *
276 & (dxG(i+1,j,bi,bj)-dxG(i,j,bi,bj))
277 k2AtC_str(i,j,bi,bj) = recip_rA(i,j,bi,bj) *
278 & (dyG(i,j+1,bi,bj)-dyG(i,j,bi,bj))
279
280 #ifdef STREAMICE_HYBRID_STRESS
281 streamice_basal_geom (i,j,bi,bj) = 1.0
282 #endif
283
284 C INIT BDRY CONDITIONS
285
286 #ifndef STREAMICE_GEOM_FILE_SETUP
287
288 Gi = (myXGlobalLo-1)+(bi-1)*sNx+i
289 Gj = (myYGlobalLo-1)+(bj-1)*sNy+j
290 x = xC(i,j,bi,bj)
291 y = yC(i,j,bi,bj)
292
293 STREAMICE_ufacemask_bdry (i,j,bi,bj) = -1.0
294 STREAMICE_vfacemask_bdry (i,j,bi,bj) = -1.0
295
296 IF (Gi.EQ.1 .AND. .NOT. STREAMICE_EW_periodic) THEN
297 C INITIALIZE BOUNDARY CONDS AT WEST
298 IF ((y .gt. min_y_noflow_WEST) .AND.
299 & (y .le. max_y_noflow_WEST)) THEN
300 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 0.0
301 ENDIF
302 IF ((y .gt. min_y_noStress_WEST) .AND.
303 & (y .le. max_y_noStress_WEST)) THEN
304 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 1.0
305 ENDIF
306 IF ((y .gt. min_y_FluxBdry_WEST) .AND.
307 & (y .le. max_y_FluxBdry_WEST)) THEN
308 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 4.0
309 u_flux_bdry_SI (i,j,bi,bj) = flux_bdry_val_WEST
310 ENDIF
311 IF ((y .gt. min_y_Dirich_WEST) .AND.
312 & (y .le. max_y_Dirich_WEST)) THEN
313 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 3.0
314 u_bdry_values_SI (i,j,bi,bj) = 0.0
315 ENDIF
316 IF ((y .gt. min_y_CFBC_WEST) .AND.
317 & (y .le. max_y_CFBC_WEST)) THEN
318 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 2.0
319 ENDIF
320 ENDIF
321
322 IF (Gi.EQ.Nx .AND. .NOT. STREAMICE_EW_periodic) THEN
323 C INITIALIZE BOUNDARY CONDS AT EAST
324 IF ((y .gt. min_y_noflow_EAST) .AND.
325 & (y .le. max_y_noflow_EAST)) THEN
326 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 0.0
327 ENDIF
328 IF ((y .gt. min_y_noStress_EAST) .AND.
329 & (y .le. max_y_noStress_EAST)) THEN
330 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 1.0
331 ENDIF
332 IF ((y .gt. min_y_FluxBdry_EAST) .AND.
333 & (y .le. max_y_FluxBdry_EAST)) THEN
334 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 4.0
335 u_flux_bdry_SI (i,j,bi,bj) = flux_bdry_val_EAST
336 ENDIF
337 IF ((y .gt. min_y_Dirich_EAST) .AND.
338 & (y .le. max_y_Dirich_EAST)) THEN
339 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 3.0
340 u_bdry_values_SI (i,j,bi,bj) = 0. _d 0
341 ENDIF
342 IF ((y .gt. min_y_CFBC_EAST) .AND.
343 & (y .le. max_y_CFBC_EAST)) THEN
344 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 2.0
345 ENDIF
346 ENDIF
347
348 IF (Gj.EQ.1 .AND. .NOT. STREAMICE_NS_periodic) THEN
349 C INITIALIZE BOUNDARY CONDS AT SOUTH
350 IF ((x .gt. min_x_noflow_SOUTH) .AND.
351 & (x .le. max_x_noflow_SOUTH)) THEN
352 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 0.0
353 ENDIF
354 IF ((x .gt. min_x_noStress_SOUTH) .AND.
355 & (x .le. max_x_noStress_SOUTH)) THEN
356 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 1.0
357 ENDIF
358 IF ((x .gt. min_x_FluxBdry_SOUTH) .AND.
359 & (x .le. max_x_FluxBdry_SOUTH)) THEN
360 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 4.0
361 u_flux_bdry_SI (i,j,bi,bj) = flux_bdry_val_SOUTH
362 ENDIF
363 IF ((x .gt. min_x_Dirich_SOUTH) .AND.
364 & (x .le. max_x_Dirich_SOUTH)) THEN
365 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 3.0
366 u_bdry_values_SI (i,j,bi,bj) = 0. _d 0
367 ENDIF
368 IF ((x .gt. min_x_CFBC_SOUTH) .AND.
369 & (x .le. max_x_CFBC_SOUTH)) THEN
370 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 2.0
371 ENDIF
372 ENDIF
373
374 IF (Gj.EQ.Ny .AND. .NOT. STREAMICE_NS_periodic) THEN
375 C INITIALIZE BOUNDARY CONDS AT NORTH
376 IF ((x .gt. min_x_noflow_NORTH) .AND.
377 & (x .le. max_x_noflow_NORTH)) THEN
378 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 0. _d 0
379 ENDIF
380 IF ((x .gt. min_x_noStress_NORTH) .AND.
381 & (x .le. max_x_noStress_NORTH)) THEN
382 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 1.0
383 ENDIF
384 IF ((x .gt. min_x_FluxBdry_NORTH) .AND.
385 & (x .le. max_x_FluxBdry_NORTH)) THEN
386 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 4.0
387 v_flux_bdry_SI (i,j,bi,bj) = flux_bdry_val_NORTH
388 ENDIF
389 IF ((x .gt. min_x_Dirich_NORTH) .AND.
390 & (x .le. max_x_Dirich_NORTH)) THEN
391 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 3.0
392 v_bdry_values_SI (i,j,bi,bj) = 0. _d 0
393 ENDIF
394 IF ((x .gt. min_x_CFBC_NORTH) .AND.
395 & (x .le. max_x_CFBC_NORTH)) THEN
396 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 2.0
397 ENDIF
398 ENDIF
399
400 #else /* ifndef STREAMICE_GEOM_FILE_SETUP */
401 ! BOUNDARY MASK CONFIGURED FROM FILES
402
403
404 IF (temp_hmask(i,j,bi,bj).eq.1.0 .or.
405 & temp_hmask(i,j,bi,bj).eq.0.0 .or.
406 & temp_hmask(i-1,j,bi,bj).eq.1.0) THEN
407
408 ! WEST FACE OF CELL
409 maskFlag=INT(temp_ufacemask(i,j,bi,bj))
410 IF (maskFlag.eq.2) THEN
411 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 2.0
412 ELSEIF (maskFlag.eq.3) THEN
413 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 3.0
414 ELSEIF (maskFlag.eq.1) THEN
415 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 1.0
416 ELSEIF ((maskFlag.eq.0) .or.
417 & ((maskFlag.eq.-1) .and.
418 & (temp_hmask(i-1,j,bi,bj).eq.-1.0))) THEN
419 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 0.0
420 ELSE
421 STREAMICE_ufacemask_bdry (i,j,bi,bj) = -1.0
422 ENDIF
423
424 ENDIF
425
426 IF (temp_hmask(i,j,bi,bj).eq.1.0 .or.
427 & temp_hmask(i,j,bi,bj).eq.0.0) THEN
428
429 ! EAST FACE OF CELL
430 maskFlag=INT(temp_ufacemask(i+1,j,bi,bj))
431 IF (maskFlag.eq.2) THEN
432 STREAMICE_ufacemask_bdry (i+1,j,bi,bj) = 2.0
433 ELSEIF (maskFlag.eq.3) THEN
434 STREAMICE_ufacemask_bdry (i+1,j,bi,bj) = 3.0
435 ELSEIF (maskFlag.eq.1) THEN
436 STREAMICE_ufacemask_bdry (i+1,j,bi,bj) = 1.0
437 ELSEIF ((maskFlag.eq.0) .or.
438 & ((maskFlag.eq.-1) .and.
439 & (temp_hmask(i+1,j,bi,bj).eq.-1.0))) THEN
440 STREAMICE_ufacemask_bdry (i+1,j,bi,bj) = 0.0
441 ELSE
442 STREAMICE_ufacemask_bdry (i+1,j,bi,bj) = -1.0
443 ENDIF
444
445 ENDIF
446
447 IF (temp_hmask(i,j,bi,bj).eq.1.0 .or.
448 & temp_hmask(i,j,bi,bj).eq.0.0 .or.
449 & temp_hmask(i,j-1,bi,bj).eq.1.0) THEN
450
451 ! SOUTH FACE OF CELL
452 maskFlag=INT(temp_vfacemask(i,j,bi,bj))
453 IF (maskFlag.eq.2) THEN
454 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 2.0
455 ELSEIF (maskFlag.eq.3) THEN
456 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 3.0
457 ELSEIF (maskFlag.eq.1) THEN
458 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 1.0
459 ELSEIF ((maskFlag.eq.0) .or.
460 & ((maskFlag.eq.-1) .and.
461 & (temp_hmask(i,j-1,bi,bj).eq.-1.0))) THEN
462 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 0.0
463 ELSE
464 STREAMICE_vfacemask_bdry (i,j,bi,bj) = -1.0
465 ENDIF
466
467 ENDIF
468
469 IF (temp_hmask(i,j,bi,bj).eq.1.0 .or.
470 & temp_hmask(i,j,bi,bj).eq.0.0) THEN
471
472
473 ! NORTH FACE OF CELL
474 maskFlag=INT(temp_vfacemask(i,j+1,bi,bj))
475 IF (maskFlag.eq.2) THEN
476 STREAMICE_vfacemask_bdry (i,j+1,bi,bj) = 2.0
477 ELSEIF (maskFlag.eq.3) THEN
478 STREAMICE_vfacemask_bdry (i,j+1,bi,bj) = 3.0
479 ELSEIF (maskFlag.eq.1) THEN
480 STREAMICE_vfacemask_bdry (i,j+1,bi,bj) = 1.0
481 ELSEIF ((maskFlag.eq.0) .or.
482 & ((maskFlag.eq.-1) .and.
483 & (temp_hmask(i,j+1,bi,bj).eq.-1.0))) THEN
484 STREAMICE_vfacemask_bdry (i,j+1,bi,bj) = 0.0
485 ELSE
486 STREAMICE_vfacemask_bdry (i,j+1,bi,bj) = -1.0
487 ENDIF
488
489 ENDIF ! hmask==1 or hmask==0
490
491 #endif
492
493 ENDDO
494 ENDDO
495 ENDDO
496 ENDDO
497
498 #ifdef ALLOW_CTRL
499 ! _EXCH_XY_RL(STREAMICE_ctrl_mask, myThid )
500 CALL ACTIVE_WRITE_GEN_RS( 'maskCtrlL', STREAMICE_ctrl_mask,
501 & 'XY', Nr, 1, .FALSE., 0, mythid, dummyRS )
502 #endif
503
504 #ifdef ALLOW_COST
505 ! _EXCH_XY_RL(STREAMICE_ctrl_mask, myThid )
506 CALL WRITE_FLD_XY_RS ( 'maskCost', '',
507 & STREAMICE_cost_mask, 0, myThid )
508 #endif
509
510
511 _EXCH_XY_RL(k1AtC_str, myThid )
512 _EXCH_XY_RL(k2AtC_str, myThid )
513 _EXCH_XY_RL(STREAMICE_ufacemask_bdry, myThid )
514 _EXCH_XY_RL(STREAMICE_vfacemask_bdry, myThid )
515 _EXCH_XY_RL(u_bdry_values_SI, myThid )
516 _EXCH_XY_RL(v_bdry_values_SI, myThid )
517 _EXCH_XY_RL(u_flux_bdry_SI, myThid )
518 _EXCH_XY_RL(v_flux_bdry_SI, myThid )
519
520 Xquad (1) = .5 * (1.-1./sqrt(3.))
521 Xquad (2) = .5 * (1.+1./sqrt(3.))
522
523 CALL STREAMICE_INIT_PHI( myThid )
524
525 #endif
526
527 RETURN
528 END
529

  ViewVC Help
Powered by ViewVC 1.1.22