SUBROUTINE DVY0 (M, X, F, WORK, IWORK, INFO) C***BEGIN PROLOGUE DVY0 C***PURPOSE Computes the Bessel function of the second kind C of order zero (Y0) for a vector of real arguments C***LIBRARY VFNLIB C***CATEGORY C10A1 C***TYPE DOUBLE PRECISION (VY0-S, DVY0-D) C***KEYWORDS BESSEL FUNCTION,SECOND KIND, ORDER ZERO, VECTORIZED C***AUTHOR SAUNDERS, B. V., (NIST) C COMPUTING AND APPLIED MATHEMATICS LABORATORY C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY C GAITHERSBURG, MD 20899 C BOISVERT, R. F., (NIST) C COMPUTING AND APPLIED MATHEMATICS LABORATORY C NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY C GAITHERSBURG, MD 20899 C***DESCRIPTION C C DVY0 computes the Bessel function of the second kind of order C zero (Y0) for real arguments using uniform approximation by C Chebyshev polynomials. C C C P A R A M E T E R S C C M (Input) Integer (M .GT. 0) C The number of arguments at which the function is to be C evaluated. C C X (Input) Double precision array of length M C The arguments at which the function is to be evaluated are C stored in X(1) to X(M) in any order. C C F (Output) Double precision array of length M C F(i) contains the value of the function at X(i), i=1,..,M. C C WORK (Work) Double precision vector of length 7*M C C IWORK (Work) Integer vector of length M C C INFO (Output) Integer C Indicates status of computed result. The following table C lists possible values and their meanings. If OK=Yes then C all F(i) have been set, otherwise none have been set. C C INFO OK Description C ------------------------------------------------------------ C 0 Yes Successfull execution. C 1 No Error: M .LE. 0 C 2 No Error: X(i) zero or negative for some i C 3 No Error: Some X(i) so big that no precision possible C in computing Y0. The index of the first offending C argument is returned in IWORK(1). C C C ********************************************************************* C This routine is a modification of the function DBESY0 developed by C W. Fullerton of LANL. C ********************************************************************* C C***REFERENCES (NONE) C***ROUTINES CALLED DWY0 C***REVISION HISTORY (YYMMDD) C 910226 DATE WRITTEN C***END PROLOGUE DVY0 C C ---------- C PARAMETERS C ---------- C INTEGER INFO, IWORK, M DOUBLE PRECISION F, X, WORK C DIMENSION X(M), F(M), WORK(7*M), IWORK(M) C C --------------- C LOCAL VARIABLES C --------------- C INTEGER IWB0, IWB1, IWB2, IWTC, IWXC, IWYC, IWZC, JIN C C C***FIRST EXECUTABLE STATEMENT DVY0 C C ... PARTITION WORK ARRAYS C IWTC = 1 IWXC = IWTC + M IWYC = IWXC + M IWZC = IWYC + M IWB0 = IWZC + M IWB1 = IWB0 + M IWB2 = IWB1 + M C Total = IB2 + M C JIN = 1 C Total = JIN + M C C ... DWY0 DOES ALL THE WORK C CALL DWY0(M,X,F,WORK(IWTC),WORK(IWXC),WORK(IWYC),WORK(IWZC), + IWORK(JIN),WORK(IWB0),WORK(IWB1),WORK(IWB2),INFO) C RETURN END