1 SUBROUTINE smooth1(ya, n1, n2, wk, frac)
13 REAL(rprec),
DIMENSION(*) :: ya, wk
17 REAL(rprec),
PARAMETER :: zero = 0, one = 1
21 INTEGER :: n11, n21, n, i
22 REAL(rprec) :: as, a, a1, a2, a3
36 as = sum(abs(ya(n11:n21-1)-ya(n11+1:n21)))
39 IF (as .le. zero)
THEN
44 a = 3*(as + abs(ya(n11)-ya(n11+1)))
45 a1 = abs(ya(n1)-ya(n11))
46 IF (a1 > a) ya(n1) = 2*ya(n11) - ya(n11+1)
47 a = 3*(as + abs(ya(n21)-ya(n21-1)))
48 a1 = abs(ya(n2)-ya(n21))
49 IF (a1 > a) ya(n2) = 2*ya(n21) - ya(n21-1)
59 a1 = .5_dp*(ya(i+1)+ya(i-1))
60 a2 = 3*abs(ya(i+1)-ya(i-1))
62 IF (a3 > a2) ya(i) = a1
67 IF (frac .le. zero)
RETURN
68 ya(n11:n21) =(ya(n11:n21)+.5_dp*(wk(n11+1:n21+1)+wk(n11-1:n21-1))*
71 END SUBROUTINE smooth1