2D AMRCLAW
philim.f
Go to the documentation of this file.
1 c
2 c
3 c =====================================================
4  double precision function philim(a,b,meth)
5 c =====================================================
6  implicit double precision (a-h,o-z)
7 c
8 c # Compute a limiter based on wave strengths a and b.
9 c # meth determines what limiter is used.
10 c # a is assumed to be nonzero.
11 c
12 c # NOTE: This routine is obsolete. Instead of using limiter.f,
13 c # which calls philim.f for every wave, it is more efficient to
14 c # use inlinelimiter.f, which eliminates all these function calls
15 c # to philim. If you wish to change the limiter function and are
16 c # using inlinelimiter.f, the formulas must be changed in that routine.
17 c
18  r = b/a
19  go to (10,20,30,40,50) meth
20 
21 c
22  10 continue
23 c --------
24 c # minmod
25 c --------
26  philim = dmax1(0.d0, dmin1(1.d0, r))
27  return
28 c
29  20 continue
30 c ----------
31 c # superbee
32 c ----------
33  philim = dmax1(0.d0, dmin1(1.d0, 2.d0*r), dmin1(2.d0, r))
34  return
35 c
36  30 continue
37 c ----------
38 c # van Leer
39 c ----------
40  philim = (r + dabs(r)) / (1.d0 + dabs(r))
41  return
42 c
43  40 continue
44 c ------------------------------
45 c # monotinized centered
46 c ------------------------------
47  c = (1.d0 + r)/2.d0
48  philim = dmax1(0.d0, dmin1(c, 2.d0, 2.d0*r))
49  return
50 c
51  50 continue
52 c ------------------------------
53 c # Beam-Warming
54 c ------------------------------
55  philim = r
56 
57  return
58  end
double precision function philim(a, b, meth)
Definition: philim.f:5