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

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

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


Revision 1.1 - (hide annotations) (download)
Wed May 30 19:34:48 2001 UTC (23 years ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint40pre1
Added "gad" package. Needs generalizing to allow selection
of advection schemes at run-time and different schemes for
each tracer.

1 adcroft 1.1 C $Header: $
2     C $Name: $
3    
4     #include "GAD_OPTIONS.h"
5    
6     SUBROUTINE GAD_C4_ADV_R(
7     I bi,bj,k,
8     I rTrans,
9     I tracer,
10     O wT,
11     I myThid )
12     IMPLICIT NONE
13    
14     C == GLobal variables ==
15     #include "SIZE.h"
16     #include "GRID.h"
17     #include "GAD.h"
18    
19     C == Routine arguments ==
20     INTEGER bi,bj,k
21     _RL rTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
22     _RL tracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
23     _RL wT (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
24     INTEGER myThid
25    
26     C == Local variables ==
27     INTEGER i,j,kp1,km1,km2
28     _RL Cr,Rjm,Rj,Rjp,Rjjm,Rjjp
29     #include "GAD_FLUX_LIMITER.h"
30    
31     km2=MAX(1,k-2)
32     km1=MAX(1,k-1)
33     kp1=MIN(Nr,k+1)
34    
35     IF ( k.GT.Nr) THEN
36     DO j=1-Oly,sNy+Oly
37     DO i=1-Olx,sNx+Olx
38     wT(i,j) = 0.
39     ENDDO
40     ENDDO
41     ELSE
42     DO j=1-Oly,sNy+Oly
43     DO i=1-Olx,sNx+Olx
44     Rjp=(tracer(i,j,kp1,bi,bj)-tracer(i,j,k,bi,bj))
45     & *maskC(i,j,kp1,bi,bj)
46     Rj=(tracer(i,j,k,bi,bj)-tracer(i,j,kM1,bi,bj))
47     & *maskC(i,j,k,bi,bj)
48     Rjm=(tracer(i,j,km1,bi,bj)-tracer(i,j,kM2,bi,bj))
49     & *maskC(i,j,km1,bi,bj)
50     Rjjp=Rjp-Rj
51     Rjjm=Rj-Rjm
52     wT(i,j) =
53     & rTrans(i,j)*(
54     & (maskC(i,j,kM1,bi,bj)*
55     & (Tracer(i,j,k,bi,bj)+Tracer(i,j,kM1,bi,bj))*0.5 _d 0
56     & +(maskC(i,j,k,bi,bj)-maskC(i,j,kM1,bi,bj))*
57     & Tracer(i,j,k,bi,bj)
58     & )
59     & -maskC(i,j,km1,bi,bj)*oneSixth*(Rjjm+Rjjp)*0.5 _d 0 )
60     ENDDO
61     ENDDO
62     ENDIF
63    
64     RETURN
65     END

  ViewVC Help
Powered by ViewVC 1.1.22