def adjust_disp(ncoeff, coeff, delta_offset1, shifta1, inang_info,
    delta_tan, delta_row, binaxis1):
    """Adjust the dispersion coefficients.

    The changes to the coefficients are for the incidence angle
    correction, the offset from the SHIFTA1 keyword, and the tilt
    of the slit.  The coefficients will be modified in-place.

    Parameters
    ----------
    ncoeff : int
        number of dispersion coefficients
    coeff : ndarray of float64
        array of dispersion coefficients, modified in-place
    delta_offset1 : float
        incidence angle offset in degrees
    shifta1 : float
        MSM offset (ref. pixels) in the dispersion direction
    delta_tan : float
        difference in tangents of slit angle and ref angle
    delta_row : float
        difference between current row number and CRPIX2
    binaxis1 : float
        binning factor in dispersion direction
    inang_info : rec_array
        rows from the incidence-angle table

    """
    iac_ncoeff1 = inang_info.field('ncoeff1')[0]
    iac_coeff1 = inang_info.field('coeff1')[0]
    iac_ncoeff2 = inang_info.field('ncoeff2')[0]
    iac_coeff2 = inang_info.field('coeff2')[0]
    for i in range(iac_ncoeff1):
        coeff[i] += iac_coeff1[i] * delta_offset1
    if iac_ncoeff2 > 0:
        coeff[0] += iac_coeff2[0] * delta_offset1
    if iac_ncoeff2 > 1:
        coeff[1] += iac_coeff2[1] * delta_offset1 ** 2
    coeff[0] += shifta1
    coeff[0] += delta_tan * delta_row * binaxis1
