Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-02 - decus/20-0026/dqg24.ssp
There are 2 other files named dqg24.ssp in the archive. Click here to see a list.
C                                                                       DG24  10
C     ..................................................................DG24  20
C                                                                       DG24  30
C        SUBROUTINE DQG24                                               DG24  40
C                                                                       DG24  50
C        PURPOSE                                                        DG24  60
C           TO COMPUTE INTEGRAL(FCT(X), SUMMED OVER X FROM XL TO XU)    DG24  70
C                                                                       DG24  80
C        USAGE                                                          DG24  90
C           CALL DQG24 (XL,XU,FCT,Y)                                    DG24 100
C           PARAMETER FCT REQUIRES AN EXTERNAL STATEMENT                DG24 110
C                                                                       DG24 120
C        DESCRIPTION OF PARAMETERS                                      DG24 130
C           XL     - DOUBLE PRECISION LOWER BOUND OF THE INTERVAL.      DG24 140
C           XU     - DOUBLE PRECISION UPPER BOUND OF THE INTERVAL.      DG24 150
C           FCT    - THE NAME OF AN EXTERNAL DOUBLE PRECISION FUNCTION  DG24 160
C                    SUBPROGRAM USED.                                   DG24 170
C           Y      - THE RESULTING DOUBLE PRECISION INTEGRAL VALUE.     DG24 180
C                                                                       DG24 190
C        REMARKS                                                        DG24 200
C           NONE                                                        DG24 210
C                                                                       DG24 220
C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED                  DG24 230
C           THE EXTERNAL DOUBLE PRECISION FUNCTION SUBPROGRAM FCT(X)    DG24 240
C           MUST BE FURNISHED BY THE USER.                              DG24 250
C                                                                       DG24 260
C        METHOD                                                         DG24 270
C           EVALUATION IS DONE BY MEANS OF 24-POINT GAUSS QUADRATURE    DG24 280
C           FORMULA, WHICH INTEGRATES POLYNOMIALS UP TO DEGREE 47       DG24 290
C           EXACTLY. FOR REFERENCE, SEE                                 DG24 300
C           V.I.KRYLOV, APPROXIMATE CALCULATION OF INTEGRALS,           DG24 310
C           MACMILLAN, NEW YORK/LONDON, 1962, PP.100-111 AND 337-340.   DG24 320
C                                                                       DG24 330
C     ..................................................................DG24 340
C                                                                       DG24 350
      SUBROUTINE DQG24(XL,XU,FCT,Y)                                     DG24 360
C                                                                       DG24 370
C                                                                       DG24 380
      DOUBLE PRECISION XL,XU,Y,A,B,C,FCT                                DG24 390
C                                                                       DG24 400
      A=.5D0*(XU+XL)                                                    DG24 410
      B=XU-XL                                                           DG24 420
      C=.49759360999851068D0*B                                          DG24 430
      Y=.61706148999935998D-2*(FCT(A+C)+FCT(A-C))                       DG24 440
      C=.48736427798565475D0*B                                          DG24 450
      Y=Y+.14265694314466832D-1*(FCT(A+C)+FCT(A-C))                     DG24 460
      C=.46913727600136638D0*B                                          DG24 470
      Y=Y+.22138719408709903D-1*(FCT(A+C)+FCT(A-C))                     DG24 480
      C=.44320776350220052D0*B                                          DG24 490
      Y=Y+.29649292457718390D-1*(FCT(A+C)+FCT(A-C))                     DG24 500
      C=.41000099298695146D0*B                                          DG24 510
      Y=Y+.36673240705540153D-1*(FCT(A+C)+FCT(A-C))                     DG24 520
      C=.37006209578927718D0*B                                          DG24 530
      Y=Y+.43095080765976638D-1*(FCT(A+C)+FCT(A-C))                     DG24 540
      C=.32404682596848778D0*B                                          DG24 550
      Y=Y+.48809326052056944D-1*(FCT(A+C)+FCT(A-C))                     DG24 560
      C=.27271073569441977D0*B                                          DG24 570
      Y=Y+.53722135057982817D-1*(FCT(A+C)+FCT(A-C))                     DG24 580
      C=.21689675381302257D0*B                                          DG24 590
      Y=Y+.57752834026862801D-1*(FCT(A+C)+FCT(A-C))                     DG24 600
      C=.15752133984808169D0*B                                          DG24 610
      Y=Y+.60835236463901696D-1*(FCT(A+C)+FCT(A-C))                     DG24 620
      C=.9555943373680815D-1*B                                          DG24 630
      Y=Y+.62918728173414148D-1*(FCT(A+C)+FCT(A-C))                     DG24 640
      C=.32028446431302813D-1*B                                         DG24 650
      Y=B*(Y+.63969097673376078D-1*(FCT(A+C)+FCT(A-C)))                 DG24 660
      RETURN                                                            DG24 670
      END                                                               DG24 680