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

Annotation of /MITgcm/pkg/generic_advdiff/timestep_tracer.F

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


Revision 1.2 - (hide annotations) (download)
Thu Jul 12 00:31:59 2001 UTC (22 years, 10 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint40pre3, checkpoint40pre2, checkpoint40pre4
Changes since 1.1: +4 -3 lines
add a 3rd order advection scheme option

1 jmc 1.2 C $Header: /u/gcmpack/models/MITgcmUV/pkg/generic_advdiff/timestep_tracer.F,v 1.1 2001/05/30 19:34:48 adcroft Exp $
2 adcroft 1.1 C $Name: $
3    
4     #include "CPP_OPTIONS.h"
5    
6     SUBROUTINE TIMESTEP_TRACER(
7     I bi, bj, iMin, iMax, jMin, jMax, K, tauAB,
8     U tracer, gTracer, gTrNm1,
9     I myIter, myThid )
10     C /==========================================================\
11     C | S/R TIMESTEP_TRACER |
12     C | o Step model tracer field forward in time |
13     C \==========================================================/
14     IMPLICIT NONE
15    
16     C == Global variables ===
17     #include "SIZE.h"
18     #include "EEPARAMS.h"
19     #include "PARAMS.h"
20     #include "GAD.h"
21    
22     C == Routine Arguments ==
23     C tauAB - Adams-Bashforth timestepping weight: 0=forward ; 1/2=Adams-Bashf.
24     INTEGER bi,bj,iMin,iMax,jMin,jMax,K
25     _RL tauAB
26     _RL tracer (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
27     _RL gTracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
28     _RL gTrNm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
29     INTEGER myIter, myThid
30     C == Local variables ==
31     INTEGER i,j
32     _RL ab15,ab05
33    
34     C Adams-Bashforth timestepping weights
35     ab15 = 1.+ tauAB
36     ab05 = -tauAB
37    
38     C Step forward temperature
39 jmc 1.2 IF ( gad_advection_scheme.EQ.ENUM_CENTERED_2ND
40     & .OR.gad_advection_scheme.EQ.ENUM_UPWIND_3RD
41     & .OR.gad_advection_scheme.EQ.ENUM_CENTERED_4TH ) THEN
42 adcroft 1.1 DO j=jMin,jMax
43     DO i=iMin,iMax
44     gTrNm1(i,j,k,bi,bj)=tracer(i,j,k,bi,bj)
45     & +deltaTtracer*(
46     & ab15*gTracer(i,j,k,bi,bj)
47     & +ab05*gTrNm1(i,j,k,bi,bj) )
48     ENDDO
49     ENDDO
50     ELSEIF (gad_advection_scheme.EQ.ENUM_FLUX_LIMIT) THEN
51     DO j=jMin,jMax
52     DO i=iMin,iMax
53     gTrNm1(i,j,k,bi,bj)=tracer(i,j,k,bi,bj)
54     & +deltaTtracer*gTracer(i,j,k,bi,bj)
55     ENDDO
56     ENDDO
57     ELSE
58     STOP 'TIMESTEP_TRACER: Bad gad_advection_scheme'
59     ENDIF
60    
61     RETURN
62     END

  ViewVC Help
Powered by ViewVC 1.1.22