36 '''Module containing the MetaFuncsMetadata class which captures
37 the values for the LFRic kernel meta_funcs metadata.
41 CommonDeclarationMetadata
47 '''Class to capture the values of the LFRic kernel
48 meta_funcs metadata. This class supports the creation,
49 modification and Fortran output of this metadata.
51 meta_funcs metadata specifies whether any quadrature or evaluator
52 data is required for a given function space.
54 :param meta_funcs_args: a list of meta_funcs arguments.
55 :type meta_funcs_args: List[:py:class:`psyclone.domain.lfric.kernel.\
56 MetaFuncsArgMetadata`]
59 def __init__(self, meta_funcs_args):
65 :returns: the meta_funcs metadata as Fortran.
73 '''Create an instance of MetaFuncsMetadata from an fparser2
76 :param fparser2_tree: fparser2 tree capturing the meta \
78 :type fparser2_tree: :py:class:`fparser.two.Fortran2003.\
79 Data_Component_Def_Stmt`
81 :returns: an instance of MetaFuncsMetadata.
82 :rtype: :py:class:`psyclone.domain.lfric.kernel.\
86 values_list = MetaFuncsMetadata.get_derived_array_declaration(
87 fparser2_tree,
"FUNC_TYPE",
"META_FUNCS")
89 for value
in values_list:
91 MetaFuncsArgMetadata.create_from_fortran_string(value))
95 def meta_funcs_args(self):
97 :returns: a list of meta funcs argument objects.
98 :rtype: List[:py:class:`psyclone.domain.lfric.kernel.\
99 MetaFuncsArgMetadata`]
103 @meta_funcs_args.setter
104 def meta_funcs_args(self, values):
106 :param values: set the meta_funcs metadata to the \
107 supplied list of values.
108 :type values: List[:py:class:`psyclone.domain.lfric.kernel.\
109 MetaFuncsArgMetadata`]
112 self.
validate_listvalidate_list(values, MetaFuncsArgMetadata)
118 __all__ = [
"MetaFuncsMetadata"]
def type_declaration_string(datatype, name, values)
def validate_list(cls, values, expected_type)
def create_from_fparser2(fparser2_tree)
def meta_funcs_args(self, values)
def meta_funcs_args(self)