SCALAPACK 2.2.2
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ icopy()

subroutine icopy ( integer  n,
integer, dimension( * )  sx,
integer  incx,
integer, dimension( * )  sy,
integer  incy 
)

Definition at line 1755 of file pblastim.f.

1756*
1757* -- LAPACK auxiliary test routine (version 2.1) --
1758* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
1759* Courant Institute, Argonne National Lab, and Rice University
1760* February 29, 1992
1761*
1762* .. Scalar Arguments ..
1763 INTEGER INCX, INCY, N
1764* ..
1765* .. Array Arguments ..
1766 INTEGER SX( * ), SY( * )
1767* ..
1768*
1769* Purpose
1770* =======
1771*
1772* ICOPY copies an integer vector x to an integer vector y.
1773* Uses unrolled loops for increments equal to 1.
1774*
1775* Arguments
1776* =========
1777*
1778* N (input) INTEGER
1779* The length of the vectors SX and SY.
1780*
1781* SX (input) INTEGER array, dimension (1+(N-1)*abs(INCX))
1782* The vector X.
1783*
1784* INCX (input) INTEGER
1785* The spacing between consecutive elements of SX.
1786*
1787* SY (output) INTEGER array, dimension (1+(N-1)*abs(INCY))
1788* The vector Y.
1789*
1790* INCY (input) INTEGER
1791* The spacing between consecutive elements of SY.
1792*
1793* =====================================================================
1794*
1795* .. Local Scalars ..
1796 INTEGER I, IX, IY, M, MP1
1797* ..
1798* .. Intrinsic Functions ..
1799 INTRINSIC mod
1800* ..
1801* .. Executable Statements ..
1802*
1803 IF( n.LE.0 )
1804 $ RETURN
1805 IF( incx.EQ.1 .AND. incy.EQ.1 )
1806 $ GO TO 20
1807*
1808* Code for unequal increments or equal increments not equal to 1
1809*
1810 ix = 1
1811 iy = 1
1812 IF( incx.LT.0 )
1813 $ ix = ( -n+1 )*incx + 1
1814 IF( incy.LT.0 )
1815 $ iy = ( -n+1 )*incy + 1
1816 DO 10 i = 1, n
1817 sy( iy ) = sx( ix )
1818 ix = ix + incx
1819 iy = iy + incy
1820 10 CONTINUE
1821 RETURN
1822*
1823* Code for both increments equal to 1
1824*
1825* Clean-up loop
1826*
1827 20 CONTINUE
1828 m = mod( n, 7 )
1829 IF( m.EQ.0 )
1830 $ GO TO 40
1831 DO 30 i = 1, m
1832 sy( i ) = sx( i )
1833 30 CONTINUE
1834 IF( n.LT.7 )
1835 $ RETURN
1836 40 CONTINUE
1837 mp1 = m + 1
1838 DO 50 i = mp1, n, 7
1839 sy( i ) = sx( i )
1840 sy( i+1 ) = sx( i+1 )
1841 sy( i+2 ) = sx( i+2 )
1842 sy( i+3 ) = sx( i+3 )
1843 sy( i+4 ) = sx( i+4 )
1844 sy( i+5 ) = sx( i+5 )
1845 sy( i+6 ) = sx( i+6 )
1846 50 CONTINUE
1847 RETURN
1848*
1849* End of ICOPY
1850*