NAME:
  obsprop
 PURPOSE:
  Observing proposal planning table generation
 DESCRIPTION:

  The UT date listed on an output line is the date that goes with the
     rise time.

 CATEGORY:
  Astronomy
 CALLING SEQUENCE:
  obsprop,objcode,obs,date1,date2
 INPUTS:
  objcode - String array of standard object codes (see ephem.pro)
  obs     - Integer Marsden code of the observatory
               688 - Lowell Observatory
               500 - Geocentric
               If you provide an invalid code, 688 is assumed.
            A structure for a manual location is allowed as well and must
              have the following tags:
                name - name of observatory
                lat  - Latitude of observatory (radians)
                lon  - West longitude of observatory (radians)
                alt  - altitude of observatory (meters)
  date1   - UT date and time vector near midnight for first night,
                 [year,month,day,hour]
  date2   - UT date and time vector near midnight for last night,
     
 OPTIONAL INPUT PARAMETERS:

 KEYWORD INPUT PARAMETERS:
  AMLIMIT - limiting airmass that defines observing window (default=3.0)
  MELIMIT - Lunar elongation limit (degrees), if the night fails this
              test the night is not printed out (except for a single
              blank line for the group of affected nights).  Default is no
              limit.  Default=20 degrees.  If it is less than this on the night
              no line is printed out.
  MPLIMIT - Lunar phase limit, if the night fails this
              test the night is not printed out (except for a single
              blank line for the group of affected nights).  Default is no
              limit.
  MINDURAT - Minimum allowed duration (in hours), default=0.
  FIXEDPOS - fixed position to compute observability for.  If this is
              specified then objcode is used only as a label on the
              print out.  This input is a two-element vector that can
              either be the RA,Dec as a string or already converted to
              double precision radians.  The default is to use objcode
              and generate an ephemeris.

 OUTPUTS:

 KEYWORD OUTPUT PARAMETERS:

 COMMON BLOCKS:

 SIDE EFFECTS:

 RESTRICTIONS:

 PROCEDURE:

 MODIFICATION HISTORY:
  Written by Marc W. Buie, Lowell Observatory, 1997/02/18
  2001/03/16, David Tucker, changed rdobscod call and file default
  2001/05/01, MWB, fixed objcode bug.
  2002/02/14, MWB, minor formatting changes of output.
  2002/03/27, MWB, fixed AMLIMIT bug.
  2002/11/04, MWB, added support for string obscode values
  2009/11/10, MWB, fixed minor formatting problem.
  2012/01/28, MWB, added MELIMIT,MPLIMIT,MINDURAT, and FIXEDPOS keywords
  2016/07/20, MWB, hardcoded change to use astronomical twilight for windows
  2019/09/24, MWB, added manual observatory position option to obs
  2024/07/06, MWB, rework to use new obs tools