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

Diff of /MITgcm/pkg/generic_advdiff/gad_u3_adv_r.F

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

revision 1.3 by adcroft, Wed Sep 26 19:05:21 2001 UTC revision 1.3.2.1 by adcroft, Tue Feb 26 16:04:48 2002 UTC
# Line 21  C \begin{equation*} Line 21  C \begin{equation*}
21  C F^r_{adv} = W \overline{ \theta  - \frac{1}{6} \delta_{kk} \theta }^k  C F^r_{adv} = W \overline{ \theta  - \frac{1}{6} \delta_{kk} \theta }^k
22  C                 + \frac{1}{12} |W| \delta_{kkk} \theta  C                 + \frac{1}{12} |W| \delta_{kkk} \theta
23  C \end{equation*}  C \end{equation*}
24  C Near boundaries, reduces to second order when flow is away from boundary  C Near boundaries, mask all the gradients ==> still 3rd O.
 C and third order when flow is towards boundary.  
25    
26  C !USES: ===============================================================  C !USES: ===============================================================
27        IMPLICIT NONE        IMPLICIT NONE
# Line 52  C  km1                  :: =max( k-1 , 1 Line 51  C  km1                  :: =max( k-1 , 1
51  C  km2                  :: =max( k-2 , 1 )  C  km2                  :: =max( k-2 , 1 )
52  C  Rjm,Rj,Rjp           :: differences at i-1,i,i+1  C  Rjm,Rj,Rjp           :: differences at i-1,i,i+1
53  C  Rjjm,Rjjp            :: second differences at i-1,i  C  Rjjm,Rjjp            :: second differences at i-1,i
 C  maskP1               :: =1 for k<Nr, =0 for k>=Nr  
54        INTEGER i,j,kp1,km1,km2        INTEGER i,j,kp1,km1,km2
55        _RL Rjm,Rj,Rjp,Rjjm,Rjjp        _RL Rjm,Rj,Rjp,Rjjm,Rjjp
       _RL maskM2, maskP1  
56  CEOP  CEOP
57    
58        km2=MAX(1,k-2)        km2=MAX(1,k-2)
59        km1=MAX(1,k-1)        km1=MAX(1,k-1)
60        kp1=MIN(Nr,k+1)        kp1=MIN(Nr,k+1)
       maskM2 = 1.  
       maskP1 = 1.  
       IF (k.LE.2)  maskM2 = 0.  
       IF (k.GE.Nr) maskP1 = 0.  
61    
62        IF ( k.EQ.1 .OR. k.GT.Nr ) THEN        IF ( k.EQ.1 .OR. k.GT.Nr ) THEN
63         DO j=1-Oly,sNy+Oly         DO j=1-Oly,sNy+Oly
# Line 76  CEOP Line 69  CEOP
69         DO j=1-Oly,sNy+Oly         DO j=1-Oly,sNy+Oly
70          DO i=1-Olx,sNx+Olx          DO i=1-Olx,sNx+Olx
71           Rjp=(tracer(i,j,kp1,bi,bj)-tracer(i,j,k,bi,bj))           Rjp=(tracer(i,j,kp1,bi,bj)-tracer(i,j,k,bi,bj))
72  c    &        *maskC(i,j,kp1,bi,bj)       &        *maskC(i,j,kp1,bi,bj)
73           Rj=(tracer(i,j,k,bi,bj)-tracer(i,j,km1,bi,bj))           Rj=(tracer(i,j,k,bi,bj)-tracer(i,j,km1,bi,bj))
74           Rjm=(tracer(i,j,km1,bi,bj)-tracer(i,j,km2,bi,bj))           Rjm=(tracer(i,j,km1,bi,bj)-tracer(i,j,km2,bi,bj))
75  c    &        *maskC(i,j,km2,bi,bj)       &        *maskC(i,j,km2,bi,bj)
76  C- jmc: mask not needed here above if Rjjp & Rjjm & rTrans are masked             Rjjp=Rjp-Rj
77           Rjjp=(Rjp-Rj)*maskC(i,j,kp1,bi,bj)*maskP1           Rjjm=Rj-Rjm
          Rjjm=(Rj-Rjm)*maskC(i,j,km2,bi,bj)*maskM2  
78           wT(i,j) = maskC(i,j,km1,bi,bj)*(           wT(i,j) = maskC(i,j,km1,bi,bj)*(
79       &     rTrans(i,j)*(       &     rTrans(i,j)*(
80       &        (Tracer(i,j,k,bi,bj)+Tracer(i,j,km1,bi,bj))*0.5 _d 0       &        (Tracer(i,j,k,bi,bj)+Tracer(i,j,km1,bi,bj))*0.5 _d 0

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.3.2.1

  ViewVC Help
Powered by ViewVC 1.1.22