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

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

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

revision 1.8 by heimbach, Wed Jun 7 01:55:14 2006 UTC revision 1.9 by jmc, Thu Dec 1 14:14:44 2011 UTC
# Line 6  C $Name$ Line 6  C $Name$
6  CBOP  CBOP
7  C     !ROUTINE: GAD_FLUXLIMIT_IMPL_R  C     !ROUTINE: GAD_FLUXLIMIT_IMPL_R
8  C     !INTERFACE:  C     !INTERFACE:
9        SUBROUTINE GAD_FLUXLIMIT_IMPL_R(        SUBROUTINE GAD_FLUXLIMIT_IMPL_R(
10       I           bi,bj,k, iMin,iMax,jMin,jMax,       I           bi,bj,k, iMin,iMax,jMin,jMax,
11       I           deltaTarg, rTrans, tFld,       I           deltaTarg, rTrans, recip_hFac, tFld,
12       O           a3d, b3d, c3d,       O           a3d, b3d, c3d,
13       I           myThid )       I           myThid )
14    
# Line 16  C     !DESCRIPTION: Line 16  C     !DESCRIPTION:
16  C     Compute matrix element to solve vertical advection implicitly  C     Compute matrix element to solve vertical advection implicitly
17  C      using flux--limiter advection scheme.  C      using flux--limiter advection scheme.
18  C     Method:  C     Method:
19  C      contribution of vertical transport at interface k is added  C      contribution of vertical transport at interface k is added
20  C      to matrix lines k and k-1.  C      to matrix lines k and k-1.
21    
22  C     !USES:  C     !USES:
# Line 36  C     iMin,iMax    :: computation domain Line 36  C     iMin,iMax    :: computation domain
36  C     jMin,jMax    :: computation domain  C     jMin,jMax    :: computation domain
37  C     deltaTarg    :: time step  C     deltaTarg    :: time step
38  C     rTrans       :: vertical volume transport  C     rTrans       :: vertical volume transport
39    C     recip_hFac   :: inverse of cell open-depth factor
40  C     tFld         :: tracer field  C     tFld         :: tracer field
41  C     a3d          :: lower diagonal of the tridiagonal matrix  C     a3d          :: lower diagonal of the tridiagonal matrix
42  C     b3d          :: main  diagonal of the tridiagonal matrix  C     b3d          :: main  diagonal of the tridiagonal matrix
43  C     c3d          :: upper diagonal of the tridiagonal matrix  C     c3d          :: upper diagonal of the tridiagonal matrix
44  C     myThid       :: thread number  C     myThid       :: thread number
45        INTEGER bi,bj,k        INTEGER bi,bj,k
46        INTEGER iMin,iMax,jMin,jMax        INTEGER iMin,iMax,jMin,jMax
47        _RL deltaTarg(Nr)        _RL     deltaTarg(Nr)
48        _RL rTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)        _RL     rTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
49        _RL tFld  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RS recip_hFac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
50        _RL a3d   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL     tFld  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
51        _RL b3d   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL     a3d   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
52        _RL c3d   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)        _RL     b3d   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
53          _RL     c3d   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
54        INTEGER myThid        INTEGER myThid
55    
56  C     == Local Variables ==  C     == Local Variables ==
# Line 110  C--    Add centered & upwind contributio Line 112  C--    Add centered & upwind contributio
112             rUpwind = ABS(rCenter)*upwindFac(i,j)             rUpwind = ABS(rCenter)*upwindFac(i,j)
113             a3d(i,j,k)   = a3d(i,j,k)             a3d(i,j,k)   = a3d(i,j,k)
114       &                  - (rCenter+rUpwind)*deltaTarg(k)       &                  - (rCenter+rUpwind)*deltaTarg(k)
115       &                   *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k)       &                   *recip_hFac(i,j,k)*recip_drF(k)
116             b3d(i,j,k)   = b3d(i,j,k)             b3d(i,j,k)   = b3d(i,j,k)
117       &                  - (rCenter-rUpwind)*deltaTarg(k)       &                  - (rCenter-rUpwind)*deltaTarg(k)
118       &                    *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k)       &                   *recip_hFac(i,j,k)*recip_drF(k)
119             b3d(i,j,k-1) = b3d(i,j,k-1)             b3d(i,j,k-1) = b3d(i,j,k-1)
120       &                  + (rCenter+rUpwind)*deltaTarg(k-1)       &                  + (rCenter+rUpwind)*deltaTarg(k-1)
121       &                    *_recip_hFacC(i,j,k-1,bi,bj)*recip_drF(k-1)       &                   *recip_hFac(i,j,k-1)*recip_drF(k-1)
122             c3d(i,j,k-1) = c3d(i,j,k-1)             c3d(i,j,k-1) = c3d(i,j,k-1)
123       &                  + (rCenter-rUpwind)*deltaTarg(k-1)       &                  + (rCenter-rUpwind)*deltaTarg(k-1)
124       &                    *_recip_hFacC(i,j,k-1,bi,bj)*recip_drF(k-1)       &                   *recip_hFac(i,j,k-1)*recip_drF(k-1)
125           ENDDO           ENDDO
126         ENDDO         ENDDO
127    

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22