55 |
|
|
56 |
C !LOCAL VARIABLES: ==================================================== |
C !LOCAL VARIABLES: ==================================================== |
57 |
C i,j,bi,bj :: Loop counters |
C i,j,bi,bj :: Loop counters |
58 |
|
#ifdef SEAICE_DEBUG |
59 |
CToM<<< |
CToM<<< |
60 |
C msgBuf :: Informational/error message buffer |
C msgBuf :: Informational/error message buffer |
61 |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
62 |
CHARACTER*10 HlimitMsgFormat |
CHARACTER*10 HlimitMsgFormat |
63 |
|
#endif |
64 |
C ToM a random number to generate divergence and convergence randomly for the 1-D case |
C ToM a random number to generate divergence and convergence randomly for the 1-D case |
65 |
_RL rand_num |
_RL rand_num |
66 |
_RL divergence |
_RL divergence |
213 |
& .OR. SEAICEadvSalt ) THEN |
& .OR. SEAICEadvSalt ) THEN |
214 |
CToM<<< |
CToM<<< |
215 |
#ifdef SEAICE_ITD |
#ifdef SEAICE_ITD |
216 |
|
#ifdef SEAICE_DEBUG |
217 |
C ToM: generate some test output |
C ToM: generate some test output |
218 |
WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)' |
WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)' |
219 |
DO bj=myByLo(myThid),myByHi(myThid) |
DO bj=myByLo(myThid),myByHi(myThid) |
220 |
DO bi=myBxLo(myThid),myBxHi(myThid) |
DO bi=myBxLo(myThid),myBxHi(myThid) |
|
c DO j=1-OLy,sNy+OLy |
|
|
c DO i=1-OLx,sNx+OLx |
|
|
ccc WRITE(msgBuf,HlimitMsgFormat) |
|
221 |
WRITE(msgBuf,'(A,F8.4,x,F8.4)') |
WRITE(msgBuf,'(A,F8.4,x,F8.4)') |
222 |
& ' SEAICE_MODEL: AREA and HEFF before advection: ', |
& ' SEAICE_MODEL: AREA and HEFF before advection: ', |
223 |
& AREA(1,1,bi,bj), HEFF(1,1,bi,bj) |
& AREA(1,1,bi,bj), HEFF(1,1,bi,bj) |
237 |
& AREAITD(1,1,:,bi,bj) |
& AREAITD(1,1,:,bi,bj) |
238 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
239 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT , myThid) |
|
c ENDDO |
|
|
c ENDDO |
|
240 |
ENDDO |
ENDDO |
241 |
ENDDO |
ENDDO |
242 |
#endif |
#endif |
243 |
|
#endif |
244 |
C>>>ToM |
C>>>ToM |
245 |
#ifdef ALLOW_DEBUG |
#ifdef ALLOW_DEBUG |
246 |
IF (debugMode) CALL DEBUG_CALL( 'SEAICE_ADVDIFF', myThid ) |
IF (debugMode) CALL DEBUG_CALL( 'SEAICE_ADVDIFF', myThid ) |
248 |
CALL SEAICE_ADVDIFF( myTime, myIter, myThid ) |
CALL SEAICE_ADVDIFF( myTime, myIter, myThid ) |
249 |
CToM<<< |
CToM<<< |
250 |
#ifdef SEAICE_ITD |
#ifdef SEAICE_ITD |
251 |
|
#ifdef SEAICE_DEBUG |
252 |
C ToM: generate some test output |
C ToM: generate some test output |
253 |
WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)' |
WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)' |
254 |
DO bj=myByLo(myThid),myByHi(myThid) |
DO bj=myByLo(myThid),myByHi(myThid) |
269 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT , myThid) |
270 |
ENDDO |
ENDDO |
271 |
ENDDO |
ENDDO |
272 |
|
#endif |
273 |
C |
C |
274 |
C check that all ice thickness categories meet their limits |
C check that all ice thickness categories meet their limits |
275 |
C (includes Hibler-type ridging) |
C (includes Hibler-type ridging) |
328 |
ENDDO |
ENDDO |
329 |
ENDDO |
ENDDO |
330 |
ENDDO |
ENDDO |
331 |
|
#ifdef SEAICE_DEBUG |
332 |
C ToM: generate some test output |
C ToM: generate some test output |
333 |
WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)' |
WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)' |
334 |
DO bj=myByLo(myThid),myByHi(myThid) |
DO bj=myByLo(myThid),myByHi(myThid) |
351 |
ENDDO |
ENDDO |
352 |
ENDDO |
ENDDO |
353 |
#endif |
#endif |
354 |
|
#endif |
355 |
|
|
356 |
#ifndef DISABLE_SEAICE_GROWTH |
#ifndef DISABLE_SEAICE_GROWTH |
357 |
C thermodynamics growth |
C thermodynamics growth |
364 |
CALL SEAICE_GROWTH( myTime, myIter, myThid ) |
CALL SEAICE_GROWTH( myTime, myIter, myThid ) |
365 |
CToM<<< |
CToM<<< |
366 |
#ifdef SEAICE_ITD |
#ifdef SEAICE_ITD |
367 |
|
#ifdef SEAICE_DEBUG |
368 |
C ToM: generate some test output |
C ToM: generate some test output |
369 |
WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)' |
WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)' |
370 |
DO bj=myByLo(myThid),myByHi(myThid) |
DO bj=myByLo(myThid),myByHi(myThid) |
390 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT , myThid) |
391 |
ENDDO |
ENDDO |
392 |
ENDDO |
ENDDO |
393 |
|
#endif |
394 |
C |
C |
395 |
C redistribute sea ice into proper sea ice category after growth/melt |
C redistribute sea ice into proper sea ice category after growth/melt |
396 |
C in case model runs with ice thickness distribution |
C in case model runs with ice thickness distribution |
410 |
ENDDO |
ENDDO |
411 |
ENDDO |
ENDDO |
412 |
|
|
413 |
|
#ifdef SEAICE_DEBUG |
414 |
C ToM: generate some test output |
C ToM: generate some test output |
415 |
WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)' |
WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)' |
416 |
DO bj=myByLo(myThid),myByHi(myThid) |
DO bj=myByLo(myThid),myByHi(myThid) |
437 |
ENDDO |
ENDDO |
438 |
ENDDO |
ENDDO |
439 |
#endif |
#endif |
440 |
|
#endif |
441 |
C |
C |
442 |
C>>>ToM |
C>>>ToM |
443 |
ENDIF |
ENDIF |