idlastro / Miscellaneous (Non-Astronomy) Procedures: REMOVE

[Source code]

NAME
REMOVE
PURPOSE
Contract a vector or up to 25 vectors by removing specified elements   
CALLING SEQUENCE
REMOVE, index, v1,[ v2, v3, v4, v5, v6, ... v25]     
INPUTS
INDEX - scalar or vector giving the index number of elements to
        be removed from vectors.  Duplicate entries in index are
        ignored.    An error will occur if one attempts to remove
        all the elements of a vector.     REMOVE will return quietly
        (no error message) if index is !NULL or undefined.
INPUT-OUTPUT
v1 - Vector or array.  Elements specifed by INDEX will be 
        removed from v1.  Upon return v1 will contain
        N fewer elements, where N is the number of distinct values in
        INDEX.
OPTIONAL INPUT-OUTPUTS
v2,v3,...v25 - additional vectors containing
        the same number of elements as v1.  These will be
        contracted in the same manner as v1.
EXAMPLES
(1) If INDEX = [2,4,6,4] and V = [1,3,4,3,2,5,7,3] then after the call
        IDL> remove,index,v      
V will contain the values [1,3,3,5,3]
(2) Suppose one has a wavelength vector W, and three associated flux
vectors F1, F2, and F3.    Remove all points where a quality vector,
EPS is negative
        IDL> bad = where( EPS LT 0, Nbad)
        IDL> if Nbad GT 0 then remove, bad, w, f1, f2, f3
METHOD
If more than one element is to be removed, then HISTOGRAM is used
to generate a 'keep' subscripting vector.    To minimize the length of 
the subscripting vector, it is only computed between the minimum and 
maximum values of the index.   Therefore, the slowest case of REMOVE
is when both the first and last element are removed.
REVISION HISTORY
Written W. Landsman        ST Systems Co.       April 28, 1988
Cleaned up code          W. Landsman            September, 1992
Major rewrite for improved speed   W. Landsman    April 2000
Accept up to 25 variables, use SCOPE_VARFETCH internally
       W. Landsman   Feb 2010
Fix occasional integer overflow problem  V. Geers  Feb 2011
Quietly return if index is !null or undefined W.L. Aug 2011