; VLATECR
;---------------------------------------------------------------
;! Calculate ionospheric delay and Faraday rotation corrections
;# PROCEDURE VLA
;-----------------------------------------------------------------------
;;  Copyright (C) 2006, 2010, 2018, 2020
;;  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
;-----------------------------------------------------------------------
VLATECR  LLLLLLLLLLLLUUUUUUUUUUUU CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
VLATECR  Procedure to calibrate ionospheric delay
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 #
SUBARR                             Subarray to correct
                                     (0 => all)
APARM                              Switches
                                     (1) if > 0 correct for
                                         dispersive delay
                                     (2) Follow ionosphere
                                         factor
           VLATECR is defined in the VLAPROCS run file.
----------------------------------------------------------------
VLATECR
Type: Procedure
Use:  Automatically download IONEX files needed to correct the
      atmospheric Faraday rotation and optionally dispersive
      delay with TECOR.  Then runs TECOR.  See EXPLAIN TECOR
      for more information on these corrections.  To perform the
      automatic download the system must have one of the
      following commands: wget, curl or ncftpget, and an NX
      table.
      VLATECR is defined in the VLAPROCS run file.
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.
  SUBARR.....Subarray to correct.            0 => all.
  APARM......Miscellaneous settings and switches.
             (1) Enable (> 0.5) or disable (<= 0.5) dispersive
                 delay corrections.
             (2) In principle, it is thought that the ionosphere
                 remains approximately fixed wrt the Sun.  Thus, the
                 task should predict which ionosphere is now in the
                 direction of the source by applying a time correction
                 to the apparent longitude while interpolating between
                 the table values, which are only given every two
                 hours.  This sometimes seems in fact to do odd
                 things.  This parameter allows you to do only a
                 fraction of the time correction, from epsilon to 1.0.
                 0 -> 1; < 0 -> 0.  A correction of zero is equivalent
                 to a model in which the ionosphere rotates with the
                 earth.
----------------------------------------------------------------
VLATECR: Procedure that corrects the atmospheric Faraday rotation
         using TECOR.  This procedure automatically downloads the
         IONEX files from the CDDIS archive.
DOCUMENTOR: Amy Mioduszewski
RELATED PROGRAMS: VLAPROCS, TECOR

VLATECR is designed to make the use of TECOR easier.  It uses
the header and the NX table to calculate what files to download
from CDDIS.  It uses the CDDIS site in the US (cddis.gsfc.nasa.gov)
and downloads the jplg or codg version of the IONEX files.  Then it
runs TECOR using these files.  For simplicity (files from multiple
days must to have the same prefix), all the files are renamed with
the jplg prefix.  The IONEX files are left in the /tmp area of your
computer, so you can copy them for your records or ignore them.

See EXPLAIN TECOR for more information.

NOTE: The IONEX files can take up to a week to be available at
CDDIS.

This procedure is defined in VLAPROCS, type RUN VLAPROCS to load
VLAPROCS.

To run VLATECR:
   1) The dataset must have a correct observation date in the header;
      if it is wrong correct it with PUTHEAD.
      -> there is a weak test on the validity of the observation date;
         the observation year must be <= to the creation year.
   2) The dataset must have an NX table; run INDXR to create.
   3) The system must have the command curl.  VLATECR will test for the
      existence of this command.
   4) /tmp directory must exist on your computer
   5) Your computer must allow link to the Internet, some computers may
      have firewalls such that the above commands exist, but will not work.

If there is a problem with the automatic download then you can download
the IONEX file(s) manually and then run TECOR directly, setting INFILE
and NFILES:

Sometime in October 2020, for new requirements, you can consult

https://cddis.nasa.gov/Data_and_Derived_Products/CDDIS_Archive_Access.html

You may have to create an account with cddis in order to download in
some other fashion.

The command that does work from VLATECR is (all on one line!)

curl -u anonymous:daip@nrao.edu --ftp-ssl ftp://gdc.ccdis.eosdis.nasa.gov/
   gps/products/ionex/YYYY/DDD/jplgDDD0.YYi.Z > /tmp/jplgDDD0.YYi.Z

(no blanks between gov/ and gps) where YYYY is the year e.g. 2015, YY is
the last 2 digits of the year e.g. 15, and DDD is the day number within
the year.
