def METHOD_NAME(member_name, indices, inner_member):
    '''
    Create an access to a member of one or more elements of an array of
    structures that is itself a member of a structure.
    e.g. if we had the Fortran `grid%subdomains(1)%xstart` then
    `subdomains` must be an array of structure (derived) type. We would
    construct an ArrayOfStructuresMember for this access by calling:
    >>> aosmem = ArrayOfStructuresMember.create(
            "subdomains", [Literal("1", INTEGER_TYPE)], Member("xstart"))
    :param str member_name: the name of the array member of the structure \
        that is being accessed.
    :param indices: the array-index expressions.
    :type indices: list of :py:class:`psyclone.psyir.nodes.DataNode`
    :param inner_member: the member of the `member_name` structure that \
        is being accessed.
    :type inner_member: :py:class:`psyclone.psyir.nodes.Member`
    :returns: a new ArrayOfStructuresMember object.
    :rtype: :py:class:`psyclone.psyir.nodes.ArrayOfStructuresMember`
    '''
    obj = ArrayOfStructuresMember(member_name)
    # Add the inner_member node as the first child
    obj.addchild(inner_member)
    # Add the array-index expressions as subsequent children
    for child in indices:
        obj.addchild(child)
    return obj