subroutine dbesks(xnu,x,nin,bk)
c***begin prologue dbesks
c***date written 770601 (yymmdd)
c***revision date 820801 (yymmdd)
c***category no. c10b3
c***keywords bessel function,double precision,fractional order,
c modified bessel function,sequence,special function,
c third kind
c***author fullerton, w., (lanl)
c***purpose computes a d.p. sequence of modified bessel functions of
c the third kind of fractional order.
c***description
c
c dbesks computes a sequence of modified bessel functions of the third
c kind of order xnu + i at x, where x .gt. 0, xnu lies in (-1,1),
c and i = 0, 1, ... , nin - 1, if nin is positive and i = 0, 1, ... ,
c nin + 1, if nin is negative. on return, the vector bk(.) contains
c the results at x for order starting at xnu. xnu, x, and bk are
c double precision. nin is an integer.
c***references (none)
c***routines called d1mach,dbskes,xerror
c***end prologue dbesks
double precision xnu, x, bk(1), expxi, xmax, d1mach
data xmax / 0.d0 /
c***first executable statement dbesks
if (xmax.eq.0.d0) xmax = -dlog (d1mach(1))
c
if (x.gt.xmax) call xerror ( 'dbesks x so big bessel k underflows
1', 36, 1, 2)
c
call dbskes (xnu, x, nin, bk)
c
expxi = dexp (-x)
n = iabs (nin)
do 20 i=1,n
bk(i) = expxi * bk(i)
20 continue
c
return
end