ccopy Subroutine

public subroutine ccopy(n, cx, incx, cy, incy)

NAME

ccopy(3f) - [BLAS:COMPLEX_BLAS_LEVEL1] CY:=CX (copies elements of a vector x to a vector y)

SYNOPSIS

subroutine ccopy(n,cx,incx,cy,incy)

 .. scalar arguments ..
    integer,intent(in)  ::  incx,incy,n
 ..
 .. array arguments ..
    complex,intent(in)  ::  cx(*)
    complex,intent(out) ::  cy(*)

DESCRIPTION

CCOPY copies a vector x to a vector y.

OPTIONS

N     number of elements in input vector(s)
CX    dimension ( 1 + ( N - 1 )*abs( INCX ) )
INCX  storage spacing between elements of CX
CY    dimension ( 1 + ( N - 1 )*abs( INCY ) )
INCY  storage spacing between elements of CY

AUTHORS

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

date:November 2017

FURTHER DETAILS

  jack dongarra, linpack, 3/11/78.
  modified 12/3/93, array(1) declarations changed to array(*)

SEE ALSO

Online html documentation available at
http://www.netlib.org/lapack/explore-html/

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n
complex, intent(in) :: cx(*)
integer, intent(in) :: incx
complex, intent(out) :: cy(*)
integer, intent(in) :: incy

Contents

Source Code


Variables

Type Visibility Attributes Name Initial
integer, public :: i
integer, public :: ix
integer, public :: iy

Source Code

subroutine ccopy(n,cx,incx,cy,incy)
implicit none
!
!  -- Reference BLAS level1 routine (version 3.8.0) --
!  -- Reference BLAS is a software package provided by Univ. of Tennessee,    --
!  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
!     November 2017
!
!     .. Scalar Arguments ..
      integer,intent(in)  :: incx,incy,n
!     ..
!     .. Array Arguments ..
      complex,intent(in)  :: cx(*)
      complex,intent(out) :: cy(*)
!     ..
!  =====================================================================

!     .. Local Scalars ..
      integer i,ix,iy
!     ..
      if (n.le.0) return
      if (incx.eq.1 .and. incy.eq.1) then

!        code for both increments equal to 1

         cy(1:n) = cx(1:n)
      else

!        code for unequal increments or equal increments not equal to 1

         ix = 1
         iy = 1
         if (incx.lt.0) ix = (-n+1)*incx + 1
         if (incy.lt.0) iy = (-n+1)*incy + 1
         do i = 1,n
            cy(iy) = cx(ix)
            ix = ix + incx
            iy = iy + incy
         enddo
      endif
end subroutine ccopy