; UVFIL
;---------------------------------------------------------------
;! Create, fill a uv database from user supplied information
;# TASK UV PARAFORM
;-----------------------------------------------------------------------
;;  Copyright (C) 1995, 2008
;;  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
;-----------------------------------------------------------------------
UVFIL     LLLLLLLLLLLLUUUUUUUUUUUU CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
UVFIL     Task which creates uv data with a user's subroutine.
                                   Input data file name (name):
INFILE
                                   Aux. file name:
IN2FILE
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 #.
APARM                              User supplied array
BPARM                              User supplied array
----------------------------------------------------------------
UVFIL
Task:  This task will create an AIPS uv data file and fill it by
       fetching visibility points one at a time from a user
       supplied routine.  For more details see the comments in
       the source version of the task which should be in the
       NOT STANDARD area.  Also see HELP NEWTASK.
Adverbs:
  INFILE.....Name of the user file to get data from.
  IN2FILE....Aux. file name. Can be used for any purpose.
  OUTNAME....Output UV file name (name).    Standard behavior
             with default 'UV DATA FILE'.
  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 disk
             with space for the file.
  APARM......User specified array.
  BPARM......User specified array.
----------------------------------------------------------------
UVFIL:  Task which creates and fills an AIPS uv data set using
        user supplied information.
DOCUMENTOR: W. D. Cotton, NRAO.
RELATED PROGRAMS: All AIPS uv programs

                          PURPOSE

     UVFIL is the skeleton of a task to create a catalogued
AIPS uv data base and fill it from user supplied information.
The necessary information can be passed to the program via
either APARM and BPARM for control information and from data
read from disk or tape from file specified in INFILE and
IN2FILE by user supplied FORTRAN instructions.

     AIPS uv data files are structured similar to the FITS
random group tape format; records are fixed length and consist
of all information from a single interferometer baseline during
a single integration.  Each record consists of an arbitrary
number of "random" parameters (eg. u, v, w, time, baseline)
followed by a regular array containing the correlator data.
The number of, order of and names of the first seven of the
random parameters are kept in the catalogue block.  The number
of regular axes, the order, dimension, reference value, pixel,
increment etc. of the regular axes are defined in the catalogue
header.  All values in a visibility record are stored as REAL*4
words. For more details see the AIPS manual vol. 2.

     The uniform axes, with the exception of the frequency axis
are not what one ordinarily thinks of as sequences.  For
instance the axis which must be first, the COMPLEX axis
consists of the Real part of a visibility, the Imaginary part
and the weight which have reference values of 1, 2, 3.  The
STOKES axis is similar in that I, Q, U, and V Stokes'
parameters have axis coordinates of 1, 2, 3, 4.  (The more
common, correlator values of RR, LL, RL and LR have values of
-1,-2,-3 and -4.)  A visibility record can be thought of as a
FORTRAN  REAL*4 array having dimension:
VIS(n1,n2,n3,n4,n5,n6,n7) where the n1... correspond to the
COMPLEX... axes. The usual order in AIPS is n1=COMPLEX
(required), n2=STOKES, n3=FREQ, n4=RA, n5=Dec.  Except for the
COMPLEX axis the order is not fixed.  The RA and DEC axes are
usually dimensioned 1 and are there solely as a place to store
the position in the catalogue header.

     To use UVFIL the user needs to add FORTRAN code to the
subroutines NEWHED and GETUV which obtains the necessary
information to describe the data base and to fill it.

     To source version of UVFIL contains sample code which can
be used as an example.  The sample was for a VAX 11/780 and
read ASCII disk files using FORTRAN I/O.
