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