![]() ![]() | ![]() |
Mise à jour de lapack vers la version 3.3.0.
1: INTEGER FUNCTION ILAZLR( 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: COMPLEX*16 A( LDA, * ) 16: * .. 17: * 18: * Purpose 19: * ======= 20: * 21: * ILAZLR 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) COMPLEX*16 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: COMPLEX*16 ZERO 42: PARAMETER ( ZERO = (0.0D+0, 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: ILAZLR = M 52: ELSE IF( A(M, 1).NE.ZERO .OR. A(M, N).NE.ZERO ) THEN 53: ILAZLR = M 54: ELSE 55: * Scan up each column tracking the last zero row seen. 56: ILAZLR = 0 57: DO J = 1, N 58: DO I = M, 1, -1 59: IF( A(I, J).NE.ZERO ) EXIT 60: END DO 61: ILAZLR = MAX( ILAZLR, I ) 62: END DO 63: END IF 64: RETURN 65: END