/[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.72 by jmc, Mon Mar 4 18:20:46 2013 UTC revision 1.73 by jmc, Tue Nov 19 16:59:33 2013 UTC
# Line 11  C !INTERFACE: ========================== Line 11  C !INTERFACE: ==========================
11        SUBROUTINE GAD_ADVECTION(        SUBROUTINE GAD_ADVECTION(
12       I     implicitAdvection, advectionScheme, vertAdvecScheme,       I     implicitAdvection, advectionScheme, vertAdvecScheme,
13       I     trIdentity, deltaTLev,       I     trIdentity, deltaTLev,
14       I     uVel, vVel, wVel, tracer,       I     uFld, vFld, wFld, tracer,
15       O     gTracer,       O     gTracer,
16       I     bi,bj, myTime,myIter,myThid)       I     bi,bj, myTime,myIter,myThid)
17    
# Line 58  C  implicitAdvection :: implicit vertica Line 58  C  implicitAdvection :: implicit vertica
58  C  advectionScheme   :: advection scheme to use (Horizontal plane)  C  advectionScheme   :: advection scheme to use (Horizontal plane)
59  C  vertAdvecScheme   :: advection scheme to use (vertical direction)  C  vertAdvecScheme   :: advection scheme to use (vertical direction)
60  C  trIdentity        :: tracer identifier  C  trIdentity        :: tracer identifier
61  C  uVel              :: velocity, zonal component  C  uFld              :: Advection velocity field, zonal component
62  C  vVel              :: velocity, meridional component  C  vFld              :: Advection velocity field, meridional component
63  C  wVel              :: velocity, vertical component  C  wFld              :: Advection velocity field, vertical component
64  C  tracer            :: tracer field  C  tracer            :: tracer field
65  C  bi,bj             :: tile indices  C  bi,bj             :: tile indices
66  C  myTime            :: current time  C  myTime            :: current time
# Line 70  C  myThid            :: thread number Line 70  C  myThid            :: thread number
70        INTEGER advectionScheme, vertAdvecScheme        INTEGER advectionScheme, vertAdvecScheme
71        INTEGER trIdentity        INTEGER trIdentity
72        _RL deltaTLev(Nr)        _RL deltaTLev(Nr)
73        _RL uVel  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)        _RL uFld  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
74        _RL vVel  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)        _RL vFld  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
75        _RL wVel  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)        _RL wFld  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
76        _RL tracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)        _RL tracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
77        INTEGER bi,bj        INTEGER bi,bj
78        _RL myTime        _RL myTime
# Line 100  C [jMin,jMax]Upd :: loop range to update Line 100  C [jMin,jMax]Upd :: loop range to update
100  C  i,j,k         :: loop indices  C  i,j,k         :: loop indices
101  C  kUp           :: index into 2 1/2D array, toggles between 1 and 2  C  kUp           :: index into 2 1/2D array, toggles between 1 and 2
102  C  kDown         :: index into 2 1/2D array, toggles between 2 and 1  C  kDown         :: index into 2 1/2D array, toggles between 2 and 1
 C  kp1           :: =k+1 for k<Nr, =Nr for k=Nr  
103  C  xA,yA         :: areas of X and Y face of tracer cells  C  xA,yA         :: areas of X and Y face of tracer cells
 C  uFld,vFld     :: 2-D local copy of horizontal velocity, U,V components  
 C  wFld          :: 2-D local copy of vertical velocity  
104  C  uTrans,vTrans :: 2-D arrays of volume transports at U,V points  C  uTrans,vTrans :: 2-D arrays of volume transports at U,V points
105  C  rTrans        :: 2-D arrays of volume transports at W points  C  rTrans        :: 2-D arrays of volume transports at W points
106  C  rTransKp      :: vertical volume transport at interface k+1  C  rTransKp      :: vertical volume transport at interface k+1
# Line 131  c     _RS maskUp  (1-OLx:sNx+OLx,1-OLy:s Line 128  c     _RS maskUp  (1-OLx:sNx+OLx,1-OLy:s
128        INTEGER i,j,k,kUp,kDown        INTEGER i,j,k,kUp,kDown
129        _RS xA      (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RS xA      (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
130        _RS yA      (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RS yA      (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
       _RL uFld    (1-OLx:sNx+OLx,1-OLy:sNy+OLy)  
       _RL vFld    (1-OLx:sNx+OLx,1-OLy:sNy+OLy)  
       _RL wFld    (1-OLx:sNx+OLx,1-OLy:sNy+OLy)  
131        _RL uTrans  (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL uTrans  (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
132        _RL vTrans  (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL vTrans  (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
133        _RL rTrans  (1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL rTrans  (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
# Line 216  C     point numbers. This prevents spuri Line 210  C     point numbers. This prevents spuri
210  C     uninitialised but inert locations.  C     uninitialised but inert locations.
211        DO j=1-OLy,sNy+OLy        DO j=1-OLy,sNy+OLy
212         DO i=1-OLx,sNx+OLx         DO i=1-OLx,sNx+OLx
213          xA(i,j)      = 0. _d 0  C-    xA,yA,vFld,uTrans,vTrans are set over the full domain
214          yA(i,j)      = 0. _d 0  C      => no need for extra initialisation
215          uTrans(i,j)  = 0. _d 0  c       xA(i,j)      = 0. _d 0
216          vTrans(i,j)  = 0. _d 0  c       yA(i,j)      = 0. _d 0
217    c       uTrans(i,j)  = 0. _d 0
218    c       vTrans(i,j)  = 0. _d 0
219    C-    rTransKp is set over the full domain: no need for extra initialisation
220    c       rTransKp(i,j)= 0. _d 0
221    C-    rTrans and fVerT need to be initialised to zero:
222          rTrans(i,j)  = 0. _d 0          rTrans(i,j)  = 0. _d 0
223          fVerT(i,j,1) = 0. _d 0          fVerT(i,j,1) = 0. _d 0
224          fVerT(i,j,2) = 0. _d 0          fVerT(i,j,2) = 0. _d 0
         rTransKp(i,j)= 0. _d 0  
225  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
226  # ifdef GAD_MULTIDIM_COMPRESSIBLE  # ifdef GAD_MULTIDIM_COMPRESSIBLE
227          localVol(i,j) = 0. _d 0          localVol(i,j) = 0. _d 0
228  # endif  # endif
229          localTij(i,j) = 0. _d 0          localTij(i,j) = 0. _d 0
         wFld(i,j)    = 0. _d 0  
230  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
231         ENDDO         ENDDO
232        ENDDO        ENDDO
# Line 272  CADJ &     comlev1_bibj_k_gad, key=kkey, Line 269  CADJ &     comlev1_bibj_k_gad, key=kkey,
269  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
270    
271  C--   Get temporary terms used by tendency routines  C--   Get temporary terms used by tendency routines
272        CALL CALC_COMMON_FACTORS (        DO j=1-OLy,sNy+OLy
273       I         uVel, vVel,         DO i=1-OLx,sNx+OLx
274       O         uFld, vFld, uTrans, vTrans, xA, yA,           xA(i,j) = _dyG(i,j,bi,bj)*deepFacC(k)
275       I         k,bi,bj, myThid )       &           *drF(k)*_hFacW(i,j,k,bi,bj)
276             yA(i,j) = _dxG(i,j,bi,bj)*deepFacC(k)
277  #ifdef ALLOW_GMREDI       &           *drF(k)*_hFacS(i,j,k,bi,bj)
278  C--   Residual transp = Bolus transp + Eulerian transp         ENDDO
279        IF (useGMRedi)        ENDDO
280       &   CALL GMREDI_CALC_UVFLOW(  C--   Calculate "volume transports" through tracer cell faces.
281       U                  uFld, vFld, uTrans, vTrans,  C     anelastic: scaled by rhoFacC (~ mass transport)
282       I                  k, bi, bj, myThid )        DO j=1-OLy,sNy+OLy
283  #endif /* ALLOW_GMREDI */         DO i=1-OLx,sNx+OLx
284             uTrans(i,j) = uFld(i,j,k)*xA(i,j)*rhoFacC(k)
285             vTrans(i,j) = vFld(i,j,k)*yA(i,j)*rhoFacC(k)
286           ENDDO
287          ENDDO
288    
289  C--   Make local copy of tracer array and mask West & South  C--   Make local copy of tracer array and mask West & South
290        DO j=1-OLy,sNy+OLy        DO j=1-OLy,sNy+OLy
# Line 395  CADJ &     comlev1_bibj_k_gad_pass, key= Line 396  CADJ &     comlev1_bibj_k_gad_pass, key=
396          IF ( advectionScheme.EQ.ENUM_UPWIND_1RST          IF ( advectionScheme.EQ.ENUM_UPWIND_1RST
397       &     .OR. advectionScheme.EQ.ENUM_DST2 ) THEN       &     .OR. advectionScheme.EQ.ENUM_DST2 ) THEN
398            CALL GAD_DST2U1_ADV_X(    bi,bj,k, advectionScheme, .TRUE.,            CALL GAD_DST2U1_ADV_X(    bi,bj,k, advectionScheme, .TRUE.,
399       I                              deltaTLev(k),uTrans,uFld,localTij,       I             deltaTLev(k),uTrans,uFld(1-OLx,1-OLy,k), localTij,
400       O                              af, myThid )       O             af, myThid )
401          ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN          ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN
402            CALL GAD_FLUXLIMIT_ADV_X( bi,bj,k, .TRUE., deltaTLev(k),            CALL GAD_FLUXLIMIT_ADV_X( bi,bj,k, .TRUE., deltaTLev(k),
403       I                              uTrans, uFld, maskLocW, localTij,       I             uTrans, uFld(1-OLx,1-OLy,k), maskLocW, localTij,
404       O                              af, myThid )       O             af, myThid )
405          ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN          ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN
406            CALL GAD_DST3_ADV_X(      bi,bj,k, .TRUE., deltaTLev(k),            CALL GAD_DST3_ADV_X(      bi,bj,k, .TRUE., deltaTLev(k),
407       I                              uTrans, uFld, maskLocW, localTij,       I             uTrans, uFld(1-OLx,1-OLy,k), maskLocW, localTij,
408       O                              af, myThid )       O             af, myThid )
409          ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN          ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN
410            CALL GAD_DST3FL_ADV_X(    bi,bj,k, .TRUE., deltaTLev(k),            CALL GAD_DST3FL_ADV_X(    bi,bj,k, .TRUE., deltaTLev(k),
411       I                              uTrans, uFld, maskLocW, localTij,       I             uTrans, uFld(1-OLx,1-OLy,k), maskLocW, localTij,
412       O                              af, myThid )       O             af, myThid )
413  #ifndef ALLOW_AUTODIFF_TAMC  #ifndef ALLOW_AUTODIFF_TAMC
414          ELSEIF (advectionScheme.EQ.ENUM_OS7MP ) THEN          ELSEIF (advectionScheme.EQ.ENUM_OS7MP ) THEN
415            CALL GAD_OS7MP_ADV_X(     bi,bj,k, .TRUE., deltaTLev(k),            CALL GAD_OS7MP_ADV_X(     bi,bj,k, .TRUE., deltaTLev(k),
416       I                              uTrans, uFld, maskLocW, localTij,       I             uTrans, uFld(1-OLx,1-OLy,k), maskLocW, localTij,
417       O                              af, myThid )       O             af, myThid )
418  #endif  #endif
419          ELSE          ELSE
420           STOP 'GAD_ADVECTION: adv. scheme incompatibale with multi-dim'           STOP 'GAD_ADVECTION: adv. scheme incompatibale with multi-dim'
# Line 592  CADJ &     comlev1_bibj_k_gad_pass, key= Line 593  CADJ &     comlev1_bibj_k_gad_pass, key=
593          IF ( advectionScheme.EQ.ENUM_UPWIND_1RST          IF ( advectionScheme.EQ.ENUM_UPWIND_1RST
594       &     .OR. advectionScheme.EQ.ENUM_DST2 ) THEN       &     .OR. advectionScheme.EQ.ENUM_DST2 ) THEN
595            CALL GAD_DST2U1_ADV_Y(    bi,bj,k, advectionScheme, .TRUE.,            CALL GAD_DST2U1_ADV_Y(    bi,bj,k, advectionScheme, .TRUE.,
596       I                              deltaTLev(k),vTrans,vFld,localTij,       I             deltaTLev(k),vTrans,vFld(1-OLx,1-OLy,k), localTij,
597       O                              af, myThid )       O             af, myThid )
598          ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN          ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN
599            CALL GAD_FLUXLIMIT_ADV_Y( bi,bj,k, .TRUE., deltaTLev(k),            CALL GAD_FLUXLIMIT_ADV_Y( bi,bj,k, .TRUE., deltaTLev(k),
600       I                              vTrans, vFld, maskLocS, localTij,       I             vTrans, vFld(1-OLx,1-OLy,k), maskLocS, localTij,
601       O                              af, myThid )       O             af, myThid )
602          ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN          ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN
603            CALL GAD_DST3_ADV_Y(      bi,bj,k, .TRUE., deltaTLev(k),            CALL GAD_DST3_ADV_Y(      bi,bj,k, .TRUE., deltaTLev(k),
604       I                              vTrans, vFld, maskLocS, localTij,       I             vTrans, vFld(1-OLx,1-OLy,k), maskLocS, localTij,
605       O                              af, myThid )       O             af, myThid )
606          ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN          ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN
607            CALL GAD_DST3FL_ADV_Y(    bi,bj,k, .TRUE., deltaTLev(k),            CALL GAD_DST3FL_ADV_Y(    bi,bj,k, .TRUE., deltaTLev(k),
608       I                              vTrans, vFld, maskLocS, localTij,       I             vTrans, vFld(1-OLx,1-OLy,k), maskLocS, localTij,
609       O                              af, myThid )       O             af, myThid )
610  #ifndef ALLOW_AUTODIFF_TAMC  #ifndef ALLOW_AUTODIFF_TAMC
611          ELSEIF (advectionScheme.EQ.ENUM_OS7MP ) THEN          ELSEIF (advectionScheme.EQ.ENUM_OS7MP ) THEN
612            CALL GAD_OS7MP_ADV_Y(     bi,bj,k, .TRUE., deltaTLev(k),            CALL GAD_OS7MP_ADV_Y(     bi,bj,k, .TRUE., deltaTLev(k),
613       I                              vTrans, vFld, maskLocS, localTij,       I             vTrans, vFld(1-OLx,1-OLy,k), maskLocS, localTij,
614       O                              af, myThid )       O             af, myThid )
615  #endif  #endif
616          ELSE          ELSE
617           STOP 'GAD_ADVECTION: adv. scheme incompatibale with mutli-dim'           STOP 'GAD_ADVECTION: adv. scheme incompatibale with mutli-dim'
# Line 804  C--   kUp    Cycles through 1,2 to point Line 805  C--   kUp    Cycles through 1,2 to point
805  C--   kDown  Cycles through 2,1 to point to w-layer below  C--   kDown  Cycles through 2,1 to point to w-layer below
806          kUp  = 1+MOD(k+1,2)          kUp  = 1+MOD(k+1,2)
807          kDown= 1+MOD(k,2)          kDown= 1+MOD(k,2)
 c       kp1=min(Nr,k+1)  
808          kp1Msk=1.          kp1Msk=1.
809          if (k.EQ.Nr) kp1Msk=0.          IF (k.EQ.Nr) kp1Msk=0.
810    
811  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
812  CADJ STORE rtrans(:,:)  =  CADJ STORE rtrans(:,:)  =
813  CADJ &     comlev1_bibj_k_gad, key=kkey, kind=isbyte  CADJ &     comlev1_bibj_k_gad, key=kkey, kind=isbyte
 cphCADJ STORE wFld(:,:)  =  
 cphCADJ &     comlev1_bibj_k_gad, key=kkey, kind=isbyte  
814  #endif  #endif
815    
816  C-- Compute Vertical transport  C-- Compute Vertical transport
# Line 825  C- a hack to prevent Water-Vapor vert.tr Line 823  C- a hack to prevent Water-Vapor vert.tr
823          IF ( k.EQ.1 ) THEN          IF ( k.EQ.1 ) THEN
824  #endif  #endif
825    
 #ifdef ALLOW_AUTODIFF_TAMC  
 cphmultiCADJ STORE wFld(:,:)  =  
 cphmultiCADJ &     comlev1_bibj_k_gad, key=kkey, kind=isbyte  
 #endif /* ALLOW_AUTODIFF_TAMC */  
   
826  C- Surface interface :  C- Surface interface :
827           DO j=1-OLy,sNy+OLy           DO j=1-OLy,sNy+OLy
828            DO i=1-OLx,sNx+OLx            DO i=1-OLx,sNx+OLx
829             rTransKp(i,j) = kp1Msk*rTrans(i,j)             rTransKp(i,j) = kp1Msk*rTrans(i,j)
            wFld(i,j)   = 0.  
830             rTrans(i,j) = 0.             rTrans(i,j) = 0.
831             fVerT(i,j,kUp) = 0.             fVerT(i,j,kUp) = 0.
832            ENDDO            ENDDO
# Line 842  C- Surface interface : Line 834  C- Surface interface :
834    
835          ELSE          ELSE
836    
 #ifdef ALLOW_AUTODIFF_TAMC  
 cphmultiCADJ STORE wFld(:,:)  =  
 cphmultiCADJ &     comlev1_bibj_k_gad, key=kkey, kind=isbyte  
 #endif /* ALLOW_AUTODIFF_TAMC */  
   
837  C- Interior interface :  C- Interior interface :
838           DO j=1-OLy,sNy+OLy           DO j=1-OLy,sNy+OLy
839            DO i=1-OLx,sNx+OLx            DO i=1-OLx,sNx+OLx
840             rTransKp(i,j) = kp1Msk*rTrans(i,j)             rTransKp(i,j) = kp1Msk*rTrans(i,j)
841             wFld(i,j)   = wVel(i,j,k,bi,bj)             rTrans(i,j) = wFld(i,j,k)*rA(i,j,bi,bj)
            rTrans(i,j) = wVel(i,j,k,bi,bj)*rA(i,j,bi,bj)  
842       &                 *deepFac2F(k)*rhoFacF(k)       &                 *deepFac2F(k)*rhoFacF(k)
843       &                 *maskC(i,j,k-1,bi,bj)       &                 *maskC(i,j,k-1,bi,bj)
844             fVerT(i,j,kUp) = 0.             fVerT(i,j,kUp) = 0.
845            ENDDO            ENDDO
846           ENDDO           ENDDO
847    
 #ifdef ALLOW_GMREDI  
 C--   Residual transp = Bolus transp + Eulerian transp  
          IF (useGMRedi)  
      &     CALL GMREDI_CALC_WFLOW(  
      U                 wFld, rTrans,  
      I                 k, bi, bj, myThid )  
 #endif /* ALLOW_GMREDI */  
   
848  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
849  cphmultiCADJ STORE localT3d(:,:,k)  cphmultiCADJ STORE localT3d(:,:,k)
850  cphmultiCADJ &     = comlev1_bibj_k_gad, key=kkey, kind=isbyte  cphmultiCADJ &     = comlev1_bibj_k_gad, key=kkey, kind=isbyte
# Line 878  C-    Compute vertical advective flux in Line 856  C-    Compute vertical advective flux in
856           IF ( vertAdvecScheme.EQ.ENUM_UPWIND_1RST           IF ( vertAdvecScheme.EQ.ENUM_UPWIND_1RST
857       &      .OR. vertAdvecScheme.EQ.ENUM_DST2 ) THEN       &      .OR. vertAdvecScheme.EQ.ENUM_DST2 ) THEN
858             CALL GAD_DST2U1_ADV_R(    bi,bj,k, advectionScheme,             CALL GAD_DST2U1_ADV_R(    bi,bj,k, advectionScheme,
859       I                          deltaTLev(k),rTrans,wFld,localT3d,       I              deltaTLev(k),rTrans,wFld(1-OLx,1-OLy,k),localT3d,
860       O                               fVerT(1-OLx,1-OLy,kUp), myThid )       O              fVerT(1-OLx,1-OLy,kUp), myThid )
861           ELSEIF( vertAdvecScheme.EQ.ENUM_FLUX_LIMIT) THEN           ELSEIF( vertAdvecScheme.EQ.ENUM_FLUX_LIMIT) THEN
862             CALL GAD_FLUXLIMIT_ADV_R( bi,bj,k, deltaTLev(k),             CALL GAD_FLUXLIMIT_ADV_R( bi,bj,k, deltaTLev(k),
863       I                               rTrans, wFld, localT3d,       I              rTrans, wFld(1-OLx,1-OLy,k), localT3d,
864       O                               fVerT(1-OLx,1-OLy,kUp), myThid )       O              fVerT(1-OLx,1-OLy,kUp), myThid )
865           ELSEIF( vertAdvecScheme.EQ.ENUM_DST3 ) THEN           ELSEIF( vertAdvecScheme.EQ.ENUM_DST3 ) THEN
866             CALL GAD_DST3_ADV_R(      bi,bj,k, deltaTLev(k),             CALL GAD_DST3_ADV_R(      bi,bj,k, deltaTLev(k),
867       I                               rTrans, wFld, localT3d,       I              rTrans, wFld(1-OLx,1-OLy,k), localT3d,
868       O                               fVerT(1-OLx,1-OLy,kUp), myThid )       O              fVerT(1-OLx,1-OLy,kUp), myThid )
869           ELSEIF( vertAdvecScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN           ELSEIF( vertAdvecScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN
870             CALL GAD_DST3FL_ADV_R(    bi,bj,k, deltaTLev(k),             CALL GAD_DST3FL_ADV_R(    bi,bj,k, deltaTLev(k),
871       I                               rTrans, wFld, localT3d,       I              rTrans, wFld(1-OLx,1-OLy,k), localT3d,
872       O                               fVerT(1-OLx,1-OLy,kUp), myThid )       O              fVerT(1-OLx,1-OLy,kUp), myThid )
873  #ifndef ALLOW_AUTODIFF_TAMC  #ifndef ALLOW_AUTODIFF_TAMC
874           ELSEIF (vertAdvecScheme.EQ.ENUM_OS7MP ) THEN           ELSEIF (vertAdvecScheme.EQ.ENUM_OS7MP ) THEN
875             CALL GAD_OS7MP_ADV_R(     bi,bj,k, deltaTLev(k),             CALL GAD_OS7MP_ADV_R(     bi,bj,k, deltaTLev(k),
876       I                               rTrans, wFld, localT3d,       I              rTrans, wFld(1-OLx,1-OLy,k), localT3d,
877       O                               fVerT(1-OLx,1-OLy,kUp), myThid )       O              fVerT(1-OLx,1-OLy,kUp), myThid )
878  #endif  #endif
879           ELSE           ELSE
880            STOP 'GAD_ADVECTION: adv. scheme incompatibale with mutli-dim'            STOP 'GAD_ADVECTION: adv. scheme incompatibale with mutli-dim'

Legend:
Removed from v.1.72  
changed lines
  Added in v.1.73

  ViewVC Help
Powered by ViewVC 1.1.22