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