Reference Guide
2.5.0
|
Public Member Functions | |
def | __init__ (self, node) |
def | initialise (self, parent) |
Public Member Functions inherited from psyclone.domain.lfric.lfric_collection.LFRicCollection | |
def | declarations (self, parent) |
Handles all proxy-related declarations and initialisation. Unlike other sub-classes of LFRicCollection, we do not have to handle Kernel-stub generation since Kernels know nothing about proxies. An instance of this class is instantiated for each Invoke before the PSy Layer is constructed. For each unique field or operator argument to a kernel in the Invoke it: * Creates a DataSymbol for the corresponding proxy; * Creates a DataSymbol for the pointer to the data array accessed via the proxy. If the argument is a field vector then a DataSymbol is created for each component of the vector; * Tags that DataSymbol so that the correct symbol can always be looked up, irrespective of any name clashes; Note that since the Fortran standard forbids (Note 12.34 in the Fortran2008 standard) aliasing of effective arguments that are written to, the set of unique kernel arguments must refer to unique memory locations or to those that are read only.
Definition at line 1303 of file dynamo0p3.py.
def psyclone.dynamo0p3.DynProxies.initialise | ( | self, | |
parent | |||
) |
Insert code into the PSy layer to initialise all necessary proxies. :param parent: node in the f2pygen AST representing the PSy-layer routine. :type parent: :py:class:`psyclone.f2pygen.SubroutineGen` :raises InternalError: if a kernel argument of an unrecognised type is encountered.
Reimplemented from psyclone.domain.lfric.lfric_collection.LFRicCollection.
Definition at line 1547 of file dynamo0p3.py.
References psyclone.domain.lfric.lfric_collection.LFRicCollection._invoke, psyclone.nemo.NemoInvokeSchedule._invoke, psyclone.psyGen.InvokeSchedule._invoke, psyclone.domain.lfric.lfric_collection.LFRicCollection._symbol_table, psyclone.dynamo0p3.DynMeshes._symbol_table, psyclone.dynamo0p3.HaloDepth._symbol_table, psyclone.psyGen.HaloExchange._symbol_table, psyclone.psyir.backend.sympy_writer.SymPyWriter._symbol_table, and psyclone.psyir.nodes.scoping_node.ScopingNode._symbol_table.