NAME:
  hemr
 PURPOSE: (one line)
  Compute the hemispherical reflectance
 DESCRIPTION:
    This function is coded from equation 12.10 on page 365 in Hapke's book,
    "Theory of Reflectance and Emittance Spectroscopy".
 CATEGORY:
  Miscellaneous
 CALLING SEQUENCE:
  ans = hemr(w,imu,holes,p,b0,theta)
 INPUTS:
  w     - Single scattering albedo.
  imu   - Cosine of the incidence angle.
  holes - Compaction parameter value (1986 formalism).
  p     - Parameters of the single particle phase function
          (default "function" is a constant of value p, this is not very
           useful for this routine and is not recommended).
          There are two legal input forms for p:
            1. an array of dimensionality Pparms
            2. an array of dimensionality (n_elements(w),Pparms)
  b0    - Backscatter value.
  theta - Surface roughness value.  (radians)
 OPTIONAL INPUT PARAMETERS:
  None.
 KEYWORD PARAMETERS:
  nmu - number of points between 0 and 1 at which to evaluate mu = cos(e).
             Default 6.
  nphi - number of points between 0 and pi at which to evaluate phi
             Default 6.
  H93   - Flag passed to bidr2, if set, uses the 1993 version of Hapke's
            approximation to the Chandresekar H function.  The 1993 version
            is more accurate but considerably slower to compute.
  Pfn   - Flag passed to bidr2. REQUIRED.
          Specify function to use for P(g) instead of the default constant.
            The function must be a procedure taking arguments g,a,F,/radians
              g  phase angle in radians (with keyword /radians set)
              a  an array of Pparms parameters
              F  phase function evaluated at phase angles g
            Use "fn_hg3.pro" as a model.
  Pparms- Flag passed to bidr2. Specify number of parameters to be passed to
             P(g).  Really only needed if the number of parameters isn't one.
  pedantic - Flag pased to bidr, if set, returns NaN for w > 1.
 OUTPUTS:
  Return value is the hemispherical reflectance.
 COMMON BLOCKS:
  None.
 SIDE EFFECTS:
  None.
 RESTRICTIONS:
  Any input may be a vector.  If more than one is a vector then the
     lengths must match.  The return will have the same dimensions as
     the input.
 PROCEDURE:
 MODIFICATION HISTORY:
  Written by Leslie Young, SwRI, 2010/12/28, cloned from bidr2 where similar