/[MITgcm]/MITgcm/model/src/impldiff.F
ViewVC logotype

Diff of /MITgcm/model/src/impldiff.F

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

revision 1.2 by cnh, Tue Jun 9 16:48:02 1998 UTC revision 1.3 by adcroft, Wed Jun 10 16:05:39 1998 UTC
# Line 7  C     | S/R IMPLDIFF Line 7  C     | S/R IMPLDIFF
7  C     | o Step model fields forward in time                      |  C     | o Step model fields forward in time                      |
8  C     \==========================================================/  C     \==========================================================/
9        SUBROUTINE IMPLDIFF( bi, bj, iMin, iMax, jMin, jMax,        SUBROUTINE IMPLDIFF( bi, bj, iMin, iMax, jMin, jMax,
10       I                     KappaZT,       I                     KappaZT,KappaZS,
11       I                     myThid )       I                     myThid )
12        implicit none        implicit none
13  ! Common  ! Common
# Line 19  C     \================================= Line 19  C     \=================================
19  C     == Routine Arguments ==  C     == Routine Arguments ==
20        INTEGER bi,bj,iMin,iMax,jMin,jMax        INTEGER bi,bj,iMin,iMax,jMin,jMax
21        _RL KappaZT(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nz)        _RL KappaZT(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nz)
22          _RL KappaZS(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nz)
23        INTEGER myThid        INTEGER myThid
24  C     == Local variables ==  C     == Local variables ==
25        INTEGER i,j,k        INTEGER i,j,k
# Line 29  C     == Local variables == Line 30  C     == Local variables ==
30        _RL bet(1-Olx:sNx+Olx,1-Oly:sNy+Oly)        _RL bet(1-Olx:sNx+Olx,1-Oly:sNy+Oly)
31        _RL gam(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nz)        _RL gam(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nz)
32    
33    C ***************************************************************
34    C *****************                              ****************
35    C *****************           N O T E            ****************
36    C *****************                              ****************
37    C ***************************************************************
38    C
39    C The implicit diffusion of SALT currently uses the diffusivity
40    C of the THETA.
41    C                  ie. KappaZS is ignored.
42    C
43    C This is only a temporary situation. We appreciate your
44    C patience and understanding.
45    C
46    C                              Signed,  The Management.
47    C
48    C ***************************************************************
49    C ***************************************************************
50    
51        IF (Nz.GT.1) THEN         ! Only need do anything if Nz>1        IF (Nz.GT.1) THEN         ! Only need do anything if Nz>1
52  C Beginning of forward sweep (top level)  C Beginning of forward sweep (top level)
53         DO j=jMin,jMax         DO j=jMin,jMax
# Line 39  C Beginning of forward sweep (top level) Line 58  C Beginning of forward sweep (top level)
58           bet(i,j)=0.           bet(i,j)=0.
59           IF (b(i,j).NE.0.) bet(i,j)=1. / b(i,j)           IF (b(i,j).NE.0.) bet(i,j)=1. / b(i,j)
60           theta(i,j,1,bi,bj)=theta(i,j,1,bi,bj)*bet(i,j)           theta(i,j,1,bi,bj)=theta(i,j,1,bi,bj)*bet(i,j)
61             salt(i,j,1,bi,bj)=salt(i,j,1,bi,bj)*bet(i,j)
62          ENDDO          ENDDO
63         ENDDO         ENDDO
64        ENDIF        ENDIF
# Line 62  C Middle of forward sweep Line 82  C Middle of forward sweep
82            IF (bet(i,j).NE.0.) bet(i,j)=1. / bet(i,j)            IF (bet(i,j).NE.0.) bet(i,j)=1. / bet(i,j)
83            theta(i,j,k,bi,bj)=(theta(i,j,k,bi,bj)            theta(i,j,k,bi,bj)=(theta(i,j,k,bi,bj)
84       &       -a(i,j)*theta(i,j,k-1,bi,bj))*bet(i,j)       &       -a(i,j)*theta(i,j,k-1,bi,bj))*bet(i,j)
85              salt(i,j,k,bi,bj)=(salt(i,j,k,bi,bj)
86         &       -a(i,j)*salt(i,j,k-1,bi,bj))*bet(i,j)
87           ENDDO           ENDDO
88          ENDDO          ENDDO
89         ENDDO         ENDDO
# Line 83  C End of forward sweep (bottom level) Line 105  C End of forward sweep (bottom level)
105           IF (bet(i,j).NE.0.) bet(i,j)=1. / bet(i,j)           IF (bet(i,j).NE.0.) bet(i,j)=1. / bet(i,j)
106           theta(i,j,Nz,bi,bj)=(theta(i,j,Nz,bi,bj)           theta(i,j,Nz,bi,bj)=(theta(i,j,Nz,bi,bj)
107       &      -a(i,j)*theta(i,j,Nz-1,bi,bj))*bet(i,j)       &      -a(i,j)*theta(i,j,Nz-1,bi,bj))*bet(i,j)
108             salt(i,j,Nz,bi,bj)=(salt(i,j,Nz,bi,bj)
109         &      -a(i,j)*salt(i,j,Nz-1,bi,bj))*bet(i,j)
110          ENDDO          ENDDO
111         ENDDO         ENDDO
112  C Backward sweep  C Backward sweep
# Line 91  C Backward sweep Line 115  C Backward sweep
115           DO i=iMin,iMax           DO i=iMin,iMax
116            theta(i,j,k,bi,bj)=theta(i,j,k,bi,bj)            theta(i,j,k,bi,bj)=theta(i,j,k,bi,bj)
117       &              -gam(i,j,k+1)*theta(i,j,k+1,bi,bj)       &              -gam(i,j,k+1)*theta(i,j,k+1,bi,bj)
118              salt(i,j,k,bi,bj)=salt(i,j,k,bi,bj)
119         &              -gam(i,j,k+1)*salt(i,j,k+1,bi,bj)
120           ENDDO           ENDDO
121          ENDDO          ENDDO
122         ENDDO         ENDDO

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22