def dict_species_sums(mech):
    """Predefined mapping tables for different observational parings used when
        combining data.

    Parameters
    ----------
    mech : string
        mechanism name

    Returns
    -------
    dictionary
        dictionary defining the variables to sum based on the specified mechanism

    """
    if mech == "racm_esrl_vcp":
        sum_dict = {}
        # Arrays for different gasses and pm groupings
        sum_dict.update(
            {
                "noy_gas": [
                    "hno3",
                    "no",
                    "no2",
                    "no3",
                    "pan",
                    "tpan",
                    "hono",
                    "hno4",
                    "onit",
                    "n2o5",
                    "ison",
                    "nald",
                    "mpan",
                ]
            }
        )
        sum_dict.update({"noy_gas_weight": [1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1]})
        sum_dict.update(
            {"noy_aer": ["no3ai", "no3aj"]}
        )  # Need to confirm here if there is a size cutoff for noy obs?
        sum_dict.update({"nox": ["no", "no2"]})
        sum_dict.update({"pm25_cl": ["clai", "claj"]})
        sum_dict.update({"pm25_cl_weight": [1, 1]})
        sum_dict.update({"pm25_ec": ["eci", "ecj"]})
        sum_dict.update({"pm25_ec_weight": [1, 1]})
        sum_dict.update({"pm25_na": ["naai", "naaj"]})
        sum_dict.update({"pm25_na_weight": [1, 1]})
        sum_dict.update({"pm25_nh4": ["nh4ai", "nh4aj"]})
        sum_dict.update({"pm25_nh4_weight": [1, 1]})
        sum_dict.update({"pm25_no3": ["no3ai", "no3aj"]})
        sum_dict.update({"pm25_no3_weight": [1, 1]})
        sum_dict.update({"pm25_so4": ["so4ai", "so4aj"]})
        sum_dict.update({"pm25_so4_weight": [1, 1]})
        sum_dict.update(
            {
                "pm25_om": [
                    "asoa1i",
                    "asoa1j",
                    "asoa2i",
                    "asoa2j",
                    "asoa3i",
                    "asoa3j",
                    "asoa4i",
                    "asoa4j",
                    "bsoa1i",
                    "bsoa1j",
                    "bsoa2i",
                    "bsoa2j",
                    "bsoa3i",
                    "bsoa3j",
                    "bsoa4i",
                    "bsoa4j",
                    "orgpai",
                    "orgpaj",
                ]
            }
        )
    elif mech == "redhc":
        sum_dict = {}
        # Arrays for different gasses and pm groupings
        sum_dict.update({"noy_gas": ["hno3", "no", "no2", "no3", "pan", "ho2no2", "onit", "n2o5"]})
        sum_dict.update({"noy_gas_weight": [1, 1, 1, 1, 1, 1, 1, 2]})
        sum_dict.update(
            {"noy_aer": ["no3ai", "no3aj"]}
        )  # Need to confirm here if there is a size cutoff for noy obs?
        sum_dict.update({"nox": ["no", "no2"]})
        sum_dict.update({"pm25_cl": ["clai", "claj"]})
        sum_dict.update({"pm25_cl_weight": [1, 1]})
        sum_dict.update({"pm25_ec": ["eci", "ecj"]})
        sum_dict.update({"pm25_ec_weight": [1, 1]})
        sum_dict.update({"pm25_na": ["naai", "naaj"]})
        sum_dict.update({"pm25_na_weight": [1, 1]})
        sum_dict.update({"pm25_nh4": ["nh4ai", "nh4aj"]})
        sum_dict.update({"pm25_nh4_weight": [1, 1]})
        sum_dict.update({"pm25_no3": ["no3ai", "no3aj"]})
        sum_dict.update({"pm25_no3_weight": [1, 1]})
        sum_dict.update({"pm25_so4": ["so4ai", "so4aj"]})
        sum_dict.update({"pm25_so4_weight": [1, 1]})
        sum_dict.update(
            {
                "pm25_om": [
                    "asoa0j",
                    "asoa0i",
                    "asoa1i",
                    "asoa1j",
                    "asoa2i",
                    "asoa2j",
                    "asoa3i",
                    "asoa3j",
                    "bsoa1i",
                    "bsoa1j",
                    "bsoa2i",
                    "bsoa2j",
                    "bsoa3i",
                    "bsoa3j",
                    "poa0j",
                    "poa0i",
                    "poa1j",
                    "poa1i",
                    "poa2j",
                    "poa2i",
                    "poa3j",
                    "poa3i",
                ]
            }
        )

    else:
        raise NotImplementedError("Mechanism not supported, update _wrfchem_mm.py file in MONETIO")

    return sum_dict