Home | History | Annotate | Download | only in lapack
      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