C
C     ..................................................................
C
C        SUBROUTINE DQH24
C
C        PURPOSE
C           TO COMPUTE INTEGRAL(EXP(-X*X)*FCT(X), SUMMED OVER X FROM
C                               -INFINITY TO +INFINITY).
C
C        USAGE
C           CALL DQH24 (FCT,Y)
C           PARAMETER FCT REQUIRES AN EXTERNAL STATEMENT
C
C        DESCRIPTION OF PARAMETERS
C           FCT    - THE NAME OF AN EXTERNAL DOUBLE PRECISION FUNCTION
C                    SUBPROGRAM USED.
C           Y      - THE RESULTING DOUBLE PRECISION INTEGRAL VALUE.
C
C        REMARKS
C           NONE
C
C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
C           THE EXTERNAL DOUBLE PRECISION FUNCTION SUBPROGRAM FCT(X)
C           MUST BE FURNISHED BY THE USER.
C
C        METHOD
C           EVALUATION IS DONE BY MEANS OF 24-POINT GAUSSIAN-HERMITE
C           QUADRATURE FORMULA, WHICH INTEGRATES EXACTLY WHENEVER
C           FCT(X) IS A POLYNOMIAL UP TO DEGREE 47.
C           FOR REFERENCE, SEE
C           SHAO/CHEN/FRANK, TABLES OF ZEROS AND GAUSSIAN WEIGHTS OF
C           CERTAIN ASSOCIATED LAGUERRE POLYNOMIALS AND THE RELATED
C           GENERALIZED HERMITE POLYNOMIALS, IBM TECHNICAL REPORT
C           TR00.1100 (MARCH 1964), PP.213-214.
C
C     ..................................................................
C
      SUBROUTINE DQH24(FCT,Y)
C
C
      DOUBLE PRECISION X,Y,Z,FCT
C
      X=.60159255614257397D1
      Z=-X
      Y=.16643684964891089D-15*(FCT(X)+FCT(Z))
      X=.52593829276680444D1
      Z=-X
      Y=Y+.65846202430781701D-12*(FCT(X)+FCT(Z))
      X=.46256627564237873D1
      Z=-X
      Y=Y+.30462542699875639D-9*(FCT(X)+FCT(Z))
      X=.40536644024481495D1
      Z=-X
      Y=Y+.40189711749414297D-7*(FCT(X)+FCT(Z))
      X=.35200068130345247D1
      Z=-X
      Y=Y+.21582457049023336D-5*(FCT(X)+FCT(Z))
      X=.30125461375655648D1
      Z=-X
      Y=Y+.56886916364043798D-4*(FCT(X)+FCT(Z))
      X=.25238810170114270D1
      Z=-X
      Y=Y+.8236924826884175D-3*(FCT(X)+FCT(Z))
      X=.20490035736616989D1
      Z=-X
      Y=Y+.70483558100726710D-2*(FCT(X)+FCT(Z))
      X=.15842500109616941D1
      Z=-X
      Y=Y+.37445470503230746D-1*(FCT(X)+FCT(Z))
      X=.11267608176112451D1
      Z=-X
      Y=Y+.12773962178455916D0*(FCT(X)+FCT(Z))
      X=.67417110703721224D0
      Z=-X
      Y=Y+.28617953534644302D0*(FCT(X)+FCT(Z))
      X=.22441454747251559D0
      Z=-X
      Y=Y+.42693116386869925D0*(FCT(X)+FCT(Z))
      RETURN
      END
