File indexing completed on 2025-08-05 08:15:42
0001
0002
0003
0004
0005 FUNCTION GAUSS4(F,A,B,EPS)
0006 EXTERNAL F
0007 DIMENSION W(12),X(12)
0008 DATA CONST/1.0E-12/
0009 DATA W/0.1012285,.2223810,.3137067,.3623838,.0271525,
0010 & .0622535,0.0951585,.1246290,.1495960,.1691565,
0011 & .1826034,.1894506/
0012 DATA X/0.9602899,.7966665,.5255324,.1834346,.9894009,
0013 & .9445750,0.8656312,.7554044,.6178762,.4580168,
0014 & .2816036,.0950125/
0015 DELTA=CONST*ABS(A-B)
0016 GAUSS4=0.0
0017 AA=A
0018 5 Y=B-AA
0019 IF(ABS(Y).LE.DELTA) RETURN
0020 2 BB=AA+Y
0021 C1=0.5*(AA+BB)
0022 C2=C1-AA
0023 S8=0.0
0024 S16=0.0
0025 DO 1 I=1,4
0026 U=X(I)*C2
0027 1 S8=S8+W(I)*(F(C1+U)+F(C1-U))
0028 DO 3 I=5,12
0029 U=X(I)*C2
0030 3 S16=S16+W(I)*(F(C1+U)+F(C1-U))
0031 S8=S8*C2
0032 S16=S16*C2
0033 IF(ABS(S16-S8).GT.EPS*(1.+ABS(S16))) GOTO 4
0034 GAUSS4=GAUSS4+S16
0035 AA=BB
0036 GOTO 5
0037 4 Y=0.5*Y
0038 IF(ABS(Y).GT.DELTA) GOTO 2
0039 WRITE(6,7)
0040 GAUSS4=0.0
0041 RETURN
0042 7 FORMAT(1X,'GAUSS4....TOO HIGH ACURACY REQUIRED')
0043 END