Commit 36bf795453d15863a599868a6b990a89792db735

Authored by daniau
1 parent c90ee9d32e

git-svn-id: https://lxsd.femto-st.fr/svn/fvn@33 b657c933-2333-4658-acf2-d3c7c2708721

Showing 1 changed file with 14 additions and 14 deletions Side-by-side Diff

... ... @@ -2127,18 +2127,18 @@
2127 2127 !
2128 2128 subroutine fvn_z_muller (f,eps,eps1,kn,nguess,n,x,itmax,infer,ier)
2129 2129 implicit none
2130   - double precision :: rzero,rten,rhun,rp01,ax,eps1,qz,eps,tpq
  2130 + double precision :: rzero,rten,rhun,rp01,ax,eps1,qz,eps,tpq,eps1w
2131 2131 double complex :: d,dd,den,fprt,frt,h,rt,t1,t2,t3, &
2132 2132 tem,z0,z1,z2,bi,xx,xl,y0,y1,y2,x0, &
2133 2133 zero,p1,one,four,p5
2134   -
  2134 +
2135 2135 double complex, external :: f
2136 2136 integer :: ickmax,kn,nguess,n,itmax,ier,knp1,knpn,i,l,ic, &
2137 2137 knpng,jk,ick,nn,lm1,errcode
2138 2138 double complex :: x(kn+n)
2139 2139 integer :: infer(kn+n)
2140   -
2141   -
  2140 +
  2141 +
2142 2142 data zero/(0.0,0.0)/,p1/(0.1,0.0)/, &
2143 2143 one/(1.0,0.0)/,four/(4.0,0.0)/, &
2144 2144 p5/(0.5,0.0)/, &
... ... @@ -2150,8 +2150,8 @@
2150 2150 return
2151 2151 end if
2152 2152 !eps1 = rten **(-nsig)
2153   - eps1 = min(eps1,rp01)
2154   -
  2153 + eps1w = min(eps1,rp01)
  2154 +
2155 2155 knp1 = kn+1
2156 2156 knpn = kn+n
2157 2157 knpng = kn+nguess
... ... @@ -2199,7 +2199,7 @@
2199 2199 exit icloop
2200 2200 end if
2201 2201  
2202   -
  2202 +
2203 2203 z2 = fprt
2204 2204 y2 = frt
2205 2205 ! begin main algorithm
... ... @@ -2241,7 +2241,7 @@
2241 2241 h = d*h
2242 2242 rt = rt + h
2243 2243 ! check convergence of the first kind
2244   - if (cdabs(h) .le. eps1*max(cdabs(rt),ax)) then
  2244 + if (cdabs(h) .le. eps1w*max(cdabs(rt),ax)) then
2245 2245 if (ic .ne. 0) then
2246 2246 exit icloop
2247 2247 end if
2248 2248  
2249 2249  
2250 2250  
... ... @@ -2289,21 +2289,21 @@
2289 2289 infer(l) = jk
2290 2290 l = l+1
2291 2291 end do rloop
2292   -
  2292 +
2293 2293 contains
2294 2294 subroutine trans_rt()
2295   - tem = rten*eps1
  2295 + tem = rten*eps1w
2296 2296 if (cdabs(rt) .gt. ax) tem = tem*rt
2297 2297 rt = rt+tem
2298 2298 d = (h+tem)*d/h
2299 2299 h = h+tem
2300 2300 end subroutine trans_rt
2301   -
  2301 +
2302 2302 subroutine deflated_work(errcode)
2303 2303 ! errcode=0 => no errors
2304 2304 ! errcode=1 => jk>itmax or convergence of second kind achieved
2305 2305 integer :: errcode,flag
2306   -
  2306 +
2307 2307 flag=1
2308 2308 loop1: do while(flag==1)
2309 2309 errcode=0
2310 2310  
... ... @@ -2334,9 +2334,9 @@
2334 2334 errcode=1
2335 2335 return
2336 2336 end if
2337   -
  2337 +
2338 2338 end subroutine deflated_work
2339   -
  2339 +
2340 2340 end subroutine
2341 2341  
2342 2342