--- rpl/lapack/lapack/dgebal.f 2010/08/06 15:32:22 1.4 +++ rpl/lapack/lapack/dgebal.f 2010/08/07 13:18:06 1.5 @@ -1,9 +1,9 @@ SUBROUTINE DGEBAL( JOB, N, A, LDA, ILO, IHI, SCALE, INFO ) * -* -- LAPACK routine (version 3.2) -- +* -- LAPACK routine (version 3.2.2) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2006 +* June 2010 * * .. Scalar Arguments .. CHARACTER JOB @@ -116,10 +116,10 @@ $ SFMIN2 * .. * .. External Functions .. - LOGICAL LSAME + LOGICAL DISNAN, LSAME INTEGER IDAMAX DOUBLE PRECISION DLAMCH - EXTERNAL LSAME, IDAMAX, DLAMCH + EXTERNAL DISNAN, LSAME, IDAMAX, DLAMCH * .. * .. External Subroutines .. EXTERNAL DSCAL, DSWAP, XERBLA @@ -266,6 +266,14 @@ 160 CONTINUE IF( C.GE.G .OR. MAX( F, C, CA ).GE.SFMAX2 .OR. $ MIN( R, G, RA ).LE.SFMIN2 )GO TO 170 + IF( DISNAN( C+F+CA+R+G+RA ) ) THEN +* +* Exit if NaN to avoid infinite loop +* + INFO = -3 + CALL XERBLA( 'DGEBAL', -INFO ) + RETURN + END IF F = F*SCLFAC C = C*SCLFAC CA = CA*SCLFAC