Reference Guide  2.5.0
psyclone.gocean1p0.GOPSy Class Reference
Inheritance diagram for psyclone.gocean1p0.GOPSy:
Collaboration diagram for psyclone.gocean1p0.GOPSy:

Public Member Functions

def __init__ (self, invoke_info)
 
def gen (self)
 
- Public Member Functions inherited from psyclone.psyGen.PSy
def container (self)
 
def __str__ (self)
 
def invokes (self)
 
def name (self)
 

Detailed Description

The GOcean 1.0 specific PSy class. This creates a GOcean specific
invokes object (which controls all the required invocation calls).
Also overrides the PSy gen method so that we generate GOcean-
specific PSy module code.

:param invoke_info: An object containing the required invocation \
                    information for code optimisation and generation.
:type invoke_info: :py:class:`psyclone.parse.FileInfo`

Definition at line 83 of file gocean1p0.py.

Member Function Documentation

◆ gen()

def psyclone.gocean1p0.GOPSy.gen (   self)
Generate PSy code for the GOcean api v.1.0.

:rtype: ast

Reimplemented from psyclone.psyGen.PSy.

Definition at line 110 of file gocean1p0.py.

110  def gen(self):
111  '''
112  Generate PSy code for the GOcean api v.1.0.
113 
114  :rtype: ast
115 
116  '''
117  # create an empty PSy layer module
118  psy_module = ModuleGen(self.name)
119  # include the kind_params module
120  psy_module.add(UseGen(psy_module, name="kind_params_mod"))
121  # include the field_mod module
122  psy_module.add(UseGen(psy_module, name="field_mod"))
123  self.invokes.gen_code(psy_module)
124  return psy_module.root
125 
126 

References psyclone.psyGen.PSy.invokes(), psyclone.psyGen.Invoke.invokes(), psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.name, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.GridArg.name, psyclone.domain.gocean.transformations.gocean_const_loop_bounds_trans.GOConstLoopBoundsTrans.name(), psyclone.domain.gocean.transformations.gocean_move_iteration_boundaries_inside_kernel_trans.GOMoveIterationBoundariesInsideKernelTrans.name(), psyclone.domain.gocean.transformations.gocean_opencl_trans.GOOpenCLTrans.name(), psyclone.domain.lfric.kernel.lfric_kernel_metadata.LFRicKernelMetadata.name, psyclone.domain.nemo.transformations.create_nemo_invoke_schedule_trans.CreateNemoInvokeScheduleTrans.name(), psyclone.domain.nemo.transformations.create_nemo_psy_trans.CreateNemoPSyTrans.name(), psyclone.domain.nemo.transformations.nemo_allarrayrange2loop_trans.NemoAllArrayRange2LoopTrans.name(), psyclone.domain.nemo.transformations.nemo_arrayrange2loop_trans.NemoArrayRange2LoopTrans.name(), psyclone.domain.nemo.transformations.nemo_outerarrayrange2loop_trans.NemoOuterArrayRange2LoopTrans.name(), psyclone.dynamo0p3.DynamoPSy.name(), psyclone.expression.FunctionVar.name, psyclone.expression.NamedArg.name(), psyclone.gocean1p0.GOKernelGridArgument.name(), psyclone.gocean1p0.GOStencil.name(), psyclone.parse.algorithm.FileInfo.name(), psyclone.parse.algorithm.InvokeCall.name(), psyclone.parse.kernel.KernelProcedure.name(), psyclone.parse.kernel.KernelType.name(), psyclone.parse.module_info.ModuleInfo.name(), psyclone.psyad.transformations.assignment_trans.AssignmentTrans.name(), psyclone.psyGen.PSy.name(), psyclone.psyGen.Invoke.name(), psyclone.psyGen.Kern.name(), psyclone.psyGen.CodedKern.name, psyclone.psyGen.Argument.name(), psyclone.psyGen.Transformation.name(), psyclone.psyGen.DummyTransformation.name(), psyclone.psyir.nodes.container.Container.name, psyclone.psyir.nodes.member.Member.name, psyclone.psyir.nodes.reference.Reference.name(), psyclone.psyir.nodes.routine.Routine.name, psyclone.psyir.symbols.symbol.Symbol.name(), psyclone.psyir.transformations.allarrayaccess2loop_trans.AllArrayAccess2LoopTrans.name(), psyclone.psyir.transformations.arrayrange2loop_trans.ArrayRange2LoopTrans.name(), psyclone.psyir.transformations.fold_conditional_return_expressions_trans.FoldConditionalReturnExpressionsTrans.name(), psyclone.psyir.transformations.loop_trans.LoopTrans.name(), psyclone.psyir.transformations.omp_task_trans.OMPTaskTrans.name(), psyclone.psyir.transformations.psy_data_trans.PSyDataTrans.name(), psyclone.transformations.OMPSingleTrans.name(), psyclone.transformations.OMPMasterTrans.name(), psyclone.transformations.OMPParallelTrans.name(), psyclone.transformations.MoveTrans.name(), psyclone.transformations.Dynamo0p3AsyncHaloExchangeTrans.name(), psyclone.transformations.Dynamo0p3KernelConstTrans.name(), psyclone.transformations.ACCEnterDataTrans.name(), psyclone.transformations.ACCRoutineTrans.name(), psyclone.transformations.ACCKernelsTrans.name(), psyclone.transformations.ACCDataTrans.name(), and psyclone.transformations.KernelImportsToArguments.name().

Here is the call graph for this function:

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