def gear_box_torques_in(min_engine_on_speed, gear_box_torques_out,
    gear_box_speeds_in, gear_box_speeds_out, par, clutch):
    """
    Calculates torque required according to the temperature profile [N*m].

    :param min_engine_on_speed:
        Minimum engine speed to consider the engine to be on [RPM].
    :type min_engine_on_speed: float

    :param gear_box_torques_out:
        Torque gear_box vector [N*m].
    :type gear_box_torques_out: numpy.array

    :param gear_box_speeds_in:
        Engine speed vector [RPM].
    :type gear_box_speeds_in: numpy.array

    :param gear_box_speeds_out:
        Wheel speed vector [RPM].
    :type gear_box_speeds_out: numpy.array

    :param gear_box_efficiency_parameters_cold_hot:
        Parameters of gear box efficiency model:

            - `gbp00`,
            - `gbp10`,
            - `gbp01`
    :type gear_box_efficiency_parameters_cold_hot: dict

    :return:
        Torque required vector [N*m].
    :rtype: numpy.array
    """
    tgb, es, ws = gear_box_torques_out, gear_box_speeds_in, gear_box_speeds_out
    if gear_box_speeds_in != 0:
        ratio = gear_box_speeds_out / gear_box_speeds_in
    else:
        ratio = 0
    if tgb >= 0:
        if es == 0 or ws == 0 or clutch == 1:
            res = 0
        else:
            res = (tgb * ratio - par['gbp10'] * es - par['gbp00']) / par[
                'gbp01']
    else:
        res = -(-tgb * ratio * par['gbp01'] + par['gbp10'] * ws + par['gbp00'])
    return res
