def METHOD_NAME(coarse, fine):
    # subset times and variables to intersection
    common_times = xr.DataArray(
        data=sorted(list(set(coarse.time.values).intersection(set(fine.time.values)))),
        dims=["time"],
    )
    coarse, fine = coarse.sel(time=common_times), fine.sel(time=common_times)
    common_vars = set(coarse.data_vars).intersection(fine.data_vars)
    coarse, fine = get_variables(coarse, common_vars), get_variables(fine, common_vars)
    # add 'res' dimension and concatenate
    merged = xr.concat(
        [coarse.expand_dims({"res": ["coarse"]}), fine.expand_dims({"res": ["fine"]})],
        dim="res",
    )
    # add grid variables back
    return xr.merge([merged, GRID])