Reference Guide  2.5.0
psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList Class Reference
Inheritance diagram for psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList:
Collaboration diagram for psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList:

Public Member Functions

def cell_map (self, var_accesses=None)
 
def cell_position (self, var_accesses=None)
 
def stencil (self, arg, var_accesses=None)
 
def stencil_2d (self, arg, var_accesses=None)
 
def stencil_unknown_extent (self, arg, var_accesses=None)
 
def stencil_2d_unknown_extent (self, arg, var_accesses=None)
 
def operator (self, arg, var_accesses=None)
 
def fs_compulsory_field (self, function_space, var_accesses=None)
 
def fs_intergrid (self, function_space, var_accesses=None)
 
def scalar (self, scalar_arg, var_accesses=None)
 
- Public Member Functions inherited from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList
def __init__ (self, kern)
 
def get_user_type (self, module_name, user_type, name, tag=None)
 
def append_structure_reference (self, module_name, user_type, member_list, name, tag=None, overwrite_datatype=None)
 
def mesh_height (self, var_accesses=None)
 
def cma_operator (self, arg, var_accesses=None)
 
def field_vector (self, argvect, var_accesses=None)
 
def field (self, arg, var_accesses=None)
 
def stencil_2d_max_extent (self, arg, var_accesses=None)
 
def stencil_unknown_direction (self, arg, var_accesses=None)
 
def fs_common (self, function_space, var_accesses=None)
 
def basis (self, function_space, var_accesses=None)
 
def diff_basis (self, function_space, var_accesses=None)
 
def field_bcs_kernel (self, function_space, var_accesses=None)
 
def operator_bcs_kernel (self, function_space, var_accesses=None)
 
def mesh_properties (self, var_accesses=None)
 
def quad_rule (self, var_accesses=None)
 
def nlayers_positions (self)
 
def nqp_positions (self)
 
def ndf_positions (self)
 
def cell_ref_name (self, var_accesses=None)
 
- Public Member Functions inherited from psyclone.domain.lfric.arg_ordering.ArgOrdering
def psyir_append (self, node)
 
def append (self, var_name, var_accesses=None, var_access_name=None, mode=AccessType.READ, metadata_posn=None)
 
def extend (self, list_var_name, var_accesses=None, mode=AccessType.READ, list_metadata_posn=None)
 
def append_integer_reference (self, name, tag=None)
 
def get_array_reference (self, array_name, indices, intrinsic_type, tag=None, symbol=None)
 
def append_array_reference (self, array_name, indices, intrinsic_type, tag=None, symbol=None)
 
def num_args (self)
 
def arglist (self)
 
def psyir_arglist (self)
 
def metadata_index_from_actual_index (self, idx)
 
def generate (self, var_accesses=None)
 
def banded_dofmap (self, function_space, var_accesses=None)
 
def indirection_dofmap (self, function_space, operator=None, var_accesses=None)
 
def ref_element_properties (self, var_accesses=None)
 

Additional Inherited Members

- Static Public Attributes inherited from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList
 NdfInfo = namedtuple("NdfInfo", ["position", "function_space"])
 

Detailed Description

Kernel call arguments that need to be declared by OpenACC
directives. KernCallArgList only needs to be specialised
where modified, or additional, arguments are required.
Scalars are apparently not required but it is valid in
OpenACC to include them and requires less specialisation
to keep them in.

Definition at line 50 of file kern_call_acc_arg_list.py.

Member Function Documentation

◆ cell_map()

def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.cell_map (   self,
  var_accesses = None 
)
Add cell-map to the list of required arrays.

:param var_accesses: optional VariablesAccessInfo instance to store
    the information about variable accesses.
:type var_accesses: Optional[
    :py:class:`psyclone.core.VariablesAccessInfo`]

Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.

Definition at line 60 of file kern_call_acc_arg_list.py.

60  def cell_map(self, var_accesses=None):
61  '''Add cell-map to the list of required arrays.
62 
63  :param var_accesses: optional VariablesAccessInfo instance to store
64  the information about variable accesses.
65  :type var_accesses: Optional[
66  :py:class:`psyclone.core.VariablesAccessInfo`]
67 
68  '''
69  cargs = psyGen.args_filter(self._kern.args, arg_meshes=["gh_coarse"])
70  if len(cargs) > 1:
71  raise InternalError(
72  f"An LFRic intergrid kernel should have only one coarse mesh "
73  f"but '{self._kern.name}' has {len(cargs)}")
74  carg = cargs[0]
75  # Add the cell map to our argument list
76  base_name = "cell_map_" + carg.name
77  self.append(base_name)
78  # We'll need the current cell to index into this cell map.
79  self.cell_position(var_accesses)
80 

References psyclone.domain.common.psylayer.psyloop.PSyLoop._kern, psyclone.domain.lfric.arg_ordering.ArgOrdering._kern, psyclone.domain.lfric.lfric_loop.LFRicLoop._kern, psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), psyclone.domain.lfric.arg_ordering.ArgOrdering.append(), psyclone.domain.lfric.arg_ordering.ArgOrdering.cell_position(), psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.cell_position(), psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.cell_position(), psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.cell_position(), and psyclone.domain.lfric.kernel_interface.KernelInterface.cell_position().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cell_position()

def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.cell_position (   self,
  var_accesses = None 
)
Adds a cell argument to the argument list and if supplied stores
this access in var_accesses. Although normally just a scalar, the cell
argument may actually require a lookup from a colour map array. Either
way, this method adds the name of the variable to the argument list.

:param var_accesses: optional VariablesAccessInfo instance to store
    the information about variable accesses.
:type var_accesses: Optional[
    :py:class:`psyclone.core.VariablesAccessInfo`]

Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.

Definition at line 81 of file kern_call_acc_arg_list.py.

81  def cell_position(self, var_accesses=None):
82  '''Adds a cell argument to the argument list and if supplied stores
83  this access in var_accesses. Although normally just a scalar, the cell
84  argument may actually require a lookup from a colour map array. Either
85  way, this method adds the name of the variable to the argument list.
86 
87  :param var_accesses: optional VariablesAccessInfo instance to store
88  the information about variable accesses.
89  :type var_accesses: Optional[
90  :py:class:`psyclone.core.VariablesAccessInfo`]
91 
92  '''
93  _, ref = self.cell_ref_name(var_accesses)
94  self.append(ref.symbol.name)
95 

References psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), psyclone.domain.lfric.arg_ordering.ArgOrdering.append(), and psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.cell_ref_name().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fs_compulsory_field()

def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.fs_compulsory_field (   self,
  function_space,
  var_accesses = None 
)
Add compulsory arguments associated with this function space to
the list. OpenACC requires the full function-space map
to be specified. If supplied it also stores this access in
var_accesses.

:param function_space: the function space for which the compulsory
    arguments are added.
:type function_space: :py:class:`psyclone.domain.lfric.FunctionSpace`
:param var_accesses: optional VariablesAccessInfo instance to store
    the information about variable accesses.
:type var_accesses: Optional[
    :py:class:`psyclone.core.VariablesAccessInfo`]

Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.

Definition at line 192 of file kern_call_acc_arg_list.py.

192  def fs_compulsory_field(self, function_space, var_accesses=None):
193  '''Add compulsory arguments associated with this function space to
194  the list. OpenACC requires the full function-space map
195  to be specified. If supplied it also stores this access in
196  var_accesses.
197 
198  :param function_space: the function space for which the compulsory
199  arguments are added.
200  :type function_space: :py:class:`psyclone.domain.lfric.FunctionSpace`
201  :param var_accesses: optional VariablesAccessInfo instance to store
202  the information about variable accesses.
203  :type var_accesses: Optional[
204  :py:class:`psyclone.core.VariablesAccessInfo`]
205 
206  '''
207  if self._kern.iterates_over != "cell_column":
208  return
209  self.append(function_space.undf_name, var_accesses)
210  # The base class only adds one dimension to the list, while OpenACC
211  # needs the whole field, so we cannot call the base class.
212  self.append(function_space.map_name, var_accesses)
213 

References psyclone.domain.common.psylayer.psyloop.PSyLoop._kern, psyclone.domain.lfric.arg_ordering.ArgOrdering._kern, psyclone.domain.lfric.lfric_loop.LFRicLoop._kern, psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), and psyclone.domain.lfric.arg_ordering.ArgOrdering.append().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fs_intergrid()

def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.fs_intergrid (   self,
  function_space,
  var_accesses = None 
)
Add arrays that need to be uploaded for inter-grid kernels.
These arrays contain the mapping between fine and coarse meshes.

:param function_space: the function space associated with the mesh.
:type function_space: :py:class:`psyclone.domain.lfric.FunctionSpace`
:param var_accesses: optional VariablesAccessInfo instance to store
    the information about variable accesses.
:type var_accesses: Optional[
    :py:class:`psyclone.core.VariablesAccessInfo`]

Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.

Definition at line 214 of file kern_call_acc_arg_list.py.

214  def fs_intergrid(self, function_space, var_accesses=None):
215  '''Add arrays that need to be uploaded for inter-grid kernels.
216  These arrays contain the mapping between fine and coarse meshes.
217 
218  :param function_space: the function space associated with the mesh.
219  :type function_space: :py:class:`psyclone.domain.lfric.FunctionSpace`
220  :param var_accesses: optional VariablesAccessInfo instance to store
221  the information about variable accesses.
222  :type var_accesses: Optional[
223  :py:class:`psyclone.core.VariablesAccessInfo`]
224 
225  '''
226  # Is this FS associated with the coarse or fine mesh? (All fields
227  # on a given mesh must be on the same FS.)
228  arg = self._kern.arguments.get_arg_on_space(function_space)
229  if arg.mesh == "gh_fine":
230  # For the fine mesh, we need the *whole* dofmap
231  map_name = function_space.map_name
232  self.append(map_name, var_accesses)
233  else:
234  # For the coarse mesh we only need undf and the dofmap for
235  # the current column
236  self.fs_compulsory_field(function_space,
237  var_accesses=var_accesses)
238 

References psyclone.domain.common.psylayer.psyloop.PSyLoop._kern, psyclone.domain.lfric.arg_ordering.ArgOrdering._kern, psyclone.domain.lfric.lfric_loop.LFRicLoop._kern, psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), psyclone.domain.lfric.arg_ordering.ArgOrdering.append(), psyclone.domain.lfric.arg_ordering.ArgOrdering.fs_compulsory_field(), psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.fs_compulsory_field(), psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.fs_compulsory_field(), psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.fs_compulsory_field(), and psyclone.domain.lfric.kernel_interface.KernelInterface.fs_compulsory_field().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator()

def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.operator (   self,
  arg,
  var_accesses = None 
)
Add the operator arguments if they have not already been
added. OpenACC requires the derived type and the dereferenced
data to be specified. If supplied it also stores this access in
var_accesses.

:param arg: the meta-data description of the operator.
:type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument`
:param var_accesses: optional VariablesAccessInfo instance to store
    the information about variable accesses.
:type var_accesses: Optional[
    :py:class:`psyclone.core.VariablesAccessInfo`]

Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.

Definition at line 171 of file kern_call_acc_arg_list.py.

171  def operator(self, arg, var_accesses=None):
172  '''Add the operator arguments if they have not already been
173  added. OpenACC requires the derived type and the dereferenced
174  data to be specified. If supplied it also stores this access in
175  var_accesses.
176 
177  :param arg: the meta-data description of the operator.
178  :type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument`
179  :param var_accesses: optional VariablesAccessInfo instance to store
180  the information about variable accesses.
181  :type var_accesses: Optional[
182  :py:class:`psyclone.core.VariablesAccessInfo`]
183 
184  '''
185  # In case of OpenACC we do not want to transfer the same
186  # data to GPU twice.
187  if arg.proxy_name_indexed not in self.arglist:
188  self.append(arg.proxy_name_indexed, var_accesses)
189  # This adds ncell_3d and local_stencil after the derived type:
190  super().operator(arg, var_accesses)
191 

References psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), psyclone.domain.lfric.arg_ordering.ArgOrdering.append(), and psyclone.domain.lfric.arg_ordering.ArgOrdering.arglist().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ scalar()

def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.scalar (   self,
  scalar_arg,
  var_accesses = None 
)
Override the default implementation as there's no need to specify
scalars for an OpenACC data region.

:param scalar_arg: the kernel argument.
:type scalar_arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument`
:param var_accesses: optional VariablesAccessInfo instance that
    stores information about variable accesses.
:type var_accesses: Optional[
    :py:class:`psyclone.core.VariablesAccessInfo`]

Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.

Definition at line 239 of file kern_call_acc_arg_list.py.

239  def scalar(self, scalar_arg, var_accesses=None):
240  '''
241  Override the default implementation as there's no need to specify
242  scalars for an OpenACC data region.
243 
244  :param scalar_arg: the kernel argument.
245  :type scalar_arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument`
246  :param var_accesses: optional VariablesAccessInfo instance that
247  stores information about variable accesses.
248  :type var_accesses: Optional[
249  :py:class:`psyclone.core.VariablesAccessInfo`]
250 
251  '''
252 
253 
254 # ============================================================================
255 # For automatic documentation creation:
Here is the caller graph for this function:

◆ stencil()

def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.stencil (   self,
  arg,
  var_accesses = None 
)
Add general stencil information associated with the argument 'arg'
to the argument list. OpenACC requires the full dofmap to be
specified. If supplied it also stores this access in var_accesses.

:param arg: the meta-data description of the kernel argument with
    which the stencil is associated.
:type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument`
:param var_accesses: optional VariablesAccessInfo instance to store
    the information about variable accesses.
:type var_accesses: Optional[
    :py:class:`psyclone.core.VariablesAccessInfo`]

Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.

Definition at line 96 of file kern_call_acc_arg_list.py.

96  def stencil(self, arg, var_accesses=None):
97  '''Add general stencil information associated with the argument 'arg'
98  to the argument list. OpenACC requires the full dofmap to be
99  specified. If supplied it also stores this access in var_accesses.
100 
101  :param arg: the meta-data description of the kernel argument with
102  which the stencil is associated.
103  :type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument`
104  :param var_accesses: optional VariablesAccessInfo instance to store
105  the information about variable accesses.
106  :type var_accesses: Optional[
107  :py:class:`psyclone.core.VariablesAccessInfo`]
108 
109  '''
110  # Import here to avoid circular dependency
111  # pylint: disable=import-outside-toplevel
112  from psyclone.domain.lfric.lfric_stencils import LFRicStencils
113  var_name = LFRicStencils.dofmap_symbol(self._kern.root.symbol_table,
114  arg).name
115  self.append(var_name, var_accesses)
116 

References psyclone.domain.common.psylayer.psyloop.PSyLoop._kern, psyclone.domain.lfric.arg_ordering.ArgOrdering._kern, psyclone.domain.lfric.lfric_loop.LFRicLoop._kern, psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), and psyclone.domain.lfric.arg_ordering.ArgOrdering.append().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stencil_2d()

def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.stencil_2d (   self,
  arg,
  var_accesses = None 
)
Add general 2D stencil information associated with the argument
'arg' to the argument list. OpenACC requires the full dofmap to be
specified. If supplied it also stores this access in var_accesses.This
method passes through to the stencil method.

:param arg: the meta-data description of the kernel
    argument with which the stencil is associated.
:type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument`
:param var_accesses: optional VariablesAccessInfo instance to store
    the information about variable accesses.
:type var_accesses: Optional[
    :py:class:`psyclone.core.VariablesAccessInfo`]

Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.

Definition at line 117 of file kern_call_acc_arg_list.py.

117  def stencil_2d(self, arg, var_accesses=None):
118  '''Add general 2D stencil information associated with the argument
119  'arg' to the argument list. OpenACC requires the full dofmap to be
120  specified. If supplied it also stores this access in var_accesses.This
121  method passes through to the stencil method.
122 
123  :param arg: the meta-data description of the kernel
124  argument with which the stencil is associated.
125  :type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument`
126  :param var_accesses: optional VariablesAccessInfo instance to store
127  the information about variable accesses.
128  :type var_accesses: Optional[
129  :py:class:`psyclone.core.VariablesAccessInfo`]
130 
131  '''
132  self.stencil(arg, var_accesses)
133 

References psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg.stencil(), psyclone.dynamo0p3.DynKernelArgument.stencil(), psyclone.parse.kernel.Descriptor.stencil(), psyclone.psyGen.KernelArgument.stencil(), psyclone.domain.lfric.arg_ordering.ArgOrdering.stencil(), psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.stencil(), psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.stencil(), psyclone.domain.lfric.kern_call_invoke_arg_list.KernCallInvokeArgList.stencil(), psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.stencil(), psyclone.domain.lfric.kernel.field_arg_metadata.FieldArgMetadata.stencil, psyclone.domain.lfric.kernel_interface.KernelInterface.stencil(), and psyclone.domain.lfric.lfric_invoke.LFRicInvoke.stencil.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stencil_2d_unknown_extent()

def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.stencil_2d_unknown_extent (   self,
  arg,
  var_accesses = None 
)
Add 2D stencil information to the argument list associated with the
argument 'arg' if the extent is unknown. If supplied it also stores
this access in var_accesses. This method passes through to the
stencil_unknown_extent method.

:param arg: the kernel argument with which the stencil is associated.
:type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument`
:param var_accesses: optional VariablesAccessInfo instance to store
    the information about variable accesses.
:type var_accesses: Optional[
    :py:class:`psyclone.core.VariablesAccessInfo`]

Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.

Definition at line 155 of file kern_call_acc_arg_list.py.

155  def stencil_2d_unknown_extent(self, arg, var_accesses=None):
156  '''Add 2D stencil information to the argument list associated with the
157  argument 'arg' if the extent is unknown. If supplied it also stores
158  this access in var_accesses. This method passes through to the
159  stencil_unknown_extent method.
160 
161  :param arg: the kernel argument with which the stencil is associated.
162  :type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument`
163  :param var_accesses: optional VariablesAccessInfo instance to store
164  the information about variable accesses.
165  :type var_accesses: Optional[
166  :py:class:`psyclone.core.VariablesAccessInfo`]
167 
168  '''
169  self.stencil_unknown_extent(arg, var_accesses)
170 

References psyclone.domain.lfric.arg_ordering.ArgOrdering.stencil_unknown_extent(), psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.stencil_unknown_extent(), psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.stencil_unknown_extent(), psyclone.domain.lfric.kern_call_invoke_arg_list.KernCallInvokeArgList.stencil_unknown_extent(), psyclone.domain.lfric.kern_stub_arg_list.KernStubArgList.stencil_unknown_extent(), and psyclone.domain.lfric.kernel_interface.KernelInterface.stencil_unknown_extent().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ stencil_unknown_extent()

def psyclone.domain.lfric.kern_call_acc_arg_list.KernCallAccArgList.stencil_unknown_extent (   self,
  arg,
  var_accesses = None 
)
Add stencil information to the argument list associated with the
argument 'arg' if the extent is unknown. If supplied it also stores
this access in var_accesses.

:param arg: the kernel argument with which the stencil is associated.
:type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument`
:param var_accesses: optional VariablesAccessInfo instance to store
    the information about variable accesses.
:type var_accesses: Optional[
    :py:class:`psyclone.core.VariablesAccessInfo`]

Reimplemented from psyclone.domain.lfric.kern_call_arg_list.KernCallArgList.

Definition at line 134 of file kern_call_acc_arg_list.py.

134  def stencil_unknown_extent(self, arg, var_accesses=None):
135  '''Add stencil information to the argument list associated with the
136  argument 'arg' if the extent is unknown. If supplied it also stores
137  this access in var_accesses.
138 
139  :param arg: the kernel argument with which the stencil is associated.
140  :type arg: :py:class:`psyclone.dynamo0p3.DynKernelArgument`
141  :param var_accesses: optional VariablesAccessInfo instance to store
142  the information about variable accesses.
143  :type var_accesses: Optional[
144  :py:class:`psyclone.core.VariablesAccessInfo`]
145 
146  '''
147  # The extent is not specified in the metadata so pass the value in
148  # Import here to avoid circular dependency
149  # pylint: disable=import-outside-toplevel
150  from psyclone.domain.lfric.lfric_stencils import LFRicStencils
151  name = LFRicStencils.dofmap_size_symbol(self._kern.root.symbol_table,
152  arg).name
153  self.append(name, var_accesses)
154 

References psyclone.domain.common.psylayer.psyloop.PSyLoop._kern, psyclone.domain.lfric.arg_ordering.ArgOrdering._kern, psyclone.domain.lfric.lfric_loop.LFRicLoop._kern, psyclone.psyir.nodes.node.ChildrenList.append(), psyclone.gocean1p0.GOKernelArguments.append(), psyclone.psyGen.Arguments.append(), and psyclone.domain.lfric.arg_ordering.ArgOrdering.append().

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following file: