Blame view
fvn_fnlib/dbesyn.f90
890 Bytes
f6bacaf83 ChW 11/09: ANSI c... |
1 |
function dbesyn(n,x) |
8d883e8a1 Integration of ki... |
2 |
use fvn_common |
e1aefab23 git-svn-id: https... |
3 4 5 6 7 |
implicit none ! This function compute the rank n Bessel Y function ! using recurrence relation : ! Yn+1(x)=2n/x * Yn(x) - Yn-1(x) ! |
f6bacaf83 ChW 11/09: ANSI c... |
8 |
real(dp_kind) :: dbesyn |
e1aefab23 git-svn-id: https... |
9 |
integer :: n |
f6bacaf83 ChW 11/09: ANSI c... |
10 |
real(dp_kind) :: x |
e1aefab23 git-svn-id: https... |
11 |
|
f6bacaf83 ChW 11/09: ANSI c... |
12 13 |
real(dp_kind),external :: dbesy0,dbesy1 real(dp_kind) :: two_on_x,bynm1,byn,bytmp |
e1aefab23 git-svn-id: https... |
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
integer :: i if (n==0) then dbesyn=dbesy0(x) return end if if (n==1) then dbesyn=dbesy1(x) return end if if (n < 0) then write(*,*) "Error in dbesyn, n must be >= 0" stop end if if (x <= 0.) then write(*,*) "Error in dbesyn, x must be strictly positive" end if two_on_x=2./x bynm1=dbesy0(x) byn=dbesy1(x) do i=1,n-1 bytmp=two_on_x*byn*i-bynm1 bynm1=byn byn=bytmp end do dbesyn=bytmp end function |