def METHOD_NAME(self, source):
    """
    Load the list of other quantity groups and their descriptions from the
    DREAM source code.
    """
    with open(os.path.abspath(source), 'r') as f:
        src = f.readlines()
    grps = []
    match = 'this->groups['
    I = 0
    nLines = len(src)
    while I < nLines:
        l = src[I].strip()
        if l.startswith(match):
            i = len(match)
            group, _ = self.load_string(l[i:])
            # Load quantities included in the group
            q = ''
            if l[-1] == '{':
                q = []
                I += 1
                while I < nLines:
                    l = src[I].strip()
                    # End of list of quantities?
                    if l.startswith('};'):
                        break
                    # Otherwise, load the list of quantities
                    i = 0
                    s, j = self.load_string(l)
                    while s is not None:
                        #ln = nodes.line()
                        #ln.append(nodes.literal(text=s))
                        q.append(s)
                        i += j
                        s, j = self.load_string(l[i:])
                    I += 1
                # Sort q
                q.sort(key=lambda x : x.lower())
                # Convert q into list of lines
                Q = []
                for quant in q:
                    ln = nodes.line()
                    ln.append(nodes.literal(text=quant))
                    Q.append(ln)
                #grps.append([group, ', '.join(q)])
                #grps.append([group, pg])
                grps.append([group, Q])
            else:
                q = "All quantities starting with ``{}/``.".format(group)
        I += 1
    return grps