def METHOD_NAME(argv):
    logger = logging.getLogger("CoarsenTimesteps")
    logger.setLevel(logging.INFO)
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "src_dir", type=str, help="Full path to input data for downloading timesteps.",
    )
    parser.add_argument(
        "grid_spec_path",
        type=str,
        help=(
            "Full path to directory containing files matching 'grid_spec.tile*.nc' to "
            "select grid specfiles with same resolution as the source data."
        ),
    )
    parser.add_argument(
        "source_resolution", type=int, help="Source data cubed-sphere grid resolution.",
    )
    parser.add_argument(
        "target_resolution", type=int, help="Target coarsening resolution to output.",
    )
    parser.add_argument(
        "dst_dir",
        type=str,
        help=(
            "Full path to output coarsened timestep data. Defaults to input path"
            "with target resolution appended as a directory"
        ),
    )
    parser.add_argument(
        "--add-target-subdir",
        action="store_true",
        help=(
            "Add subdirectory with C{target-resolution} to the specified "
            "destination directory. "
        ),
    )
    parser.add_argument(
        "--coarsen-agrid-winds",
        action="store_true",
        help=(
            "Whether to coarse-grain the A-grid winds in the fv_core.res "
            "restart files."
        ),
    )
    logging.basicConfig(level=logging.INFO)
    args, pipeline_args = parser.parse_known_args(argv)
    gridspec_path = os.path.join(args.grid_spec_path, "grid_spec")
    output_dir_prefix = args.dst_dir
    if args.add_target_subdir:
        output_dir_prefix = os.path.join(
            output_dir_prefix, f"C{args.target_resolution}"
        )
    factor = args.source_resolution // args.target_resolution
    run(
        gridspec_path,
        args.src_dir,
        output_dir_prefix,
        factor,
        args.coarsen_agrid_winds,
        pipeline_args=pipeline_args,
    )