Compute Bessel functions Jn(x) and Yn(x), and
their first and second derivatives
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | n |
Order of Jn(x) and Yn(x) |
||
| real(kind=wp), | intent(in) | :: | x |
Argument of Jn(x) and Yn(x) ( x > 0 ) |
||
| real(kind=wp), | intent(out) | :: | Bjn |
|
||
| real(kind=wp), | intent(out) | :: | Djn |
|
||
| real(kind=wp), | intent(out) | :: | Fjn |
|
||
| real(kind=wp), | intent(out) | :: | Byn |
|
||
| real(kind=wp), | intent(out) | :: | Dyn |
|
||
| real(kind=wp), | intent(out) | :: | Fyn |
|
subroutine jyndd(n,x,Bjn,Djn,Fjn,Byn,Dyn,Fyn) real(wp),intent(in) :: x !! Argument of Jn(x) and Yn(x) ( x > 0 ) integer,intent(in) :: n !! Order of Jn(x) and Yn(x) real(wp),intent(out) :: Bjn !! `Jn(x)` real(wp),intent(out) :: Djn !! `Jn'(x)` real(wp),intent(out) :: Fjn !! `Jn"(x)` real(wp),intent(out) :: Byn !! `Yn(x)` real(wp),intent(out) :: Dyn !! `Yn'(x)` real(wp),intent(out) :: Fyn !! `Yn"(x)` real(wp),dimension(2) :: bj , by integer :: nm call jynbh(n+1,n,x,nm,bj,by) ! Compute derivatives by differentiation formulas Bjn = bj(1) Byn = by(1) Djn = -bj(2) + n*bj(1)/x Dyn = -by(2) + n*by(1)/x Fjn = (n*n/(x*x)-1.0_wp)*Bjn - Djn/x Fyn = (n*n/(x*x)-1.0_wp)*Byn - Dyn/x end subroutine jyndd