Reproduce the calculation used to produce Figure 9 of the Fleischman &
    Kuznetsov (2010) paper, using our low-level interfaces.

    Input parameters, etc., come from the file ``Flare071231a.pro`` that is
    distributed with the paper’s Supplementary Data archive.

    Invoke with something like::

      from pwkit import fk10
      arr = fk10.do_figure9_calc('path/to/libGS_Std_HomSrc_CEH.so.64')

def do_figure9_calc_lowlevel(shlib_path, set_unused=True):
    """Reproduce the calculation used to produce Figure 9 of the Fleischman &
    Kuznetsov (2010) paper, using our low-level interfaces.

    Input parameters, etc., come from the file ``Flare071231a.pro`` that is
    distributed with the paper’s Supplementary Data archive.

    Invoke with something like::

      from pwkit import fk10
      arr = fk10.do_figure9_calc('path/to/libGS_Std_HomSrc_CEH.so.64')

    """
    fk10func = FK10Invoker(shlib_path)

    in_vals = make_in_vals_array()
    in_vals[IN_VAL_AREA] = 1.33e18
    in_vals[IN_VAL_DEPTH] = 6e8
    in_vals[IN_VAL_T0] = 2.1e7
    # EPSILON (these markers are to aid counting indices)
    # KAPPA
    in_vals[IN_VAL_INTEG_METH] = 16
    in_vals[IN_VAL_EMIN] = 0.016
    in_vals[IN_VAL_EMAX] = 4.0
    # EBREAK
    in_vals[IN_VAL_DELTA1] = 3.7
    # DELTA2
    in_vals[IN_VAL_N0] = 3e9
    in_vals[IN_VAL_NB] = 5e9 / 3
    in_vals[IN_VAL_B] = 48
    in_vals[IN_VAL_THETA] = 50
    in_vals[IN_VAL_FREQ0] = 5e8
    in_vals[IN_VAL_LOGDFREQ] = 0.02
    in_vals[IN_VAL_EDIST] = EDIST_PLW
    in_vals[IN_VAL_NFREQ] = 100
    in_vals[IN_VAL_PADIST] = PADIST_GLC
    in_vals[IN_VAL_LCBDY] = 90
    # BEAMDIR
    in_vals[IN_VAL_DELTAMU] = 0.4
    # A4
    # (slot 24 unused)
    in_vals[IN_VAL_FCCR] = 12
    in_vals[IN_VAL_FWHCR] = in_vals[IN_VAL_FCCR]
    in_vals[IN_VAL_RENORMFLAG] = 1
    in_vals[IN_VAL_QFLAG] = 2

    if set_unused:
        # Sanity-checking: these parameters shouldn't affect the calculated
        # result.
        in_vals[IN_VAL_EPSILON] = 0.05
        in_vals[IN_VAL_KAPPA] = 4.0
        in_vals[IN_VAL_EBREAK] = 1.0
        in_vals[IN_VAL_DELTA2] = 6.0
        in_vals[IN_VAL_BEAMDIR] = 90
        in_vals[IN_VAL_A4] = 1

    return fk10func(in_vals)