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

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

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

revision 1.5 by torge, Wed Jul 25 17:56:31 2012 UTC revision 1.6 by torge, Wed Sep 26 17:50:17 2012 UTC
# Line 207  C NOW DO ADVECTION and DIFFUSION Line 207  C NOW DO ADVECTION and DIFFUSION
207       &        .OR. SEAICEadvSalt ) THEN       &        .OR. SEAICEadvSalt ) THEN
208  CToM<<<  CToM<<<
209  #ifdef SEAICE_ITD  #ifdef SEAICE_ITD
210  C     test if REDIST works (1/2):  C     ToM: generate some test output
211         WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'         WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'
212         DO bj=myByLo(myThid),myByHi(myThid)         DO bj=myByLo(myThid),myByHi(myThid)
213          DO bi=myBxLo(myThid),myBxHi(myThid)          DO bi=myBxLo(myThid),myBxHi(myThid)
# Line 215  c         DO j=1-OLy,sNy+OLy Line 215  c         DO j=1-OLy,sNy+OLy
215  c          DO i=1-OLx,sNx+OLx  c          DO i=1-OLx,sNx+OLx
216  ccc           WRITE(msgBuf,HlimitMsgFormat)  ccc           WRITE(msgBuf,HlimitMsgFormat)
217             WRITE(msgBuf,'(A,F6.2,x,F6.2)')             WRITE(msgBuf,'(A,F6.2,x,F6.2)')
218       &       ' SEAICE_MODEL: AREA and HEFF/AREA before advection: ',       &       ' SEAICE_MODEL: AREA and HEFF before advection: ',
219       &       AREA(20,20,bi,bj), HEFF(20,20,bi,bj)/AREA(20,20,bi,bj)       &       AREA(20,20,bi,bj), HEFF(20,20,bi,bj)
220    c     &       ' SEAICE_MODEL: AREA and HEFF/AREA before advection: ',
221    c     &       AREA(20,20,bi,bj), HEFF(20,20,bi,bj)/AREA(20,20,bi,bj)
222             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
223       &       SQUEEZE_RIGHT , myThid)       &       SQUEEZE_RIGHT , myThid)
224             WRITE(msgBuf,HlimitMsgFormat)             WRITE(msgBuf,HlimitMsgFormat)
225       &       ' SEAICE_MODEL: HEFFITD/AREAITD before advection: ',       &       ' SEAICE_MODEL: HEFFITD       before advection: ',
226       &       HEFFITD(20,20,:,bi,bj) / AREAITD(20,20,:,bi,bj)       &       HEFFITD(20,20,:,bi,bj)
227    c     &       ' SEAICE_MODEL: HEFFITD/AREAITD before advection: ',
228    c     &       HEFFITD(20,20,:,bi,bj) / AREAITD(20,20,:,bi,bj)
229             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
230       &       SQUEEZE_RIGHT , myThid)       &       SQUEEZE_RIGHT , myThid)
231             WRITE(msgBuf,HlimitMsgFormat)             WRITE(msgBuf,HlimitMsgFormat)
232       &       ' SEAICE_MODEL: AREAITD         before advection: ',       &       ' SEAICE_MODEL: AREAITD       before advection: ',
233       &       AREAITD(20,20,:,bi,bj)       &       AREAITD(20,20,:,bi,bj)
234             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
235       &       SQUEEZE_RIGHT , myThid)       &       SQUEEZE_RIGHT , myThid)
# Line 241  C>>>ToM Line 245  C>>>ToM
245         CALL SEAICE_ADVDIFF( myTime, myIter, myThid )         CALL SEAICE_ADVDIFF( myTime, myIter, myThid )
246  CToM<<<  CToM<<<
247  #ifdef SEAICE_ITD  #ifdef SEAICE_ITD
248  C     test if REDIST works (1/2):  C     ToM: generate some test output
249         WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'         WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'
250         DO bj=myByLo(myThid),myByHi(myThid)         DO bj=myByLo(myThid),myByHi(myThid)
251          DO bi=myBxLo(myThid),myBxHi(myThid)          DO bi=myBxLo(myThid),myBxHi(myThid)
252             WRITE(msgBuf,HlimitMsgFormat)             WRITE(msgBuf,HlimitMsgFormat)
253       &       ' SEAICE_MODEL: HEFFITD/AREAITD before 1. sorting: ',       &       ' SEAICE_MODEL: HEFFITD        after advection: ',
254       &       HEFFITD(20,20,:,bi,bj) / AREAITD(20,20,:,bi,bj)       &       HEFFITD(20,20,:,bi,bj)
255             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
256       &       SQUEEZE_RIGHT , myThid)       &       SQUEEZE_RIGHT , myThid)
257             WRITE(msgBuf,HlimitMsgFormat)             WRITE(msgBuf,HlimitMsgFormat)
258       &       ' SEAICE_MODEL: AREAITD before         1. sorting: ',       &       ' SEAICE_MODEL: AREAITD        after advection: ',
259       &       AREAITD(20,20,:,bi,bj)       &       AREAITD(20,20,:,bi,bj)
260             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
261       &       SQUEEZE_RIGHT , myThid)       &       SQUEEZE_RIGHT , myThid)
262                WRITE(msgBuf,'(A)')
263         &        ' --------------------------------------------- '
264                CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
265         &        SQUEEZE_RIGHT , myThid)
266          ENDDO          ENDDO
267         ENDDO         ENDDO
268  C  C
# Line 265  C     (includes Hibler-type ridging) Line 273  C     (includes Hibler-type ridging)
273  #endif  #endif
274         DO bj=myByLo(myThid),myByHi(myThid)         DO bj=myByLo(myThid),myByHi(myThid)
275          DO bi=myBxLo(myThid),myBxHi(myThid)          DO bi=myBxLo(myThid),myBxHi(myThid)
276           CALL SEAICE_ITD_REDIST(myTime, myIter, myThid)           CALL SEAICE_ITD_REDIST(bi, bj, myTime, myIter, myThid)
277          ENDDO          ENDDO
278         ENDDO         ENDDO
279  C     update mean ice thickness HEFF and total ice concentration AREA  C     update mean ice thickness HEFF and total ice concentration AREA
# Line 275  C     to match single category values Line 283  C     to match single category values
283  #endif  #endif
284         DO bj=myByLo(myThid),myByHi(myThid)         DO bj=myByLo(myThid),myByHi(myThid)
285          DO bi=myBxLo(myThid),myBxHi(myThid)          DO bi=myBxLo(myThid),myBxHi(myThid)
286           CALL SEAICE_ITD_SUM(myTime, myIter, myThid)           CALL SEAICE_ITD_SUM(bi, bj, myTime, myIter, myThid)
287          ENDDO          ENDDO
288         ENDDO         ENDDO
289  #endif  #endif
# Line 298  C>>>ToM Line 306  C>>>ToM
306  CADJ STORE heffm  = comlev1, key=ikey_dynamics, kind=isbyte  CADJ STORE heffm  = comlev1, key=ikey_dynamics, kind=isbyte
307  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
308    
309    #ifdef SEAICE_ITD
310    C     ToM: generate some test output
311           WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'
312           DO bj=myByLo(myThid),myByHi(myThid)
313            DO bi=myBxLo(myThid),myBxHi(myThid)
314               WRITE(msgBuf,HlimitMsgFormat)
315         &       ' SEAICE_MODEL: HEFFITD          before growth: ',
316         &       HEFFITD(20,20,:,bi,bj)
317               CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
318         &       SQUEEZE_RIGHT , myThid)
319               WRITE(msgBuf,HlimitMsgFormat)
320         &       ' SEAICE_MODEL: AREAITD          before growth: ',
321         &       AREAITD(20,20,:,bi,bj)
322               CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
323         &       SQUEEZE_RIGHT , myThid)
324               WRITE(msgBuf,HlimitMsgFormat)
325         &       ' SEAICE_MODEL: HSNOWITD         before growth: ',
326         &       HSNOWITD(20,20,:,bi,bj)
327               CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
328         &       SQUEEZE_RIGHT , myThid)
329            ENDDO
330           ENDDO
331    #endif
332    
333  #ifndef DISABLE_SEAICE_GROWTH  #ifndef DISABLE_SEAICE_GROWTH
334  C     thermodynamics growth  C     thermodynamics growth
335  C     must call growth after calling advection  C     must call growth after calling advection
# Line 309  C     because of ugly time level busines Line 341  C     because of ugly time level busines
341          CALL SEAICE_GROWTH( myTime, myIter, myThid )          CALL SEAICE_GROWTH( myTime, myIter, myThid )
342  CToM<<<  CToM<<<
343  #ifdef SEAICE_ITD  #ifdef SEAICE_ITD
344  C     test if GROWTH works:  C     ToM: generate some test output
345          WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'          WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'
346          DO bj=myByLo(myThid),myByHi(myThid)          DO bj=myByLo(myThid),myByHi(myThid)
347           DO bi=myBxLo(myThid),myBxHi(myThid)           DO bi=myBxLo(myThid),myBxHi(myThid)
348              WRITE(msgBuf,HlimitMsgFormat)              WRITE(msgBuf,HlimitMsgFormat)
349       &       ' SEAICE_MODEL: HEFFITD/AREAITD after growth: ',       &        ' SEAICE_MODEL: HEFFITD           after growth: ',
350       &       HEFFITD(20,20,:,bi,bj) / AREAITD(20,20,:,bi,bj)       &        HEFFITD(20,20,:,bi,bj)
351              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
352       &        SQUEEZE_RIGHT , myThid)       &        SQUEEZE_RIGHT , myThid)
353              WRITE(msgBuf,HlimitMsgFormat)              WRITE(msgBuf,HlimitMsgFormat)
354       &        ' SEAICE_MODEL: AREAITD        after growth: ',       &        ' SEAICE_MODEL: AREAITD           after growth: ',
355       &        AREAITD(20,20,:,bi,bj)       &        AREAITD(20,20,:,bi,bj)
356              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
357       &        SQUEEZE_RIGHT , myThid)       &        SQUEEZE_RIGHT , myThid)
358              WRITE(msgBuf,HlimitMsgFormat)              WRITE(msgBuf,HlimitMsgFormat)
359       &        ' SEAICE_MODEL: HSNOWITD       after growth: ',       &        ' SEAICE_MODEL: HSNOWITD          after growth: ',
360       &        HSNOWITD(20,20,:,bi,bj)       &        HSNOWITD(20,20,:,bi,bj)
361              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
362       &        SQUEEZE_RIGHT , myThid)       &        SQUEEZE_RIGHT , myThid)
363                WRITE(msgBuf,'(A)')
364         &        ' --------------------------------------------- '
365                CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
366         &        SQUEEZE_RIGHT , myThid)
367           ENDDO           ENDDO
368          ENDDO          ENDDO
369  C  C
# Line 339  C---+-|--1----+----2----+----3----+----4 Line 375  C---+-|--1----+----2----+----3----+----4
375  #endif  #endif
376         DO bj=myByLo(myThid),myByHi(myThid)         DO bj=myByLo(myThid),myByHi(myThid)
377          DO bi=myBxLo(myThid),myBxHi(myThid)          DO bi=myBxLo(myThid),myBxHi(myThid)
378           CALL SEAICE_ITD_REDIST(myTime, myIter, myThid)           CALL SEAICE_ITD_REDIST(bi, bj, myTime, myIter, myThid)
379          ENDDO          ENDDO
380         ENDDO         ENDDO
381  C     store the mean ice thickness in HEFF (for dynamic solver and diagnostics)  C     store the mean ice thickness in HEFF (for dynamic solver and diagnostics)
382         DO bj=myByLo(myThid),myByHi(myThid)         DO bj=myByLo(myThid),myByHi(myThid)
383          DO bi=myBxLo(myThid),myBxHi(myThid)          DO bi=myBxLo(myThid),myBxHi(myThid)
384           CALL SEAICE_ITD_SUM(myTime, myIter, myThid)           CALL SEAICE_ITD_SUM(bi, bj, myTime, myIter, myThid)
385          ENDDO          ENDDO
386         ENDDO         ENDDO
387    
388  C     test if REDIST works (2/2):  C     ToM: generate some test output
389          WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'          WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'
390          DO bj=myByLo(myThid),myByHi(myThid)          DO bj=myByLo(myThid),myByHi(myThid)
391           DO bi=myBxLo(myThid),myBxHi(myThid)           DO bi=myBxLo(myThid),myBxHi(myThid)
392              WRITE(msgBuf,HlimitMsgFormat)              WRITE(msgBuf,HlimitMsgFormat)
393       &        ' SEAICE_MODEL: HEFFITD/AREAITD after 2. sorting: ',       &        ' SEAICE_MODEL: HEFFITD    after final sorting: ',
394       &        HEFFITD(20,20,:,bi,bj) / AREAITD(20,20,:,bi,bj)       &        HEFFITD(20,20,:,bi,bj)
395              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
396       &        SQUEEZE_RIGHT , myThid)       &        SQUEEZE_RIGHT , myThid)
397              WRITE(msgBuf,HlimitMsgFormat)              WRITE(msgBuf,HlimitMsgFormat)
398       &        ' SEAICE_MODEL: AREAITD         after 2. sorting: ',       &        ' SEAICE_MODEL: AREAITD    after final sorting: ',
399       &        AREAITD(20,20,:,bi,bj)       &        AREAITD(20,20,:,bi,bj)
400              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
401       &        SQUEEZE_RIGHT , myThid)       &        SQUEEZE_RIGHT , myThid)
402              WRITE(msgBuf,HlimitMsgFormat)              WRITE(msgBuf,HlimitMsgFormat)
403       &        ' SEAICE_MODEL: HSNOWITD        after 2. sorting: ',       &        ' SEAICE_MODEL: HSNOWITD   after final sorting: ',
404       &        HSNOWITD(20,20,:,bi,bj)       &        HSNOWITD(20,20,:,bi,bj)
405              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
406       &        SQUEEZE_RIGHT , myThid)       &        SQUEEZE_RIGHT , myThid)
407                WRITE(msgBuf,'(A)')
408         &        ' ============================================= '
409                CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
410         &        SQUEEZE_RIGHT , myThid)
411           ENDDO           ENDDO
412          ENDDO          ENDDO
413  #endif  #endif

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.22