; CORER
;---------------------------------------------------------------
;! calculates correlator statistics and flags bad ones
;# Task UV
;-----------------------------------------------------------------------
;;  Copyright (C) 1995, 1999, 2004, 2007, 2010, 2018
;;  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
;-----------------------------------------------------------------------
CORER     LLLLLLLLLLLLUUUUUUUUUUUU CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CORER     Task to calculate correlator stats and flag bad ones
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 name
QUAL            -10.0              Calibrator qualifier -1=>all
CALCODE                            Calibrator code '    '=>all
TIMERANG                           Time range to use
SELBAND                            Bandwidth to select (kHz)
SELFREQ                            Frequency to select (MHz)
FREQID                             Freq. ID to select.
SUBARRAY          0.0     1000.0   Sub-array
BIF                                Low IF number to do
EIF                                Highest IF number to do
BCHAN             0.0              First channel included
ECHAN             0.0              last channel included
DOCALIB          -1.0      101.0   > 0 calibrate data & weights
                                   > 99 do NOT calibrate weights
GAINUSE                            CL (or SN) table to apply
DOPOL            -1.0       10.0   If >0.5 correct polarization.
PDVER                              PD table to apply (DOPOL>0)
BLVER                              BL table to apply.
FLAGVER                            Flag table version: input
DOBAND           -1.0       10.0   If >0.5 apply bandpass cal.
                                   Method used depends on value
                                   of DOBAND (see HELP file).
BPVER                              Bandpass table version
SMOOTH                             Smoothing function. See
                                   HELP SMOOTH for details.
UVRANGE           0.0              Range of projected spacings
                                   in kilowavelengths
OUTFGVER                           Output flag version
DOOUTPUT         -1.0        1.0   > 0 => write flagged output
OUTNAME                            Output UV file name (name)
OUTCLASS                           Output UV file name (class)
OUTSEQ           -1.0     9999.0   Output UV file name (seq. #)
OUTDISK           0.0        9.0   Output UV file disk unit #.
DOCRT            -3.0      132.0   > 0 => print on terminal
                                   > 72 => terminal width
OUTPRINT
                                   Printer disk file to save
PRTLEV            0.0              0 => summary, >0 => a lot
CPARM             0.0              (1) Print flag IPOL points
                                       having mean > CPARM(1)
                                       times expected error in
                                       mean.    <= 0 => 5.0.
                                   (2) As (1) for cross POLs.
                                   (3) = ok IPOL rms in Jy, bad
                                       ones printed & deleted,
                                       0 => 1.0E9
                                   (4) As (3) for cross POLs.
                                   (5) = Flux of point source to
                                       subtract (IPOL)
BADDISK                            Disks to avoid for scratch
----------------------------------------------------------------
CORER
Task:  Task to determine mean, rms, max, and min for all selected
       correlators from a selected sub-set of a UV data base.  Data
       are printed and deleted only if their mean exceed some multiple
       of the expected errors in the mean or if their rms is
       excessive.  Deletion is via an output flag table or via the
       writing of a new data set and the bad data may be printed fully
       and/or summarized.
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....Sources to be included if average.   '  '=> all; if any
             starts with a '-' then all except ANY source named.
  QUAL.......Qualifier of source to be averaged. -1 => all.
  CALCODE....Calibrator code of sources to averagde. ' '=> all.
  TIMERANG...Time range of the data to be copied. In order: Start day,
             hour, min. sec, end day, hour, min. sec. Days relative to
             ref. 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.
  SUBARRAY...Sub-array number to examine.   0 => 1.
  BIF........First IF to include.  0 -> 1.
  EIF........Last IF to include.   0 -> max.
  BCHAN......First channel to examine. 0=>all.
  ECHAN......Highest channel to examine. 0=>all higher than BCHAN
  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.  Also calibrate the weights unless
             DOCALIB > 99 (use this for old non-physical weights).
  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 or PD table.  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: 1 is normal, 2 and 3 are
             for VLBI.  1-3 use a PD table if available; 6, 7, 8 are
             the same but use the AN (continuum solution) even if a PD
             table is present.
  PDVER......PD table to apply if PCAL was run with SPECTRAL true and
             0 < DOPOL < 6.  <= 0 => highest.
  BLVER......Version number of the baseline based calibration (BL) table
             to apply. <0 => apply no BL table, 0 => highest.
  FLAGVER....specifies the version of the flagging table to be applied.
              0 => highest numbered table.
             <0 => no flagging to be applied.
  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.
  SMOOTH.....Specifies the type of spectral smoothing to be applied to
             a uv database . The default is not to apply any smoothing.
             The elements of SMOOTH are as follows:
             SMOOTH(1) = type of smoothing to apply: 0 => no smoothing
               To smooth before applying bandpass calibration
                 1 => Hanning, 2 => Gaussian, 3 => Boxcar, 4 => Sinc
               To smooth after applying bandpass calibration
                 5 => Hanning, 6 => Gaussian, 7 => Boxcar, 8 => Sinc
             SMOOTH(2) = the "diameter" of the function, i.e. width
               between first nulls of Hanning triangle and sinc
               function, FWHM of Gaussian, width of Boxcar. Defaults
               (if < 0.1) are 4, 2, 2 and 3 channels for SMOOTH(1) =
               1 - 4 and 5 - 8, resp.
             SMOOTH(3) = the diameter over which the convolving
               function has value - in channels.  Defaults: 1,3,1,4
               times SMOOTH(2) used when input SMOOTH(3) < net
               SMOOTH(2).
  UVRANGE....Print and flag only data having projected spacing between
             UVRANGE(1) and UVRANGE(2) in kilowavelengths.  0 => all.
             Tnis option requires two passes through the data and can
             produce very large FG tables when OUTFGVER > 0.
  OUTFGVER...< 0 => do not write an FG table.  Note that flag tables
             may become very large when UVRANGE is not zero.
             >= 0 => write an FG table attached to the input file of
             version OUTFGVER.  If DOOUTPUT <= 0 and OUTFGVER is = 0
             or greater than FGmax (the previously highest FG version
             number), then a new FG table will be created for the new
             flags with version FGmax+1.  This new table will also
             contain the flags applied on input (if any) from FG
             version FLAGVER.  If OUTFGVER specifies a pre-existing FG
             version, then the input flags are not copied even if
             OUTFGVER and FLAGVER are not equal.
  DOOUTPUT...> 0 => write the flagged data in an output file.  If
             OUTFGVER > 0, then DOOUTPUT is set to -1.
             <= 0 => do printing and, optionally, write an FG table.
  OUTNAME....Output UV file name (name).    Standard defaults.
  OUTCLASS...Output UV file name (class).   Standard defaults.
  OUTSEQ.....Output UV file name (seq. #).  0 => highest unique
  OUTDISK....Disk drive # of output UV file.  0 => highest with
             space for the file.
  DOCRT......False (< 0) use the line printer if OUTPRINT = ' '
                   else write named OUTPRINT file only.
                   When OUTPRINT is not blank, DOCRT=-2 suppresses the
                   page-feed character on page headers and DOCRT=-3
                   suppresses page headers and most other header
                   information.
             Zero => do no printed output.
             True  (> 0) use the terminal interactively.  The task will
                   use the actual terminal width as a display limit
                   unless 72 < DOCRT < width.  In that case, the display
                   limit will be DOCRT characters.
  OUTPRINT...Disk file name in which to save the line printer output.
             ' ' => use scratch and print immediately for interactive
             jobs - batch jobs use OUTPRINT = 'PRTFIL:BATCHjjj.nnn'
             (jjj= job #, nnn = user #).  When OUTPRINT is not blank,
             multiple outputs are concatenated, and the file is not
             actually printed.
  PRTLEV.....<= 0 -> summary printout including number baselines
                     flagged by channel and IF and, for spectral data,
                     number of channels flagged by baseline and IF
             > 0  -> show full details
  CPARM......CPARM(1) Print and flag IPOL correlators having mean >
                      CPARM(1) * the expected error in the mean.
                      The expected error in the mean is the actual rms
                      of that correlator (Real and Imaginary parts
                      separately) as determined by CORER divided by
                      the square root of the number of samples - 1 in
                      the mean.     0 => 5

             CPARM(2) As CPARM(1) for cross polarizations.
             CPARM(3) = IPOL cutoff level in the rms (Jy).  Print and
                      flag all data having rms > CPARM(3).   0 -> 1E9
             CPARM(4) As CPARM(3) for cross polarizations.
             CPARM(5) = flux of unpolarized point source at the
                      origin to be subtracted before summing things.
  BADDISK....The disk numbers to avoid for scratch files (sorting
             tables mostly).
----------------------------------------------------------------
