2 subroutine calcz(d,e,n,dmax,dmin,z,ierr)
22 smalln = small * small
23 if (smalln .eq.0)
then
26 if (smalln .eq.0)
goto 10
34 small = max(small,1e-99)
42 dd = abs( d(m) ) + abs( d(m+1) )
46 if ( df .le. small )
goto 2
48 112
format(i3,i9,1x,a3,1p4e16.8)
51 2
if ( m .ne. l )
then
52 if ( iter .eq. 600 )
then
53 write (6,*)
'too many iterations in calc'
65 g = ( d(l+1) - d(l) ) / ( 2.0 * e(l) )
67 g = d(m) - d(l) + e(l)/(g+sign(r,g))
77 if ( abs(r) .le. small )
then
85 r = ( d(i)-g )*s + 2.*c*b
92 z(k,i+1) = s*z(k,i)+c*f
93 z(k,i ) = c*z(k,i)-s*f
112 dmin = min( d(i) , dmin )
113 dmax = max( d(i) , dmax )
134 if (absa.gt.absb)
then
135 pythag = absa*sqrt(1. + (absb/absa)**2 )
140 pythag = absb*sqrt(1. + (absa/absb)**2 )
subroutine calcz(d, e, n, dmax, dmin, z, ierr)