/[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.6 by torge, Wed Sep 26 17:50:17 2012 UTC revision 1.7 by torge, Mon Oct 22 16:02:25 2012 UTC
# Line 59  CToM<<< Line 59  CToM<<<
59  C     msgBuf      :: Informational/error message buffer  C     msgBuf      :: Informational/error message buffer
60        CHARACTER*(MAX_LEN_MBUF) msgBuf        CHARACTER*(MAX_LEN_MBUF) msgBuf
61        CHARACTER*10 HlimitMsgFormat        CHARACTER*10 HlimitMsgFormat
62    C ToM a random number to generate divergence and convergence randomly for the 1-D case
63          _RL rand_num
64          _RL divergence
65          INTEGER IT
66  C#if defined(SEAICE_GROWTH_LEGACY) || defined(ALLOW_AUTODIFF_TAMC)  C#if defined(SEAICE_GROWTH_LEGACY) || defined(ALLOW_AUTODIFF_TAMC)
67  #if defined(SEAICE_GROWTH_LEGACY) || defined(ALLOW_AUTODIFF_TAMC) || defined(SEAICE_ITD)  #if defined(SEAICE_GROWTH_LEGACY) || defined(ALLOW_AUTODIFF_TAMC) || defined(SEAICE_ITD)
68  C>>>ToM  C>>>ToM
# Line 208  C NOW DO ADVECTION and DIFFUSION Line 212  C NOW DO ADVECTION and DIFFUSION
212  CToM<<<  CToM<<<
213  #ifdef SEAICE_ITD  #ifdef SEAICE_ITD
214  C     ToM: generate some test output  C     ToM: generate some test output
215         WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'         WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)'
216         DO bj=myByLo(myThid),myByHi(myThid)         DO bj=myByLo(myThid),myByHi(myThid)
217          DO bi=myBxLo(myThid),myBxHi(myThid)          DO bi=myBxLo(myThid),myBxHi(myThid)
218  c         DO j=1-OLy,sNy+OLy  c         DO j=1-OLy,sNy+OLy
219  c          DO i=1-OLx,sNx+OLx  c          DO i=1-OLx,sNx+OLx
220  ccc           WRITE(msgBuf,HlimitMsgFormat)  ccc           WRITE(msgBuf,HlimitMsgFormat)
221             WRITE(msgBuf,'(A,F6.2,x,F6.2)')             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(20,20,bi,bj), HEFF(20,20,bi,bj)       &       AREA(1,1,bi,bj), HEFF(1,1,bi,bj)
224  c     &       ' SEAICE_MODEL: AREA and HEFF/AREA before advection: ',  c     &       ' SEAICE_MODEL: AREA and HEFF/AREA before advection: ',
225  c     &       AREA(20,20,bi,bj), HEFF(20,20,bi,bj)/AREA(20,20,bi,bj)  c     &       AREA(1,1,bi,bj), HEFF(1,1,bi,bj)/AREA(1,1,bi,bj)
226             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
227       &       SQUEEZE_RIGHT , myThid)       &       SQUEEZE_RIGHT , myThid)
228             WRITE(msgBuf,HlimitMsgFormat)             WRITE(msgBuf,HlimitMsgFormat)
229       &       ' SEAICE_MODEL: HEFFITD       before advection: ',       &       ' SEAICE_MODEL: HEFFITD       before advection: ',
230       &       HEFFITD(20,20,:,bi,bj)       &       HEFFITD(1,1,:,bi,bj)
231  c     &       ' SEAICE_MODEL: HEFFITD/AREAITD before advection: ',  c     &       ' SEAICE_MODEL: HEFFITD/AREAITD before advection: ',
232  c     &       HEFFITD(20,20,:,bi,bj) / AREAITD(20,20,:,bi,bj)  c     &       HEFFITD(1,1,:,bi,bj) / AREAITD(1,1,:,bi,bj)
233             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
234       &       SQUEEZE_RIGHT , myThid)       &       SQUEEZE_RIGHT , myThid)
235             WRITE(msgBuf,HlimitMsgFormat)             WRITE(msgBuf,HlimitMsgFormat)
236       &       ' SEAICE_MODEL: AREAITD       before advection: ',       &       ' SEAICE_MODEL: AREAITD       before advection: ',
237       &       AREAITD(20,20,:,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)
240  c          ENDDO  c          ENDDO
# Line 246  C>>>ToM Line 250  C>>>ToM
250  CToM<<<  CToM<<<
251  #ifdef SEAICE_ITD  #ifdef SEAICE_ITD
252  C     ToM: generate some test output  C     ToM: generate some test output
253         WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'         WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)'
254         DO bj=myByLo(myThid),myByHi(myThid)         DO bj=myByLo(myThid),myByHi(myThid)
255          DO bi=myBxLo(myThid),myBxHi(myThid)          DO bi=myBxLo(myThid),myBxHi(myThid)
256             WRITE(msgBuf,HlimitMsgFormat)             WRITE(msgBuf,HlimitMsgFormat)
257       &       ' SEAICE_MODEL: HEFFITD        after advection: ',       &       ' SEAICE_MODEL: HEFFITD        after advection: ',
258       &       HEFFITD(20,20,:,bi,bj)       &       HEFFITD(1,1,:,bi,bj)
259             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
260       &       SQUEEZE_RIGHT , myThid)       &       SQUEEZE_RIGHT , myThid)
261             WRITE(msgBuf,HlimitMsgFormat)             WRITE(msgBuf,HlimitMsgFormat)
262       &       ' SEAICE_MODEL: AREAITD        after advection: ',       &       ' SEAICE_MODEL: AREAITD        after advection: ',
263       &       AREAITD(20,20,:,bi,bj)       &       AREAITD(1,1,:,bi,bj)
264             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
265       &       SQUEEZE_RIGHT , myThid)       &       SQUEEZE_RIGHT , myThid)
266              WRITE(msgBuf,'(A)')              WRITE(msgBuf,'(A)')
# Line 307  CADJ STORE heffm  = comlev1, key=ikey_dy Line 311  CADJ STORE heffm  = comlev1, key=ikey_dy
311  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
312    
313  #ifdef SEAICE_ITD  #ifdef SEAICE_ITD
314    c      create some open water
315           divergence = 1.0/(5*365.*86400./SEAICE_deltaTtherm)
316           DO bj=myByLo(myThid),myByHi(myThid)
317            DO bi=myBxLo(myThid),myBxHi(myThid)
318             DO IT=1,nITD
319              DO J=1-OLy,sNy+OLy
320               DO I=1-OLx,sNx+OLx
321                AREAITD(I,J,IT,bi,bj)=MAX(0.0,AREAITD(I,J,IT,bi,bj)
322         &                           -divergence)
323                HEFFITD(I,J,IT,bi,bj)=HEFFITD(I,J,IT,bi,bj)
324         &                           -divergence*HEFFITD(I,J,IT,bi,bj)
325               ENDDO
326              ENDDO
327             ENDDO
328            ENDDO
329           ENDDO
330  C     ToM: generate some test output  C     ToM: generate some test output
331         WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'         WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)'
332         DO bj=myByLo(myThid),myByHi(myThid)         DO bj=myByLo(myThid),myByHi(myThid)
333          DO bi=myBxLo(myThid),myBxHi(myThid)          DO bi=myBxLo(myThid),myBxHi(myThid)
334             WRITE(msgBuf,HlimitMsgFormat)             WRITE(msgBuf,HlimitMsgFormat)
335       &       ' SEAICE_MODEL: HEFFITD          before growth: ',       &       ' SEAICE_MODEL: HEFFITD          before growth: ',
336       &       HEFFITD(20,20,:,bi,bj)       &       HEFFITD(1,1,:,bi,bj)
337             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
338       &       SQUEEZE_RIGHT , myThid)       &       SQUEEZE_RIGHT , myThid)
339             WRITE(msgBuf,HlimitMsgFormat)             WRITE(msgBuf,HlimitMsgFormat)
340       &       ' SEAICE_MODEL: AREAITD          before growth: ',       &       ' SEAICE_MODEL: AREAITD          before growth: ',
341       &       AREAITD(20,20,:,bi,bj)       &       AREAITD(1,1,:,bi,bj)
342             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
343       &       SQUEEZE_RIGHT , myThid)       &       SQUEEZE_RIGHT , myThid)
344             WRITE(msgBuf,HlimitMsgFormat)             WRITE(msgBuf,HlimitMsgFormat)
345       &       ' SEAICE_MODEL: HSNOWITD         before growth: ',       &       ' SEAICE_MODEL: HSNOWITD         before growth: ',
346       &       HSNOWITD(20,20,:,bi,bj)       &       HSNOWITD(1,1,:,bi,bj)
347             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,             CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
348       &       SQUEEZE_RIGHT , myThid)       &       SQUEEZE_RIGHT , myThid)
349          ENDDO          ENDDO
# Line 342  C     because of ugly time level busines Line 362  C     because of ugly time level busines
362  CToM<<<  CToM<<<
363  #ifdef SEAICE_ITD  #ifdef SEAICE_ITD
364  C     ToM: generate some test output  C     ToM: generate some test output
365          WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'          WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)'
366          DO bj=myByLo(myThid),myByHi(myThid)          DO bj=myByLo(myThid),myByHi(myThid)
367           DO bi=myBxLo(myThid),myBxHi(myThid)           DO bi=myBxLo(myThid),myBxHi(myThid)
368              WRITE(msgBuf,HlimitMsgFormat)              WRITE(msgBuf,HlimitMsgFormat)
369       &        ' SEAICE_MODEL: HEFFITD           after growth: ',       &        ' SEAICE_MODEL: HEFFITD           after growth: ',
370       &        HEFFITD(20,20,:,bi,bj)       &        HEFFITD(1,1,:,bi,bj)
371              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
372       &        SQUEEZE_RIGHT , myThid)       &        SQUEEZE_RIGHT , myThid)
373              WRITE(msgBuf,HlimitMsgFormat)              WRITE(msgBuf,HlimitMsgFormat)
374       &        ' SEAICE_MODEL: AREAITD           after growth: ',       &        ' SEAICE_MODEL: AREAITD           after growth: ',
375       &        AREAITD(20,20,:,bi,bj)       &        AREAITD(1,1,:,bi,bj)
376              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
377       &        SQUEEZE_RIGHT , myThid)       &        SQUEEZE_RIGHT , myThid)
378              WRITE(msgBuf,HlimitMsgFormat)              WRITE(msgBuf,HlimitMsgFormat)
379       &        ' SEAICE_MODEL: HSNOWITD          after growth: ',       &        ' SEAICE_MODEL: HSNOWITD          after growth: ',
380       &        HSNOWITD(20,20,:,bi,bj)       &        HSNOWITD(1,1,:,bi,bj)
381              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
382       &        SQUEEZE_RIGHT , myThid)       &        SQUEEZE_RIGHT , myThid)
383              WRITE(msgBuf,'(A)')              WRITE(msgBuf,'(A)')
# Line 386  C     store the mean ice thickness in HE Line 406  C     store the mean ice thickness in HE
406         ENDDO         ENDDO
407    
408  C     ToM: generate some test output  C     ToM: generate some test output
409          WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F6.2)'          WRITE(HlimitMsgFormat,'(A,I2,A)') '(A,',nITD,'F8.4)'
410          DO bj=myByLo(myThid),myByHi(myThid)          DO bj=myByLo(myThid),myByHi(myThid)
411           DO bi=myBxLo(myThid),myBxHi(myThid)           DO bi=myBxLo(myThid),myBxHi(myThid)
412              WRITE(msgBuf,HlimitMsgFormat)              WRITE(msgBuf,HlimitMsgFormat)
413       &        ' SEAICE_MODEL: HEFFITD    after final sorting: ',       &        ' SEAICE_MODEL: HEFFITD    after final sorting: ',
414       &        HEFFITD(20,20,:,bi,bj)       &        HEFFITD(1,1,:,bi,bj)
415              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
416       &        SQUEEZE_RIGHT , myThid)       &        SQUEEZE_RIGHT , myThid)
417              WRITE(msgBuf,HlimitMsgFormat)              WRITE(msgBuf,HlimitMsgFormat)
418       &        ' SEAICE_MODEL: AREAITD    after final sorting: ',       &        ' SEAICE_MODEL: AREAITD    after final sorting: ',
419       &        AREAITD(20,20,:,bi,bj)       &        AREAITD(1,1,:,bi,bj)
420              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
421       &        SQUEEZE_RIGHT , myThid)       &        SQUEEZE_RIGHT , myThid)
422              WRITE(msgBuf,HlimitMsgFormat)              WRITE(msgBuf,HlimitMsgFormat)
423       &        ' SEAICE_MODEL: HSNOWITD   after final sorting: ',       &        ' SEAICE_MODEL: HSNOWITD   after final sorting: ',
424       &        HSNOWITD(20,20,:,bi,bj)       &        HSNOWITD(1,1,:,bi,bj)
425              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,              CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
426       &        SQUEEZE_RIGHT , myThid)       &        SQUEEZE_RIGHT , myThid)
427              WRITE(msgBuf,'(A)')              WRITE(msgBuf,'(A)')

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

  ViewVC Help
Powered by ViewVC 1.1.22