NAME:
  elem2xyz
 PURPOSE:   (one line only)
  Compute position given orbital elements (2-body Keplerian)
 DESCRIPTION:
 CATEGORY:
  Celestial Mechanics
 CALLING SEQUENCE:
  elem2xyz,jdepoch,manom,arg,node,inc,ecc,semi,jdpos,x,y,z
 INPUTS:
  jdepoch - Julian date of mean anomaly
  m       - Mean anomaly (radians)
  arg     - Argument of perihelion (radians)
  node    - Longitude of ascending node (radians)
  inc     - Inclination (radians)
  ecc     - Eccentricity
  a       - Semi-major axis (AU)
  jdpos   - Julian date desired (scalar or vector)
 OPTIONAL INPUT PARAMETERS:
 KEYWORD INPUT PARAMETERS:
  ECLIPTIC - Flag, if set returns x,y,z in Heliocentric ecliptic coordinates
 OUTPUTS:
  x    - Heliocentric x coordinates (AU)
  y    - Heliocentric y coordinates (AU)
  z    - Heliocentric z coordinates (AU)
 KEYWORD OUTPUT PARAMETERS:
 COMMON BLOCKS:
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
  Note that there is nothing special about the time.  You can, if you wish
    specify jdepoch as 0. and then have jdpos be a simple incrementing
    vector starting at zero.  In other words, jdpos is really just relative
    to jdepoch.
 MODIFICATION HISTORY:
  2002/05/29 - Marc W. Buie, Lowell Observatory.  Ported from fortran routines
    supplied by Larry Wasserman and Ted Bowell.
  2012/12/09, MWB, changed calling sequence to require time and now allow
                     vector input on jdpos.
  2013/08/16, MWB, improve options for mixing and matching vector and
                     scalar inputs.
  2014/01/09, MWB, minor tweak to keep the propagated epoch during
                     the calculation, can speed it up in certain cases.