/[MITgcm]/MITgcm/pkg/generic_advdiff/gad_advection.F
ViewVC logotype

Diff of /MITgcm/pkg/generic_advdiff/gad_advection.F

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

revision 1.8.4.2 by jmc, Thu Jul 11 21:43:28 2002 UTC revision 1.8.4.3 by heimbach, Thu Nov 7 17:03:41 2002 UTC
# Line 126  C  ipass                :: number of the Line 126  C  ipass                :: number of the
126  CEOP  CEOP
127    
128  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
129              act0 = tracerIdentity - 1
130              max0 = maxpass
131            act1 = bi - myBxLo(myThid)            act1 = bi - myBxLo(myThid)
132            max1 = myBxHi(myThid) - myBxLo(myThid) + 1            max1 = myBxHi(myThid) - myBxLo(myThid) + 1
133            act2 = bj - myByLo(myThid)            act2 = bj - myByLo(myThid)
# Line 133  CEOP Line 135  CEOP
135            act3 = myThid - 1            act3 = myThid - 1
136            max3 = nTx*nTy            max3 = nTx*nTy
137            act4 = ikey_dynamics - 1            act4 = ikey_dynamics - 1
138            ikey = (act1 + 1) + act2*max1            igadkey = (act0 + 1)
139       &                      + act3*max1*max2       &                      + act1*max0
140       &                      + act4*max1*max2*max3       &                      + act2*max0*max1
141         &                      + act3*max0*max1*max2
142         &                      + act4*max0*max1*max2*max3
143              if (tracerIdentity.GT.maxpass)
144         &         STOP 'maxpass seems smaller than tracerIdentity'
145  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
146    
147  C--   Set up work arrays with valid (i.e. not NaN) values  C--   Set up work arrays with valid (i.e. not NaN) values
# Line 163  C     uninitialised but inert locations. Line 169  C     uninitialised but inert locations.
169  C--   Start of k loop for horizontal fluxes  C--   Start of k loop for horizontal fluxes
170        DO k=1,Nr        DO k=1,Nr
171  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
172           kkey = (ikey-1)*Nr + k           kkey = (igadkey-1)*Nr + k
173  CADJ STORE tracer(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE tracer(:,:,k,bi,bj) =
174    CADJ &     comlev1_bibj_k_gad, key=kkey, byte=isbyte
175  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
176    
177  C--   Get temporary terms used by tendency routines  C--   Get temporary terms used by tendency routines
# Line 182  C--   Make local copy of tracer array Line 189  C--   Make local copy of tracer array
189    
190        IF (useCubedSphereExchange) THEN        IF (useCubedSphereExchange) THEN
191         nipass=3         nipass=3
192    #ifdef ALLOW_AUTODIFF_TAMC
193           if ( nipass.GT.maxcube )
194         &      STOP 'maxcube needs to be = 3'
195    #endif
196        ELSE        ELSE
197         nipass=1         nipass=1
198        ENDIF        ENDIF
 cph       nipass=1  
199    
200  C--   Multiple passes for different directions on different tiles  C--   Multiple passes for different directions on different tiles
201        DO ipass=1,nipass        DO ipass=1,nipass
202  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
203           passkey = ipass + (k-1)   *maxpass           passkey = ipass + (k-1)      *maxcube
204       &                   + (ikey-1)*maxpass*Nr       &                   + (igadkey-1)*maxcube*Nr
205           IF (nipass .GT. maxpass) THEN           IF (nipass .GT. maxpass) THEN
206            STOP 'GAD_ADVECTION: nipass > maxpass. check tamc.h'            STOP 'GAD_ADVECTION: nipass > maxcube. check tamc.h'
207           ENDIF           ENDIF
208  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
209    
# Line 242  C-    Advective flux in X Line 252  C-    Advective flux in X
252    
253  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
254  #ifndef DISABLE_MULTIDIM_ADVECTION  #ifndef DISABLE_MULTIDIM_ADVECTION
255  CADJ STORE localTij(:,:)  = comlev1_bibj_pass, key=passkey, byte=isbyte  CADJ STORE localTij(:,:)  =
256    CADJ &     comlev1_bibj_k_gad_pass, key=passkey, byte=isbyte
257  #endif  #endif
258  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
259    
# Line 308  C-    Advective flux in Y Line 319  C-    Advective flux in Y
319    
320  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
321  #ifndef DISABLE_MULTIDIM_ADVECTION  #ifndef DISABLE_MULTIDIM_ADVECTION
322  CADJ STORE localTij(:,:)  = comlev1_bibj_pass, key=passkey, byte=isbyte  CADJ STORE localTij(:,:)  =
323    CADJ &     comlev1_bibj_k_gad_pass, key=passkey, byte=isbyte
324  #endif  #endif
325  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
326    
# Line 388  C-    Advective flux in R Line 400  C-    Advective flux in R
400    
401  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
402  CADJ STORE localTijk(:,:,k)    CADJ STORE localTijk(:,:,k)  
403  CADJ &     = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ &     = comlev1_bibj_k_gad, key=kkey, byte=isbyte
404    CADJ STORE rTrans(:,:)  
405    CADJ &     = comlev1_bibj_k_gad, key=kkey, byte=isbyte
406  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
407    
408  C     Note: wVel needs to be masked  C     Note: wVel needs to be masked

Legend:
Removed from v.1.8.4.2  
changed lines
  Added in v.1.8.4.3

  ViewVC Help
Powered by ViewVC 1.1.22