Parent Directory
|
Revision Log
|
Revision Graph
|
Patch
--- MITgcm_contrib/dgoldberg/streamice/slope_limiter.F 2013/05/23 22:12:33 1.2
+++ MITgcm_contrib/dgoldberg/streamice/slope_limiter.F 2013/06/11 20:19:45 1.3
@@ -1,22 +1,29 @@
#include "CPP_OPTIONS.h"
- _RL FUNCTION SLOPE_LIMITER (num, denom)
-
- _RL num, denom
+! _RL FUNCTION SLOPE_LIMITER (num, denom)
+
+ _RL FUNCTION SLOPE_LIMITER (Cr)
+
+! _RL num, denom
! _RL SLOPE_LIMITER
- _RL r
+! _RL r
+ _RL Cr
! used for flux limiting in advective subroutines
! Van Leer limiter (source: Wikipedia!)
- if (denom .eq. 0.0) then
- SLOPE_LIMITER = 0.0
- elseif (num*denom .le. 0.0) then
- SLOPE_LIMITER = 0.0
- else
- r = num/denom
- SLOPE_LIMITER = (r+abs(r))/(1+abs(r))
- endif
+! if (denom .eq. 0.0) then
+! SLOPE_LIMITER = 0.0
+! elseif (num*denom .le. 0.0) then
+! SLOPE_LIMITER = 0.0
+! else
+! r = num/denom
+! SLOPE_LIMITER = (r+abs(r))/(1+abs(r))
+! endif
+
+ SLOPE_LIMITER = max(0.D0,max(min(1.D0,2.D0*Cr),
+ & min(2.D0,Cr)))
+
RETURN
END
| ViewVC Help | |
| Powered by ViewVC 1.1.22 |