--- rpl/lapack/lapack/ilazlr.f 2010/01/26 15:22:45 1.1.1.1
+++ rpl/lapack/lapack/ilazlr.f 2018/05/29 07:18:12 1.20
@@ -1,12 +1,87 @@
- INTEGER FUNCTION ILAZLR(M, N, A, LDA)
- IMPLICIT NONE
+*> \brief \b ILAZLR scans a matrix for its last non-zero row.
*
-* -- LAPACK auxiliary routine (version 3.2.1) --
+* =========== DOCUMENTATION ===========
*
-* -- April 2009 --
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
*
+*> \htmlonly
+*> Download ILAZLR + dependencies
+*>
+*> [TGZ]
+*>
+*> [ZIP]
+*>
+*> [TXT]
+*> \endhtmlonly
+*
+* Definition:
+* ===========
+*
+* INTEGER FUNCTION ILAZLR( M, N, A, LDA )
+*
+* .. Scalar Arguments ..
+* INTEGER M, N, LDA
+* ..
+* .. Array Arguments ..
+* COMPLEX*16 A( LDA, * )
+* ..
+*
+*
+*> \par Purpose:
+* =============
+*>
+*> \verbatim
+*>
+*> ILAZLR 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 COMPLEX*16 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.
+*
+*> \date December 2016
+*
+*> \ingroup complex16OTHERauxiliary
+*
+* =====================================================================
+ INTEGER FUNCTION ILAZLR( M, N, A, LDA )
+*
+* -- LAPACK auxiliary routine (version 3.7.0) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
+* December 2016
*
* .. Scalar Arguments ..
INTEGER M, N, LDA
@@ -15,26 +90,6 @@
COMPLEX*16 A( LDA, * )
* ..
*
-* Purpose
-* =======
-*
-* ILAZLR 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) COMPLEX*16 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,11 +110,12 @@
* Scan up each column tracking the last zero row seen.
ILAZLR = 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
ILAZLR = MAX( ILAZLR, I )
END DO
END IF
RETURN
- END FUNCTION
+ END