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

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

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

revision 1.1 by dimitri, Fri Apr 27 22:22:17 2012 UTC revision 1.2 by dimitri, Fri Apr 27 22:25:23 2012 UTC
# Line 53  CEndOfInterface Line 53  CEndOfInterface
53  C !LOCAL VARIABLES: ====================================================  C !LOCAL VARIABLES: ====================================================
54  C     === Local variables ===  C     === Local variables ===
55  C     i,j,bi,bj :: Loop counters  C     i,j,bi,bj :: Loop counters
56    CToM<<<
57    #ifdef SEAICE_ITD
58    C     k         :: Loop counter for ice thickness categories
59    #endif
60    C>>>ToM
61  C     ks        :: surface level index  C     ks        :: surface level index
62  C     uc/vc     :: current ice velocity on C-grid  C     uc/vc     :: current ice velocity on C-grid
63  C     uTrans    :: volume transport, x direction  C     uTrans    :: volume transport, x direction
# Line 62  C     afy       :: horizontal advective Line 67  C     afy       :: horizontal advective
67  C     gFld      :: tendency of seaice field  C     gFld      :: tendency of seaice field
68  C     xA,yA     :: "areas" of X and Y face of tracer cells  C     xA,yA     :: "areas" of X and Y face of tracer cells
69        INTEGER i, j, bi, bj        INTEGER i, j, bi, bj
70    CToM<<<
71    #ifdef SEAICE_ITD
72          INTEGER k
73    #endif
74    C>>>ToM
75        INTEGER ks        INTEGER ks
76        LOGICAL SEAICEmultiDimAdvection        LOGICAL SEAICEmultiDimAdvection
77  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
# Line 206  C-    Calculate "volume transports" thro Line 216  C-    Calculate "volume transports" thro
216    
217  C--   Effective Thickness (Volume)  C--   Effective Thickness (Volume)
218          IF ( SEAICEadvHeff ) THEN          IF ( SEAICEadvHeff ) THEN
219    CToM<<<
220    #ifdef SEAICE_ITD
221            DO k=1,nITD
222             DO j=1-OLy,sNy+OLy
223              DO i=1-OLx,sNx+OLx
224               HEFF(i,j,bi,bj)=HEFFITD(i,j,k,bi,bj)
225              ENDDO
226             ENDDO
227    #endif
228    C>>>ToM
229            CALL SEAICE_ADVECTION(            CALL SEAICE_ADVECTION(
230       I         GAD_HEFF, SEAICEadvSchHeff,       I         GAD_HEFF, SEAICEadvSchHeff,
231       I         uc(1-OLx,1-OLy,bi,bj), vc(1-OLx,1-OLy,bi,bj),       I         uc(1-OLx,1-OLy,bi,bj), vc(1-OLx,1-OLy,bi,bj),
# Line 229  C     now do the "explicit" time step Line 249  C     now do the "explicit" time step
249       &          )       &          )
250            ENDDO            ENDDO
251           ENDDO           ENDDO
252    CToM<<<
253    #ifdef SEAICE_ITD
254             DO j=1-OLy,sNy+OLy
255              DO i=1-OLx,sNx+OLx
256               HEFFITD(i,j,k,bi,bj)=HEFF(i,j,bi,bj)
257              ENDDO
258             ENDDO
259            ENDDO
260    #endif
261    C>>>ToM
262          ENDIF          ENDIF
263    
264  C--   Fractional area  C--   Fractional area
265          IF ( SEAICEadvArea ) THEN          IF ( SEAICEadvArea ) THEN
266    CToM<<<
267    #ifdef SEAICE_ITD
268            DO k=1,nITD
269             DO j=1-OLy,sNy+OLy
270              DO i=1-OLx,sNx+OLx
271               AREA(i,j,bi,bj)=AREAITD(i,j,k,bi,bj)
272              ENDDO
273             ENDDO
274    #endif
275    C>>>ToM
276            CALL SEAICE_ADVECTION(            CALL SEAICE_ADVECTION(
277       I         GAD_AREA, SEAICEadvSchArea,       I         GAD_AREA, SEAICEadvSchArea,
278       I         uc(1-OLx,1-OLy,bi,bj), vc(1-OLx,1-OLy,bi,bj),       I         uc(1-OLx,1-OLy,bi,bj), vc(1-OLx,1-OLy,bi,bj),
# Line 256  C     now do the "explicit" time step Line 296  C     now do the "explicit" time step
296       &          )       &          )
297            ENDDO            ENDDO
298           ENDDO           ENDDO
299    CToM<<<
300    #ifdef SEAICE_ITD
301             DO j=1-OLy,sNy+OLy
302              DO i=1-OLx,sNx+OLx
303               AREAITD(i,j,k,bi,bj)=AREA(i,j,bi,bj)
304              ENDDO
305             ENDDO
306            ENDDO
307    #endif
308    C>>>ToM
309          ENDIF          ENDIF
310    
311  C--   Effective Snow Thickness (Volume)  C--   Effective Snow Thickness (Volume)
312          IF ( SEAICEadvSnow ) THEN          IF ( SEAICEadvSnow ) THEN
313    CToM<<<
314    #ifdef SEAICE_ITD
315            DO k=1,nITD
316             DO j=1-OLy,sNy+OLy
317              DO i=1-OLx,sNx+OLx
318               HSNOW(i,j,bi,bj)=HSNOWITD(i,j,k,bi,bj)
319              ENDDO
320             ENDDO
321    #endif
322    C>>>ToM
323            CALL SEAICE_ADVECTION(            CALL SEAICE_ADVECTION(
324       I         GAD_SNOW, SEAICEadvSchSnow,       I         GAD_SNOW, SEAICEadvSchSnow,
325       I         uc(1-OLx,1-OLy,bi,bj), vc(1-OLx,1-OLy,bi,bj),       I         uc(1-OLx,1-OLy,bi,bj), vc(1-OLx,1-OLy,bi,bj),
# Line 283  C     now do the "explicit" time step Line 343  C     now do the "explicit" time step
343       &          )       &          )
344            ENDDO            ENDDO
345           ENDDO           ENDDO
346    CToM<<<
347    #ifdef SEAICE_ITD
348             DO j=1-OLy,sNy+OLy
349              DO i=1-OLx,sNx+OLx
350               HSNOWITD(i,j,k,bi,bj)=HSNOW(i,j,bi,bj)
351              ENDDO
352             ENDDO
353            ENDDO
354    #endif
355    C>>>ToM
356          ENDIF          ENDIF
357    
358  #ifdef SEAICE_VARIABLE_SALINITY  #ifdef SEAICE_VARIABLE_SALINITY
# Line 492  C     needed for SEAICE_GROWTH, Legacy b Line 562  C     needed for SEAICE_GROWTH, Legacy b
562  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
563  CADJ STORE heff = comlev1, key = ikey_dynamics, kind=isbyte  CADJ STORE heff = comlev1, key = ikey_dynamics, kind=isbyte
564  #endif  #endif
565    CToM<<<
566    #ifdef SEAICE_ITD
567            DO k=1,nITD
568             DO bj=myByLo(myThid),myByHi(myThid)
569              DO bi=myBxLo(myThid),myBxHi(myThid)
570               DO j=1-OLy,sNy+OLy
571                DO i=1-OLx,sNx+OLx
572                 HEFF(i,j,bi,bj)=HEFFITD(i,j,k,bi,bj)
573                ENDDO
574               ENDDO
575              ENDDO
576             ENDDO
577    #endif
578    C>>>ToM        
579          CALL ADVECT( uc, vc, hEff, fldNm1, HEFFM, myThid )          CALL ADVECT( uc, vc, hEff, fldNm1, HEFFM, myThid )
580          IF ( SEAICEdiffKhHeff .GT. 0. _d 0 ) THEN          IF ( SEAICEdiffKhHeff .GT. 0. _d 0 ) THEN
581  C-    Add tendency due to diffusion  C-    Add tendency due to diffusion
# Line 506  C-    Add tendency due to diffusion Line 590  C-    Add tendency due to diffusion
590            ENDDO            ENDDO
591           ENDDO           ENDDO
592          ENDIF          ENDIF
593    CToM<<<      
594    #ifdef SEAICE_ITD
595             DO bj=myByLo(myThid),myByHi(myThid)
596              DO bi=myBxLo(myThid),myBxHi(myThid)
597               DO j=1-OLy,sNy+OLy
598                DO i=1-OLx,sNx+OLx
599                 HEFFITD(i,j,k,bi,bj)=HEFF(i,j,bi,bj)
600                ENDDO
601               ENDDO
602              ENDDO
603             ENDDO
604            ENDDO
605    #endif
606    C>>>ToM
607         ENDIF         ENDIF
608         IF ( SEAICEadvArea ) THEN         IF ( SEAICEadvArea ) THEN
609  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
610  CADJ STORE area = comlev1, key = ikey_dynamics, kind=isbyte  CADJ STORE area = comlev1, key = ikey_dynamics, kind=isbyte
611  #endif  #endif
612    CToM<<<
613    #ifdef SEAICE_ITD
614            DO k=1,nITD
615             DO bj=myByLo(myThid),myByHi(myThid)
616              DO bi=myBxLo(myThid),myBxHi(myThid)
617               DO j=1-OLy,sNy+OLy
618                DO i=1-OLx,sNx+OLx
619                 AREA(i,j,bi,bj)=AREAITD(i,j,k,bi,bj)
620                ENDDO
621               ENDDO
622              ENDDO
623             ENDDO
624    #endif
625    C>>>ToM        
626          CALL ADVECT( uc, vc, area, fldNm1, HEFFM, myThid )          CALL ADVECT( uc, vc, area, fldNm1, HEFFM, myThid )
627          IF ( SEAICEdiffKhArea .GT. 0. _d 0 ) THEN          IF ( SEAICEdiffKhArea .GT. 0. _d 0 ) THEN
628  C-    Add tendency due to diffusion  C-    Add tendency due to diffusion
# Line 525  C-    Add tendency due to diffusion Line 637  C-    Add tendency due to diffusion
637            ENDDO            ENDDO
638           ENDDO           ENDDO
639          ENDIF          ENDIF
640    CToM<<<      
641    #ifdef SEAICE_ITD
642             DO bj=myByLo(myThid),myByHi(myThid)
643              DO bi=myBxLo(myThid),myBxHi(myThid)
644               DO j=1-OLy,sNy+OLy
645                DO i=1-OLx,sNx+OLx
646                 AREAITD(i,j,k,bi,bj)=AREA(i,j,bi,bj)
647                ENDDO
648               ENDDO
649              ENDDO
650             ENDDO
651            ENDDO
652    #endif
653    C>>>ToM
654         ENDIF         ENDIF
655         IF ( SEAICEadvSnow ) THEN         IF ( SEAICEadvSnow ) THEN
656  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
657  CADJ STORE hsnow = comlev1, key = ikey_dynamics, kind=isbyte  CADJ STORE hsnow = comlev1, key = ikey_dynamics, kind=isbyte
658  #endif  #endif
659    CToM<<<
660    #ifdef SEAICE_ITD
661            DO k=1,nITD
662             DO bj=myByLo(myThid),myByHi(myThid)
663              DO bi=myBxLo(myThid),myBxHi(myThid)
664               DO j=1-OLy,sNy+OLy
665                DO i=1-OLx,sNx+OLx
666                 HSNOW(i,j,bi,bj)=HSNOWITD(i,j,k,bi,bj)
667                ENDDO
668               ENDDO
669              ENDDO
670             ENDDO
671    #endif
672    C>>>ToM        
673          CALL ADVECT( uc, vc, HSNOW, fldNm1, HEFFM, myThid )          CALL ADVECT( uc, vc, HSNOW, fldNm1, HEFFM, myThid )
674          IF ( SEAICEdiffKhSnow .GT. 0. _d 0 ) THEN          IF ( SEAICEdiffKhSnow .GT. 0. _d 0 ) THEN
675  C-    Add tendency due to diffusion  C-    Add tendency due to diffusion
# Line 544  C-    Add tendency due to diffusion Line 684  C-    Add tendency due to diffusion
684            ENDDO            ENDDO
685           ENDDO           ENDDO
686          ENDIF          ENDIF
687    CToM<<<      
688    #ifdef SEAICE_ITD
689             DO bj=myByLo(myThid),myByHi(myThid)
690              DO bi=myBxLo(myThid),myBxHi(myThid)
691               DO j=1-OLy,sNy+OLy
692                DO i=1-OLx,sNx+OLx
693                 HSNOWITD(i,j,k,bi,bj)=HSNOW(i,j,bi,bj)
694                ENDDO
695               ENDDO
696              ENDDO
697             ENDDO
698            ENDDO
699    #endif
700    C>>>ToM
701         ENDIF         ENDIF
702    
703  #ifdef SEAICE_VARIABLE_SALINITY  #ifdef SEAICE_VARIABLE_SALINITY

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.22