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