Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-02 - decus/20-0026/dqg32.ssp
There are 2 other files named dqg32.ssp in the archive. Click here to see a list.
C                                                                       DG32  10
C     ..................................................................DG32  20
C                                                                       DG32  30
C        SUBROUTINE DQG32                                               DG32  40
C                                                                       DG32  50
C        PURPOSE                                                        DG32  60
C           TO COMPUTE INTEGRAL(FCT(X), SUMMED OVER X FROM XL TO XU)    DG32  70
C                                                                       DG32  80
C        USAGE                                                          DG32  90
C           CALL DQG32 (XL,XU,FCT,Y)                                    DG32 100
C           PARAMETER FCT REQUIRES AN EXTERNAL STATEMENT                DG32 110
C                                                                       DG32 120
C        DESCRIPTION OF PARAMETERS                                      DG32 130
C           XL     - DOUBLE PRECISION LOWER BOUND OF THE INTERVAL.      DG32 140
C           XU     - DOUBLE PRECISION UPPER BOUND OF THE INTERVAL.      DG32 150
C           FCT    - THE NAME OF AN EXTERNAL DOUBLE PRECISION FUNCTION  DG32 160
C                    SUBPROGRAM USED.                                   DG32 170
C           Y      - THE RESULTING DOUBLE PRECISION INTEGRAL VALUE.     DG32 180
C                                                                       DG32 190
C        REMARKS                                                        DG32 200
C           NONE                                                        DG32 210
C                                                                       DG32 220
C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED                  DG32 230
C           THE EXTERNAL DOUBLE PRECISION FUNCTION SUBPROGRAM FCT(X)    DG32 240
C           MUST BE FURNISHED BY THE USER.                              DG32 250
C                                                                       DG32 260
C        METHOD                                                         DG32 270
C           EVALUATION IS DONE BY MEANS OF 32-POINT GAUSS QUADRATURE    DG32 280
C           FORMULA, WHICH INTEGRATES POLYNOMIALS UP TO DEGREE 63       DG32 290
C           EXACTLY. FOR REFERENCE, SEE                                 DG32 300
C           V.I.KRYLOV, APPROXIMATE CALCULATION OF INTEGRALS,           DG32 310
C           MACMILLAN, NEW YORK/LONDON, 1962, PP.100-111 AND 337-340.   DG32 320
C                                                                       DG32 330
C     ..................................................................DG32 340
C                                                                       DG32 350
      SUBROUTINE DQG32(XL,XU,FCT,Y)                                     DG32 360
C                                                                       DG32 370
C                                                                       DG32 380
      DOUBLE PRECISION XL,XU,Y,A,B,C,FCT                                DG32 390
C                                                                       DG32 400
      A=.5D0*(XU+XL)                                                    DG32 410
      B=XU-XL                                                           DG32 420
      C=.49863193092474078D0*B                                          DG32 430
      Y=.35093050047350483D-2*(FCT(A+C)+FCT(A-C))                       DG32 440
      C=.49280575577263417D0*B                                          DG32 450
      Y=Y+.8137197365452835D-2*(FCT(A+C)+FCT(A-C))                      DG32 460
      C=.48238112779375322D0*B                                          DG32 470
      Y=Y+.12696032654631030D-1*(FCT(A+C)+FCT(A-C))                     DG32 480
      C=.46745303796886984D0*B                                          DG32 490
      Y=Y+.17136931456510717D-1*(FCT(A+C)+FCT(A-C))                     DG32 500
      C=.44816057788302606D0*B                                          DG32 510
      Y=Y+.21417949011113340D-1*(FCT(A+C)+FCT(A-C))                     DG32 520
      C=.42468380686628499D0*B                                          DG32 530
      Y=Y+.25499029631188088D-1*(FCT(A+C)+FCT(A-C))                     DG32 540
      C=.39724189798397120D0*B                                          DG32 550
      Y=Y+.29342046739267774D-1*(FCT(A+C)+FCT(A-C))                     DG32 560
      C=.36609105937014484D0*B                                          DG32 570
      Y=Y+.32911111388180923D-1*(FCT(A+C)+FCT(A-C))                     DG32 580
      C=.33152213346510760D0*B                                          DG32 590
      Y=Y+.36172897054424253D-1*(FCT(A+C)+FCT(A-C))                     DG32 600
      C=.29385787862038116D0*B                                          DG32 610
      Y=Y+.39096947893535153D-1*(FCT(A+C)+FCT(A-C))                     DG32 620
      C=.25344995446611470D0*B                                          DG32 630
      Y=Y+.41655962113473378D-1*(FCT(A+C)+FCT(A-C))                     DG32 640
      C=.21067563806531767D0*B                                          DG32 650
      Y=Y+.43826046502201906D-1*(FCT(A+C)+FCT(A-C))                     DG32 660
      C=.16593430114106382D0*B                                          DG32 670
      Y=Y+.45586939347881942D-1*(FCT(A+C)+FCT(A-C))                     DG32 680
      C=.11964368112606854D0*B                                          DG32 690
      Y=Y+.46922199540402283D-1*(FCT(A+C)+FCT(A-C))                     DG32 700
      C=.7223598079139825D-1*B                                          DG32 710
      Y=Y+.47819360039637430D-1*(FCT(A+C)+FCT(A-C))                     DG32 720
      C=.24153832843869158D-1*B                                         DG32 730
      Y=B*(Y+.48270044257363900D-1*(FCT(A+C)+FCT(A-C)))                 DG32 740
      RETURN                                                            DG32 750
      END                                                               DG32 760