NAME:
  ransphere
 PURPOSE:   (one line only)
  compute random points on a unit sphere
 DESCRIPTION:
 CATEGORY:
  Mathematical
 CALLING SEQUENCE:
  ransphere,a0,a1,b0,b1,npts,VEC=vec,ANG=ang
 INPUTS:
  a0 - angle range start, this is RA, longitude, azimuth, [0,2pi)
  a1 - angle range end, if a1>a0 means range passes through 0
  b0 - angle range start, this is Decl, latitude, elevation, [-pi/2,pi/2]
  b1 - angle range stop, b0 <= b1
  npts - number of random values to generate
 OPTIONAL INPUT PARAMETERS:
 KEYWORD INPUT PARAMETERS:
 OUTPUTS:
 KEYWORD OUTPUT PARAMETERS:
  VEC - cartesian unit vectors for the points, Nx3 array,
             these are unit vectors
  ANG - angles, Nx2 array, [a,b]
  SEED - random number seed, default is undefined and begins sequence
 COMMON BLOCKS:
 SIDE EFFECTS:
 RESTRICTIONS:
  The latitude sampling is discretized due to the limitations of smplprb.

  Only supports single-precision floating point output regardless of input.
 PROCEDURE:
  Sample uniformly in longitude, sample with cosine probability for latitude
 MODIFICATION HISTORY:
  2018/09/29, Written by Marc W. Buie