--- rpl/lapack/lapack/dhsein.f 2012/12/14 14:22:30 1.11 +++ rpl/lapack/lapack/dhsein.f 2014/01/27 09:24:34 1.12 @@ -108,6 +108,7 @@ *> \verbatim *> H is DOUBLE PRECISION array, dimension (LDH,N) *> The upper Hessenberg matrix H. +*> If a NaN is detected in H, the routine will return with INFO=-6. *> \endverbatim *> *> \param[in] LDH @@ -243,7 +244,7 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date November 2011 +*> \date November 2013 * *> \ingroup doubleOTHERcomputational * @@ -262,10 +263,10 @@ $ VL, LDVL, VR, LDVR, MM, M, WORK, IFAILL, $ IFAILR, INFO ) * -* -- LAPACK computational routine (version 3.4.0) -- +* -- LAPACK computational routine (version 3.5.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2011 +* November 2013 * * .. Scalar Arguments .. CHARACTER EIGSRC, INITV, SIDE @@ -291,9 +292,9 @@ $ WKR * .. * .. External Functions .. - LOGICAL LSAME + LOGICAL LSAME, DISNAN DOUBLE PRECISION DLAMCH, DLANHS - EXTERNAL LSAME, DLAMCH, DLANHS + EXTERNAL LSAME, DLAMCH, DLANHS, DISNAN * .. * .. External Subroutines .. EXTERNAL DLAEIN, XERBLA @@ -423,7 +424,10 @@ * has not ben computed before. * HNORM = DLANHS( 'I', KR-KL+1, H( KL, KL ), LDH, WORK ) - IF( HNORM.GT.ZERO ) THEN + IF( DISNAN( HNORM ) ) THEN + INFO = -6 + RETURN + ELSE IF( HNORM.GT.ZERO ) THEN EPS3 = HNORM*ULP ELSE EPS3 = SMLNUM