--- rpl/lapack/lapack/iladlr.f 2010/12/21 13:53:41 1.8 +++ rpl/lapack/lapack/iladlr.f 2016/08/27 15:34:43 1.17 @@ -1,12 +1,87 @@ - INTEGER FUNCTION ILADLR( M, N, A, LDA ) - IMPLICIT NONE +*> \brief \b ILADLR scans a matrix for its last non-zero row. +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +*> \htmlonly +*> Download ILADLR + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> +*> [TXT] +*> \endhtmlonly +* +* Definition: +* =========== +* +* INTEGER FUNCTION ILADLR( M, N, A, LDA ) +* +* .. Scalar Arguments .. +* INTEGER M, N, LDA +* .. +* .. Array Arguments .. +* DOUBLE PRECISION A( LDA, * ) +* .. +* +* +*> \par Purpose: +* ============= +*> +*> \verbatim +*> +*> ILADLR scans A for its last non-zero row. +*> \endverbatim +* +* Arguments: +* ========== +* +*> \param[in] M +*> \verbatim +*> M is INTEGER +*> The number of rows of the matrix A. +*> \endverbatim +*> +*> \param[in] N +*> \verbatim +*> N is INTEGER +*> The number of columns of the matrix A. +*> \endverbatim +*> +*> \param[in] A +*> \verbatim +*> A is DOUBLE PRECISION array, dimension (LDA,N) +*> The m by n matrix A. +*> \endverbatim +*> +*> \param[in] LDA +*> \verbatim +*> LDA is INTEGER +*> The leading dimension of the array A. LDA >= max(1,M). +*> \endverbatim +* +* Authors: +* ======== +* +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. * -* -- LAPACK auxiliary routine (version 3.2.2) -- +*> \date September 2012 * -* -- June 2010 -- +*> \ingroup auxOTHERauxiliary +* +* ===================================================================== + INTEGER FUNCTION ILADLR( M, N, A, LDA ) * +* -- LAPACK auxiliary routine (version 3.4.2) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +* September 2012 * * .. Scalar Arguments .. INTEGER M, N, LDA @@ -15,26 +90,6 @@ DOUBLE PRECISION A( LDA, * ) * .. * -* Purpose -* ======= -* -* ILADLR scans A for its last non-zero row. -* -* Arguments -* ========= -* -* M (input) INTEGER -* The number of rows of the matrix A. -* -* N (input) INTEGER -* The number of columns of the matrix A. -* -* A (input) DOUBLE PRECISION array, dimension (LDA,N) -* The m by n matrix A. -* -* LDA (input) INTEGER -* The leading dimension of the array A. LDA >= max(1,M). -* * ===================================================================== * * .. Parameters .. @@ -55,9 +110,10 @@ * Scan up each column tracking the last zero row seen. ILADLR = 0 DO J = 1, N - DO I = M, 1, -1 - IF( A(I, J).NE.ZERO ) EXIT - END DO + I=M + DO WHILE((A(MAX(I,1),J).EQ.ZERO).AND.(I.GE.1)) + I=I-1 + ENDDO ILADLR = MAX( ILADLR, I ) END DO END IF