--- rpl/lapack/lapack/dlasd0.f 2011/11/21 20:42:58 1.10 +++ rpl/lapack/lapack/dlasd0.f 2023/08/07 08:38:58 1.22 @@ -1,26 +1,26 @@ -*> \brief \b DLASD0 +*> \brief \b DLASD0 computes the singular values of a real upper bidiagonal n-by-m matrix B with diagonal d and off-diagonal e. Used by sbdsdc. * * =========== DOCUMENTATION =========== * -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ * *> \htmlonly -*> Download DLASD0 + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> +*> Download DLASD0 + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> *> [TXT] -*> \endhtmlonly +*> \endhtmlonly * * Definition: * =========== * * SUBROUTINE DLASD0( N, SQRE, D, E, U, LDU, VT, LDVT, SMLSIZ, IWORK, * WORK, INFO ) -* +* * .. Scalar Arguments .. * INTEGER INFO, LDU, LDVT, N, SMLSIZ, SQRE * .. @@ -29,7 +29,7 @@ * DOUBLE PRECISION D( * ), E( * ), U( LDU, * ), VT( LDVT, * ), * $ WORK( * ) * .. -* +* * *> \par Purpose: * ============= @@ -72,7 +72,7 @@ *> On exit D, if INFO = 0, contains its singular values. *> \endverbatim *> -*> \param[in] E +*> \param[in,out] E *> \verbatim *> E is DOUBLE PRECISION array, dimension (M-1) *> Contains the subdiagonal entries of the bidiagonal matrix. @@ -81,7 +81,7 @@ *> *> \param[out] U *> \verbatim -*> U is DOUBLE PRECISION array, dimension at least (LDQ, N) +*> U is DOUBLE PRECISION array, dimension (LDU, N) *> On exit, U contains the left singular vectors. *> \endverbatim *> @@ -93,7 +93,7 @@ *> *> \param[out] VT *> \verbatim -*> VT is DOUBLE PRECISION array, dimension at least (LDVT, M) +*> VT is DOUBLE PRECISION array, dimension (LDVT, M) *> On exit, VT**T contains the right singular vectors. *> \endverbatim *> @@ -112,14 +112,12 @@ *> *> \param[out] IWORK *> \verbatim -*> IWORK is INTEGER work array. -*> Dimension must be at least (8 * N) +*> IWORK is INTEGER array, dimension (8*N) *> \endverbatim *> *> \param[out] WORK *> \verbatim -*> WORK is DOUBLE PRECISION work array. -*> Dimension must be at least (3 * M**2 + 2 * M) +*> WORK is DOUBLE PRECISION array, dimension (3*M**2+2*M) *> \endverbatim *> *> \param[out] INFO @@ -133,14 +131,12 @@ * Authors: * ======== * -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. -* -*> \date November 2011 +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. * -*> \ingroup auxOTHERauxiliary +*> \ingroup OTHERauxiliary * *> \par Contributors: * ================== @@ -152,10 +148,9 @@ SUBROUTINE DLASD0( N, SQRE, D, E, U, LDU, VT, LDVT, SMLSIZ, IWORK, $ WORK, INFO ) * -* -- LAPACK auxiliary routine (version 3.4.0) -- +* -- LAPACK auxiliary routine -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2011 * * .. Scalar Arguments .. INTEGER INFO, LDU, LDVT, N, SMLSIZ, SQRE @@ -302,6 +297,9 @@ CALL DLASD1( NL, NR, SQREI, D( NLF ), ALPHA, BETA, $ U( NLF, NLF ), LDU, VT( NLF, NLF ), LDVT, $ IWORK( IDXQC ), IWORK( IWK ), WORK, INFO ) +* +* Report the possible convergence failure. +* IF( INFO.NE.0 ) THEN RETURN END IF