1C $Id$
2************************************************************************
3*                                                                      *
4      subroutine ecp_down_m (m_min,m_max,n,a_inv,Q_hi_a,Q_mid_a,Q_lo_a)
5*                                                                      *
6*   Perform downward recursion in m using the relation for bessel      *
7*   functions i_{m-1}(ar) = i_{m+1}(ar) + (2m+1)/(ar) i_{m}(ar)        *
8*                                                                      *
9*   Argument (status) - description                                    *
10*                                                                      *
11*   m_min (inp) - minimum value of m                                   *
12*   m_max (inp) - maximum value of m                                   *
13*   n (inp) - number of functions                                      *
14*   a_inv (inp) - inverse of factors multiplying r                     *
15*   Q_hi_a (inp) - integral containing i_{m+1}                         *
16*   Q_mid_a (inp) - integral containing i_{m}/r                        *
17*   Q_lo_a (out) - integral containing i_{m-1}                         *
18*                                                                      *
19*   Written by K. G. Dyall                                             *
20*                                                                      *
21************************************************************************
22      implicit none
23      integer i,m,m_min,m_max,n
24      double precision a_inv(n),Q_hi_a(n,m_min:m_max),
25     &    Q_mid_a(n,m_min:m_max),Q_lo_a(n,m_min:m_max),fac
26*
27      do m = m_max,m_min,-1
28        fac = 2*m+1
29        do i = 1,n
30          Q_lo_a(i,m) = Q_hi_a(i,m) + fac*a_inv(i)*Q_mid_a(i,m)
31        end do
32      end do
33*
34      return
35      end
36