1*> \brief \b ILAZLR scans a matrix for its last non-zero row. 2* 3* =========== DOCUMENTATION =========== 4* 5* Online html documentation available at 6* http://www.netlib.org/lapack/explore-html/ 7* 8*> \htmlonly 9*> Download ILAZLR + dependencies 10*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/ilazlr.f"> 11*> [TGZ]</a> 12*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/ilazlr.f"> 13*> [ZIP]</a> 14*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ilazlr.f"> 15*> [TXT]</a> 16*> \endhtmlonly 17* 18* Definition: 19* =========== 20* 21* INTEGER FUNCTION ILAZLR( M, N, A, LDA ) 22* 23* .. Scalar Arguments .. 24* INTEGER M, N, LDA 25* .. 26* .. Array Arguments .. 27* COMPLEX*16 A( LDA, * ) 28* .. 29* 30* 31*> \par Purpose: 32* ============= 33*> 34*> \verbatim 35*> 36*> ILAZLR scans A for its last non-zero row. 37*> \endverbatim 38* 39* Arguments: 40* ========== 41* 42*> \param[in] M 43*> \verbatim 44*> M is INTEGER 45*> The number of rows of the matrix A. 46*> \endverbatim 47*> 48*> \param[in] N 49*> \verbatim 50*> N is INTEGER 51*> The number of columns of the matrix A. 52*> \endverbatim 53*> 54*> \param[in] A 55*> \verbatim 56*> A is COMPLEX*16 array, dimension (LDA,N) 57*> The m by n matrix A. 58*> \endverbatim 59*> 60*> \param[in] LDA 61*> \verbatim 62*> LDA is INTEGER 63*> The leading dimension of the array A. LDA >= max(1,M). 64*> \endverbatim 65* 66* Authors: 67* ======== 68* 69*> \author Univ. of Tennessee 70*> \author Univ. of California Berkeley 71*> \author Univ. of Colorado Denver 72*> \author NAG Ltd. 73* 74*> \ingroup complex16OTHERauxiliary 75* 76* ===================================================================== 77 INTEGER FUNCTION ILAZLR( M, N, A, LDA ) 78* 79* -- LAPACK auxiliary routine -- 80* -- LAPACK is a software package provided by Univ. of Tennessee, -- 81* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 82* 83* .. Scalar Arguments .. 84 INTEGER M, N, LDA 85* .. 86* .. Array Arguments .. 87 COMPLEX*16 A( LDA, * ) 88* .. 89* 90* ===================================================================== 91* 92* .. Parameters .. 93 COMPLEX*16 ZERO 94 PARAMETER ( ZERO = (0.0D+0, 0.0D+0) ) 95* .. 96* .. Local Scalars .. 97 INTEGER I, J 98* .. 99* .. Executable Statements .. 100* 101* Quick test for the common case where one corner is non-zero. 102 IF( M.EQ.0 ) THEN 103 ILAZLR = M 104 ELSE IF( A(M, 1).NE.ZERO .OR. A(M, N).NE.ZERO ) THEN 105 ILAZLR = M 106 ELSE 107* Scan up each column tracking the last zero row seen. 108 ILAZLR = 0 109 DO J = 1, N 110 I=M 111 DO WHILE((A(MAX(I,1),J).EQ.ZERO).AND.(I.GE.1)) 112 I=I-1 113 ENDDO 114 ILAZLR = MAX( ILAZLR, I ) 115 END DO 116 END IF 117 RETURN 118 END 119