36 '''Module containing the EvaluatorTargetsMetadata class which captures
37 the values for the LFRic kernel GH_EVALUATOR_TARGETS metadata.
42 CommonDeclarationMetadata
46 '''Class to capture the values of the LFRic kernel
47 GH_EVALUATOR_TARGETS metadata. This class supports the creation,
48 modification and Fortran output of this metadata.
50 if an evaluator is required for multiple function spaces then
51 this is specified using the gh_evaluator_targets
54 :param evaluator_targets: a list of function-space names.
55 :type evaluator_targets: List[str]
58 def __init__(self, evaluator_targets):
64 :returns: the evaluator_targets metadata as Fortran.
67 return EvaluatorTargetsMetadata.array_declaration_string(
72 '''Create an instance of EvaluatorTargetsMetadata from an fparser2
75 LFRic evaluator targets metadata is in array form. Two
76 versions of the array form are supported:
78 integer :: gh_evaluator_targets(2) = (/ w0, w1 /)
79 integer, dimension(2) :: gh_shape = (/ w0, w1 /)
81 :param fparser2_tree: fparser2 tree capturing the evaluator \
83 :type fparser2_tree: :py:class:`fparser.two.Fortran2003.\
84 Data_Component_Def_Stmt`
86 :returns: an instance of EvaluatorTargetsMetadata.
87 :rtype: :py:class:`psyclone.domain.lfric.kernel.\
88 EvaluatorTargetsMetadata`
92 valid_values = const.VALID_FUNCTION_SPACES
93 values_list = EvaluatorTargetsMetadata.\
95 fparser2_tree,
"INTEGER",
"GH_EVALUATOR_TARGETS", valid_values)
99 def evaluator_targets(self):
101 :returns: a list of evaluator targets values (names of \
107 @evaluator_targets.setter
108 def evaluator_targets(self, values):
110 :param values: set the evaluator_targets metadata to the \
111 supplied list of values.
112 :type values: List[str]
115 EvaluatorTargetsMetadata.validate_list(values, str)
117 EvaluatorTargetsMetadata.validate_scalar_value(
118 value, const.VALID_FUNCTION_SPACES,
"evaluator_targets")
124 __all__ = [
"EvaluatorTargetsMetadata"]
def get_intrinsic_array_declaration(fparser2_tree, datatype, name, valid_values)
def evaluator_targets(self)
def evaluator_targets(self, values)
def create_from_fparser2(fparser2_tree)