30integer,
intent(in) :: is,l
31real(8),
intent(in) :: ufix
32real(8),
intent(inout) :: lambda0
33real(8),
intent(out) :: lambda
36integer,
parameter :: maxit=100
39real(8),
parameter :: umin=1.d-4
41real(8),
parameter :: lambdamin=1.d-2
44real(8),
parameter :: lambdamax=50.d0
46real(8),
parameter :: dl0=0.5d0
47real(8) f,fp,lambdap,dl,tol
49real(8),
external :: fyukawa,fyukawa0
53 if (
mp_mpi)
write(*,
'("Info(findlambda): lambda set to lambdamax : ",&
65 if (lambda < lambdamin)
then
72 if ((f*fp) < 0) dl=-0.5d0*dl
77 if (abs(f) < tol)
goto 10
84if (lambdap < lambdamin)
then
94 if (lambda < lambdamin)
then
102 if (abs(f) < tol)
goto 20
104 dl=-f*((lambda-lambdap)/(f-fp))
111if (nit >= maxit)
then
113 write(*,
'("Error(findlambda): max number of iterations to obtain lambda &
120 lambda0=lambda-0.5d0*dl0
121 if (
mp_mpi)
write(*,
'("Info(findlambda): lambda obtained in ",I4,&
122 &" iterations")') nit
subroutine findlambda(is, l, ufix, lambda0, lambda)
real(8) function fyukawa0(is, l, k)
real(8) function fyukawa(is, l, k, lambda)