NAME:
  kmlgen
 PURPOSE:   (one line only)
  Make KML files for occultation maps
 DESCRIPTION:
  This routine is primarily meant to be called from OCCMAP or OCCTRACKS.
  Consequently, minimal error checking is performed.

  If /sunalt or /staralt are set, then the input is assumed to be a
  file generated by plotdat; otherwise, it is assumed to be a file
  generated by ocmapex.

  If no keywords are set, then desc, objname, geomid, and version are
  all required. If /roi is set, then desc is required but the others
  are not. All optional inputs are ignored by the other keywords.

  Only one keyword can be processed at a time and they are checked
  alphabetically.
 CATEGORY:
  Occultations
 CALLING SEQUENCE:
  kmlgen, fnin, colors, fnout, [desc, objname, geomid, version,] $
          /roi, /staralt, /sunalt, /tracks
 INPUTS:
  fnin     :String,  filename(s) to be read
  colors   :String,  color(s) to be used
 OPTIONAL INPUT PARAMETERS:
  desc     :String,  description(s) of features
  objname  :String,  object name to use
  geomid   :String,  geocentric midtime of occultation
  version  :String,  version name of occultation prediction
 KEYWORD INPUT PARAMETERS:
  /roi     :Integer, produces region of interest file
  /staralt :Integer, produces star altitude file
  /sunalt  :Integer, produces sun altitude file
  /tracks  :Integer, produces occultation track file
 OUTPUTS:
  fnout    :String,  output KML file
 KEYWORD OUTPUT PARAMETERS:
 CONFIGURATION:
 COMMON BLOCKS:
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
 MODIFICATION HISTORY:
  Written by Brian Keeney, Southwest Research Institute, 2023/04/28