def METHOD_NAME(
    self,
    newcase,
    keepexe=False,
    mach_dir=None,
    project=None,
    cime_output_root=None,
    exeroot=None,
    rundir=None,
):
    # Need to disable unused-argument checking: keepexe is needed to match
    # the interface of Case, but is not used in this fake implementation
    #
    # pylint: disable=unused-argument
    """
    Create a clone of the current case. Also creates the CASEROOT directory
    for the clone case (given by newcase).
    Args:
        newcase (str): full path to the new case. This directory should not
            already exist; it will be created
        keepexe (bool, optional): Ignored
        mach_dir (str, optional): Ignored
        project (str, optional): Ignored
        cime_output_root (str, optional): New CIME_OUTPUT_ROOT for the clone
        exeroot (str, optional): New EXEROOT for the clone
        rundir (str, optional): New RUNDIR for the clone
    Returns the clone case object
    """
    newcaseroot = os.path.abspath(newcase)
    newcasename = os.path.basename(newcase)
    os.makedirs(newcaseroot)
    clone = self.copy(newcasename=newcasename, newcaseroot=newcaseroot)
    if cime_output_root is not None:
        clone.set_value("CIME_OUTPUT_ROOT", cime_output_root)
    if exeroot is not None:
        clone.set_value("EXEROOT", exeroot)
    if rundir is not None:
        clone.set_value("RUNDIR", rundir)
    return clone