File indexing completed on 2025-08-05 08:21:10
0001
0002
0003
0004
0005
0006
0007
0008
0009 FUNCTION PYGAU2(F, A, B, EPS)
0010
0011
0012 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0013 IMPLICIT INTEGER(I-N)
0014 INTEGER PYK,PYCHGE,PYCOMP
0015
0016
0017 EXTERNAL F
0018 DOUBLE PRECISION F,W(12), X(12)
0019 DATA X( 1) /9.6028985649753623D-1/, W( 1) /1.0122853629037626D-1/
0020 DATA X( 2) /7.9666647741362674D-1/, W( 2) /2.2238103445337447D-1/
0021 DATA X( 3) /5.2553240991632899D-1/, W( 3) /3.1370664587788729D-1/
0022 DATA X( 4) /1.8343464249564980D-1/, W( 4) /3.6268378337836198D-1/
0023 DATA X( 5) /9.8940093499164993D-1/, W( 5) /2.7152459411754095D-2/
0024 DATA X( 6) /9.4457502307323258D-1/, W( 6) /6.2253523938647893D-2/
0025 DATA X( 7) /8.6563120238783174D-1/, W( 7) /9.5158511682492785D-2/
0026 DATA X( 8) /7.5540440835500303D-1/, W( 8) /1.2462897125553387D-1/
0027 DATA X( 9) /6.1787624440264375D-1/, W( 9) /1.4959598881657673D-1/
0028 DATA X(10) /4.5801677765722739D-1/, W(10) /1.6915651939500254D-1/
0029 DATA X(11) /2.8160355077925891D-1/, W(11) /1.8260341504492359D-1/
0030 DATA X(12) /9.5012509837637440D-2/, W(12) /1.8945061045506850D-1/
0031
0032
0033 H = 0D0
0034 IF(B .EQ. A) GOTO 140
0035 CONST = 5D-3 / ABS(B-A)
0036 BB = A
0037 100 CONTINUE
0038 AA = BB
0039 BB = B
0040 110 CONTINUE
0041 C1 = 0.5D0*(BB+AA)
0042 C2 = 0.5D0*(BB-AA)
0043 S8 = 0D0
0044 DO 120 I = 1, 4
0045 U = C2*X(I)
0046 S8 = S8 + W(I) * (F(C1+U) + F(C1-U))
0047 120 CONTINUE
0048 S16 = 0D0
0049 DO 130 I = 5, 12
0050 U = C2*X(I)
0051 S16 = S16 + W(I) * (F(C1+U) + F(C1-U))
0052 130 CONTINUE
0053 S16 = C2*S16
0054 IF(DABS(S16-C2*S8) .LE. EPS*(1D0+DABS(S16))) THEN
0055 H = H + S16
0056 IF(BB .NE. B) GOTO 100
0057 ELSE
0058 BB = C1
0059 IF(1D0 + CONST*ABS(C2) .NE. 1D0) GOTO 110
0060 H = 0D0
0061 CALL PYERRM(18,'(PYGAU2:) too high accuracy required')
0062 GOTO 140
0063 ENDIF
0064 140 CONTINUE
0065 PYGAU2 = H
0066
0067 RETURN
0068 END