      COMPLEX FUNCTION HNKL(X)
C     ******************************************************************
C     * HANKEL FUNCTION H0(1) - POLYNOMIAL APPROXIMATION               *
C     * HANDBOOK OF MATH FUNCTIONS - N.B.S. - NOV 1967                 *
C     ******************************************************************
C
      REAL J0
      DATA PI/3.141592654/
C
      IF(X.GT.3.) GO TO 10
C
C     *** (-3.0.LE.X.LE.3.0)
      Y=X*X/9.0
      J0=1.+Y*(-2.2499997+Y*(+1.2656208+Y*(-0.3163866+Y*(+0.0444479
     C     +Y*(-0.0039444+Y*(+0.0002100))))))
C
C     *** (0.0.LT.X.LE.3.0)
      Y0=2.0*LOG(0.5*X)*J0/PI+0.36746691
     C     +Y*(+0.60559366+Y*(-0.74350384+Y*(+0.25300117+Y*(-0.04261214
     C     +Y*(+0.00427916+Y*(-0.00024846))))))
      HNKL=CMPLX(J0,Y0)
      RETURN
C
C     *** (3.0.LE.X.LT.INFINITY)
10    Y=3.0/X
      F0=  0.79788456+Y*(-0.00000077+Y*(-0.00552740+Y*(-0.00009512
     C               +Y*(+0.00137237+Y*(-0.00072805+Y*(+0.00014476))))))
      T0=X-0.78539816+Y*(-0.04166397+Y*(-0.00003954+Y*(+0.00262573
     C               +Y*(-0.00054125+Y*(-0.00029333+Y*(+0.00013558))))))
      HNKL=F0*CEXP(CMPLX(0.0,T0))/SQRT(X)
      RETURN
      END
