C
C     ..................................................................
C
C        SUBROUTINE DQH64
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 DQH64 (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 64-POINT GAUSSIAN-HERMITE
C           QUADRATURE FORMULA, WHICH INTEGRATES EXACTLY WHENEVER
C           FCT(X) IS A POLYNOMIAL UP TO DEGREE 127.
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 DQH64(FCT,Y)
C
C
      DOUBLE PRECISION X,Y,Z,FCT
C
      X=.10526123167960546D2
      Z=-X
      Y=.55357065358569428D-48*(FCT(X)+FCT(Z))
      X=.9895287586829539D1
      Z=-X
      Y=Y+.16797479901081592D-42*(FCT(X)+FCT(Z))
      X=.9373159549646721D1
      Z=-X
      Y=Y+.34211380112557405D-38*(FCT(X)+FCT(Z))
      X=.8907249099964770D1
      Z=-X
      Y=Y+.15573906246297638D-34*(FCT(X)+FCT(Z))
      X=.8477529083379863D1
      Z=-X
      Y=Y+.25496608991129993D-31*(FCT(X)+FCT(Z))
      X=.8073687285010225D1
      Z=-X
      Y=Y+.19291035954649669D-28*(FCT(X)+FCT(Z))
      X=.7689540164040497D1
      Z=-X
      Y=Y+.7861797788925910D-26*(FCT(X)+FCT(Z))
      X=.7321013032780949D1
      Z=-X
      Y=Y+.19117068833006428D-23*(FCT(X)+FCT(Z))
      X=.69652411205511075D1
      Z=-X
      Y=Y+.29828627842798512D-21*(FCT(X)+FCT(Z))
      X=.66201122626360274D1
      Z=-X
      Y=Y+.31522545665037814D-19*(FCT(X)+FCT(Z))
      X=.62840112287748282D1
      Z=-X
      Y=Y+.23518847106758191D-17*(FCT(X)+FCT(Z))
      X=.59556663267994860D1
      Z=-X
      Y=Y+.12800933913224380D-15*(FCT(X)+FCT(Z))
      X=.56340521643499721D1
      Z=-X
      Y=Y+.52186237265908475D-14*(FCT(X)+FCT(Z))
      X=.53183252246332709D1
      Z=-X
      Y=Y+.16283407307097204D-12*(FCT(X)+FCT(Z))
      X=.50077796021987682D1
      Z=-X
      Y=Y+.39591777669477239D-11*(FCT(X)+FCT(Z))
      X=.47018156474074998D1
      Z=-X
      Y=Y+.7615217250145451D-10*(FCT(X)+FCT(Z))
      X=.43999171682281376D1
      Z=-X
      Y=Y+.11736167423215493D-8*(FCT(X)+FCT(Z))
      X=.41016344745666567D1
      Z=-X
      Y=Y+.14651253164761094D-7*(FCT(X)+FCT(Z))
      X=.38065715139453605D1
      Z=-X
      Y=Y+.14955329367272471D-6*(FCT(X)+FCT(Z))
      X=.35143759357409062D1
      Z=-X
      Y=Y+.12583402510311846D-5*(FCT(X)+FCT(Z))
      X=.32247312919920357D1
      Z=-X
      Y=Y+.8788499230850359D-5*(FCT(X)+FCT(Z))
      X=.29373508230046218D1
      Z=-X
      Y=Y+.51259291357862747D-4*(FCT(X)+FCT(Z))
      X=.26519724354306350D1
      Z=-X
      Y=Y+.25098369851306249D-3*(FCT(X)+FCT(Z))
      X=.23683545886324014D1
      Z=-X
      Y=Y+.10363290995075777D-2*(FCT(X)+FCT(Z))
      X=.20862728798817620D1
      Z=-X
      Y=Y+.36225869785344588D-2*(FCT(X)+FCT(Z))
      X=.18055171714655449D1
      Z=-X
      Y=Y+.10756040509879137D-1*(FCT(X)+FCT(Z))
      X=.15258891402098637D1
      Z=-X
      Y=Y+.27203128953688918D-1*(FCT(X)+FCT(Z))
      X=.12472001569431179D1
      Z=-X
      Y=Y+.58739981964099435D-1*(FCT(X)+FCT(Z))
      X=.9692694230711780D0
      Z=-X
      Y=Y+.10849834930618684D0*(FCT(X)+FCT(Z))
      X=.69192230581004458D0
      Z=-X
      Y=Y+.17168584234908370D0*(FCT(X)+FCT(Z))
      X=.41498882412107868D0
      Z=-X
      Y=Y+.23299478606267805D0*(FCT(X)+FCT(Z))
      X=.13830224498700972D0
      Z=-X
      Y=Y+.27137742494130398D0*(FCT(X)+FCT(Z))
      RETURN
      END
