.. todo:: store_data docstring

def store_data(self, data, datatype, mode, disp, clobber=False):
        """ .. todo:: store_data docstring
        """

        # Imports
        import h5py as h5
        from ..error import RepoError as RErr
        from ..const import EnumDispDirection as _E_DD
        from ..const import EnumAnharmRepoData

        # Must be valid mode
        if not (mode >=0 and isinstance(mode, int)):
            raise ValueError("Mode must be a non-negative integer")
        ## end if

        # Must be a valid disp direction
        if not disp in _E_DD:
            raise ValueError("'{0}' is not a valid " +
                    "displacement enum value".format(disp))
        ## end if

        # Must be a valid repo data type
        if not datatype in EnumAnharmRepoData:
            raise ValueError("'{0}' is not a valid " +
                    "data type enum value".format(datatype))
        ## end if

        # Get the appropriate geom group name
        if disp == _E_DD.NO_DISP:
            grpname = self.G_geom_ref
        else:
            grpname = self.F_mode_fmt % (mode, self.dircode[disp])
        ## end if

        # Get the group, creating if absent
        try:
            grp = self._repo.require_group(grpname)
        except AttributeError:
            # Presume repo not open/attached
            raise RErr(RErr.STATUS,
                        "Cannot store; no repository open", "")
        ## end try

        # If dataset exists in repo group, obliterate or complain. Can't use
        #  'require_dataset' since the object could be changing dimension(s)
        #  and h5py can't do that
        if datatype in grp.keys():
            if clobber:
                grp.pop(datatype)
            else:
                raise RErr(RErr.DATA,
                        "Dataset to be stored exists and clobber == False",
                        self._repo.filename)
            ## end if
        ## end if

        # Store the new data. DOES NOT ENSURE CONSISTENCY with any
        #  other data in the repository.
        grp.create_dataset(datatype, data=data)

        # Set as dirty and flush the repo
        self.set_dirty(True)
        self._repo.flush()