--- rpl/lapack/lapack/zgesdd.f 2018/05/29 07:18:15 1.19 +++ rpl/lapack/lapack/zgesdd.f 2023/08/07 08:39:19 1.20 @@ -199,9 +199,10 @@ *> \param[out] INFO *> \verbatim *> INFO is INTEGER -*> = 0: successful exit. -*> < 0: if INFO = -i, the i-th argument had an illegal value. -*> > 0: The updating process of DBDSDC did not converge. +*> < 0: if INFO = -i, the i-th argument had an illegal value. +*> = -4: if A had a NAN entry. +*> > 0: The updating process of DBDSDC did not converge. +*> = 0: successful exit. *> \endverbatim * * Authors: @@ -212,8 +213,6 @@ *> \author Univ. of Colorado Denver *> \author NAG Ltd. * -*> \date June 2016 -* *> \ingroup complex16GEsing * *> \par Contributors: @@ -227,10 +226,9 @@ $ WORK, LWORK, RWORK, IWORK, INFO ) implicit none * -* -- LAPACK driver routine (version 3.7.0) -- +* -- LAPACK driver routine -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* June 2016 * * .. Scalar Arguments .. CHARACTER JOBZ @@ -281,9 +279,10 @@ $ ZLASET, ZUNGBR, ZUNGLQ, ZUNGQR, ZUNMBR * .. * .. External Functions .. - LOGICAL LSAME - DOUBLE PRECISION DLAMCH, ZLANGE - EXTERNAL LSAME, DLAMCH, ZLANGE + LOGICAL LSAME, DISNAN + DOUBLE PRECISION DLAMCH, ZLANGE, DROUNDUP_LWORK + EXTERNAL LSAME, DLAMCH, ZLANGE, DISNAN, + $ DROUNDUP_LWORK * .. * .. Intrinsic Functions .. INTRINSIC INT, MAX, MIN, SQRT @@ -619,7 +618,7 @@ MAXWRK = MAX( MAXWRK, MINWRK ) END IF IF( INFO.EQ.0 ) THEN - WORK( 1 ) = MAXWRK + WORK( 1 ) = DROUNDUP_LWORK( MAXWRK ) IF( LWORK.LT.MINWRK .AND. .NOT. LQUERY ) THEN INFO = -12 END IF @@ -647,6 +646,10 @@ * Scale A if max element outside range [SMLNUM,BIGNUM] * ANRM = ZLANGE( 'M', M, N, A, LDA, DUM ) + IF( DISNAN( ANRM ) ) THEN + INFO = -4 + RETURN + END IF ISCL = 0 IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN ISCL = 1 @@ -2211,7 +2214,7 @@ * * Return optimal workspace in WORK(1) * - WORK( 1 ) = MAXWRK + WORK( 1 ) = DROUNDUP_LWORK( MAXWRK ) * RETURN *