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

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

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


Revision 1.9 - (hide annotations) (download)
Tue Feb 19 13:42:19 2013 UTC (11 years, 3 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint65b, checkpoint65a, checkpoint65, checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64e, checkpoint64g, checkpoint64f
Changes since 1.8: +8 -7 lines
Add 3-D array 3rd dimension to argument list of S/R adams_bashforth2/3

1 jmc 1.9 C $Header: /u/gcmpack/MITgcm/model/src/adams_bashforth2.F,v 1.8 2011/11/07 20:20:31 jmc Exp $
2 cnh 1.2 C $Name: $
3 adcroft 1.1
4     #include "CPP_OPTIONS.h"
5    
6 cnh 1.2 CBOP
7     C !ROUTINE: ADAMS_BASHFORTH2
8     C !INTERFACE:
9 adcroft 1.1 SUBROUTINE ADAMS_BASHFORTH2(
10 jmc 1.9 I bi, bj, k, kSize,
11 adcroft 1.1 U gTracer, gTrNm1,
12 jmc 1.8 O AB_gTr,
13 jmc 1.7 I startAB, myIter, myThid )
14 cnh 1.2 C !DESCRIPTION: \bv
15     C *==========================================================*
16 jmc 1.7 C | S/R ADAMS_BASHFORTH2
17     C | o Extrapolate tendencies forward in time using
18     C | quasi-second order Adams-Bashforth method.
19 cnh 1.2 C *==========================================================*
20     C \ev
21    
22     C !USES:
23 adcroft 1.1 IMPLICIT NONE
24     C == Global variables ===
25     #include "SIZE.h"
26     #include "EEPARAMS.h"
27     #include "PARAMS.h"
28    
29 cnh 1.2 C !INPUT/OUTPUT PARAMETERS:
30 adcroft 1.1 C == Routine Arguments ==
31 jmc 1.6 C bi,bj,k :: Tile and level indices
32 jmc 1.9 C kSize :: 3rd dimension of tracer and tendency arrays
33 jmc 1.8 C gTracer :: in: Tendency at current time ( generally units of quantity/sec )
34     C :: out: Extrapolated Tendency at current time ( same units )
35     C gTrNm1 :: in: Tendency at previous time ( same units )
36     C :: out: Save tendency at current time ( same units )
37     C AB_gTr :: Adams-Bashforth tendency increment
38 jmc 1.7 C startAB :: number of previous time level available to start/restart AB
39 cnh 1.2 C myIter :: Current time step number
40 jmc 1.8 C myThid :: my Thread Id. number
41 jmc 1.9 INTEGER bi, bj, k, kSize
42     _RL gTracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize,nSx,nSy)
43     _RL gTrNm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize,nSx,nSy)
44 jmc 1.8 _RL AB_gTr (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
45 jmc 1.7 INTEGER startAB
46 adcroft 1.1 INTEGER myIter, myThid
47 cnh 1.2
48     C !LOCAL VARIABLES:
49 adcroft 1.1 C == Local variables ==
50 cnh 1.2 C i,j :: Loop counters
51 jmc 1.8 C abFac :: Adams bashforth extrapolation factor
52 adcroft 1.1 INTEGER i,j
53 jmc 1.8 _RL abFac
54 cnh 1.2 CEOP
55 adcroft 1.1
56 jmc 1.8 C Adams-Bashforth extrapolation factor
57 jmc 1.7 IF ( myIter.EQ.nIter0 .AND. startAB.EQ.0 ) THEN
58 jmc 1.8 abFac = 0. _d 0
59 adcroft 1.1 ELSE
60 jmc 1.8 abFac = 0.5 _d 0 + abEps
61 adcroft 1.1 ENDIF
62    
63 jmc 1.7 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
64 adcroft 1.1
65     C- Compute effective G-term with Adams-Bashforth weights:
66 jmc 1.9 DO j=1-OLy,sNy+OLy
67     DO i=1-OLx,sNx+OLx
68 jmc 1.8 AB_gTr(i,j) = abFac
69     & *( gTracer(i,j,k,bi,bj)- gTrNm1(i,j,k,bi,bj) )
70 adcroft 1.1 gTrNm1(i,j,k,bi,bj) = gTracer(i,j,k,bi,bj)
71 jmc 1.8 gTracer(i,j,k,bi,bj) = gTracer(i,j,k,bi,bj) + AB_gTr(i,j)
72 adcroft 1.1 ENDDO
73     ENDDO
74    
75     RETURN
76     END

  ViewVC Help
Powered by ViewVC 1.1.22