133 INTEGER n, info, lda, ldaf
137 COMPLEX*16 a( lda, * ), af( ldaf, * )
138 DOUBLE PRECISION work( * )
144 INTEGER ncols, i, j, k, kp
145 DOUBLE PRECISION amax, umax, rpvgrw, tmp
153 INTRINSIC abs,
REAL, dimag, max, min
156 DOUBLE PRECISION cabs1
159 cabs1( zdum ) = abs( dble( zdum ) ) + abs( dimag( zdum ) )
163 upper =
lsame(
'Upper', uplo )
164 IF ( info.EQ.0 )
THEN
186 work( n+i ) = max( cabs1( a( i,j ) ), work( n+i ) )
187 work( n+j ) = max( cabs1( a( i,j ) ), work( n+j ) )
193 work( n+i ) = max( cabs1( a( i, j ) ), work( n+i ) )
194 work( n+j ) = max( cabs1( a( i, j ) ), work( n+j ) )
208 DO WHILE ( k .LT. ncols .AND. k.GT.0 )
209 IF ( ipiv( k ).GT.0 )
THEN
212 IF ( kp .NE. k )
THEN
214 work( n+k ) = work( n+kp )
218 work( k ) = max( cabs1( af( i, k ) ), work( k ) )
225 work( n+k-1 ) = work( n+kp )
228 work( k ) = max( cabs1( af( i, k ) ), work( k ) )
230 $ max( cabs1( af( i, k-1 ) ), work( k-1 ) )
232 work( k ) = max( cabs1( af( k, k ) ), work( k ) )
237 DO WHILE ( k .LE. n )
238 IF ( ipiv( k ).GT.0 )
THEN
240 IF ( kp .NE. k )
THEN
242 work( n+k ) = work( n+kp )
249 work( n+k ) = work( n+kp )
256 DO WHILE ( k .LE. ncols )
257 IF ( ipiv( k ).GT.0 )
THEN
260 IF ( kp .NE. k )
THEN
262 work( n+k ) = work( n+kp )
266 work( k ) = max( cabs1( af( i, k ) ), work( k ) )
273 work( n+k+1 ) = work( n+kp )
276 work( k ) = max( cabs1( af( i, k ) ), work( k ) )
278 $ max( cabs1( af( i, k+1 ) ) , work( k+1 ) )
280 work(k) = max( cabs1( af( k, k ) ), work( k ) )
285 DO WHILE ( k .GE. 1 )
286 IF ( ipiv( k ).GT.0 )
THEN
288 IF ( kp .NE. k )
THEN
290 work( n+k ) = work( n+kp )
297 work( n+k ) = work( n+kp )
315 IF ( umax /= 0.0d+0 )
THEN
316 rpvgrw = min( amax / umax, rpvgrw )
323 IF ( umax /= 0.0d+0 )
THEN
324 rpvgrw = min( amax / umax, rpvgrw )