File indexing completed on 2025-08-05 08:21:15
0001
0002
0003
0004
0005
0006
0007 FUNCTION PYRNM3(RGUT)
0008
0009
0010 IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0011 IMPLICIT INTEGER(I-N)
0012 INTEGER PYK,PYCHGE,PYCOMP
0013
0014
0015 DOUBLE PRECISION R
0016 DOUBLE PRECISION TOL
0017 EXTERNAL PYALPS
0018 DOUBLE PRECISION PYALPS
0019 DATA TOL/0.001D0/
0020 DATA R/0.61803399D0/
0021
0022 C=1D0-R
0023
0024 BX=RGUT*PYALPS(RGUT**2)
0025 AX=MIN(50D0,BX*0.5D0)
0026 CX=MAX(2000D0,2D0*BX)
0027
0028 X0=AX
0029 X3=CX
0030 IF(ABS(CX-BX).GT.ABS(BX-AX))THEN
0031 X1=BX
0032 X2=BX+C*(CX-BX)
0033 ELSE
0034 X2=BX
0035 X1=BX-C*(BX-AX)
0036 ENDIF
0037 AS1=PYALPS(X1**2)
0038 F1=ABS(X1-RGUT*AS1)
0039 AS2=PYALPS(X2**2)
0040 F2=ABS(X2-RGUT*AS2)
0041 100 IF(ABS(X3-X0).GT.TOL*(ABS(X1)+ABS(X2))) THEN
0042 IF(F2.LT.F1) THEN
0043 X0=X1
0044 X1=X2
0045 X2=R*X1+C*X3
0046 F1=F2
0047 AS2=PYALPS(X2**2)
0048 F2=ABS(X2-RGUT*AS2)
0049 ELSE
0050 X3=X2
0051 X2=X1
0052 X1=R*X2+C*X0
0053 F2=F1
0054 AS1=PYALPS(X1**2)
0055 F1=ABS(X1-RGUT*AS1)
0056 ENDIF
0057 GOTO 100
0058 ENDIF
0059 IF(F1.LT.F2) THEN
0060 PYRNM3=X1
0061 XMIN=X1
0062 ELSE
0063 PYRNM3=X2
0064 XMIN=X2
0065 ENDIF
0066
0067 RETURN
0068 END