def METHOD_NAME(output: xr.Dataset, target: xr.Dataset, varname: str):
    # must specify projection for subplots if calling plot_cube with an ax argument
    fig, ax = plt.subplots(
        3, 1, figsize=(6, 9), subplot_kw={"projection": ccrs.Robinson()}
    )
    output_snapshot = output.isel(time=0, drop=True)
    target_snapshot = target.isel(time=0, drop=True)
    vmin = min(
        output_snapshot[varname].min().values.item(),
        target_snapshot[varname].min().values.item(),
    )
    vmax = max(
        output_snapshot[varname].max().values.item(),
        target_snapshot[varname].max().values.item(),
    )
    fv3viz.plot_cube(
        output_snapshot.merge(GRID, compat="override"),
        var_name=varname,
        ax=ax[0],
        vmin=vmin,
        vmax=vmax,
    )
    fv3viz.plot_cube(
        target_snapshot.merge(GRID, compat="override"),
        var_name=varname,
        ax=ax[1],
        vmin=vmin,
        vmax=vmax,
    )
    fv3viz.plot_cube(
        (output_snapshot - target_snapshot).merge(GRID, compat="override"),
        var_name=varname,
        ax=ax[2],
    )
    ax[0].set_title("Snapshot Output")
    ax[1].set_title("Snapshot Target")
    ax[2].set_title("Snapshot Error")
    plt.tight_layout()
    fig.savefig(f"plots/{varname}-first_snapshot.png", dpi=DPI)