Annotation of rpl/lapack/lapack/iladlr.f, revision 1.1

1.1     ! bertrand    1:       INTEGER FUNCTION ILADLR(M, N, A, LDA)
        !             2:       IMPLICIT NONE
        !             3: *
        !             4: *  -- LAPACK auxiliary routine (version 3.2.1)                        --
        !             5: *
        !             6: *  -- April 2009                                                      --
        !             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 FUNCTION

CVSweb interface <joel.bertrand@systella.fr>