1265 real,
intent (in) :: x1
1266 real,
intent (in) :: x2
1267 real,
intent (in) :: xacc
1268 integer,
intent (in) :: iprint
1269 integer,
intent (out) :: ierr
1278 parameter(maxit = 20)
1300 if(luprint > 0)
then 1301 inquire(unit=luprint,opened=lopen)
1304 write(*,
'(a,i4)')
'Z_ROOT2: invalid unit number:',iprint
1322 if((fl > 0. .and. fh < 0.) .or. (fl < 0. .and. fh > 0.))
then 1330 s = sqrt(fm**2-fl*fh)
1331 if(
s == 0.)
goto 9000
1332 xnew =
xm+(
xm-xl)*(sign(1.,fl-fh)*fm/
s)
1337 if (
abs(xnew-zriddr) <= xacc)
then 1344 if (fnew == 0.)
goto 9000
1346 if(sign(fm,fnew) /= fm)
then 1351 elseif(sign(fl,fnew) /= fl)
then 1354 elseif(sign(fh,fnew) /= fh)
then 1362 if(
abs(xh-xl) <= xacc)
goto 9000
1364 if(luprint > 0)
write(luprint,
'(a,i4,5e14.6)') &
1365 'Z_ROOT2: iter,x1,x2,|x1-x2|,xacc,z:', iter,xl,xh, &
1366 abs(xl-xh),xacc,fnew
1370 if(luprint > 0)
write(luprint,
'(a)')
'Z_ROOT2: -> ierr=2' 1372 else if (fl == 0.)
then 1374 else if (fh == 0.)
then 1386 if(luprint > 0)
write(luprint,
'(a,2i3,5e13.5)') &
1387 'Z_ROOT2: ierr,iter,xl,xh,acc,x0,z0:', ierr,iter,xl,xh,xacc, &
real(sp), dimension(:,:), allocatable, target s
real function z_root2(func, x1, x2, xacc, iprint, ierr)
real(sp), dimension(:), allocatable, target xm