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

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

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

revision 1.8 by jmc, Mon Jun 19 14:40:43 2006 UTC revision 1.9 by jmc, Sun Oct 22 01:08:04 2006 UTC
# Line 52  C     == Local variables == Line 52  C     == Local variables ==
52  C !LOCAL VARIABLES: ====================================================  C !LOCAL VARIABLES: ====================================================
53  C  i,j               :: loop indices  C  i,j               :: loop indices
54  C  km1               :: =max( k-1 , 1 )  C  km1               :: =max( k-1 , 1 )
 C  rLimit            :: centered (vs upwind) fraction  
55  C  wLoc              :: velocity, vertical component  C  wLoc              :: velocity, vertical component
56  C  wCFL              :: Courant-Friedrich-Levy number  C  wCFL              :: Courant-Friedrich-Levy number
57        INTEGER i,j,kp1,km1,km2        INTEGER i,j,kp1,km1,km2
58          _RL wLoc
59        _RL Rjm,Rj,Rjp,cfl,d0,d1        _RL Rjm,Rj,Rjp,cfl,d0,d1
60    #ifdef OLD_DST3_FORMULATION
61        _RL psiP,psiM,thetaP,thetaM        _RL psiP,psiM,thetaP,thetaM
       _RL wLoc  
62        _RL smallNo        _RL smallNo
63    
64        IF (inAdMode) THEN        IF (inAdMode) THEN
# Line 66  C  wCFL              :: Courant-Friedric Line 66  C  wCFL              :: Courant-Friedric
66        ELSE        ELSE
67         smallNo = 1.0D-20         smallNo = 1.0D-20
68        ENDIF        ENDIF
69    #endif
70    
71        km2=MAX(1,k-2)        km2=MAX(1,k-2)
72        km1=MAX(1,k-1)        km1=MAX(1,k-1)
# Line 82  C  wCFL              :: Courant-Friedric Line 83  C  wCFL              :: Courant-Friedric
83    
84          wLoc = wFld(i,j)          wLoc = wFld(i,j)
85  c       wLoc = rTrans(i,j)*recip_rA(i,j,bi,bj)  c       wLoc = rTrans(i,j)*recip_rA(i,j,bi,bj)
86          cfl=abs(wLoc*dTarg*recip_drC(k))          cfl=ABS(wLoc*dTarg*recip_drC(k))
87          d0=(2.-cfl)*(1.-cfl)*oneSixth          d0=(2.-cfl)*(1.-cfl)*oneSixth
88          d1=(1.-cfl*cfl)*oneSixth          d1=(1.-cfl*cfl)*oneSixth
89  #ifdef ALLOW_MATRIX  #ifdef OLD_DST3_FORMULATION
         IF (.NOT.useMATRIX) THEN  
 #endif /* ALLOW_MATRIX */  
90          IF ( ABS(Rj).LT.smallNo .OR.          IF ( ABS(Rj).LT.smallNo .OR.
91       &       ABS(Rjm).LT.smallNo ) THEN       &       ABS(Rjm).LT.smallNo ) THEN
92           thetaP=0.           thetaP=0.
# Line 105  c       wLoc = rTrans(i,j)*recip_rA(i,j, Line 104  c       wLoc = rTrans(i,j)*recip_rA(i,j,
104           psiM=d0+d1*thetaM           psiM=d0+d1*thetaM
105          ENDIF          ENDIF
106           wT(i,j)=           wT(i,j)=
107       &    0.5*(rTrans(i,j)+abs(rTrans(i,j)))       &    0.5*(rTrans(i,j)+ABS(rTrans(i,j)))
108       &       *( tracer(i,j, k ) + psiM*Rj )       &       *( tracer(i,j, k ) + psiM*Rj )
109       &   +0.5*(rTrans(i,j)-abs(rTrans(i,j)))       &   +0.5*(rTrans(i,j)-ABS(rTrans(i,j)))
110       &       *( tracer(i,j,km1) - psiP*Rj )       &       *( tracer(i,j,km1) - psiP*Rj )
111  #ifdef ALLOW_MATRIX  #else /* OLD_DST3_FORMULATION */
112          ELSE          wT(i,j)=
113            wT(i,j)=       &    0.5*(rTrans(i,j)+ABS(rTrans(i,j)))
114       &     0.5*(rTrans(i,j)+abs(rTrans(i,j)))       &       *( tracer(i,j, k ) + (d0*Rj+d1*Rjp) )
115       &        *( tracer(i,j, k ) + (d0*Rj+d1*Rjp) )       &   +0.5*(rTrans(i,j)-ABS(rTrans(i,j)))
116       &    +0.5*(rTrans(i,j)-abs(rTrans(i,j)))       &       *( tracer(i,j,km1) - (d0*Rj+d1*Rjm) )
117       &        *( tracer(i,j,km1) - (d0*Rj+d1*Rjm) )  #endif /* OLD_DST3_FORMULATION */
         ENDIF  
 #endif /* ALLOW_MATRIX */  
118    
119         ENDDO         ENDDO
120        ENDDO        ENDDO

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22