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

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

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

revision 1.7 by jmc, Fri Oct 19 14:41:39 2007 UTC revision 1.8 by jmc, Mon Nov 7 20:20:31 2011 UTC
# Line 9  C     !INTERFACE: Line 9  C     !INTERFACE:
9        SUBROUTINE ADAMS_BASHFORTH2(        SUBROUTINE ADAMS_BASHFORTH2(
10       I                     bi, bj, k,       I                     bi, bj, k,
11       U                     gTracer, gTrNm1,       U                     gTracer, gTrNm1,
12         O                     AB_gTr,
13       I                     startAB, myIter, myThid )       I                     startAB, myIter, myThid )
14  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
15  C     *==========================================================*  C     *==========================================================*
# Line 28  C     == Global variables === Line 29  C     == Global variables ===
29  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
30  C     == Routine Arguments ==  C     == Routine Arguments ==
31  C     bi,bj,k :: Tile and level indices  C     bi,bj,k :: Tile and level indices
32  C     gTracer :: Tendency at current time  ( generally units of quantity/sec )  C     gTracer ::  in: Tendency at current time  ( generally units of quantity/sec )
33  C     gTrNm1  :: Tendency at previous time ( generally units of quantity/sec )  C             :: out: Extrapolated Tendency at current time ( same units )
34    C     gTrNm1  ::  in: Tendency at previous time             ( same units )
35    C             :: out: Save tendency at current time         ( same units )
36    C     AB_gTr  :: Adams-Bashforth tendency increment
37  C     startAB :: number of previous time level available to start/restart AB  C     startAB :: number of previous time level available to start/restart AB
38  C     myIter  :: Current time step number  C     myIter  :: Current time step number
39  C     myThid  :: Thread number of this thread  C     myThid  :: my Thread Id. number
40        INTEGER bi,bj,k        INTEGER bi,bj,k
41        _RL  gTracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)        _RL  gTracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
42        _RL  gTrNm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)        _RL  gTrNm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
43          _RL  AB_gTr (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
44        INTEGER startAB        INTEGER startAB
45        INTEGER myIter, myThid        INTEGER myIter, myThid
46    
47  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
48  C     == Local variables ==  C     == Local variables ==
49  C     i,j        :: Loop counters  C     i,j        :: Loop counters
50  C     ab15, ab05 :: Adams bashforth extrapolation weights.  C     abFac      :: Adams bashforth extrapolation factor
51        INTEGER i,j        INTEGER i,j
52        _RL ab15,ab05        _RL abFac
       _RL gTrtmp  
53  CEOP  CEOP
54    
55  C     Adams-Bashforth timestepping weights  C     Adams-Bashforth extrapolation factor
56        IF ( myIter.EQ.nIter0 .AND. startAB.EQ.0 ) THEN        IF ( myIter.EQ.nIter0 .AND. startAB.EQ.0 ) THEN
57         ab15 = 1. _d 0         abFac = 0. _d 0
        ab05 = 0. _d 0  
58        ELSE        ELSE
59         ab15 = 1.5 _d 0 + abEps         abFac = 0.5 _d 0 + abEps
        ab05 = -( 0.5 _d 0 + abEps )  
60        ENDIF        ENDIF
61    
62  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
# Line 62  C---+----1----+----2----+----3----+----4 Line 64  C---+----1----+----2----+----3----+----4
64  C-    Compute effective G-term with Adams-Bashforth weights:  C-    Compute effective G-term with Adams-Bashforth weights:
65        DO j=1-Oly,sNy+Oly        DO j=1-Oly,sNy+Oly
66         DO i=1-Olx,sNx+Olx         DO i=1-Olx,sNx+Olx
67          gTrtmp = ab15*gTracer(i,j,k,bi,bj)          AB_gTr(i,j) = abFac
68       &         + ab05*gTrNm1(i,j,k,bi,bj)       &              *( gTracer(i,j,k,bi,bj)- gTrNm1(i,j,k,bi,bj) )
69          gTrNm1(i,j,k,bi,bj) = gTracer(i,j,k,bi,bj)          gTrNm1(i,j,k,bi,bj) = gTracer(i,j,k,bi,bj)
70          gTracer(i,j,k,bi,bj) = gTrtmp          gTracer(i,j,k,bi,bj) = gTracer(i,j,k,bi,bj) + AB_gTr(i,j)
71         ENDDO         ENDDO
72        ENDDO        ENDDO
73    

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

  ViewVC Help
Powered by ViewVC 1.1.22