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

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

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

revision 1.4 by adcroft, Wed Aug 15 18:40:57 2001 UTC revision 1.5 by jmc, Mon Aug 27 18:48:57 2001 UTC
# Line 20  C     == Global variables === Line 20  C     == Global variables ===
20  #include "EEPARAMS.h"  #include "EEPARAMS.h"
21  #include "PARAMS.h"  #include "PARAMS.h"
22  #include "GAD.h"  #include "GAD.h"
23    #include "GRID.h"
24    #include "SURFACE.h"
25    
26  C     == Routine Arguments ==  C     == Routine Arguments ==
27        INTEGER bi,bj,iMin,iMax,jMin,jMax,K        INTEGER bi,bj,iMin,iMax,jMin,jMax,K
# Line 31  C     == Routine Arguments == Line 33  C     == Routine Arguments ==
33  C     == Local variables ==  C     == Local variables ==
34        INTEGER i,j        INTEGER i,j
35        _RL ab15,ab05        _RL ab15,ab05
36          _RL gTrtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
37    
38  C     Adams-Bashforth timestepping weights  C     Adams-Bashforth timestepping weights
39        IF (myIter .EQ. 0) THEN        IF (myIter .EQ. 0) THEN
# Line 41  C     Adams-Bashforth timestepping weigh Line 44  C     Adams-Bashforth timestepping weigh
44         ab05=-(0.5+abEps)         ab05=-(0.5+abEps)
45        ENDIF        ENDIF
46    
47  C     Step forward temperature  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
48    C     Compute effective G-term:
49        IF ( advection_scheme.EQ.ENUM_CENTERED_2ND        IF ( advection_scheme.EQ.ENUM_CENTERED_2ND
50       & .OR.advection_scheme.EQ.ENUM_UPWIND_3RD       & .OR.advection_scheme.EQ.ENUM_UPWIND_3RD
51       & .OR.advection_scheme.EQ.ENUM_CENTERED_4TH ) THEN       & .OR.advection_scheme.EQ.ENUM_CENTERED_4TH ) THEN
52    
53    C-    with Adams-Bashforth weights:
54         DO j=jMin,jMax         DO j=jMin,jMax
55          DO i=iMin,iMax          DO i=iMin,iMax
56            gTrNm1(i,j,k,bi,bj)=tracer(i,j,k,bi,bj)           gTrtmp(i,j) = ab15*gTracer(i,j,k,bi,bj)
57       &             +deltaTtracer*(       &               + ab05*gTrNm1(i,j,k,bi,bj)
      &                              ab15*gTracer(i,j,k,bi,bj)  
      &                             +ab05*gTrNm1(i,j,k,bi,bj)  )  
58          ENDDO          ENDDO
59         ENDDO         ENDDO
60    
61        ELSEIF (advection_scheme.EQ.ENUM_FLUX_LIMIT) THEN        ELSEIF (advection_scheme.EQ.ENUM_FLUX_LIMIT) THEN
62    
63    C-    with no Adams-Bashforth weights:
64         DO j=jMin,jMax         DO j=jMin,jMax
65          DO i=iMin,iMax          DO i=iMin,iMax
66            gTrNm1(i,j,k,bi,bj)=tracer(i,j,k,bi,bj)           gTrtmp(i,j) = gTracer(i,j,k,bi,bj)
      &             +deltaTtracer*gTracer(i,j,k,bi,bj)  
67          ENDDO          ENDDO
68         ENDDO         ENDDO
69    
70        ELSE        ELSE
71         STOP 'TIMESTEP_TRACER: Bad advection_scheme'         STOP 'TIMESTEP_TRACER: Bad advection_scheme'
72        ENDIF        ENDIF
73    
74    #ifdef NONLIN_FRSURF
75          IF (nonlinFreeSurf.GT.0) THEN
76           DO j=jMin,jMax
77            DO i=iMin,iMax
78             IF (k.EQ.ksurfC(i,j,bi,bj)) THEN
79              gTrtmp(i,j) = gTrtmp(i,j)
80         &          *hFacC(i,j,k,bi,bj)/hFac_surfC(i,j,bi,bj)
81             ENDIF
82            ENDDO
83           ENDDO
84          ENDIF
85    #endif /* NONLIN_FRSURF */
86    
87    C-    Step forward tracer
88          DO j=jMin,jMax
89           DO i=iMin,iMax
90             gTrNm1(i,j,k,bi,bj)=tracer(i,j,k,bi,bj)
91         &            +deltaTtracer*gTrtmp(i,j)
92           ENDDO
93          ENDDO
94    
95        RETURN        RETURN
96        END        END

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

  ViewVC Help
Powered by ViewVC 1.1.22