1 *> \brief \b ILADLC 2 * 3 * =========== DOCUMENTATION =========== 4 * 5 * Online html documentation available at 6 * http://www.netlib.org/lapack/explore-html/ 7 * 8 *> \htmlonly 9 *> Download ILADLC + dependencies 10 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/iladlc.f"> 11 *> [TGZ]</a> 12 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/iladlc.f"> 13 *> [ZIP]</a> 14 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/iladlc.f"> 15 *> [TXT]</a> 16 *> \endhtmlonly 17 * 18 * Definition: 19 * =========== 20 * 21 * INTEGER FUNCTION ILADLC( M, N, A, LDA ) 22 * 23 * .. Scalar Arguments .. 24 * INTEGER M, N, LDA 25 * .. 26 * .. Array Arguments .. 27 * DOUBLE PRECISION A( LDA, * ) 28 * .. 29 * 30 * 31 *> \par Purpose: 32 * ============= 33 *> 34 *> \verbatim 35 *> 36 *> ILADLC scans A for its last non-zero column. 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 DOUBLE PRECISION 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 November 2011 75 * 76 *> \ingroup auxOTHERauxiliary 77 * 78 * ===================================================================== 79 INTEGER FUNCTION ILADLC( M, N, A, LDA ) 80 * 81 * -- LAPACK auxiliary routine (version 3.4.0) -- 82 * -- LAPACK is a software package provided by Univ. of Tennessee, -- 83 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 84 * November 2011 85 * 86 * .. Scalar Arguments .. 87 INTEGER M, N, LDA 88 * .. 89 * .. Array Arguments .. 90 DOUBLE PRECISION A( LDA, * ) 91 * .. 92 * 93 * ===================================================================== 94 * 95 * .. Parameters .. 96 DOUBLE PRECISION ZERO 97 PARAMETER ( ZERO = 0.0D+0 ) 98 * .. 99 * .. Local Scalars .. 100 INTEGER I 101 * .. 102 * .. Executable Statements .. 103 * 104 * Quick test for the common case where one corner is non-zero. 105 IF( N.EQ.0 ) THEN 106 ILADLC = N 107 ELSE IF( A(1, N).NE.ZERO .OR. A(M, N).NE.ZERO ) THEN 108 ILADLC = N 109 ELSE 110 * Now scan each column from the end, returning with the first non-zero. 111 DO ILADLC = N, 1, -1 112 DO I = 1, M 113 IF( A(I, ILADLC).NE.ZERO ) RETURN 114 END DO 115 END DO 116 END IF 117 RETURN 118 END 119