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

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

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

revision 1.6 by adcroft, Thu Jan 17 16:48:59 2002 UTC revision 1.7 by jmc, Wed Mar 6 01:29:36 2002 UTC
# Line 60  C  km2                  :: =max( k-2 , 1 Line 60  C  km2                  :: =max( k-2 , 1
60  C  bi,bj                :: tile indices or (1,1) depending on use  C  bi,bj                :: tile indices or (1,1) depending on use
61  C  Cr                   :: slope ratio  C  Cr                   :: slope ratio
62  C  Rjm,Rj,Rjp           :: differences at i-1,i,i+1  C  Rjm,Rj,Rjp           :: differences at i-1,i,i+1
63    C  wFld                 :: velocity, vertical component
64        INTEGER i,j,kp1,km1,km2,bi,bj        INTEGER i,j,kp1,km1,km2,bi,bj
65        _RL Cr,Rjm,Rj,Rjp        _RL Cr,Rjm,Rj,Rjp
66          _RL wFld
67  C Statement function provides Limiter(Cr)  C Statement function provides Limiter(Cr)
68  #include "GAD_FLUX_LIMITER.h"  #include "GAD_FLUX_LIMITER.h"
69  CEOP  CEOP
# Line 92  C      for maskC(...) and wVel(...) Line 94  C      for maskC(...) and wVel(...)
94        ELSE        ELSE
95         DO j=1-Oly,sNy+Oly         DO j=1-Oly,sNy+Oly
96          DO i=1-Olx,sNx+Olx          DO i=1-Olx,sNx+Olx
97    
98    c        wFld = wVel(i,j,k,bi_arg,bj_arg)
99             wFld = rTrans(i,j)*recip_rA(i,j,bi_arg,bj_arg)
100           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))
101       &        *maskC(i,j,kp1,bi_arg,bj_arg)       &        *maskC(i,j,kp1,bi_arg,bj_arg)
102           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))
103           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))
104       &        *maskC(i,j,km2,bi_arg,bj_arg)       &        *maskC(i,j,km2,bi_arg,bj_arg)
105    
106           IF (Rj.NE.0.) THEN           IF (Rj.NE.0.) THEN
107            IF (rTrans(i,j).LT.0.) THEN            IF (rTrans(i,j).LT.0.) THEN
108              Cr=Rjm/Rj              Cr=Rjm/Rj
# Line 115  C      for maskC(...) and wVel(...) Line 121  C      for maskC(...) and wVel(...)
121       &     rTrans(i,j)*       &     rTrans(i,j)*
122       &        (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
123       &    +(ABS(rTrans(i,j))*(1-Cr)       &    +(ABS(rTrans(i,j))*(1-Cr)
124       &      +rTrans(i,j)*wVel(i,j,k,bi_arg,bj_arg)*dTarg*recip_drC(k)       &      +rTrans(i,j)*wFld*dTarg*recip_drC(k)
125       &                  *Cr       &                  *Cr
126       &     )*Rj*0.5 _d 0                )       &     )*Rj*0.5 _d 0                )
127          ENDDO          ENDDO

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.22