;CLIPM
;-----------------------------------------------------------------------
;! edits data based on amplitudes out of range
;# TASK UV CALIBRATION EDITING
;-----------------------------------------------------------------------
;;  Copyright (C) 1999-2001, 2003
;;  Associated Universities, Inc. Washington DC, USA.
;;
;;  This program is free software; you can redistribute it and/or
;;  modify it under the terms of the GNU General Public License as
;;  published by the Free Software Foundation; either version 2 of
;;  the License, or (at your option) any later version.
;;
;;  This program is distributed in the hope that it will be useful,
;;  but WITHOUT ANY WARRANTY; without even the implied warranty of
;;  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;  GNU General Public License for more details.
;;
;;  You should have received a copy of the GNU General Public
;;  License along with this program; if not, write to the Free
;;  Software Foundation, Inc., 675 Massachusetts Ave, Cambridge,
;;  MA 02139, USA.
;;
;;  Correspondence concerning AIPS should be addressed as follows:
;;         Internet email: aipsmail@nrao.edu.
;;         Postal address: AIPS Project Office
;;                         National Radio Astronomy Observatory
;;                         520 Edgemont Road
;;                         Charlottesville, VA 22903-2475 USA
;-----------------------------------------------------------------------
CLIPM     LLLLLLLLLLLLUUUUUUUUUUUU CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CLIPM     Flags data based on amplitudes out of range
INNAME                             Input UV file name (name)
INCLASS                            Input UV file name (class)
INSEQ             0.0     9999.0   Input UV file name (seq. #)
INDISK            0.0        9.0   Input UV file disk unit #
SOURCES                            Source list
QUAL            -10.0              Source qualifier -1=>all
CALCODE                            Calibrator code '    '=>all
TIMERANG                           Time range to purge
SELBAND                            Bandwidth to select (kHz)
SELFREQ                            Frequency to select (MHz)
FREQID                             Freq. ID to select.
BCHAN             0.0     4096.0   Begin channel number.
ECHAN             0.0     4096.0   End channel number.
BIF               0.0      100.0   Lowest IF number 0=>all
EIF               0.0      100.0   Highest IF number 0=>all
SUBARRAY          0.0     1000.0   Subarray, 0=>all
DOCALIB          -1.0        2.0   If >0 calibrate data
                                   = 2 calibrate weights
GAINUSE                            CL (or SN) table to apply
DOPOL            -1.0       10.0   If >0 correct polarization.
BLVER                              BL table to apply.
FLAGVER                            Flag table version: in
DOBAND           -1.0       10.0   If >0 apply bandpass cal.
                                   Method used depends on value
                                   of DOBAND (see HELP file).
BPVER                              Bandpass table version
ANTENNAS                           Antennas to consider 0=>all
BASELINE                           Baselines with ANTENNAS
UVRANGE                            Range spacings in klambda
APARM                              Flux range by polarization:
                                   (1) = max. allowed parallel
                                   (2) = max. allowed cross-pol.
                                   (3) = min. allowed parallel
                                   (4) = min. allowed cross-pol.
                                   (5) = min allowed weight
                                   (6) > 0 => convert to Stokes
                                       before testing amplitudes
                                   (7) > 0 => do not flag cross
                                       because parallel flagged
                                   (8) > 0 => flag all channels
                                       if >= APARM(8) are
                                       clipped
                                   (9) > 0 => flag all IFs when
                                       one is bad
BADDISK           0.0     9999.0   Disks to avoid for scratch
----------------------------------------------------------------
CLIPM
Task:  This task applies the calibration (optionally) to UV data and
       then examines the amplitudes for data out of range.  It writes
       entries in the flag table.  This is then intended for use with
       multi-source data during the calibration phases.

       Be aware that a very large number of flag table lines may be
       written.  Setting APARM(8)=1 is recommended to reduce this a bit.
       Task UVCOP may be used to apply the flags and is the only task
       that can handle more than 5000 flags applying to a single time.

       Task CLIP is easier to use for single-source files and applies
       the clipping directly rather than with a flag table.
Adverbs:
  INNAME.....Input UV file name (name).      Standard defaults.
  INCLASS....Input UV file name (class).     Standard defaults.
  INSEQ......Input UV file name (seq. #).    0 => highest.
  INDISK.....Disk drive # of input UV file.  0 => any.
  SOURCES....Source list.  The task loops over all sources specified.
             '*' = all; a "-" before a source name means all except ANY
             source named.
  QUAL.......Only sources with a source qualifier number in the SU table
             matching QUAL will be used if QUAL is not -1.
  CALCODE....Sources may be selected on the basis of the calibrator code
             given in the SU table.
                  '    ' => any calibrator code selected
                  '*   ' => any non blank code (cal. only)
                  '-CAL' => blank codes only (no calibrators)
                  anything else = calibrator code to select.
             NB: The CALCODE test is applied in addition to the other
             tests, i.e. SOURCES and QUAL, in the selection of sources
             to process.
  TIMERANG...Time range of the data to be copied. In order: Start day,
             hour, min. sec,  day, hour, min. sec. Days relative to
             reference date.
  SELBAND....Bandwidth of data to be selected. If more than one IF is
             present SELBAND is the width of the first IF required.
             Units = kHz. For data which contain multiple
             bandwidths/frequencies the task will insist that some form
             of selection be made by frequency or bandwidth.
  SELFREQ....Frequency of data to be selected. If more than one IF is
             present SELFREQ is the frequency of the first IF required.
             Units = MHz.
  FREQID.....Frequency identifier to select (you may determine which is
             applicable from the OPTYPE='SCAN' listing produced by
             LISTR). If either SELBAND or SELFREQ are set, their values
             override that of FREQID. However, setting SELBAND and
             SELFREQ may result in an ambiguity.  In that case, the task
             will request that you use FREQID.
  BCHAN......Begin (line) channel number.    0 => 1.
  ECHAN......End (line) channel number.      0 => highest.
             All channels are processed by only BCHAN-ECHAN are examined
             for setting flags.
  BIF........First IF to copy. 0=>all.
  EIF........Highest IF to copy. 0=>all higher than BIF
  SUBARRAY...Subarray number to copy. 0=>all.
  DOCALIB....If true (>0), calibrate the data using information in the
             specified Cal (CL) table for multi-source or SN table for
             single-source data.  If > 1.5, also calibrate the weights
             (new for VLA, normal for VLBI).
  GAINUSE....version number of the CL table to apply to multi-source
             files or the SN table for single-source files.
             0 => highest.
  DOPOL......If > 0 then correct data for instrumental polarization as
             represented in the AN table.  Only one subarray may be
             done at a time.  This correction is only useful if PCAL
             has been run or feed polarization parameters have been
             otherwise obtained. See HELP DOPOL for available
             correction modes.
  BLVER......Version number of the baseline based calibration
             (BL) table to appply. <0 => apply no BL table,
             0 => highest.
  FLAGVER....specifies the version of the flagging table to be applied
             to the data on input.  This version is copied to the
             highest version + 1 and and new flags are appended to
             that version.  0 -> highest, -1 -> none.
  DOBAND.....If true (>0) then correct the data for the shape of the
             antenna bandpasses using the BP table specified by BPVER.
             The correction has five modes:
             (a) if DOBAND=1 all entries for an antenna in the table
             are averaged together before correcting the data.
             (b) if DOBAND=2 the entry nearest in time (including
             solution weights) is used to correct the data.
             (c) if DOBAND=3 the table entries are interpolated in
             time (using solution weights) and the data are then
             corrected.
             (d) if DOBAND=4 the entry nearest in time (ignoring
             solution weights) is used to correct the data.
             (e) if DOBAND=5 the table entries are interpolated in
             time (ignoring solution weights) and the data are then
             corrected.
  BPVER......Specifies the version of the BP table to be applied
             0 => highest numbered table.
             <0 => no bandpass correction to be applied.
  ANTENNAS...A list of the antennas to be examined.  All 0 => all.
             If any number is negative then all antennas listed are NOT
             to be copied and all others are.
  BASELINE...If any elements of BASELINE are non zero then all baselines
             between antennas named in ANTENNAS and those named in
             BASELINE are specified.  If ANTENNAS contains a negative
             value then all baselines NOT specified are selected.
  UVRANGE....Range of baselines in kilolambda.
  APARM......Sets an allowable range in amplitudes (Jy)
                APARM(1) = max. parallel-hand amplitude.
                           (IPOL, RR, or LL) 0 => 1.e6
                APARM(2) = max. cross-amplitude. 0 -> 1e6.
                           (QPOL, UPOL, VPOL, RL, or LR)
                APARM(3) = min. parallel-hand amplitude. 0 -> -1.e6
                APARM(4) = min. cross-hand amplitude.
                Note that sign is significant for autocorrelation data
                such as single-dish data.
                APARM(5) = min allowed weight (after calibration and
                           Stokes conversion are applied).  With
                           proper calibration, weight = 1/sigma**2 in
                           1/Jy**2.
                APARM(6) > 0 => convert to Stokes before testing
                           the amplitudes.
                APARM(7) > 0 => do not flag cross-polarization
                           correlators when the corresponding
                           parallel-hand ones are flagged.
                APARM(8) > 0 => Flag all spectral channels of an
                           IF/Stokes if >= APARM(8) of them are
                           clipped.
                APARM(9) > 0 => Flag all IFs when any IF is newly
                           flagged.
  BADDISK....A list of disks on which scratch files are not to be
             placed.
----------------------------------------------------------------
