; UVPRT
;---------------------------------------------------------------
;! prints data from a UV data base with calibration
;# TASK UV HARDCOPY CALIBRATION
;-----------------------------------------------------------------------
;;  Copyright (C) 1995-2001, 2004, 2006, 2009-2010, 2012-2013, 2015-2016
;;  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
;-----------------------------------------------------------------------
UVPRT     LLLLLLLLLLLLUUUUUUUUUUUU CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
UVPRT     Prints data from a u,v data base: with calibration
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                             Stokes type to select.
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
UVRANGE                            UV range in kilolambda.
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.
PDVER                              PD table to apply (DOPOL>0)
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.
BPRINT            0.0              # of first sample. 0 => 1
NPRINT            0.0              # of sample. 0 => 1 page.
XINC              0.0   10000.0    List every XINC'th comp.
WTUV              0.0    1000.0    Scale UVW by * WTUV
                                      0 => 0.001
DPARM                              1 : <0 => Range of (U,V,W),
                                       amplitude and weight is
                                       determined automatically;
                                       >= 0 => Ranges are fixed
                                       minimize the run time.
                                   2 : Maximum weight; 0 => 9.9
                                   3 : Minimum weight; 0 => 0.11
                                   4 : Maximum amplitude; 0=>99
                                   5 : Maximum of ABS(U),ABS(V),
                                       ABS(W) in klambda;
                                       0 => 10000
                                   6 : > 0 -> phases from -90
                                       to +269
                                   7:  0=> Print amp, phas
                                       1=> Print Re, Im instead
                                   10: Multiply amplitude by
                                       DPARM(10). 0 -> 1
DOCRT            -3.0     132.0    > 0 -> use the terminal,
                                   else use the line printer
                                   > 72 => terminal width
OUTPRINT
                                   Printer disk file to save
BADDISK                            Disk to avoid for scratch.
----------------------------------------------------------------
UVPRT
Type: Task
Use:  Prints data from a u,v data base, optionally making a retained
      text file.  UVPRT differs from PRTUV in that calibration
      information can be applied before printing.  If calibration
      information is to be applied the data must be in TB sort order.
      UVPRT also displays seconds of time in floating point where
      possible and does not display a "visibility number" since that is
      not meaningful under the calibration package.  UVPRT no longer
      does anything special for holography data; see UVHOL.

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....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 desired Stokes type of the printed data:
             'I','Q','U','V','RR','LL' select a single Stokes or
             correlator, 'IV', 'QU', 'HALF' select 2 Stokes or
             correlators, 'IQUV' selects 4 Stokes, else 'FULL' is used
             for 4 correlators.
  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 antennas to print.  If any number is negative
             then all antennas listed are NOT desired and all others
             are.  All 0 => list all.
  BASELINE...Baselines are specified using BASELINE.  E.g. for baselines
             1-6,1-8, 2-6 and 2-8, use ANTENNAS=1,2; BASELINE=6,8.
  UVRANGE....Range of projected spacings to be printed in 1000's of
             wavelengths.  0  =>  1, 1.E10
  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 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.....(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).
  BPRINT.....Start listing at the BPRINT'th data point selected BEFORE
             applying the above criteria.  (N.b. this is a change made 2
             May 1997; previously BPRINT applied after application of
             the other sselection criteria.)
  NPRINT.....List NPRINT data points (after all data selection has been
             applied).  0 => 30000 on CRT or to a file, 1 page on printer.
             To printer the maximum printed is 2000 points, if printed
             to a file there is no limitation.
             Be aware that UVPRT 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 NPRINT to
             reduce the time required by the first pass helps when DOCRT
             is true.
  XINC.......List every XINC'th data point from those matching the above
             criteria.     0 => 1.
  WTUV.......Scale the U, V, and W values in wavelengths by multiplying
             by WTUV.  0 => 0.001, i.e. Kilo wavelengths.
  DPARM......Range of (U,V,W), amplitude and weight:
         (1) : < 0 => Range of (U,V,W), amplitude and weight is
             determined  automatically; If the data are large, the
             time for required additional pass of the data to provide
             the scaling can be rather large. To eliminate this extra
             pass use DPARM(1)=0.
             >= 0 => The ranges are fixed to the following values:
         (2) : Maximum weight; 0 => 9.9
         (3) : Minimum weight; 0 => 0.11
               NOTE: non-zero weights that would, due to scaling, be
               printed as "0" will be shown as "-1" or "1" depending
               on their sign.
         (4) : Maximum amplitude; 0=>99
         (5) : Maximum of ABS(U),ABS(V),ABS(W) in lambda times WTUV
              (normally klambda); 0 => 10000
         (6) : > 0 => print phases from -90 to +269, otherwise from
               -180 to +180.  The former gives a blank space between
               the amplitude and phase at all times.
         (7) : 0 => Print amp, phase
               1 => Print real and imaginary
        (10) : Multiplier for amplitudes.
  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.  When OUTPRINT is blank, the line
                   printer will be used. UV PRT now counts the lines
                   to be printed before printing any and asks for
                   permission to continue if the count > 500.
             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.
  BADDISK....Disk numbers to avoid for scratch files.  Scratch files may
             be created by the sorting routines if calibration or
             flagging is applied.
----------------------------------------------------------------
