1: SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB )
2: *
3: * -- LAPACK auxiliary routine (version 3.2) --
4: * -- LAPACK is a software package provided by Univ. of Tennessee, --
5: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
6: * November 2006
7: *
8: * .. Scalar Arguments ..
9: CHARACTER UPLO
10: INTEGER LDA, LDB, M, N
11: * ..
12: * .. Array Arguments ..
13: COMPLEX*16 A( LDA, * ), B( LDB, * )
14: * ..
15: *
16: * Purpose
17: * =======
18: *
19: * ZLACPY copies all or part of a two-dimensional matrix A to another
20: * matrix B.
21: *
22: * Arguments
23: * =========
24: *
25: * UPLO (input) CHARACTER*1
26: * Specifies the part of the matrix A to be copied to B.
27: * = 'U': Upper triangular part
28: * = 'L': Lower triangular part
29: * Otherwise: All of the matrix A
30: *
31: * M (input) INTEGER
32: * The number of rows of the matrix A. M >= 0.
33: *
34: * N (input) INTEGER
35: * The number of columns of the matrix A. N >= 0.
36: *
37: * A (input) COMPLEX*16 array, dimension (LDA,N)
38: * The m by n matrix A. If UPLO = 'U', only the upper trapezium
39: * is accessed; if UPLO = 'L', only the lower trapezium is
40: * accessed.
41: *
42: * LDA (input) INTEGER
43: * The leading dimension of the array A. LDA >= max(1,M).
44: *
45: * B (output) COMPLEX*16 array, dimension (LDB,N)
46: * On exit, B = A in the locations specified by UPLO.
47: *
48: * LDB (input) INTEGER
49: * The leading dimension of the array B. LDB >= max(1,M).
50: *
51: * =====================================================================
52: *
53: * .. Local Scalars ..
54: INTEGER I, J
55: * ..
56: * .. External Functions ..
57: LOGICAL LSAME
58: EXTERNAL LSAME
59: * ..
60: * .. Intrinsic Functions ..
61: INTRINSIC MIN
62: * ..
63: * .. Executable Statements ..
64: *
65: IF( LSAME( UPLO, 'U' ) ) THEN
66: DO 20 J = 1, N
67: DO 10 I = 1, MIN( J, M )
68: B( I, J ) = A( I, J )
69: 10 CONTINUE
70: 20 CONTINUE
71: *
72: ELSE IF( LSAME( UPLO, 'L' ) ) THEN
73: DO 40 J = 1, N
74: DO 30 I = J, M
75: B( I, J ) = A( I, J )
76: 30 CONTINUE
77: 40 CONTINUE
78: *
79: ELSE
80: DO 60 J = 1, N
81: DO 50 I = 1, M
82: B( I, J ) = A( I, J )
83: 50 CONTINUE
84: 60 CONTINUE
85: END IF
86: *
87: RETURN
88: *
89: * End of ZLACPY
90: *
91: END
CVSweb interface <joel.bertrand@systella.fr>