/[MITgcm]/MITgcm_contrib/dgoldberg/streamice/slope_limiter.F
ViewVC logotype

Diff of /MITgcm_contrib/dgoldberg/streamice/slope_limiter.F

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

revision 1.1 by heimbach, Thu Mar 29 15:59:21 2012 UTC revision 1.4 by dgoldberg, Wed Aug 27 19:29:12 2014 UTC
# Line 1  Line 1 
1    C $Header$
2    C $Name$
3    
4  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
5    
6        _RL FUNCTION SLOPE_LIMITER (num, denom)  !      _RL FUNCTION SLOPE_LIMITER (num, denom)
7    
8         _RL num, denom         _RL FUNCTION SLOPE_LIMITER (Cr)
9    
10    !       _RL num, denom
11  !       _RL SLOPE_LIMITER  !       _RL SLOPE_LIMITER
12         _RL r  !       _RL r
13           _RL Cr
14    
15  ! used for flux limiting in advective subroutines  ! used for flux limiting in advective subroutines
16  ! Van Leer limiter (source: Wikipedia!)  ! Van Leer limiter (source: Wikipedia!)
17    
18         if (denom .eq. 0.0) then  !       if (denom .eq. 0.0) then
19          SLOPE_LIMITER = 0.0  !        SLOPE_LIMITER = 0.0
20         elseif (num*denom .le. 0.0) then  !       elseif (num*denom .le. 0.0) then
21          SLOPE_LIMITER = 0.0  !        SLOPE_LIMITER = 0.0
22         else  !       else
23          r = num/denom  !        r = num/denom
24          SLOPE_LIMITER = 0.0*(r+abs(r))/(1+abs(r))  !        SLOPE_LIMITER = (r+abs(r))/(1+abs(r))
25         endif  !       endif
26    
27           SLOPE_LIMITER = max(0.D0,max(min(1.D0,2.D0*Cr),
28         &                 min(2.D0,Cr)))
29    
30    
31         RETURN         RETURN
32         END         END

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.22