1 *> \brief \b ILAZLR 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 *> \date April 2012 75 * 76 *> \ingroup complex16OTHERauxiliary 77 * 78 * ===================================================================== 79 INTEGER FUNCTION ILAZLR( M, N, A, LDA ) 80 * 81 * -- LAPACK auxiliary routine (version 3.4.1) -- 82 * -- LAPACK is a software package provided by Univ. of Tennessee, -- 83 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 84 * April 2012 85 * 86 * .. Scalar Arguments .. 87 INTEGER M, N, LDA 88 * .. 89 * .. Array Arguments .. 90 COMPLEX*16 A( LDA, * ) 91 * .. 92 * 93 * ===================================================================== 94 * 95 * .. Parameters .. 96 COMPLEX*16 ZERO 97 PARAMETER ( ZERO = (0.0D+0, 0.0D+0) ) 98 * .. 99 * .. Local Scalars .. 100 INTEGER I, J 101 * .. 102 * .. Executable Statements .. 103 * 104 * Quick test for the common case where one corner is non-zero. 105 IF( M.EQ.0 ) THEN 106 ILAZLR = M 107 ELSE IF( A(M, 1).NE.ZERO .OR. A(M, N).NE.ZERO ) THEN 108 ILAZLR = M 109 ELSE 110 * Scan up each column tracking the last zero row seen. 111 ILAZLR = 0 112 DO J = 1, N 113 I=M 114 DO WHILE((A(MAX(I,1),J).EQ.ZERO).AND.(I.GE.1)) 115 I=I-1 116 ENDDO 117 ILAZLR = MAX( ILAZLR, I ) 118 END DO 119 END IF 120 RETURN 121 END 122