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

Annotation of /MITgcm/pkg/generic_advdiff/gad_fluxlimit_adv_x.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_FLUXLIMIT_ADV_X(
7     I bi,bj,k,deltaT,
8     I uTrans, uVel,
9     I tracer,
10     O uT,
11     I myThid )
12     IMPLICIT NONE
13    
14     C == GLobal variables ==
15     #include "SIZE.h"
16     #include "GRID.h"
17    
18     C == Routine arguments ==
19     INTEGER bi,bj,k
20     _RL deltaT
21     _RL uTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
22     _RL uVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
23     _RL tracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
24     _RL uT (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
25     INTEGER myThid
26    
27     C == Local variables ==
28     INTEGER i,j
29     _RL Cr,Rjm,Rj,Rjp
30     #include "GAD_FLUX_LIMITER.h"
31    
32     DO j=1-Oly,sNy+Oly
33     uT(1-Olx,j)=0.
34     DO i=1-Olx+1,sNx+Olx
35     Rjp=(tracer(i+1,j)-tracer(i,j))*maskW(i+1,j,k,bi,bj)
36     Rj=(tracer(i,j)-tracer(i-1,j))*maskW(i,j,k,bi,bj)
37     Rjm=(tracer(i-1,j)-tracer(i-2,j))*maskW(i-1,j,k,bi,bj)
38     IF (Rj.NE.0.) THEN
39     IF (uTrans(i,j).GT.0) THEN
40     Cr=Rjm/Rj
41     ELSE
42     Cr=Rjp/Rj
43     ENDIF
44     ELSE
45     IF (uTrans(i,j).GT.0) THEN
46     Cr=Rjm*1.E20
47     ELSE
48     Cr=Rjp*1.E20
49     ENDIF
50     ENDIF
51     Cr=Limiter(Cr)
52     uT(i,j) =
53     & uTrans(i,j)*(Tracer(i,j)+Tracer(i-1,j))*0.5 _d 0
54     & -0.5*(
55     & (1-Cr)*ABS(uTrans(i,j))
56     & +uTrans(i,j)*uVel(i,j,k,bi,bj)*deltaT
57     & *recip_dxC(i,j,bi,bj)*Cr
58     & )*Rj
59     ENDDO
60     ENDDO
61    
62     RETURN
63     END

  ViewVC Help
Powered by ViewVC 1.1.22