github.com/gonum/lapack@v0.0.0-20181123203213-e4cdc5a0bff9/internal/testdata/netlib/dlacpy.f (about)

     1  *> \brief \b DLACPY copies all or part of one two-dimensional array to another.
     2  *
     3  *  =========== DOCUMENTATION ===========
     4  *
     5  * Online html documentation available at 
     6  *            http://www.netlib.org/lapack/explore-html/ 
     7  *
     8  *> \htmlonly
     9  *> Download DLACPY + dependencies 
    10  *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlacpy.f"> 
    11  *> [TGZ]</a> 
    12  *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlacpy.f"> 
    13  *> [ZIP]</a> 
    14  *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlacpy.f"> 
    15  *> [TXT]</a>
    16  *> \endhtmlonly 
    17  *
    18  *  Definition:
    19  *  ===========
    20  *
    21  *       SUBROUTINE DLACPY( UPLO, M, N, A, LDA, B, LDB )
    22  * 
    23  *       .. Scalar Arguments ..
    24  *       CHARACTER          UPLO
    25  *       INTEGER            LDA, LDB, M, N
    26  *       ..
    27  *       .. Array Arguments ..
    28  *       DOUBLE PRECISION   A( LDA, * ), B( LDB, * )
    29  *       ..
    30  *  
    31  *
    32  *> \par Purpose:
    33  *  =============
    34  *>
    35  *> \verbatim
    36  *>
    37  *> DLACPY 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 DOUBLE PRECISION array, dimension (LDA,N)
    68  *>          The m by n matrix A.  If UPLO = 'U', only the upper triangle
    69  *>          or trapezoid is accessed; if UPLO = 'L', only the lower
    70  *>          triangle or trapezoid is 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 DOUBLE PRECISION 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  *
    94  *> \author Univ. of Tennessee 
    95  *> \author Univ. of California Berkeley 
    96  *> \author Univ. of Colorado Denver 
    97  *> \author NAG Ltd. 
    98  *
    99  *> \date September 2012
   100  *
   101  *> \ingroup auxOTHERauxiliary
   102  *
   103  *  =====================================================================
   104        SUBROUTINE DLACPY( UPLO, M, N, A, LDA, B, LDB )
   105  *
   106  *  -- LAPACK auxiliary routine (version 3.4.2) --
   107  *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
   108  *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
   109  *     September 2012
   110  *
   111  *     .. Scalar Arguments ..
   112        CHARACTER          UPLO
   113        INTEGER            LDA, LDB, M, N
   114  *     ..
   115  *     .. Array Arguments ..
   116        DOUBLE PRECISION   A( LDA, * ), B( LDB, * )
   117  *     ..
   118  *
   119  *  =====================================================================
   120  *
   121  *     .. Local Scalars ..
   122        INTEGER            I, J
   123  *     ..
   124  *     .. External Functions ..
   125        LOGICAL            LSAME
   126        EXTERNAL           LSAME
   127  *     ..
   128  *     .. Intrinsic Functions ..
   129        INTRINSIC          MIN
   130  *     ..
   131  *     .. Executable Statements ..
   132  *
   133        IF( LSAME( UPLO, 'U' ) ) THEN
   134           DO 20 J = 1, N
   135              DO 10 I = 1, MIN( J, M )
   136                 B( I, J ) = A( I, J )
   137     10       CONTINUE
   138     20    CONTINUE
   139        ELSE IF( LSAME( UPLO, 'L' ) ) THEN
   140           DO 40 J = 1, N
   141              DO 30 I = J, M
   142                 B( I, J ) = A( I, J )
   143     30       CONTINUE
   144     40    CONTINUE
   145        ELSE
   146           DO 60 J = 1, N
   147              DO 50 I = 1, M
   148                 B( I, J ) = A( I, J )
   149     50       CONTINUE
   150     60    CONTINUE
   151        END IF
   152        RETURN
   153  *
   154  *     End of DLACPY
   155  *
   156        END