def _find_elm(self, search_elm_name):
        """
        Finds group name and associated element's number

        :param search_elm_name: element's name, string
        :return: group name (string) and element's number (int)
        """
        ngrp=0
        while True:
            if ngrp == 0:
                error, grp_name, cel_name, grp_count_dimensions, grp_dimensions, grp_order = nefis.inqfgr(self.fp)
            else:
                error, grp_name, cel_name, grp_count_dimensions, grp_dimensions, grp_order = nefis.inqngr(self.fp)

            ngrp += 1
            if error == -6028: # no more groups to read
                return '', -1   # element not found

            # Read a cell definition from the definition file
            error, count, elm_names = nefis.inqcel(self.fp, cel_name)
            self._print_error(error)

            for i in range(count):
                if search_elm_name.strip() == elm_names[17*i:17*(i+1)].strip():
                    return grp_name, i    # return group and element number
    def cell_info(self, cel_name, print_out=True):
        """
        Read a cell definition from the definition file

        :param cel_name: cell's name, string
        :param print_out: print-out flag, boolean
        :return: element's count, elements' names
        """
        error, count, elm_names = nefis.inqcel(self.fp, cel_name)
        self._print_error(error)
        if print_out:
            print('  Element Count: "%d"' % count)
            print('  Element names: "%s"' % elm_names)

        return count, elm_names