/[MITgcm]/MITgcm/pkg/mom_common/mom_v_implicit_r.F
ViewVC logotype

Diff of /MITgcm/pkg/mom_common/mom_v_implicit_r.F

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

revision 1.4 by heimbach, Wed Jun 7 01:55:15 2006 UTC revision 1.5 by jmc, Thu Aug 14 16:44:40 2014 UTC
# Line 29  C     == Global data == Line 29  C     == Global data ==
29    
30  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
31  C     == Routine Arguments ==  C     == Routine Arguments ==
32        _RL kappaRV(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL kappaRV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
33        INTEGER bi, bj        INTEGER bi, bj
34        _RL myTime        _RL myTime
35        INTEGER myIter, myThid        INTEGER myIter, myThid
# Line 39  C     == Local variables == Line 39  C     == Local variables ==
39        INTEGER iMin,iMax,jMin,jMax        INTEGER iMin,iMax,jMin,jMax
40        INTEGER i,j,k        INTEGER i,j,k
41        INTEGER diagonalNumber, errCode        INTEGER diagonalNumber, errCode
42  c     _RL a5d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)  c     _RL a5d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
43        _RL b5d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL b5d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
44        _RL c5d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL c5d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
45        _RL d5d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)        _RL d5d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
46  c     _RL e5d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr)  c     _RL e5d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
47        _RL rTrans(1-Olx:sNx+Olx,1-Oly:sNy+Oly)        _RL rTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
48        _RL rCenter, rUpwind, upwindFac        _RL rCenter, rUpwind, upwindFac
49  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
50        CHARACTER*8 diagName        CHARACTER*8 diagName
51        LOGICAL     DIAGNOSTICS_IS_ON        LOGICAL     DIAGNOSTICS_IS_ON
52        EXTERNAL    DIAGNOSTICS_IS_ON        EXTERNAL    DIAGNOSTICS_IS_ON
53        _RL vf (1-Olx:sNx+Olx,1-Oly:sNy+Oly)        _RL vf (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
54  #endif  #endif
55  CEOP  CEOP
56    
# Line 64  C--   Initialise Line 64  C--   Initialise
64        iMax = sNx        iMax = sNx
65        jMax = sNy+1        jMax = sNy+1
66        DO k=1,Nr        DO k=1,Nr
67         DO j=1-Oly,sNy+Oly         DO j=1-OLy,sNy+OLy
68          DO i=1-Olx,sNx+Olx          DO i=1-OLx,sNx+OLx
69  c        a5d(i,j,k) = 0. _d 0  c        a5d(i,j,k) = 0. _d 0
70           b5d(i,j,k) = 0. _d 0           b5d(i,j,k) = 0. _d 0
71           c5d(i,j,k) = 1. _d 0           c5d(i,j,k) = 1. _d 0
# Line 85  C-     1rst lower diagonal : Line 85  C-     1rst lower diagonal :
85          DO j=jMin,jMax          DO j=jMin,jMax
86           DO i=iMin,iMax           DO i=iMin,iMax
87            IF (maskS(i,j,k-1,bi,bj).EQ.1.)            IF (maskS(i,j,k-1,bi,bj).EQ.1.)
88       &     b5d(i,j,k) = -deltaTmom       &     b5d(i,j,k) = -deltaTMom
89       &                  *_recip_hFacS(i,j,k,bi,bj)*recip_drF(k)       &                  *_recip_hFacS(i,j,k,bi,bj)*recip_drF(k)
90       &                  *kappaRV(i,j, k )*recip_drC( k )       &                  *kappaRV(i,j, k )*recip_drC( k )
91           ENDDO           ENDDO
# Line 96  C-     1rst upper diagonal : Line 96  C-     1rst upper diagonal :
96          DO j=jMin,jMax          DO j=jMin,jMax
97           DO i=iMin,iMax           DO i=iMin,iMax
98            IF (maskS(i,j,k+1,bi,bj).EQ.1.)            IF (maskS(i,j,k+1,bi,bj).EQ.1.)
99       &     d5d(i,j,k) = -deltaTmom       &     d5d(i,j,k) = -deltaTMom
100       &                 *_recip_hFacS(i,j,k,bi,bj)*recip_drF(k)       &                 *_recip_hFacS(i,j,k,bi,bj)*recip_drF(k)
101       &                 *KappaRV(i,j,k+1)*recip_drC(k+1)       &                 *KappaRV(i,j,k+1)*recip_drC(k+1)
102           ENDDO           ENDDO
# Line 139  C-          space Centered/Upwind advect Line 139  C-          space Centered/Upwind advect
139              ENDIF              ENDIF
140              DO j=jMin,jMax              DO j=jMin,jMax
141               DO i=iMin,iMax               DO i=iMin,iMax
142                rCenter = 0.5 _d 0 *deltaTmom*rTrans(i,j)                rCenter = 0.5 _d 0 *deltaTMom*rTrans(i,j)
143       &                           *recip_rAs(i,j,bi,bj)*rkSign       &                           *recip_rAs(i,j,bi,bj)*rkSign
144                rUpwind = ABS(rCenter)*upwindFac                rUpwind = ABS(rCenter)*upwindFac
145                b5d(i,j,k) = b5d(i,j,k)                b5d(i,j,k) = b5d(i,j,k)
# Line 160  C-          space Centered/Upwind advect Line 160  C-          space Centered/Upwind advect
160  C-          space Centered advection scheme, Flux form:  C-          space Centered advection scheme, Flux form:
161              DO j=jMin,jMax              DO j=jMin,jMax
162               DO i=iMin,iMax               DO i=iMin,iMax
163                rCenter = 0.5 _d 0 *deltaTmom*rTrans(i,j)                rCenter = 0.5 _d 0 *deltaTMom*rTrans(i,j)
164       &                           *recip_rAs(i,j,bi,bj)*rkSign       &                           *recip_rAs(i,j,bi,bj)*rkSign
165                b5d(i,j,k) = b5d(i,j,k)                b5d(i,j,k) = b5d(i,j,k)
166       &            - rCenter*_recip_hFacS(i,j,k,bi,bj)*recip_drF(k)       &            - rCenter*_recip_hFacS(i,j,k,bi,bj)*recip_drF(k)
# Line 185  C--   end if momImplVertAdv Line 185  C--   end if momImplVertAdv
185  C--   Solve tri-diagonal system :  C--   Solve tri-diagonal system :
186          CALL SOLVE_TRIDIAGONAL( iMin,iMax, jMin,jMax,          CALL SOLVE_TRIDIAGONAL( iMin,iMax, jMin,jMax,
187       I                          b5d, c5d, d5d,       I                          b5d, c5d, d5d,
188       U                          gV,       U                          gV(1-OLx,1-OLy,1,bi,bj),
189       O                          errCode,       O                          errCode,
190       I                          bi, bj, myThid )       I                          bi, bj, myThid )
191          IF (errCode.GE.1) THEN          IF (errCode.GE.1) THEN

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22