Annotation of rpl/lapack/lapack/zlacpy.f, revision 1.18
1.11 bertrand 1: *> \brief \b ZLACPY copies all or part of one two-dimensional array to another.
1.8 bertrand 2: *
3: * =========== DOCUMENTATION ===========
4: *
1.15 bertrand 5: * Online html documentation available at
6: * http://www.netlib.org/lapack/explore-html/
1.8 bertrand 7: *
8: *> \htmlonly
1.15 bertrand 9: *> Download ZLACPY + dependencies
10: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zlacpy.f">
11: *> [TGZ]</a>
12: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zlacpy.f">
13: *> [ZIP]</a>
14: *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zlacpy.f">
1.8 bertrand 15: *> [TXT]</a>
1.15 bertrand 16: *> \endhtmlonly
1.8 bertrand 17: *
18: * Definition:
19: * ===========
20: *
21: * SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB )
1.15 bertrand 22: *
1.8 bertrand 23: * .. Scalar Arguments ..
24: * CHARACTER UPLO
25: * INTEGER LDA, LDB, M, N
26: * ..
27: * .. Array Arguments ..
28: * COMPLEX*16 A( LDA, * ), B( LDB, * )
29: * ..
1.15 bertrand 30: *
1.8 bertrand 31: *
32: *> \par Purpose:
33: * =============
34: *>
35: *> \verbatim
36: *>
37: *> ZLACPY copies all or part of a two-dimensional matrix A to another
38: *> matrix B.
39: *> \endverbatim
40: *
41: * Arguments:
42: * ==========
43: *
44: *> \param[in] UPLO
45: *> \verbatim
46: *> UPLO is CHARACTER*1
47: *> Specifies the part of the matrix A to be copied to B.
48: *> = 'U': Upper triangular part
49: *> = 'L': Lower triangular part
50: *> Otherwise: All of the matrix A
51: *> \endverbatim
52: *>
53: *> \param[in] M
54: *> \verbatim
55: *> M is INTEGER
56: *> The number of rows of the matrix A. M >= 0.
57: *> \endverbatim
58: *>
59: *> \param[in] N
60: *> \verbatim
61: *> N is INTEGER
62: *> The number of columns of the matrix A. N >= 0.
63: *> \endverbatim
64: *>
65: *> \param[in] A
66: *> \verbatim
67: *> A is COMPLEX*16 array, dimension (LDA,N)
68: *> The m by n matrix A. If UPLO = 'U', only the upper trapezium
69: *> is accessed; if UPLO = 'L', only the lower trapezium is
70: *> accessed.
71: *> \endverbatim
72: *>
73: *> \param[in] LDA
74: *> \verbatim
75: *> LDA is INTEGER
76: *> The leading dimension of the array A. LDA >= max(1,M).
77: *> \endverbatim
78: *>
79: *> \param[out] B
80: *> \verbatim
81: *> B is COMPLEX*16 array, dimension (LDB,N)
82: *> On exit, B = A in the locations specified by UPLO.
83: *> \endverbatim
84: *>
85: *> \param[in] LDB
86: *> \verbatim
87: *> LDB is INTEGER
88: *> The leading dimension of the array B. LDB >= max(1,M).
89: *> \endverbatim
90: *
91: * Authors:
92: * ========
93: *
1.15 bertrand 94: *> \author Univ. of Tennessee
95: *> \author Univ. of California Berkeley
96: *> \author Univ. of Colorado Denver
97: *> \author NAG Ltd.
1.8 bertrand 98: *
99: *> \ingroup complex16OTHERauxiliary
100: *
101: * =====================================================================
1.1 bertrand 102: SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB )
103: *
1.18 ! bertrand 104: * -- LAPACK auxiliary routine --
1.1 bertrand 105: * -- LAPACK is a software package provided by Univ. of Tennessee, --
106: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
107: *
108: * .. Scalar Arguments ..
109: CHARACTER UPLO
110: INTEGER LDA, LDB, M, N
111: * ..
112: * .. Array Arguments ..
113: COMPLEX*16 A( LDA, * ), B( LDB, * )
114: * ..
115: *
116: * =====================================================================
117: *
118: * .. Local Scalars ..
119: INTEGER I, J
120: * ..
121: * .. External Functions ..
122: LOGICAL LSAME
123: EXTERNAL LSAME
124: * ..
125: * .. Intrinsic Functions ..
126: INTRINSIC MIN
127: * ..
128: * .. Executable Statements ..
129: *
130: IF( LSAME( UPLO, 'U' ) ) THEN
131: DO 20 J = 1, N
132: DO 10 I = 1, MIN( J, M )
133: B( I, J ) = A( I, J )
134: 10 CONTINUE
135: 20 CONTINUE
136: *
137: ELSE IF( LSAME( UPLO, 'L' ) ) THEN
138: DO 40 J = 1, N
139: DO 30 I = J, M
140: B( I, J ) = A( I, J )
141: 30 CONTINUE
142: 40 CONTINUE
143: *
144: ELSE
145: DO 60 J = 1, N
146: DO 50 I = 1, M
147: B( I, J ) = A( I, J )
148: 50 CONTINUE
149: 60 CONTINUE
150: END IF
151: *
152: RETURN
153: *
154: * End of ZLACPY
155: *
156: END
CVSweb interface <joel.bertrand@systella.fr>