13 |
C | SUBROUTINE GAD_C4_ADV_X | |
C | SUBROUTINE GAD_C4_ADV_X | |
14 |
C | o Compute Zonal advective Flux of Tracer using | |
C | o Compute Zonal advective Flux of Tracer using | |
15 |
C | 4th Order Centered Scheme | |
C | 4th Order Centered Scheme | |
16 |
|
C | o reduced to 2nd or 3rd Order near a boundary | |
17 |
C |==========================================================| |
C |==========================================================| |
18 |
IMPLICIT NONE |
IMPLICIT NONE |
19 |
|
|
38 |
uT(2-Olx,j)=0. |
uT(2-Olx,j)=0. |
39 |
uT(sNx+Olx,j)=0. |
uT(sNx+Olx,j)=0. |
40 |
DO i=1-Olx+2,sNx+Olx-1 |
DO i=1-Olx+2,sNx+Olx-1 |
41 |
Rjp=(tracer(i+1,j)-tracer(i,j))*maskW(i+1,j,k,bi,bj) |
Rjp=(tracer(i+1,j)-tracer(i,j)) |
42 |
Rj=(tracer(i,j)-tracer(i-1,j))*maskW(i,j,k,bi,bj) |
c & *maskW(i+1,j,k,bi,bj) |
43 |
Rjm=(tracer(i-1,j)-tracer(i-2,j))*maskW(i-1,j,k,bi,bj) |
Rj =(tracer(i,j)-tracer(i-1,j)) |
44 |
Rjjp=Rjp-Rj |
c & *maskW(i,j,k,bi,bj) |
45 |
Rjjm=Rj-Rjm |
Rjm=(tracer(i-1,j)-tracer(i-2,j)) |
46 |
uT(i,j) = |
c & *maskW(i-1,j,k,bi,bj) |
47 |
|
C- jmc: mask not needed here above if Rjjp & Rjjm & uTrans are masked |
48 |
|
Rjjp=(Rjp-Rj)*maskW(i+1,j,k,bi,bj) |
49 |
|
Rjjm=(Rj-Rjm)*maskW(i-1,j,k,bi,bj) |
50 |
|
uT(i,j) = |
51 |
& uTrans(i,j)*( |
& uTrans(i,j)*( |
52 |
& Tracer(i,j)+Tracer(i-1,j)-oneSixth*( Rjjp+Rjjm ) |
& Tracer(i,j)+Tracer(i-1,j)-oneSixth*( Rjjp+Rjjm ) |
53 |
& )*0.5 _d 0 |
& )*0.5 _d 0 |
54 |
|
& +ABS( uTrans(i,j) )*0.5 _d 0*oneSixth*( Rjjp-Rjjm ) |
55 |
|
& *( 1. _d 0 - maskW(i-1,j,k,bi,bj)*maskW(i+1,j,k,bi,bj) ) |
56 |
ENDDO |
ENDDO |
57 |
ENDDO |
ENDDO |
58 |
|
|