def METHOD_NAME():
    # lazy imports
    import grass.temporal as tgis
    # Get the options
    input = options["input"]
    output = options["output"]
    where = options["where"]
    sort = options["sort"]
    add_time = flags["t"]
    patch_s = flags["s"]
    patch_z = flags["z"]
    patch_module = "r.buildvrt" if flags["v"] else "r.patch"
    # Make sure the temporal database exists
    tgis.init()
    sp = tgis.open_old_stds(input, "strds")
    rows = sp.get_registered_maps("id", where, "start_time", None)
    if rows:
        ordered_rasts = []
        # newest images are first
        if sort == "desc":
            rows_sorted = rows[::-1]
        # older images are first
        elif sort == "asc":
            rows_sorted = rows
        for row in rows_sorted:
            string = "%s" % (row["id"])
            ordered_rasts.append(string)
        patch_flags = ""
        if patch_z:
            patch_flags += "z"
        if patch_s:
            patch_flags += "s"
        try:
            grass.run_command(
                patch_module,
                overwrite=grass.overwrite(),
                input=(",").join(ordered_rasts),
                output=output,
                flags=patch_flags,
            )
        except CalledModuleError:
            grass.fatal(_("%s failed. Check above error messages.") % "r.patch")
        if not add_time:
            # We need to set the temporal extent from the subset of selected maps
            maps = sp.get_registered_maps_as_objects(
                where=where, order="start_time", dbif=None
            )
            first_map = maps[0]
            last_map = maps[-1]
            start_a, end_a = first_map.get_temporal_extent_as_tuple()
            start_b, end_b = last_map.get_temporal_extent_as_tuple()
            if end_b is None:
                end_b = start_b
            if first_map.is_time_absolute():
                extent = tgis.AbsoluteTemporalExtent(start_time=start_a, end_time=end_b)
            else:
                extent = tgis.RelativeTemporalExtent(
                    start_time=start_a,
                    end_time=end_b,
                    unit=first_map.get_relative_time_unit(),
                )
            # Create the time range for the output map
            if output.find("@") >= 0:
                id = output
            else:
                mapset = grass.gisenv()["MAPSET"]
                id = output + "@" + mapset
            map = sp.get_new_map_instance(id)
            map.load()
            map.set_temporal_extent(extent=extent)
            # Register the map in the temporal database
            if map.is_in_db():
                map.update_all()
            else:
                map.insert()