File:  [local] / rpl / lapack / lapack / iladlr.f
Revision 1.6: download - view: text, annotated - select for diffs - revision graph
Sat Aug 7 13:22:29 2010 UTC (13 years, 9 months ago) by bertrand
Branches: MAIN
CVS tags: HEAD
Mise à jour globale de Lapack 3.2.2.

    1:       INTEGER FUNCTION ILADLR( M, N, A, LDA )
    2:       IMPLICIT NONE
    3: *
    4: *  -- LAPACK auxiliary routine (version 3.2.2)                        --
    5: *
    6: *  -- June 2010                                                       --
    7: *
    8: *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
    9: *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
   10: *
   11: *     .. Scalar Arguments ..
   12:       INTEGER            M, N, LDA
   13: *     ..
   14: *     .. Array Arguments ..
   15:       DOUBLE PRECISION   A( LDA, * )
   16: *     ..
   17: *
   18: *  Purpose
   19: *  =======
   20: *
   21: *  ILADLR scans A for its last non-zero row.
   22: *
   23: *  Arguments
   24: *  =========
   25: *
   26: *  M       (input) INTEGER
   27: *          The number of rows of the matrix A.
   28: *
   29: *  N       (input) INTEGER
   30: *          The number of columns of the matrix A.
   31: *
   32: *  A       (input) DOUBLE PRECISION array, dimension (LDA,N)
   33: *          The m by n matrix A.
   34: *
   35: *  LDA     (input) INTEGER
   36: *          The leading dimension of the array A. LDA >= max(1,M).
   37: *
   38: *  =====================================================================
   39: *
   40: *     .. Parameters ..
   41:       DOUBLE PRECISION ZERO
   42:       PARAMETER ( ZERO = 0.0D+0 )
   43: *     ..
   44: *     .. Local Scalars ..
   45:       INTEGER I, J
   46: *     ..
   47: *     .. Executable Statements ..
   48: *
   49: *     Quick test for the common case where one corner is non-zero.
   50:       IF( M.EQ.0 ) THEN
   51:          ILADLR = M
   52:       ELSE IF( A(M, 1).NE.ZERO .OR. A(M, N).NE.ZERO ) THEN
   53:          ILADLR = M
   54:       ELSE
   55: *     Scan up each column tracking the last zero row seen.
   56:          ILADLR = 0
   57:          DO J = 1, N
   58:             DO I = M, 1, -1
   59:                IF( A(I, J).NE.ZERO ) EXIT
   60:             END DO
   61:             ILADLR = MAX( ILADLR, I )
   62:          END DO
   63:       END IF
   64:       RETURN
   65:       END

CVSweb interface <joel.bertrand@systella.fr>