5 real(rprec),
intent(in) :: din(n)
11 logical is_all_negative, is_all_positive
13 real(rprec) :: possum,negsum
14 real(rprec),
parameter :: zero = 0
18 integer,
allocatable :: iperm(:)
19 real(rprec),
allocatable :: dinabs(:)
25 allocate (iperm(n), dinabs(n))
31 call dshell(n, dinabs, iperm )
35 dsum = dsum + din(iperm(i))
40 deallocate (iperm, dinabs)
46 subroutine dshell(n,dx,iperm)
48 integer,
intent(in) :: n
49 integer,
intent(out) :: iperm(n)
50 real(rprec),
intent(in) :: dx(n)
52 real(rprec) :: dtemp,dxert
68 dxert = dx(iperm(k+m))
69 if (dxert .ge. dx(iperm(k)))
exit
94 subroutine dshell2(n,arrin,iperm)
97 integer,
intent(in) :: n
98 integer,
intent(out) :: iperm(n)
99 real(rprec),
intent(in) :: arrin(n)
100 integer :: i, j, ir, m, indx
131 if (arrin(iperm(j)) .lt. arrin(iperm(j+1))) j=j+1
133 if (dtemp .lt. arrin(iperm(j)))
then
146 end subroutine dshell2