/[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.6 by heimbach, Thu Sep 27 20:12:11 2001 UTC revision 1.10 by jmc, Tue Mar 5 15:17:45 2002 UTC
# Line 4  C $Name$ Line 4  C $Name$
4  CBOI  CBOI
5  C !TITLE: pkg/generic\_advdiff  C !TITLE: pkg/generic\_advdiff
6  C !AUTHORS: adcroft@mit.edu  C !AUTHORS: adcroft@mit.edu
7  C !INTRODUCTION:  C !INTRODUCTION: Generic Advection Diffusion Package
 C \section{Generica Advection Diffusion Package}  
8  C  C
9  C Package "generic\_advdiff" provides a common set of routines for calculating  C Package "generic\_advdiff" provides a common set of routines for calculating
10  C advective/diffusive fluxes for tracers (cell centered quantities on a C-grid).  C advective/diffusive fluxes for tracers (cell centered quantities on a C-grid).
# Line 82  C  myThid               :: thread number Line 81  C  myThid               :: thread number
81        INTEGER bi,bj        INTEGER bi,bj
82        INTEGER advectionScheme        INTEGER advectionScheme
83        INTEGER tracerIdentity        INTEGER tracerIdentity
84        _RL Gtracer(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy)        _RL Tracer(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy)
85        _RL myTime        _RL myTime
86        INTEGER myIter        INTEGER myIter
87        INTEGER myThid        INTEGER myThid
88    
89  C !OUTPUT PARAMETERS: ==================================================  C !OUTPUT PARAMETERS: ==================================================
90  C  gTracer              :: tendancy array  C  gTracer              :: tendancy array
91        _RL Tracer(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy)        _RL gTracer(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy)
92    
93  C !LOCAL VARIABLES: ====================================================  C !LOCAL VARIABLES: ====================================================
94  C  maskUp               :: 2-D array for mask at W points  C  maskUp               :: 2-D array for mask at W points
# Line 242  C-    Advective flux in X Line 241  C-    Advective flux in X
241        ENDDO        ENDDO
242    
243  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
244  #ifdef ALLOW_MULTIDIM_ADVECTION  #ifndef DISABLE_MULTIDIM_ADVECTION
245  CADJ STORE localTij(:,:)  = comlev1_bibj_pass, key=passkey, byte=isbyte  CADJ STORE localTij(:,:)  = comlev1_bibj_pass, key=passkey, byte=isbyte
246  #endif  #endif
247  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
# Line 257  CADJ STORE localTij(:,:)  = comlev1_bibj Line 256  CADJ STORE localTij(:,:)  = comlev1_bibj
256         CALL GAD_DST3FL_ADV_X(         CALL GAD_DST3FL_ADV_X(
257       &       bi,bj,k,deltaTtracer,uTrans,uVel,localTij,af,myThid)       &       bi,bj,k,deltaTtracer,uTrans,uVel,localTij,af,myThid)
258        ELSE        ELSE
259         STOP 'GAD_ADVECTION: adv. scheme incompatibale with mutli-dim'         write(0,*) advectionScheme
260           STOP 'GAD_ADVECTION: adv. scheme incompatibale with multi-dim'
261        ENDIF        ENDIF
262    
263        DO j=1-Oly,sNy+Oly        DO j=1-Oly,sNy+Oly
# Line 308  C-    Advective flux in Y Line 308  C-    Advective flux in Y
308        ENDDO        ENDDO
309    
310  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
311  #ifdef ALLOW_MULTIDIM_ADVECTION  #ifndef DISABLE_MULTIDIM_ADVECTION
312  CADJ STORE localTij(:,:)  = comlev1_bibj_pass, key=passkey, byte=isbyte  CADJ STORE localTij(:,:)  = comlev1_bibj_pass, key=passkey, byte=isbyte
313  #endif  #endif
314  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
# Line 412  C-    Surface "correction" term at k>1 : Line 412  C-    Surface "correction" term at k>1 :
412          DO i=1-Olx,sNx+Olx          DO i=1-Olx,sNx+Olx
413           af(i,j) = af(i,j)           af(i,j) = af(i,j)
414       &           + (maskC(i,j,k,bi,bj)-maskC(i,j,k-1,bi,bj))*       &           + (maskC(i,j,k,bi,bj)-maskC(i,j,k-1,bi,bj))*
415       &             rTrans(i,j)*localTijk(i,j,k)       &             rTrans(i,j)*tracer(i,j,k,bi,bj)
416    c    &             rTrans(i,j)*localTijk(i,j,k)
417          ENDDO          ENDDO
418         ENDDO         ENDDO
419        ELSE        ELSE
420  C-    Surface "correction" term at k=1 :  C-    Surface "correction" term at k=1 :
421         DO j=1-Oly,sNy+Oly         DO j=1-Oly,sNy+Oly
422          DO i=1-Olx,sNx+Olx          DO i=1-Olx,sNx+Olx
423           af(i,j) = rTrans(i,j)*localTijk(i,j,k)           af(i,j) = rTrans(i,j)*tracer(i,j,k,bi,bj)
424    c        af(i,j) = rTrans(i,j)*localTijk(i,j,k)
425          ENDDO          ENDDO
426         ENDDO         ENDDO
427        ENDIF        ENDIF

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

  ViewVC Help
Powered by ViewVC 1.1.22