File: ilacpy.f

package info (click to toggle)
scalapack 2.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 37,012 kB
  • sloc: fortran: 339,113; ansic: 74,517; makefile: 1,494; sh: 34
file content (89 lines) | stat: -rw-r--r-- 2,460 bytes parent folder | download | duplicates (12)
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
      SUBROUTINE ILACPY( UPLO, M, N, A, LDA, B, LDB )
*
*  -- ScaLAPACK tools routine (version 1.7) --
*     University of Tennessee, Knoxville, Oak Ridge National Laboratory,
*     and University of California, Berkeley.
*     May 1, 1997
*
*     .. Scalar Arguments ..
      CHARACTER          UPLO
      INTEGER            LDA, LDB, M, N
*     ..
*     .. Array Arguments ..
      INTEGER            A( LDA, * ), B( LDB, * )
*     ..
*
*  Purpose
*  =======
*
*  ILACPY copies all or part of a local array A to another array B.
*
*  Arguments
*  =========
*
*  UPLO    (local input) CHARACTER*1
*          Specifies the part of the array A to be copied to B.
*          = 'U':      Upper triangular part
*          = 'L':      Lower triangular part
*          Otherwise:  All of the array A
*
*  M       (local input) INTEGER
*          The number of rows of the array A.  M >= 0.
*
*  N       (local input) INTEGER
*          The number of columns of the array A.  N >= 0.
*
*  A       (local input) INTEGER
*          Array, dimension (LDA,N), the m by n array A.
*          If UPLO = 'U', only the upper triangle or trapezoid is
*          accessed; if UPLO = 'L', only the lower triangle or trapezoid
*          is accessed.
*
*  LDA     (local input) INTEGER
*          The leading dimension of the array A.  LDA >= max(1,M).
*
*  B       (local output) INTEGER
*          Array, dimension (LDB,N), on exit, B = A in the locations
*          specified by UPLO.
*
*  LDB     (local input) INTEGER
*          The leading dimension of the array B.  LDB >= max(1,M).
*
*  =====================================================================
*
*     .. Local Scalars ..
      INTEGER            I, J
*     ..
*     .. External Functions ..
      LOGICAL            LSAME
      EXTERNAL           LSAME
*     ..
*     .. Intrinsic Functions ..
      INTRINSIC          MIN
*     ..
*     .. Executable Statements ..
*
      IF( LSAME( UPLO, 'U' ) ) THEN
         DO 20 J = 1, N
            DO 10 I = 1, MIN( J, M )
               B( I, J ) = A( I, J )
   10       CONTINUE
   20    CONTINUE
      ELSE IF( LSAME( UPLO, 'L' ) ) THEN
         DO 40 J = 1, N
            DO 30 I = J, M
               B( I, J ) = A( I, J )
   30       CONTINUE
   40    CONTINUE
      ELSE
         DO 60 J = 1, N
            DO 50 I = 1, M
               B( I, J ) = A( I, J )
   50       CONTINUE
   60    CONTINUE
      END IF
      RETURN
*
*     End of ILACPY
*
      END