/[MITgcm]/MITgcm_contrib/torge/itd/code/seaice_model.F
ViewVC logotype

Contents of /MITgcm_contrib/torge/itd/code/seaice_model.F

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


Revision 1.2 - (show annotations) (download)
Fri Apr 27 22:25:23 2012 UTC (13 years, 3 months ago) by dimitri
Branch: MAIN
Changes since 1.1: +151 -1 lines
first check in of itd code

1 C $Header: /u/gcmpack/MITgcm/pkg/seaice/seaice_model.F,v 1.100 2012/03/02 18:56:06 heimbach Exp $
2 C $Name: $
3
4 #include "SEAICE_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: SEAICE_MODEL
8
9 C !INTERFACE: ==========================================================
10 SUBROUTINE SEAICE_MODEL( myTime, myIter, myThid )
11
12 C !DESCRIPTION: \bv
13 C *===========================================================*
14 C | SUBROUTINE SEAICE_MODEL |
15 C | o Time stepping of a dynamic/thermodynamic sea ice model. |
16 C | Dynamics solver: Zhang/Hibler, JGR, 102, 8691-8702, 1997 |
17 C | Thermodynamics: Hibler, MWR, 108, 1943-1973, 1980 |
18 C | Rheology: Hibler, JPO, 9, 815- 846, 1979 |
19 C | Snow: Zhang et al. , JPO, 28, 191- 217, 1998 |
20 C | Parallel forward ice model written by Jinlun Zhang PSC/UW|
21 C | & coupled into MITgcm by Dimitris Menemenlis (JPL) 2/2001|
22 C | zhang@apl.washington.edu / menemenlis@jpl.nasa.gov |
23 C *===========================================================*
24 C *===========================================================*
25 IMPLICIT NONE
26 C \ev
27
28 C !USES: ===============================================================
29 #include "SIZE.h"
30 #include "EEPARAMS.h"
31 #include "DYNVARS.h"
32 #include "PARAMS.h"
33 #include "GRID.h"
34 #include "FFIELDS.h"
35 #include "SEAICE_SIZE.h"
36 #include "SEAICE_PARAMS.h"
37 #include "SEAICE.h"
38 #include "SEAICE_TRACER.h"
39 #ifdef ALLOW_EXF
40 # include "EXF_OPTIONS.h"
41 # include "EXF_FIELDS.h"
42 #endif
43 #ifdef ALLOW_AUTODIFF_TAMC
44 # include "tamc.h"
45 #endif
46
47 C !INPUT PARAMETERS: ===================================================
48 C myTime - Simulation time
49 C myIter - Simulation timestep number
50 C myThid - Thread no. that called this routine.
51 _RL myTime
52 INTEGER myIter
53 INTEGER myThid
54 CEndOfInterface
55
56 C !LOCAL VARIABLES: ====================================================
57 C i,j,bi,bj :: Loop counters
58 CToM<<<
59 C msgBuf :: Informational/error message buffer
60 CHARACTER*(MAX_LEN_MBUF) msgBuf
61 CHARACTER*10 HlimitMsgFormat
62 C#if defined(SEAICE_GROWTH_LEGACY) || defined(ALLOW_AUTODIFF_TAMC)
63 #if defined(SEAICE_GROWTH_LEGACY) || defined(ALLOW_AUTODIFF_TAMC) || defined(SEAICE_ITD)
64 C>>>ToM
65 INTEGER i, j, bi, bj
66 #endif
67 CToM<<<
68 #ifdef SEAICE_ITD
69 INTEGER k
70 #endif
71 C>>>ToM
72 #ifdef ALLOW_SITRACER
73 INTEGER iTr
74 #endif
75 CEOP
76
77 #ifdef ALLOW_DEBUG
78 IF (debugMode) CALL DEBUG_ENTER( 'SEAICE_MODEL', myThid )
79 #endif
80
81 C-- Winds are from pkg/exf, which does not update edges.
82 CALL EXCH_UV_AGRID_3D_RL( uwind, vwind, .TRUE., 1, myThid )
83
84 #ifdef ALLOW_THSICE
85 IF ( useThSice ) THEN
86 C-- Map thSice-variables to HEFF and AREA
87 CALL SEAICE_MAP_THSICE( myTime, myIter, myThid )
88 ENDIF
89 #endif /* ALLOW_THSICE */
90
91 #ifdef SEAICE_GROWTH_LEGACY
92 IF ( .NOT.useThSice ) THEN
93 #ifdef ALLOW_AUTODIFF_TAMC
94 CADJ STORE heff = comlev1, key=ikey_dynamics, kind=isbyte
95 CADJ STORE heffm = comlev1, key=ikey_dynamics, kind=isbyte
96 CADJ STORE area = comlev1, key=ikey_dynamics, kind=isbyte
97 CADJ STORE hsnow = comlev1, key=ikey_dynamics, kind=isbyte
98 CADJ STORE tice = comlev1, key=ikey_dynamics, kind=isbyte
99 #ifdef SEAICE_VARIABLE_SALINITY
100 CADJ STORE hsalt = comlev1, key=ikey_dynamics, kind=isbyte
101 #endif
102 #endif
103 DO bj=myByLo(myThid),myByHi(myThid)
104 DO bi=myBxLo(myThid),myBxHi(myThid)
105 DO j=1-OLy,sNy+OLy
106 DO i=1-OLx,sNx+OLx
107 IF ( (heff(i,j,bi,bj).EQ.0.)
108 & .OR.(area(i,j,bi,bj).EQ.0.)
109 & ) THEN
110 HEFF(i,j,bi,bj) = 0. _d 0
111 AREA(i,j,bi,bj) = 0. _d 0
112 HSNOW(i,j,bi,bj) = 0. _d 0
113 TICE(i,j,bi,bj) = celsius2K
114 #ifdef SEAICE_VARIABLE_SALINITY
115 HSALT(i,j,bi,bj) = 0. _d 0
116 #endif
117 ENDIF
118 ENDDO
119 ENDDO
120 ENDDO
121 ENDDO
122 ENDIF
123 #endif
124
125 #ifdef ALLOW_AUTODIFF_TAMC
126 DO bj=myByLo(myThid),myByHi(myThid)
127 DO bi=myBxLo(myThid),myBxHi(myThid)
128 DO j=1-OLy,sNy+OLy
129 DO i=1-OLx,sNx+OLx
130 # ifdef SEAICE_GROWTH_LEGACY
131 areaNm1(i,j,bi,bj) = 0. _d 0
132 hEffNm1(i,j,bi,bj) = 0. _d 0
133 # endif
134 uIceNm1(i,j,bi,bj) = 0. _d 0
135 vIceNm1(i,j,bi,bj) = 0. _d 0
136 # ifdef ALLOW_SITRACER
137 DO iTr = 1, SItrMaxNum
138 SItrBucket(i,j,bi,bj,iTr) = 0. _d 0
139 ENDDO
140 # endif
141 ENDDO
142 ENDDO
143 ENDDO
144 ENDDO
145 CADJ STORE uwind = comlev1, key=ikey_dynamics, kind=isbyte
146 CADJ STORE vwind = comlev1, key=ikey_dynamics, kind=isbyte
147 CADJ STORE heff = comlev1, key=ikey_dynamics, kind=isbyte
148 CADJ STORE heffm = comlev1, key=ikey_dynamics, kind=isbyte
149 CADJ STORE area = comlev1, key=ikey_dynamics, kind=isbyte
150 # ifdef SEAICE_ALLOW_DYNAMICS
151 # ifdef SEAICE_CGRID
152 CADJ STORE seaicemasku = comlev1, key=ikey_dynamics, kind=isbyte
153 CADJ STORE seaicemaskv = comlev1, key=ikey_dynamics, kind=isbyte
154 CADJ STORE fu = comlev1, key=ikey_dynamics, kind=isbyte
155 CADJ STORE fv = comlev1, key=ikey_dynamics, kind=isbyte
156 CADJ STORE uice = comlev1, key=ikey_dynamics, kind=isbyte
157 CADJ STORE vice = comlev1, key=ikey_dynamics, kind=isbyte
158 cphCADJ STORE eta = comlev1, key=ikey_dynamics, kind=isbyte
159 cphCADJ STORE zeta = comlev1, key=ikey_dynamics, kind=isbyte
160 cph(
161 CADJ STORE dwatn = comlev1, key=ikey_dynamics, kind=isbyte
162 cccCADJ STORE press0 = comlev1, key=ikey_dynamics, kind=isbyte
163 cccCADJ STORE taux = comlev1, key=ikey_dynamics, kind=isbyte
164 cccCADJ STORE tauy = comlev1, key=ikey_dynamics, kind=isbyte
165 cccCADJ STORE zmax = comlev1, key=ikey_dynamics, kind=isbyte
166 cccCADJ STORE zmin = comlev1, key=ikey_dynamics, kind=isbyte
167 cph)
168 # ifdef SEAICE_ALLOW_EVP
169 CADJ STORE seaice_sigma1 = comlev1, key=ikey_dynamics, kind=isbyte
170 CADJ STORE seaice_sigma2 = comlev1, key=ikey_dynamics, kind=isbyte
171 CADJ STORE seaice_sigma12 = comlev1, key=ikey_dynamics, kind=isbyte
172 # endif
173 # endif
174 # endif
175 # ifdef ALLOW_SITRACER
176 CADJ STORE siceload = comlev1, key=ikey_dynamics, kind=isbyte
177 CADJ STORE sitracer = comlev1, key=ikey_dynamics, kind=isbyte
178 # endif
179 #endif /* ALLOW_AUTODIFF_TAMC */
180
181 C solve ice momentum equations and calculate ocean surface stress
182 #ifdef ALLOW_DEBUG
183 IF (debugMode) CALL DEBUG_CALL( 'SEAICE_DYNSOLVER', myThid )
184 #endif
185 #ifdef SEAICE_CGRID
186 CALL TIMER_START('SEAICE_DYNSOLVER [SEAICE_MODEL]',myThid)
187 CALL SEAICE_DYNSOLVER ( myTime, myIter, myThid )
188 CALL TIMER_STOP ('SEAICE_DYNSOLVER [SEAICE_MODEL]',myThid)
189 #else
190 CALL TIMER_START('DYNSOLVER [SEAICE_MODEL]',myThid)
191 CALL DYNSOLVER ( myTime, myIter, myThid )
192 CALL TIMER_STOP ('DYNSOLVER [SEAICE_MODEL]',myThid)
193 #endif /* SEAICE_CGRID */
194
195 C-- Apply ice velocity open boundary conditions
196 #ifdef ALLOW_OBCS
197 # ifndef DISABLE_SEAICE_OBCS
198 IF ( useOBCS ) CALL OBCS_ADJUST_UVICE( uice, vice, myThid )
199 # endif /* DISABLE_SEAICE_OBCS */
200 #endif /* ALLOW_OBCS */
201
202 #ifdef ALLOW_THSICE
203 IF ( .NOT.useThSice ) THEN
204 #endif
205 C-- Only call advection of heff, area, snow, and salt and
206 C-- growth for the generic 0-layer thermodynamics of seaice
207 C-- if useThSice=.false., otherwise the 3-layer Winton thermodynamics
208 C-- (called from DO_OCEANIC_PHYSICS) take care of this
209
210 C NOW DO ADVECTION and DIFFUSION
211 IF ( SEAICEadvHeff .OR. SEAICEadvArea .OR. SEAICEadvSnow
212 & .OR. SEAICEadvSalt ) THEN
213 CToM<<<
214 #ifdef SEAICE_ITD
215 c just for testing until seaice_growth includes itd
216 c DO bj=myByLo(myThid),myByHi(myThid)
217 c DO bi=myBxLo(myThid),myBxHi(myThid)
218 c DO j=1-OLy,sNy+OLy
219 c DO i=1-OLx,sNx+OLx
220 c AREAITD (i,j,1,bi,bj)=AREA (i,j,bi,bj)
221 c HEFFITD (i,j,1,bi,bj)=HEFF (i,j,bi,bj)
222 c HSNOWITD(i,j,1,bi,bj)=HSNOW(i,j,bi,bj)
223 c ENDDO
224 c ENDDO
225 c DO k=2,nITD
226 c DO j=1-OLy,sNy+OLy
227 c DO i=1-OLx,sNx+OLx
228 c AREAITD (i,j,k,bi,bj) = ZERO
229 c HEFFITD (i,j,k,bi,bj) = ZERO
230 c HSNOWITD(i,j,k,bi,bj) = ZERO
231 c ENDDO
232 c ENDDO
233 c ENDDO
234 c ENDDO
235 c ENDDO
236 c end this test
237 C test if REDIST works (1/2):
238 WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'
239 DO bj=myByLo(myThid),myByHi(myThid)
240 DO bi=myBxLo(myThid),myBxHi(myThid)
241 c DO j=1-OLy,sNy+OLy
242 c DO i=1-OLx,sNx+OLx
243 ccc WRITE(msgBuf,HlimitMsgFormat)
244 WRITE(msgBuf,'(A,F6.2,x,F6.2)')
245 & ' SEAICE_MODEL: AREA and HEFF before advection: ',
246 & AREA(20,20,bi,bj), HEFF(20,20,bi,bj)
247 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
248 & SQUEEZE_RIGHT , myThid)
249 WRITE(msgBuf,HlimitMsgFormat)
250 & ' SEAICE_MODEL: HEFFITD before advection: ',
251 & HEFFITD(20,20,:,bi,bj)
252 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
253 & SQUEEZE_RIGHT , myThid)
254 WRITE(msgBuf,HlimitMsgFormat)
255 & ' SEAICE_MODEL: AREAITD before advection: ',
256 & AREAITD(20,20,:,bi,bj)
257 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
258 & SQUEEZE_RIGHT , myThid)
259 c ENDDO
260 c ENDDO
261 ENDDO
262 ENDDO
263 #endif
264 C>>>ToM
265 #ifdef ALLOW_DEBUG
266 IF (debugMode) CALL DEBUG_CALL( 'SEAICE_ADVDIFF', myThid )
267 #endif
268 CALL SEAICE_ADVDIFF( myTime, myIter, myThid )
269 CToM<<<
270 #ifdef SEAICE_ITD
271 C test if REDIST works (1/2):
272 WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'
273 DO bj=myByLo(myThid),myByHi(myThid)
274 DO bi=myBxLo(myThid),myBxHi(myThid)
275 WRITE(msgBuf,HlimitMsgFormat)
276 & ' SEAICE_MODEL: HEFFITD before 1. sorting: ',
277 & HEFFITD(20,20,:,bi,bj)
278 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
279 & SQUEEZE_RIGHT , myThid)
280 WRITE(msgBuf,HlimitMsgFormat)
281 & ' SEAICE_MODEL: AREAITD before 1. sorting: ',
282 & AREAITD(20,20,:,bi,bj)
283 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
284 & SQUEEZE_RIGHT , myThid)
285 ENDDO
286 ENDDO
287 C
288 C check that all ice thickness categories meet their limits
289 C (includes Hibler-type ridging)
290 #ifdef ALLOW_DEBUG
291 IF (debugMode) CALL DEBUG_CALL( 'SEAICE_ITD_REDIST', myThid )
292 #endif
293 CALL SEAICE_ITD_REDIST(myTime, myIter, myThid)
294 C store the mean ice thickness in HEFF (for dynamic solver and diagnostics)
295 CALL SEAICE_ITD_SUM(myTime, myIter, myThid)
296 #endif
297 C>>>ToM
298 #ifdef SEAICE_GROWTH_LEGACY
299 ELSE
300 DO bj=myByLo(myThid),myByHi(myThid)
301 DO bi=myBxLo(myThid),myBxHi(myThid)
302 DO j=1-OLy,sNy+OLy
303 DO i=1-OLx,sNx+OLx
304 areaNm1(i,j,bi,bj) = AREA(i,j,bi,bj)
305 hEffNm1(i,j,bi,bj) = HEFF(i,j,bi,bj)
306 ENDDO
307 ENDDO
308 ENDDO
309 ENDDO
310 #endif /* SEAICE_GROWTH_LEGACY */
311 ENDIF
312 #ifdef ALLOW_AUTODIFF_TAMC
313 CADJ STORE heffm = comlev1, key=ikey_dynamics, kind=isbyte
314 #endif /* ALLOW_AUTODIFF_TAMC */
315
316 #ifndef DISABLE_SEAICE_GROWTH
317 C thermodynamics growth
318 C must call growth after calling advection
319 C because of ugly time level business
320 IF ( usePW79thermodynamics ) THEN
321 #ifdef ALLOW_DEBUG
322 IF (debugMode) CALL DEBUG_CALL( 'SEAICE_GROWTH', myThid )
323 #endif
324 CALL SEAICE_GROWTH( myTime, myIter, myThid )
325 CToM<<<
326 #ifdef SEAICE_ITD
327 C test if GROWTH works:
328 WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'
329 DO bj=myByLo(myThid),myByHi(myThid)
330 DO bi=myBxLo(myThid),myBxHi(myThid)
331 WRITE(msgBuf,HlimitMsgFormat)
332 & ' SEAICE_MODEL: HEFFITD after growth: ',
333 & HEFFITD(20,20,:,bi,bj)
334 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
335 & SQUEEZE_RIGHT , myThid)
336 WRITE(msgBuf,HlimitMsgFormat)
337 & ' SEAICE_MODEL: AREAITD after growth: ',
338 & AREAITD(20,20,:,bi,bj)
339 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
340 & SQUEEZE_RIGHT , myThid)
341 WRITE(msgBuf,HlimitMsgFormat)
342 & ' SEAICE_MODEL: HSNOWITD after growth: ',
343 & HSNOWITD(20,20,:,bi,bj)
344 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
345 & SQUEEZE_RIGHT , myThid)
346 ENDDO
347 ENDDO
348 C
349 C redistribute sea ice into proper sea ice category after growth/melt
350 C in case model runs with ice thickness distribution
351 C---+-|--1----+----2----+----3----+----4----+----5----+----6----+----7-|
352 #ifdef ALLOW_DEBUG
353 IF (debugMode) CALL DEBUG_CALL( 'SEAICE_ITD_REDIST', myThid )
354 #endif
355 CALL SEAICE_ITD_REDIST(myTime, myIter, myThid)
356 C store the mean ice thickness in HEFF (for dynamic solver and diagnostics)
357 CALL SEAICE_ITD_SUM(myTime, myIter, myThid)
358
359 C test if REDIST works (2/2):
360 WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'
361 DO bj=myByLo(myThid),myByHi(myThid)
362 DO bi=myBxLo(myThid),myBxHi(myThid)
363 WRITE(msgBuf,HlimitMsgFormat)
364 & ' SEAICE_MODEL: HEFFITD after 2. sorting: ',
365 & HEFFITD(20,20,:,bi,bj)
366 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
367 & SQUEEZE_RIGHT , myThid)
368 WRITE(msgBuf,HlimitMsgFormat)
369 & ' SEAICE_MODEL: AREAITD after 2. sorting: ',
370 & AREAITD(20,20,:,bi,bj)
371 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
372 & SQUEEZE_RIGHT , myThid)
373 WRITE(msgBuf,HlimitMsgFormat)
374 & ' SEAICE_MODEL: HSNOWITD after 2. sorting: ',
375 & HSNOWITD(20,20,:,bi,bj)
376 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
377 & SQUEEZE_RIGHT , myThid)
378 ENDDO
379 ENDDO
380 #endif
381 C
382 C>>>ToM
383 ENDIF
384 #endif /* DISABLE_SEAICE_GROWTH */
385
386 #ifdef ALLOW_SITRACER
387 # ifdef ALLOW_AUTODIFF_TAMC
388 CADJ STORE sitracer = comlev1, key=ikey_dynamics, kind=isbyte
389 # endif
390 CALL SEAICE_TRACER_PHYS ( myTime, myIter, myThid )
391 #endif
392
393 C-- Apply ice tracer open boundary conditions
394 #ifdef ALLOW_OBCS
395 # ifndef DISABLE_SEAICE_OBCS
396 IF ( useOBCS ) CALL OBCS_APPLY_SEAICE( myThid )
397 # endif /* DISABLE_SEAICE_OBCS */
398 #endif /* ALLOW_OBCS */
399
400 C-- Update overlap regions for a bunch of stuff
401 _EXCH_XY_RL( HEFF, myThid )
402 _EXCH_XY_RL( AREA, myThid )
403 _EXCH_XY_RL( HSNOW, myThid )
404 #ifdef SEAICE_VARIABLE_SALINITY
405 _EXCH_XY_RL( HSALT, myThid )
406 #endif
407 #ifdef ALLOW_SITRACER
408 DO iTr = 1, SItrNumInUse
409 _EXCH_XY_RL( SItracer(1-OLx,1-OLy,1,1,iTr),myThid )
410 ENDDO
411 #endif
412 _EXCH_XY_RS(EmPmR, myThid )
413 _EXCH_XY_RS(saltFlux, myThid )
414 _EXCH_XY_RS(Qnet , myThid )
415 #ifdef SHORTWAVE_HEATING
416 _EXCH_XY_RS(Qsw , myThid )
417 #endif /* SHORTWAVE_HEATING */
418 #ifdef ATMOSPHERIC_LOADING
419 IF ( useRealFreshWaterFlux )
420 & _EXCH_XY_RS( sIceLoad, myThid )
421 #endif
422
423 #ifdef ALLOW_OBCS
424 C-- In case we use scheme with a large stencil that extends into overlap:
425 C no longer needed with the right masking in advection & diffusion S/R.
426 c IF ( useOBCS ) THEN
427 c DO bj=myByLo(myThid),myByHi(myThid)
428 c DO bi=myBxLo(myThid),myBxHi(myThid)
429 c CALL OBCS_COPY_TRACER( HEFF(1-OLx,1-OLy,bi,bj),
430 c I 1, bi, bj, myThid )
431 c CALL OBCS_COPY_TRACER( AREA(1-OLx,1-OLy,bi,bj),
432 c I 1, bi, bj, myThid )
433 c CALL OBCS_COPY_TRACER( HSNOW(1-OLx,1-OLy,bi,bj),
434 c I 1, bi, bj, myThid )
435 #ifdef SEAICE_VARIABLE_SALINITY
436 c CALL OBCS_COPY_TRACER( HSALT(1-OLx,1-OLy,bi,bj),
437 c I 1, bi, bj, myThid )
438 #endif
439 c ENDDO
440 c ENDDO
441 c ENDIF
442 #endif /* ALLOW_OBCS */
443
444 #ifdef ALLOW_DIAGNOSTICS
445 IF ( useDiagnostics ) THEN
446 C diagnostics for "non-state variables" that are modified by
447 C the seaice model
448 # ifdef ALLOW_EXF
449 CALL DIAGNOSTICS_FILL(UWIND ,'SIuwind ',0,1 ,0,1,1,myThid)
450 CALL DIAGNOSTICS_FILL(VWIND ,'SIvwind ',0,1 ,0,1,1,myThid)
451 # endif
452 CALL DIAGNOSTICS_FILL_RS(FU ,'SIfu ',0,1 ,0,1,1,myThid)
453 CALL DIAGNOSTICS_FILL_RS(FV ,'SIfv ',0,1 ,0,1,1,myThid)
454 CALL DIAGNOSTICS_FILL_RS(EmPmR,'SIempmr ',0,1 ,0,1,1,myThid)
455 CALL DIAGNOSTICS_FILL_RS(Qnet ,'SIqnet ',0,1 ,0,1,1,myThid)
456 CALL DIAGNOSTICS_FILL_RS(Qsw ,'SIqsw ',0,1 ,0,1,1,myThid)
457 ENDIF
458 #endif /* ALLOW_DIAGNOSTICS */
459
460 #ifdef ALLOW_THSICE
461 C endif .not.useThSice
462 ENDIF
463 #endif /* ALLOW_THSICE */
464 CML This has already been done in seaice_ocean_stress/ostres, so why repeat?
465 CML CALL EXCH_UV_XY_RS(fu,fv,.TRUE.,myThid)
466
467 #ifdef ALLOW_EXF
468 # ifdef ALLOW_AUTODIFF_TAMC
469 # if (defined (ALLOW_AUTODIFF_MONITOR))
470 CALL EXF_ADJOINT_SNAPSHOTS( 3, myTime, myIter, myThid )
471 # endif
472 # endif
473 #endif
474
475 #ifdef ALLOW_DEBUG
476 IF (debugMode) CALL DEBUG_LEAVE( 'SEAICE_MODEL', myThid )
477 #endif
478
479 RETURN
480 END

  ViewVC Help
Powered by ViewVC 1.1.22