/[MITgcm]/MITgcm_contrib/dgoldberg/streamice/streamice_advect_2dtracer.F
ViewVC logotype

Diff of /MITgcm_contrib/dgoldberg/streamice/streamice_advect_2dtracer.F

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

revision 1.2 by dgoldberg, Wed Jun 12 20:48:08 2013 UTC revision 1.3 by dgoldberg, Wed Aug 27 19:29:13 2014 UTC
# Line 5  C $Name$ Line 5  C $Name$
5    
6  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7    
   
8  CBOP  CBOP
9        SUBROUTINE STREAMICE_ADVECT_2DTRACER (        SUBROUTINE STREAMICE_ADVECT_2DTRACER (
10       &  myThid,       &  myThid,
11       &  myIter,       &  myIter,
12       &  time_step,       &  time_step,
13       &  uTrans,       &  uTrans,
14       &  vTrans,       &  vTrans,
15       &  bcMaskx,       &  bcMaskx,
16       &  bcMasky)       &  bcMasky)
17    
18  C     /============================================================\  C     *============================================================*
19  C     | SUBROUTINE                                                 |    C     | SUBROUTINE                                                 |
20  C     | o                                                          |  C     | o                                                          |
21  C     |============================================================|  C     *============================================================*
22  C     |                                                            |  C     |                                                            |
23  C     \============================================================/  C     *============================================================*
24        IMPLICIT NONE        IMPLICIT NONE
25    
26  C     === Global variables ===  C     === Global variables ===
# Line 39  C     === Global variables === Line 38  C     === Global variables ===
38        _RL time_step        _RL time_step
39        _RL uTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL uTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
40        _RL vTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL vTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
41        _RL bcMaskx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RS bcMaskx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
42        _RL bcMasky(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RS bcMasky(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
43  !      _RL trac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  !      _RL trac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
44    
45  #ifdef ALLOW_STREAMICE  #ifdef ALLOW_STREAMICE
# Line 70  C     === Global variables === Line 69  C     === Global variables ===
69          DO j=1-3,sNy+3          DO j=1-3,sNy+3
70           DO i=1-3,sNx+3           DO i=1-3,sNx+3
71    
72  !          H_streamice_prev(i,j,bi,bj) =  !          H_streamice_prev(i,j,bi,bj) =
73  !     &     H_streamice(i,j,bi,bj)  !     &     H_streamice(i,j,bi,bj)
74    
75            ytracflux (i,j,bi,bj) = 0. _d 0            ytracflux (i,j,bi,bj) = 0. _d 0
# Line 127  CADJ STORE trac2d  = comlev1, key=ikey_d Line 126  CADJ STORE trac2d  = comlev1, key=ikey_d
126       &       .or.STREAMICE_NS_PERIODIC) THEN       &       .or.STREAMICE_NS_PERIODIC) THEN
127    
128    
129            IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0 .or.            IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0 .or.
130       &        STREAMICE_hmask(i,j,bi,bj).eq.2.0) THEN       &        STREAMICE_hmask(i,j,bi,bj).eq.2.0) THEN
131    
132    
133    
134  #ifdef STREAMICE_TRACER_AB  #ifdef STREAMICE_TRACER_AB
135             GAD_trac_2d(i,j,bi,bj) = GAD_trac_2d(i,j,bi,bj) -             GAD_trac_2d(i,j,bi,bj) = GAD_trac_2d(i,j,bi,bj) -
136  #else  #else
137             trac2d(i,j,bi,bj) = trac2d(i,j,bi,bj) -             trac2d(i,j,bi,bj) = trac2d(i,j,bi,bj) -
138  #endif  #endif
139       &      ((xtracflux(i+1,j,bi,bj)*dyG(i+1,j,bi,bj) -       &      ((xtracflux(i+1,j,bi,bj)*dyG(i+1,j,bi,bj) -
140       &       xtracflux(i,j,bi,bj)*dyG(i,j,bi,bj)) *       &       xtracflux(i,j,bi,bj)*dyG(i,j,bi,bj)) *
141       &        recip_rA (i,j,bi,bj) -       &        recip_rA (i,j,bi,bj) -
142       &     trac2d(i,j,bi,bj) *       &     trac2d(i,j,bi,bj) *
143       &      (utrans(i+1,j,bi,bj)*dyG(i+1,j,bi,bj)-       &      (utrans(i+1,j,bi,bj)*dyG(i+1,j,bi,bj)-
144       &       utrans(i,j,bi,bj)*dyG(i,j,bi,bj)) *       &       utrans(i,j,bi,bj)*dyG(i,j,bi,bj)) *
145       &       recip_rA(i,j,bi,bj))       &       recip_rA(i,j,bi,bj))
146  #ifndef STREAMICE_TRACER_AB  #ifndef STREAMICE_TRACER_AB
147       &      * time_step_loc       &      * time_step_loc
148  #endif  #endif
149            ENDIF            ENDIF
# Line 158  CADJ STORE trac2d  = comlev1, key=ikey_d Line 157  CADJ STORE trac2d  = comlev1, key=ikey_d
157  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
158  # ifndef STREAMICE_TRACER_AB  # ifndef STREAMICE_TRACER_AB
159  CADJ STORE trac2d  = comlev1, key=ikey_dynamics  CADJ STORE trac2d  = comlev1, key=ikey_dynamics
160  # endif  # endif
161  #endif  #endif
162    
163    
# Line 178  CADJ STORE trac2d  = comlev1, key=ikey_d Line 177  CADJ STORE trac2d  = comlev1, key=ikey_d
177            Gi = (myXGlobalLo-1)+(bi-1)*sNx+i            Gi = (myXGlobalLo-1)+(bi-1)*sNx+i
178            Gj = (myYGlobalLo-1)+(bj-1)*sNy+j            Gj = (myYGlobalLo-1)+(bj-1)*sNy+j
179    
180            IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0 .or.            IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0 .or.
181       &        STREAMICE_hmask(i,j,bi,bj).eq.2.0) THEN       &        STREAMICE_hmask(i,j,bi,bj).eq.2.0) THEN
182  !           IF (Gi.eq.34.and.Gj.eq.94) THEN  !           IF (Gi.eq.34.and.Gj.eq.94) THEN
183  !            print *, "GOT HERE YFLUX", ytracflux(i,j,bi,bj),  !            print *, "GOT HERE YFLUX", ytracflux(i,j,bi,bj),
# Line 187  CADJ STORE trac2d  = comlev1, key=ikey_d Line 186  CADJ STORE trac2d  = comlev1, key=ikey_d
186  !     &        bcmasky(i,j,bi,bj)  !     &        bcmasky(i,j,bi,bj)
187  !           ENDIF  !           ENDIF
188    
189  #ifdef STREAMICE_TRACER_AB  #ifdef STREAMICE_TRACER_AB
190             GAD_trac_2d(i,j,bi,bj) = GAD_trac_2d(i,j,bi,bj) -             GAD_trac_2d(i,j,bi,bj) = GAD_trac_2d(i,j,bi,bj) -
191  #else  #else
192             trac2d(i,j,bi,bj) = trac2d(i,j,bi,bj) -             trac2d(i,j,bi,bj) = trac2d(i,j,bi,bj) -
# Line 215  CADJ STORE trac2d  = comlev1, key=ikey_d Line 214  CADJ STORE trac2d  = comlev1, key=ikey_d
214          DO j=1,sNy          DO j=1,sNy
215           DO i=1,sNx           DO i=1,sNx
216    
217            trac2d(i,j,bi,bj) = trac2d(i,j,bi,bj) + time_step_loc *            trac2d(i,j,bi,bj) = trac2d(i,j,bi,bj) + time_step_loc *
218       &      GAD_trac_2d(i,j,bi,bj)       &      GAD_trac_2d(i,j,bi,bj)
219    
220            IF (myIter.eq.0) THEN            IF (myIter.eq.0) THEN
221             trac2d(i,j,bi,bj) = trac2d(i,j,bi,bj) + time_step_loc *             trac2d(i,j,bi,bj) = trac2d(i,j,bi,bj) + time_step_loc *
222       &      (.5+.01) *       &      (.5+.01) *
223       &      (GAD_trac_2d(i,j,bi,bj) - GAD_trac_2dNm1(i,j,bi,bj))       &      (GAD_trac_2d(i,j,bi,bj) - GAD_trac_2dNm1(i,j,bi,bj))
224            ENDIF            ENDIF
225    
# Line 233  CADJ STORE trac2d  = comlev1, key=ikey_d Line 232  CADJ STORE trac2d  = comlev1, key=ikey_d
232  #endif  #endif
233    
234        _EXCH_XY_RL (trac2d, myThid)        _EXCH_XY_RL (trac2d, myThid)
235          
236        WRITE(msgBuf,'(A)') 'END STREAMICE_ADVECT_THICKNESS'        WRITE(msgBuf,'(A)') 'END STREAMICE_ADVECT_THICKNESS'
237         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,         CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
238       &                     SQUEEZE_RIGHT , 1)       &                     SQUEEZE_RIGHT , 1)
239          
240  #endif  #endif
241  #endif  #endif
242        END        END
   

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

  ViewVC Help
Powered by ViewVC 1.1.22