; UVHOL
;---------------------------------------------------------------
;! prints holography data from a UV data base with calibration
;# TASK UV HARDCOPY CALIBRATION
;-----------------------------------------------------------------------
;;  Copyright (C) 1999-2000, 2003-2007
;;  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
;-----------------------------------------------------------------------
UVHOL     LLLLLLLLLLLLUUUUUUUUUUUU CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
UVHOL     Prints/writes holography data with calibration
USERID       -32000.0    32000.0   Data base owner number
INNAME                             Input UV file name (name)
INCLASS                            Input UV file name (class)
INSEQ             0.0     9999.0   Input UV file name (seq. #)
INDISK                             Input UV file disk unit #
SOURCES                            Sources to print, ' '=>all.
QUAL            -10.0              Qualifier -1=>all
CALCODE                            Calibrator code '    '=>all
STOKES                             'FULL' in HOLG for 4 output
                                   files, 'IQUV', 'IV' also
SELBAND                            Bandwidth to select (kHz)
SELFREQ                            Frequency to select (MHz)
FREQID                             Freq. ID to select.
TIMERANG                           Time range to select
ANTENNAS                           Antennas to print
BASELINE                           Baselines with ANTENNAS
SUBARRAY          0.0     1000.0   Subarray, 0 => 1
CHANNEL           0.0     4096.0   Spectral channel #
BIF                                IF number to print
DOCALIB          -1.0      101.0   > 0 calibrate data & weights
                                   > 99 do NOT calibrate weights
GAINUSE                            CAL (CL or SN) table to apply
DOPOL            -1.0       10.0   If >0 correct polarization.
BLVER                              BL table to apply.
FLAGVER                            Flag table version
DOBAND           -1.0       10.0   If >0 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.
NCOUNT            0.0   30000.0    # of sample. 0 => 1 page.
WTUV              0.0    1000.0    Scale UVW by * WTUV
                                      0 => 1000
OPTYPE                             Choice of format type:
                                   'HOLG' write holography file
                                   else   print holography data
NPOINTS           0.0    1000.0    Number of samples to keep
                                   at the end of each pointing
                                   Used if APARM(1) = 0
                                   0 => 100
APARM                              (1) 0 => NPOINTS used
                                       1 => APARM(2,3) used
                                   (2) number of samples dropped
                                       at the beginning of
                                       each pointing
                                   (3) number of samples dropped
                                       at the end of
                                       each pointing
                                   (4) > 0  write elevation and
                                      azimuth at beg/end of scan
                                   (5) > 0 => average data over
                                      reference antennas
                                   (6) > 0 => average each
                                      pointing over time
BDROP             0.0    1000.0    Minimum number of samples to
                                   keep the pointing at all
DOCRT            -3.0     132.0    > 0 -> use the terminal,
                                   else use the line printer
                                   > 72 => terminal width
OUTPRINT
                                   Printer disk file to save
                                   HOLG: area to write outputs
BADDISK                            Disk to avoid for scratch.
----------------------------------------------------------------
UVHOL
Type: Task
Use:  Prints holography data from a u,v data base, optionally making
      retained text files.  UVHOL is similar to UVPRT, but does only
      the special holography modes which used to be a part of UVPRT.
      These include printing for display purposes and the ability to
      write files for input to HOLGR.
Adverbs:
  USERID.....Input file user number.  0 => logon user,
             32000 => any user.
  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....List of sources to be printed. '  '=> all; if any
             starts with a '-' then all except ANY source named.
  QUAL.......Qualifier of source to be printed.    -1 => all.
  CALCODE....Calibrator code of sources to print.  ' '=> all.
  STOKES.....The usual Stokes parameter.  In HOLG mode, FULL means to
             write all 4 polarizations to disk files, IQUV means to
             write all 4 Stokes polarizations, IV means to write the
             two parallel hand Stokes, otherwise RR and LL only are
             written.  When simply printing, STOKES beginning with I
             means 'IQUV', otherwise FULL is used.  If fewer than 4
             Stokes are available, the task now takes appropriate
             action in the STOKES adverb.
  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
             overide that of FREQID.  However, setting SELBAND and
             SELFREQ may result in an ambiguity.  In that case, the task
             will request that you use FREQID.  If all SELBAND, SELFREQ
             and FREQID are not specified (.le. 0) then all FQ ids will
             be selected.
  TIMERANG...Time range of the data to be printed. In order: Start day,
             hour, min. sec, end day, hour, min. sec. Days relative to
             reference date.
  ANTENNAS...A list of the reference antennas to print.  At least one
             must be given.  The first is used to name the output file
             in HOLG mode.
  BASELINE...A list of the moving antennas.  At least one must be
             given.
  SUBARRAY...Subarray number to print.       0 => 1.
  CHANNEL....Spectral line channel number.   0 => 1.
  BIF........IF number to print.             0 => 1
  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 Cal. table to apply to the data if
             DOCALIB=1.  Refers to a CL table for multi-source data or
             an SN table for single source.   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 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.....(multisource) 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......(multi-source) specifies the version of the BP table to be
             applied. 0 => highest numbered table.
  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).
  NCOUNT.....List NCOUNT data points (after all data selection has been
             applied).      0 => 1 page listed.
             UVHOL will list up to 30000 visibilities.  This limit does
             not apply to HOLG and applies on a per antenna-pair basis
             for HOLO.
             Be aware that UVHOL now goes through the data to be printed
             twice, once to determine the u-v-w, data, and weight ranges
             and the second time to print things.  Using NCOUNT to
             reduce the time required by the first pass helps when DOCRT
             is true.
  WTUV.......Scale the "U" and "V" (actually sin^(-1)(theta) - the
             offset angle) values.  For HOLO, 0 => 1000.
             Forced to 1 for HOLG.
  OPTYPE.....OPeration code to change details of the format:
             'HOLG' => write holography data from one or more antenna
                       pairs to 2 or 4 files per pair for use in HOLGR.
                       (No normal printing is done.)
             otherwise => print only holography data from one or more
                       antenna pairs.
  NPOINTS....Retain the last NPOINTS samples from each pointing.  Note
             that pointings are indicated by the W term in the U,V,W
             triplet.  For holography, W = 40000+X where X is a counter
             referring to the pointing or dwell currently selected.  The
             first samples for each dwell are suspect since not all
             antennas have settled down.  This option allows you to
             select only the last NPOINTS samples.  0 -> 100 (the upper
             limit).
  APARM......(1) 0 => option determined by NPOINTS is used
                 1 => option determined by APARM(2,3) is used
             (2) number of samples dropped at the beginning of
                 each pointing
             (3) number of samples dropped at the end of
                 each pointing
             (4) >0 write elevation and azimuth at begining and
                 end of scans (only for OPTYPE = 'HOLG')
             (5) > 0 => average each baseline between a moving antenna
                 reference antenna over all reference antennas
             (6) > 0 => average all retained samples for each pointing
  BDROP......If a pointing haS fewer than BDROP samples, then drop it
             entirely.  No default - 0 and 1 mean keep all.   Note
             that this is the total number of samples, not those after
             application of APARM(2) and APARM(3) (or NPOINTS).
  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 (non-HOLG mode).
             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.  132 width is best.
  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.
             For HOLG mode only, OUTPRINT may give the name of a
             logical area plus optional file name to which to write
             the HOLGR data files (e.g. OUTPR = 'MYAREA' or OUTPR =
             'MYAREA:xxx', where xxx can be anything and MYAREA is a
             logical area defined before starting AIPS in the usual
             way).  If OUTPRINT gives only a logical name, then the
             name HOLOnn-mmppii is used where nn is the reference
             antenna (BASELINE(j)), mm is the antenna (or 0 if
             multiple), pp are 2 letters giving the polarization, and
             ii id the IF.  If xxx is not blank, then the output name
             is xxx (any number of letters) with ppii concatenated.
             If OUTPRINT is blank, then the disk area where you were
             when you started AIPS is used.  If OUTPRINT = 'xxx', xxx
             will be taken to be a disk area environment name.
  BADDISK....Disk numbers to avoid for scratch files.  Scratch files may
             be created by the sorting routines if calibration or
             flagging is applied.
----------------------------------------------------------------

Special notes on holography data, in HOLO or HOLG modes:

(1) Any included data that does not have a W > 40000 is assumed to be
    calibrator data and is ignored.  The source qualifier of
    holography data must be at least 40000, that of calibrators must
    be less than 40000.
(2) The W term is expected to be 40000 + 256*subqualifier + mode,
    where mode is supposed to be > 0.  When mode is 0, the data are
    assumed to be taken during an antenna turn-around phase and are
    discarded.
(3) When printing in these modes, the 40000 and n*256 parts of W are
    dropped.
----------------------------------------------------------------
