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

Annotation of /MITgcm/pkg/generic_advdiff/gad_fluxlimit_adv_y.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 (22 years, 11 months 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_Y(
7     I bi,bj,k,deltaT,
8     I vTrans, vVel,
9     I tracer,
10     O vT,
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 vTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
22     _RL vVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
23     _RL tracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy)
24     _RL vT (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 i=1-Olx,sNx+Olx
33     vT(i,1-Oly)=0.
34     ENDDO
35     DO j=1-Oly+1,sNy+Oly
36     DO i=1-Olx,sNx+Olx
37     Rjp=(tracer(i,j+1)-tracer(i,j))*maskS(i,j+1,k,bi,bj)
38     Rj=(tracer(i,j)-tracer(i,j-1))*maskS(i,j,k,bi,bj)
39     Rjm=(tracer(i,j-1)-tracer(i,j-2))*maskS(i,j-1,k,bi,bj)
40     IF (Rj.NE.0.) THEN
41     IF (vTrans(i,j).GT.0) THEN
42     Cr=Rjm/Rj
43     ELSE
44     Cr=Rjp/Rj
45     ENDIF
46     ELSE
47     IF (vTrans(i,j).GT.0) THEN
48     Cr=Rjm*1.E20
49     ELSE
50     Cr=Rjp*1.E20
51     ENDIF
52     ENDIF
53     Cr=Limiter(Cr)
54     vT(i,j) =
55     & vTrans(i,j)*(Tracer(i,j)+Tracer(i,j-1))*0.5 _d 0
56     & -0.5*(
57     & (1-Cr)*ABS(vTrans(i,j))
58     & +vTrans(i,j)*vVel(i,j,k,bi,bj)*deltaT
59     & *recip_dyC(i,j,bi,bj)*Cr
60     & )*Rj
61     ENDDO
62     ENDDO
63    
64     RETURN
65     END

  ViewVC Help
Powered by ViewVC 1.1.22