58 |
C uLoc :: velocity [m/s], zonal component |
C uLoc :: velocity [m/s], zonal component |
59 |
INTEGER i,j |
INTEGER i,j |
60 |
_RL Cr,Rjm,Rj,Rjp |
_RL Cr,Rjm,Rj,Rjp |
61 |
_RL uLoc |
_RL uLoc, uCFL |
62 |
C Statement function provides Limiter(Cr) |
C Statement function provides Limiter(Cr) |
63 |
#include "GAD_FLUX_LIMITER.h" |
#include "GAD_FLUX_LIMITER.h" |
64 |
CEOP |
CEOP |
70 |
DO i=1-Olx+2,sNx+Olx-1 |
DO i=1-Olx+2,sNx+Olx-1 |
71 |
|
|
72 |
uLoc = uFld(i,j) |
uLoc = uFld(i,j) |
73 |
c uLoc = uTrans(i,j)*recip_dyG(i,j,bi,bj) |
uCFL = ABS( uLoc*deltaTloc |
74 |
c & *recip_drF(k)*_recip_hFacW(i,j,k,bi,bj) |
& *recip_dxC(i,j,bi,bj)*recip_deepFacC(k) ) |
75 |
Rjp=(tracer(i+1,j)-tracer( i ,j))*maskLocW(i+1,j) |
Rjp=(tracer(i+1,j)-tracer( i ,j))*maskLocW(i+1,j) |
76 |
Rj =(tracer( i ,j)-tracer(i-1,j))*maskLocW( i ,j) |
Rj =(tracer( i ,j)-tracer(i-1,j))*maskLocW( i ,j) |
77 |
Rjm=(tracer(i-1,j)-tracer(i-2,j))*maskLocW(i-1,j) |
Rjm=(tracer(i-1,j)-tracer(i-2,j))*maskLocW(i-1,j) |
92 |
Cr=Limiter(Cr) |
Cr=Limiter(Cr) |
93 |
uT(i,j) = |
uT(i,j) = |
94 |
& uTrans(i,j)*(Tracer(i,j)+Tracer(i-1,j))*0.5 _d 0 |
& uTrans(i,j)*(Tracer(i,j)+Tracer(i-1,j))*0.5 _d 0 |
95 |
& -0.5*( |
& -ABS(uTrans(i,j))*((1.-Cr)+uCFL*Cr) |
96 |
& (1-Cr)*ABS(uTrans(i,j)) |
& *Rj*0.5 _d 0 |
|
& +uTrans(i,j)*uLoc*deltaTloc |
|
|
& *recip_dxC(i,j,bi,bj)*Cr |
|
|
& )*Rj |
|
97 |
ENDDO |
ENDDO |
98 |
ENDDO |
ENDDO |
99 |
|
|