You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
121 lines
2.9 KiB
121 lines
2.9 KiB
*> \brief \b ILAZLR |
|
* |
|
* =========== DOCUMENTATION =========== |
|
* |
|
* Online html documentation available at |
|
* http://www.netlib.org/lapack/explore-html/ |
|
* |
|
*> \htmlonly |
|
*> Download ILAZLR + dependencies |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/ilazlr.f"> |
|
*> [TGZ]</a> |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/ilazlr.f"> |
|
*> [ZIP]</a> |
|
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ilazlr.f"> |
|
*> [TXT]</a> |
|
*> \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 April 2012 |
|
* |
|
*> \ingroup complex16OTHERauxiliary |
|
* |
|
* ===================================================================== |
|
INTEGER FUNCTION ILAZLR( M, N, A, LDA ) |
|
* |
|
* -- LAPACK auxiliary routine (version 3.4.1) -- |
|
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
|
* April 2012 |
|
* |
|
* .. Scalar Arguments .. |
|
INTEGER M, N, LDA |
|
* .. |
|
* .. Array Arguments .. |
|
COMPLEX*16 A( LDA, * ) |
|
* .. |
|
* |
|
* ===================================================================== |
|
* |
|
* .. Parameters .. |
|
COMPLEX*16 ZERO |
|
PARAMETER ( ZERO = (0.0D+0, 0.0D+0) ) |
|
* .. |
|
* .. Local Scalars .. |
|
INTEGER I, J |
|
* .. |
|
* .. Executable Statements .. |
|
* |
|
* Quick test for the common case where one corner is non-zero. |
|
IF( M.EQ.0 ) THEN |
|
ILAZLR = M |
|
ELSE IF( A(M, 1).NE.ZERO .OR. A(M, N).NE.ZERO ) THEN |
|
ILAZLR = M |
|
ELSE |
|
* Scan up each column tracking the last zero row seen. |
|
ILAZLR = 0 |
|
DO J = 1, N |
|
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
|
|
|