NAME

dgthrz - Gather and zero.


SYNOPSIS

 SUBROUTINE DGTHRZ(NZ, Y, X, INDX)
 DOUBLE PRECISION Y(*), X(*)
 INTEGER NZ
 INTEGER INDX(*)
 SUBROUTINE DGTHRZ_64(NZ, Y, X, INDX)
 DOUBLE PRECISION Y(*), X(*)
 INTEGER*8 NZ
 INTEGER*8 INDX(*)

F95 INTERFACE SUBROUTINE GTHRZ([NZ], Y, X, INDX)

 REAL(8), DIMENSION(:) :: Y, X
 INTEGER :: NZ
 INTEGER, DIMENSION(:) :: INDX
 SUBROUTINE GTHRZ_64([NZ], Y, X, INDX)
 REAL(8), DIMENSION(:) :: Y, X
 INTEGER(8) :: NZ
 INTEGER(8), DIMENSION(:) :: INDX


PURPOSE

DGTHRZ - Gathers the specified elements from a vector y in full storage form into a vector x in compressed form. The gathered elements of y are set to zero. Only the elements of y whose indices are listed in indx are referenced.

 do i = 1, n
   x(i) = y(indx(i))
   y(indx(i)) = 0
 enddo


ARGUMENTS

NZ (input) - INTEGER
Number of elements in the compressed form. Unchanged on exit.

Y (input/output)
Vector in full storage form. Gathered elements are set to zero.

X (output)
Vector in compressed form. Contains elements of y whose indices are listed in indx on exit.

INDX (input) - INTEGER
Vector containing the indices of the compressed form. It is assumed that the elements in INDX are distinct and greater than zero. Unchanged on exit.