mat_wswap Subroutine

public subroutine mat_wswap(n, xr, xi, incx, yr, yi, incy)

Arguments

Type IntentOptional Attributes Name
integer :: n
doubleprecision :: xr(*)
doubleprecision :: xi(*)
integer :: incx
doubleprecision :: yr(*)
doubleprecision :: yi(*)
integer :: incy

Source Code

subroutine mat_wswap(n,xr,xi,incx,yr,yi,incy)
integer         :: n
doubleprecision :: xr(*)
doubleprecision :: xi(*)
integer         :: incx
doubleprecision :: yr(*)
doubleprecision :: yi(*)
integer         :: incy

doubleprecision :: t

integer         :: i
integer         :: ix
integer         :: iy

   if (n .le. 0) return
   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
      t = xr(ix)
      xr(ix) = yr(iy)
      yr(iy) = t
      t = xi(ix)
      xi(ix) = yi(iy)
      yi(iy) = t
      ix = ix + incx
      iy = iy + incy
   enddo
end subroutine mat_wswap