File:  [local] / rpl / lapack / lapack / ilazlr.f
Revision 1.9: download - view: text, annotated - select for diffs - revision graph
Fri Jul 22 07:38:13 2011 UTC (12 years, 10 months ago) by bertrand
Branches: MAIN
CVS tags: rpl-4_1_3, rpl-4_1_2, rpl-4_1_1, HEAD
En route vers la 4.4.1.

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

CVSweb interface <joel.bertrand@systella.fr>