/[MITgcm]/MITgcm/pkg/seaice/seaice_init_varia.F
ViewVC logotype

Annotation of /MITgcm/pkg/seaice/seaice_init_varia.F

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


Revision 1.67 - (hide annotations) (download)
Wed Dec 28 19:15:53 2011 UTC (12 years, 5 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint63h
Changes since 1.66: +11 -11 lines
change declaration of UVM from _RL to _RS

1 jmc 1.67 C $Header: /u/gcmpack/MITgcm/pkg/seaice/seaice_init_varia.F,v 1.66 2011/11/17 13:17:28 mlosch Exp $
2 heimbach 1.1 C $Name: $
3    
4     #include "SEAICE_OPTIONS.h"
5 jmc 1.63 #ifdef ALLOW_OBCS
6     # include "OBCS_OPTIONS.h"
7     #endif
8 heimbach 1.1
9     CStartOfInterface
10     SUBROUTINE SEAICE_INIT_VARIA( myThid )
11 jmc 1.47 C *==========================================================*
12 heimbach 1.1 C | SUBROUTINE SEAICE_INIT_VARIA |
13     C | o Initialization of sea ice model. |
14 jmc 1.47 C *==========================================================*
15     C *==========================================================*
16 heimbach 1.1 IMPLICIT NONE
17 jmc 1.23
18 heimbach 1.1 C === Global variables ===
19     #include "SIZE.h"
20     #include "EEPARAMS.h"
21     #include "PARAMS.h"
22     #include "GRID.h"
23 dimitri 1.21 #include "DYNVARS.h"
24 jmc 1.50 #include "FFIELDS.h"
25 heimbach 1.54 #include "SEAICE_SIZE.h"
26 jmc 1.50 #include "SEAICE_PARAMS.h"
27 heimbach 1.1 #include "SEAICE.h"
28 heimbach 1.54 #include "SEAICE_TRACER.h"
29 jmc 1.50 #include "SEAICE_TAVE.h"
30 jmc 1.63 #ifdef OBCS_UVICE_OLD
31 jmc 1.57 # include "OBCS_GRID.h"
32 dimitri 1.24 #endif
33 heimbach 1.1
34     C === Routine arguments ===
35 jmc 1.62 C myThid :: Thread no. that called this routine.
36 heimbach 1.1 INTEGER myThid
37     CEndOfInterface
38 jmc 1.23
39 heimbach 1.1 C === Local variables ===
40 jmc 1.62 C i,j,k,bi,bj :: Loop counters
41 heimbach 1.1
42 jmc 1.55 INTEGER i, j, bi, bj
43 mlosch 1.8 _RL PSTAR
44 jmc 1.59 INTEGER kSurface
45 jmc 1.55 #ifdef SEAICE_CGRID
46 heimbach 1.1 _RS mask_uice
47 jmc 1.55 #endif
48 jmc 1.50 #ifdef SEAICE_MULTICATEGORY
49     INTEGER k
50     #endif
51 gforget 1.60 #ifdef ALLOW_SITRACER
52     INTEGER iTr, jTh
53     #endif
54 jmc 1.55 #ifdef SEAICE_AGE
55     INTEGER iTracer
56     #endif
57 jmc 1.63 #ifdef OBCS_UVICE_OLD
58 dimitri 1.53 INTEGER I_obc, J_obc
59     #endif /* ALLOW_OBCS */
60 heimbach 1.1
61 jmc 1.23 IF ( buoyancyRelation .EQ. 'OCEANICP' ) THEN
62 mlosch 1.44 kSurface = Nr
63 jmc 1.23 ELSE
64 mlosch 1.44 kSurface = 1
65 jmc 1.23 ENDIF
66 dimitri 1.11
67 jmc 1.23 C-- Initialise all variables in common blocks:
68 heimbach 1.1 DO bj=myByLo(myThid),myByHi(myThid)
69     DO bi=myBxLo(myThid),myBxHi(myThid)
70 mlosch 1.42 DO j=1-OLy,sNy+OLy
71     DO i=1-OLx,sNx+OLx
72 mlosch 1.43 HEFF(i,j,bi,bj)=0. _d 0
73     AREA(i,j,bi,bj)=0. _d 0
74     UICE(i,j,bi,bj)=0. _d 0
75     VICE(i,j,bi,bj)=0. _d 0
76 heimbach 1.65 #ifdef SEAICE_ALLOW_FREEDRIFT
77 heimbach 1.64 uice_fd(i,j,bi,bj)=0. _d 0
78     vice_fd(i,j,bi,bj)=0. _d 0
79 heimbach 1.65 #endif
80 mlosch 1.43 C
81 mlosch 1.42 uIceNm1(i,j,bi,bj)=0. _d 0
82     vIceNm1(i,j,bi,bj)=0. _d 0
83     areaNm1(i,j,bi,bj)=0. _d 0
84     hEffNm1(i,j,bi,bj)=0. _d 0
85     ENDDO
86     ENDDO
87 jmc 1.23 #ifdef SEAICE_MULTICATEGORY
88     DO k=1,MULTDIM
89     DO j=1-OLy,sNy+OLy
90     DO i=1-OLx,sNx+OLx
91     TICES(i,j,k,bi,bj)=0. _d 0
92 heimbach 1.1 ENDDO
93     ENDDO
94     ENDDO
95 jmc 1.23 #endif
96     DO j=1-OLy,sNy+OLy
97     DO i=1-OLx,sNx+OLx
98     ETA (i,j,bi,bj) = 0. _d 0
99     ZETA(i,j,bi,bj) = 0. _d 0
100     DRAGS(i,j,bi,bj) = 0. _d 0
101     DRAGA(i,j,bi,bj) = 0. _d 0
102     FORCEX(i,j,bi,bj) = 0. _d 0
103     FORCEY(i,j,bi,bj) = 0. _d 0
104     UICEC(i,j,bi,bj) = 0. _d 0
105     VICEC(i,j,bi,bj) = 0. _d 0
106     #ifdef SEAICE_CGRID
107     seaiceMassC(i,j,bi,bj)=0. _d 0
108     seaiceMassU(i,j,bi,bj)=0. _d 0
109     seaiceMassV(i,j,bi,bj)=0. _d 0
110     stressDivergenceX(i,j,bi,bj) = 0. _d 0
111     stressDivergenceY(i,j,bi,bj) = 0. _d 0
112 heimbach 1.39 # ifdef SEAICE_ALLOW_EVP
113 jmc 1.23 seaice_sigma1 (i,j,bi,bj) = 0. _d 0
114     seaice_sigma2 (i,j,bi,bj) = 0. _d 0
115     seaice_sigma12(i,j,bi,bj) = 0. _d 0
116     # endif /* SEAICE_ALLOW_EVP */
117     #else /* SEAICE_CGRID */
118     AMASS(i,j,bi,bj) = 0. _d 0
119     DAIRN(i,j,bi,bj) = 0. _d 0
120     WINDX(i,j,bi,bj) = 0. _d 0
121     WINDY(i,j,bi,bj) = 0. _d 0
122 dimitri 1.25 GWATX(i,j,bi,bj) = 0. _d 0
123     GWATY(i,j,bi,bj) = 0. _d 0
124 jmc 1.23 #endif /* SEAICE_CGRID */
125     DWATN(i,j,bi,bj) = 0. _d 0
126     PRESS0(i,j,bi,bj) = 0. _d 0
127     FORCEX0(i,j,bi,bj)= 0. _d 0
128     FORCEY0(i,j,bi,bj)= 0. _d 0
129     ZMAX(i,j,bi,bj) = 0. _d 0
130     ZMIN(i,j,bi,bj) = 0. _d 0
131     HSNOW(i,j,bi,bj) = 0. _d 0
132 ifenty 1.56 #ifdef SEAICE_VARIABLE_SALINITY
133 jmc 1.23 HSALT(i,j,bi,bj) = 0. _d 0
134     #endif
135 gforget 1.60 #ifdef ALLOW_SITRACER
136     DO iTr = 1, SItrMaxNum
137     SItracer(i,j,bi,bj,iTr) = 0. _d 0
138     SItrBucket(i,j,bi,bj,iTr) = 0. _d 0
139     c "ice concentration" tracer that should remain .EQ.1.
140     if (SItrName(iTr).EQ.'one') SItracer(i,j,bi,bj,iTr)=1. _d 0
141     ENDDO
142     DO jTh = 1, 5
143     SItrHEFF (i,j,bi,bj,jTh) = 0. _d 0
144     ENDDO
145 gforget 1.61 DO jTh = 1, 3
146     SItrAREA (i,j,bi,bj,jTh) = 0. _d 0
147     ENDDO
148 gforget 1.60 #endif
149 dimitri 1.33 #ifdef SEAICE_AGE
150 heimbach 1.54 DO iTracer = 1, SEAICE_num
151     IceAgeTr(i,j,bi,bj,iTracer) = 0. _d 0
152     ENDDO
153 dimitri 1.33 #endif
154 jmc 1.23 YNEG (i,j,bi,bj) = 0. _d 0
155     RIVER(i,j,bi,bj) = 0. _d 0
156     TMIX(i,j,bi,bj) = 0. _d 0
157     TICE(i,j,bi,bj) = 0. _d 0
158     TAUX(i,j,bi,bj) = 0. _d 0
159     TAUY(i,j,bi,bj) = 0. _d 0
160     #ifdef ALLOW_SEAICE_COST_EXPORT
161     uHeffExportCell(i,j,bi,bj) = 0. _d 0
162     vHeffExportCell(i,j,bi,bj) = 0. _d 0
163 dimitri 1.18 #endif
164 heimbach 1.32 saltWtrIce(i,j,bi,bj) = 0. _d 0
165     frWtrIce(i,j,bi,bj) = 0. _d 0
166 heimbach 1.49 #ifdef ALLOW_MEAN_SFLUX_COST_CONTRIBUTION
167     frWtrAtm(i,j,bi,bj) = 0. _d 0
168     #endif
169 heimbach 1.1 ENDDO
170     ENDDO
171     ENDDO
172     ENDDO
173    
174 jmc 1.50 #ifdef ALLOW_TIMEAVE
175     C Initialize averages to zero
176     DO bj = myByLo(myThid), myByHi(myThid)
177     DO bi = myBxLo(myThid), myBxHi(myThid)
178     CALL TIMEAVE_RESET( FUtave , 1, bi, bj, myThid )
179     CALL TIMEAVE_RESET( FVtave , 1, bi, bj, myThid )
180     CALL TIMEAVE_RESET( EmPmRtave, 1, bi, bj, myThid )
181     CALL TIMEAVE_RESET( QNETtave , 1, bi, bj, myThid )
182     CALL TIMEAVE_RESET( QSWtave , 1, bi, bj, myThid )
183     CALL TIMEAVE_RESET( UICEtave , 1, bi, bj, myThid )
184     CALL TIMEAVE_RESET( VICEtave , 1, bi, bj, myThid )
185     CALL TIMEAVE_RESET( HEFFtave , 1, bi, bj, myThid )
186     CALL TIMEAVE_RESET( AREAtave , 1, bi, bj, myThid )
187     SEAICE_timeAve(bi,bj) = ZERO
188     ENDDO
189     ENDDO
190     #endif /* ALLOW_TIMEAVE */
191    
192 mlosch 1.40 C-- Initialize (variable) grid info. As long as we allow masking of
193     C-- velocities outside of ice covered areas (in seaice_dynsolver)
194     C-- we need to re-initialize seaiceMaskU/V here for TAF/TAMC
195 mlosch 1.66 #ifdef SEAICE_CGRID
196 heimbach 1.1 DO bj=myByLo(myThid),myByHi(myThid)
197     DO bi=myBxLo(myThid),myBxHi(myThid)
198 jmc 1.23 DO j=1-OLy+1,sNy+OLy
199     DO i=1-OLx+1,sNx+OLx
200     seaiceMaskU(i,j,bi,bj)= 0.0 _d 0
201     seaiceMaskV(i,j,bi,bj)= 0.0 _d 0
202     mask_uice=HEFFM(i,j,bi,bj)+HEFFM(i-1,j ,bi,bj)
203 heimbach 1.45 IF(mask_uice.GT.1.5 _d 0) seaiceMaskU(i,j,bi,bj)=1.0 _d 0
204 jmc 1.23 mask_uice=HEFFM(i,j,bi,bj)+HEFFM(i ,j-1,bi,bj)
205 heimbach 1.45 IF(mask_uice.GT.1.5 _d 0) seaiceMaskV(i,j,bi,bj)=1.0 _d 0
206 dimitri 1.22 ENDDO
207     ENDDO
208 mlosch 1.40 ENDDO
209     ENDDO
210 mlosch 1.66 #endif /* SEAICE_CGRID */
211 dimitri 1.11
212 mlosch 1.40 DO bj=myByLo(myThid),myByHi(myThid)
213     DO bi=myBxLo(myThid),myBxHi(myThid)
214 jmc 1.63 #ifdef OBCS_UVICE_OLD
215     #ifdef SEAICE_CGRID
216 dimitri 1.16 IF (useOBCS) THEN
217 dimitri 1.22 C-- If OBCS is turned on, close southern and western boundaries
218 jmc 1.67 DO i=1-OLx,sNx+OLx
219 dimitri 1.11 C Southern boundary
220 dimitri 1.53 J_obc = OB_Js(i,bi,bj)
221     IF (J_obc.NE.0) THEN
222     seaiceMaskU(i,J_obc,bi,bj)= 0.0 _d 0
223     seaiceMaskV(i,J_obc,bi,bj)= 0.0 _d 0
224 dimitri 1.16 ENDIF
225     ENDDO
226 jmc 1.67 DO j=1-OLy,sNy+OLy
227 dimitri 1.11 C Western boundary
228 dimitri 1.53 I_obc=OB_Iw(j,bi,bj)
229     IF (I_obc.NE.0) THEN
230     seaiceMaskU(I_obc,j,bi,bj)= 0.0 _d 0
231     seaiceMaskV(I_obc,j,bi,bj)= 0.0 _d 0
232 dimitri 1.16 ENDIF
233     ENDDO
234     ENDIF
235 dimitri 1.11 #endif /* SEAICE_CGRID */
236 jmc 1.63 #endif /* OBCS_UVICE_OLD */
237 heimbach 1.1
238     DO j=1-OLy,sNy+OLy
239     DO i=1-OLx,sNx+OLx
240 jmc 1.23 TICE(i,j,bi,bj)=273.0 _d 0
241 mlosch 1.2 #ifdef SEAICE_MULTICATEGORY
242 heimbach 1.1 DO k=1,MULTDIM
243 jmc 1.23 TICES(i,j,k,bi,bj)=273.0 _d 0
244 heimbach 1.1 ENDDO
245 mlosch 1.2 #endif /* SEAICE_MULTICATEGORY */
246 heimbach 1.1 #ifndef SEAICE_CGRID
247 jmc 1.23 AMASS (i,j,bi,bj)=1000.0 _d 0
248 heimbach 1.1 #else
249 jmc 1.23 seaiceMassC(i,j,bi,bj)=1000.0 _d 0
250     seaiceMassU(i,j,bi,bj)=1000.0 _d 0
251     seaiceMassV(i,j,bi,bj)=1000.0 _d 0
252 heimbach 1.1 #endif
253     ENDDO
254     ENDDO
255    
256     ENDDO
257     ENDDO
258    
259     C-- Update overlap regions
260     #ifdef SEAICE_CGRID
261     CALL EXCH_UV_XY_RL(seaiceMaskU,seaiceMaskV,.FALSE.,myThid)
262     #else
263 jmc 1.67 _EXCH_XY_RS(UVM, myThid)
264 heimbach 1.1 #endif
265    
266     C-- Now lets look at all these beasts
267 jmc 1.59 IF ( debugLevel .GE. debLevC ) THEN
268 heimbach 1.1 CALL PLOT_FIELD_XYRL( HEFFM , 'Current HEFFM ' ,
269 jmc 1.59 & nIter0, myThid )
270 heimbach 1.1 #ifdef SEAICE_CGRID
271     CALL PLOT_FIELD_XYRL( seaiceMaskU, 'Current seaiceMaskU',
272 jmc 1.59 & nIter0, myThid )
273 heimbach 1.1 CALL PLOT_FIELD_XYRL( seaiceMaskV, 'Current seaiceMaskV',
274 jmc 1.59 & nIter0, myThid )
275 heimbach 1.1 #else
276 jmc 1.67 CALL PLOT_FIELD_XYRS( UVM , 'Current UVM ' ,
277 jmc 1.59 & nIter0, myThid )
278 heimbach 1.1 #endif
279     ENDIF
280    
281     C-- Set model variables to initial/restart conditions
282 mlosch 1.26 IF ( .NOT. ( startTime .EQ. baseTime .AND. nIter0 .EQ. 0
283     & .AND. pickupSuff .EQ. ' ') ) THEN
284 heimbach 1.1
285     CALL SEAICE_READ_PICKUP ( myThid )
286    
287     ELSE
288    
289     DO bj=myByLo(myThid),myByHi(myThid)
290     DO bi=myBxLo(myThid),myBxHi(myThid)
291     DO j=1-OLy,sNy+OLy
292     DO i=1-OLx,sNx+OLx
293 jmc 1.23 TMIX(i,j,bi,bj)=TICE(i,j,bi,bj)
294 mlosch 1.43 HEFF(i,j,bi,bj)=SEAICE_initialHEFF*HEFFM(i,j,bi,bj)
295     UICE(i,j,bi,bj)=ZERO
296     VICE(i,j,bi,bj)=ZERO
297 heimbach 1.1 ENDDO
298     ENDDO
299     ENDDO
300     ENDDO
301    
302 jmc 1.62 C-- Read initial sea-ice velocity from file (if available)
303     IF ( uIceFile .NE. ' ' )
304     & CALL READ_FLD_XY_RL( uIceFile, ' ', uIce, 0, myThid )
305     IF ( vIceFile .NE. ' ' )
306     & CALL READ_FLD_XY_RL( vIceFile, ' ', vIce, 0, myThid )
307     IF ( uIceFile .NE. ' ' .OR. vIceFile .NE. ' ' ) THEN
308     #ifdef SEAICE_CGRID
309     DO bj=myByLo(myThid),myByHi(myThid)
310     DO bi=myBxLo(myThid),myBxHi(myThid)
311     DO j=1-OLy,sNy+OLy
312     DO i=1-OLx,sNx+OLx
313     uIce(i,j,bi,bj) = uIce(i,j,bi,bj)*seaiceMaskU(i,j,bi,bj)
314     vIce(i,j,bi,bj) = vIce(i,j,bi,bj)*seaiceMaskV(i,j,bi,bj)
315     ENDDO
316     ENDDO
317     ENDDO
318     ENDDO
319     #endif /* SEAICE_CGRID */
320     CALL EXCH_UV_XY_RL( uIce, vIce, .TRUE., myThid )
321     ENDIF
322    
323 heimbach 1.1 C-- Read initial sea-ice thickness from file if available.
324     IF ( HeffFile .NE. ' ' ) THEN
325 mlosch 1.43 CALL READ_FLD_XY_RL( HeffFile, ' ', HEFF, 0, myThid )
326     _EXCH_XY_RL(HEFF,myThid)
327 heimbach 1.1 DO bj=myByLo(myThid),myByHi(myThid)
328     DO bi=myBxLo(myThid),myBxHi(myThid)
329     DO j=1-OLy,sNy+OLy
330     DO i=1-OLx,sNx+OLx
331 mlosch 1.43 HEFF(i,j,bi,bj) = MAX(HEFF(i,j,bi,bj),ZERO)
332 heimbach 1.1 ENDDO
333     ENDDO
334     ENDDO
335     ENDDO
336     ENDIF
337    
338     DO bj=myByLo(myThid),myByHi(myThid)
339     DO bi=myBxLo(myThid),myBxHi(myThid)
340     DO j=1-OLy,sNy+OLy
341     DO i=1-OLx,sNx+OLx
342 mlosch 1.43 IF(HEFF(i,j,bi,bj).GT.ZERO) AREA(i,j,bi,bj)=ONE
343 heimbach 1.1 ENDDO
344     ENDDO
345     ENDDO
346     ENDDO
347 jmc 1.23
348 dimitri 1.27 C-- Read initial sea-ice area from file if available.
349 mlosch 1.7 IF ( AreaFile .NE. ' ' ) THEN
350 mlosch 1.43 CALL READ_FLD_XY_RL( AreaFile, ' ', AREA, 0, myThid )
351     _EXCH_XY_RL(AREA,myThid)
352 mlosch 1.7 DO bj=myByLo(myThid),myByHi(myThid)
353     DO bi=myBxLo(myThid),myBxHi(myThid)
354     DO j=1-OLy,sNy+OLy
355     DO i=1-OLx,sNx+OLx
356 mlosch 1.43 AREA(i,j,bi,bj) = MAX(AREA(i,j,bi,bj),ZERO)
357     AREA(i,j,bi,bj) = MIN(AREA(i,j,bi,bj),ONE)
358     IF ( AREA(i,j,bi,bj) .LE. ZERO ) HEFF(i,j,bi,bj) = ZERO
359     IF ( HEFF(i,j,bi,bj) .LE. ZERO ) AREA(i,j,bi,bj) = ZERO
360 mlosch 1.7 ENDDO
361     ENDDO
362     ENDDO
363     ENDDO
364     ENDIF
365    
366     DO bj=myByLo(myThid),myByHi(myThid)
367     DO bi=myBxLo(myThid),myBxHi(myThid)
368     DO j=1-OLy,sNy+OLy
369     DO i=1-OLx,sNx+OLx
370 jmc 1.47 HSNOW(i,j,bi,bj) = 0.2 _d 0 * AREA(i,j,bi,bj)
371 mlosch 1.7 ENDDO
372     ENDDO
373     ENDDO
374     ENDDO
375 dimitri 1.9
376     C-- Read initial snow thickness from file if available.
377     IF ( HsnowFile .NE. ' ' ) THEN
378 mlosch 1.43 CALL READ_FLD_XY_RL( HsnowFile, ' ', HSNOW, 0, myThid )
379     _EXCH_XY_RL(HSNOW,myThid)
380 dimitri 1.9 DO bj=myByLo(myThid),myByHi(myThid)
381     DO bi=myBxLo(myThid),myBxHi(myThid)
382     DO j=1-OLy,sNy+OLy
383     DO i=1-OLx,sNx+OLx
384 mlosch 1.43 HSNOW(i,j,bi,bj) = MAX(HSNOW(i,j,bi,bj),ZERO)
385 dimitri 1.9 ENDDO
386     ENDDO
387     ENDDO
388     ENDDO
389     ENDIF
390 dimitri 1.18
391 ifenty 1.56 #ifdef SEAICE_VARIABLE_SALINITY
392 dimitri 1.20 DO bj=myByLo(myThid),myByHi(myThid)
393     DO bi=myBxLo(myThid),myBxHi(myThid)
394 jmc 1.23 DO j=1-OLy,sNy+OLy
395     DO i=1-OLx,sNx+OLx
396 mlosch 1.44 HSALT(i,j,bi,bj)=HEFF(i,j,bi,bj)*salt(i,j,kSurface,bi,bj)*
397 ifenty 1.56 & SEAICE_rhoIce*SIsalFRAC
398     cif & ICE2WATR*rhoConstFresh*SIsalFRAC
399    
400 dimitri 1.20 ENDDO
401     ENDDO
402     ENDDO
403     ENDDO
404    
405 dimitri 1.18 C-- Read initial sea ice salinity from file if available.
406     IF ( HsaltFile .NE. ' ' ) THEN
407 mlosch 1.43 CALL READ_FLD_XY_RL( HsaltFile, ' ', HSALT, 0, myThid )
408     _EXCH_XY_RL(HSALT,myThid)
409 dimitri 1.18 ENDIF
410 ifenty 1.56 #endif /* SEAICE_VARIABLE_SALINITY */
411 jmc 1.23
412 dimitri 1.33 #ifdef SEAICE_AGE
413     C-- Read initial sea ice age from file if available.
414 heimbach 1.54 DO iTracer = 1, SEAICE_num
415     IF ( IceAgeTrFile(iTracer) .NE. ' ' ) THEN
416 jmc 1.55 CALL READ_FLD_XY_RL( IceAgeTrFile(iTracer), ' ',
417 jmc 1.67 & IceAgeTr(1-OLx,1-OLy,1,1,iTracer), 0, myThid )
418     _EXCH_XY_RL(IceAgeTr(1-OLx,1-OLy,1,1,iTracer),myThid)
419 heimbach 1.54 ENDIF
420     ENDDO
421 dimitri 1.33 #endif /* SEAICE_AGE */
422    
423 heimbach 1.1 ENDIF
424    
425 jmc 1.58 #ifdef ALLOW_OBCS
426 jmc 1.52 C-- In case we use scheme with a large stencil that extends into overlap:
427 jmc 1.58 C no longer needed with the right masking in advection & diffusion S/R.
428     c IF ( useOBCS ) THEN
429     c DO bj=myByLo(myThid),myByHi(myThid)
430     c DO bi=myBxLo(myThid),myBxHi(myThid)
431 jmc 1.67 c CALL OBCS_COPY_TRACER( HEFF(1-OLx,1-OLy,bi,bj),
432 jmc 1.58 c I 1, bi, bj, myThid )
433 jmc 1.67 c CALL OBCS_COPY_TRACER( AREA(1-OLx,1-OLy,bi,bj),
434 jmc 1.58 c I 1, bi, bj, myThid )
435 jmc 1.67 c CALL OBCS_COPY_TRACER( HSNOW(1-OLx,1-OLy,bi,bj),
436 jmc 1.58 c I 1, bi, bj, myThid )
437 ifenty 1.56 #ifdef SEAICE_VARIABLE_SALINITY
438 jmc 1.67 c CALL OBCS_COPY_TRACER( HSALT(1-OLx,1-OLy,bi,bj),
439 jmc 1.58 c I 1, bi, bj, myThid )
440 jmc 1.52 #endif
441 jmc 1.58 c ENDDO
442     c ENDDO
443     c ENDIF
444 jmc 1.52 #endif /* ALLOW_OBCS */
445    
446 heimbach 1.1 C--- Complete initialization
447 mlosch 1.8 PSTAR = SEAICE_strength
448 heimbach 1.1 DO bj=myByLo(myThid),myByHi(myThid)
449     DO bi=myBxLo(myThid),myBxHi(myThid)
450     DO j=1-OLy,sNy+OLy
451     DO i=1-OLx,sNx+OLx
452 mlosch 1.48 ZETA(i,j,bi,bj) = HEFF(i,j,bi,bj)*(1.0 _d 11)
453     ETA(i,j,bi,bj) = ZETA(i,j,bi,bj)/SEAICE_eccen**2
454     PRESS0(i,j,bi,bj) = PSTAR*HEFF(i,j,bi,bj)
455 mlosch 1.43 & *EXP(-20.0 _d 0*(ONE-AREA(i,j,bi,bj)))
456 mlosch 1.48 ZMAX(I,J,bi,bj) = SEAICE_zetaMaxFac*PRESS0(I,J,bi,bj)
457     ZMIN(i,j,bi,bj) = SEAICE_zetaMin
458     PRESS0(i,j,bi,bj) = PRESS0(i,j,bi,bj)*HEFFM(i,j,bi,bj)
459 heimbach 1.1 ENDDO
460     ENDDO
461     IF ( useRealFreshWaterFlux .AND. .NOT.useThSIce ) THEN
462     DO j=1-OLy,sNy+OLy
463     DO i=1-OLx,sNx+OLx
464 mlosch 1.43 sIceLoad(i,j,bi,bj) = HEFF(i,j,bi,bj)*SEAICE_rhoIce
465 mlosch 1.36 & + HSNOW(i,j,bi,bj)*SEAICE_rhoSnow
466 jmc 1.23
467 heimbach 1.1 ENDDO
468     ENDDO
469     ENDIF
470     ENDDO
471     ENDDO
472    
473     RETURN
474     END

  ViewVC Help
Powered by ViewVC 1.1.22