32 integer,
intent(in) :: lmax
33 real(8),
intent(in) :: x
34 real(8),
intent(out) :: jl(0:lmax)
37 real(8),
parameter :: rsc=1.d150,rsci=1.d0/rsc
39 if ((lmax < 0).or.(lmax > 20))
then 41 write(*,
'("Error(sbesseli): lmax out of range : ",I8)') lmax
45 if ((x < 0.d0).or.(x > 1.d8))
then 47 write(*,
'("Error(sbesseli): x out of range : ",G18.10)') x
77 if (abs(j1) > rsc)
then 89 if (abs(j1) > rsc)
then 94 jl(l+1:lmax)=jl(l+1:lmax)*rsci
100 jl(0:lmax)=t1*jl(0:lmax)
104 jl(1)=(jl(0)-cosh(x))*xi
105 if (lmax == 1)
return subroutine sbesseli(lmax, x, jl)