1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
INTEGER FUNCTION ILACLC(M, N, A, LDA)
IMPLICIT NONE
!
! -- LAPACK auxiliary routine (version 3.1) --
! Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
! December 2007
!
! .. Scalar Arguments ..
INTEGER M, N, LDA
! ..
! .. Array Arguments ..
COMPLEX A( LDA, * )
! ..
!
! Purpose
! =======
!
! ILACLC scans A for its last non-zero column.
!
! Arguments
! =========
!
! M (input) INTEGER
! The number of rows of the matrix A.
!
! N (input) INTEGER
! The number of columns of the matrix A.
!
! A (input) COMPLEX array, dimension (LDA,N)
! The m by n matrix A.
!
! LDA (input) INTEGER
! The leading dimension of the array A. LDA >= max(1,M).
!
! =====================================================================
!
! .. Parameters ..
COMPLEX ZERO
PARAMETER ( ZERO = (0.0E+0, 0.0E+0) )
! ..
! .. Local Scalars ..
INTEGER I, J
! ..
! .. Executable Statements ..
!
! Quick test for the common case where one corner is non-zero.
IF( N.EQ.0 .OR. A(1, N).NE.ZERO .OR. A(M, N).NE.ZERO ) THEN
ILACLC = N
ELSE
! Now scan each column from the end, returning with the first non-zero.
DO ILACLC = N, 1, -1
DO I = 1, M
IF( A(I, ILACLC).NE.ZERO ) RETURN
END DO
END DO
END IF
RETURN
END FUNCTION
|