Reference Guide  2.5.0
psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg Class Reference

Public Member Functions

def __init__ (self, meta_arg, parent)
 
def fortran_string (self)
 
def access (self)
 
def access (self, value)
 
def grid_point_type (self)
 
def grid_point_type (self, value)
 
def form (self)
 
def form (self, value)
 
def stencil (self)
 
def stencil (self, value_list)
 

Public Attributes

 access
 
 grid_point_type
 
 form
 

Detailed Description

Internal class to capture Kernel metadata information for
a field argument.

:param meta_arg: an fparser2 tree representation of the metadata.
:type meta_arg: :py:class:`fparser.two.Fortran2003.Part_Ref`

:param parent: a KernelMetadataSymbol instance that captures \
    other parts of the metadata and references this instance.
:type parent: :py:class`psyclone.psyir.common.kernel. \
    KernelMetadataSymbol`

:raises ParseError: if the metadata does not contain three \
    arguments.

Definition at line 659 of file psyir.py.

Member Function Documentation

◆ access() [1/2]

def psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg.access (   self)
:returns: the access descriptor for this field \
    argument.
:rtype: str

Definition at line 737 of file psyir.py.

737  def access(self):
738  '''
739  :returns: the access descriptor for this field \
740  argument.
741  :rtype: str
742  '''
743  return self._access
744 

References psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.GridArg._access, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg._access, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.ScalarArg._access, psyclone.domain.lfric.kernel.common_meta_arg_metadata.CommonMetaArgMetadata._access, psyclone.parse.kernel.Descriptor._access, psyclone.psyGen.Argument._access, and psyclone.psyir.symbols.interfaces.ArgumentInterface._access.

Here is the caller graph for this function:

◆ access() [2/2]

def psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg.access (   self,
  value 
)

◆ form() [1/2]

def psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg.form (   self)
:returns: the form of access for the field (pointwise, \
    stencil, ...).
:rtype: str

Definition at line 807 of file psyir.py.

807  def form(self):
808  '''
809  :returns: the form of access for the field (pointwise, \
810  stencil, ...).
811  :rtype: str
812  '''
813  return self._form
814 

References psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg._form, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.ScalarArg._form, psyclone.parse.algorithm.Arg._form, and psyclone.psyGen.Argument._form.

Here is the caller graph for this function:

◆ form() [2/2]

def psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg.form (   self,
  value 
)
:param str value: set the form of access for the field to \
    the specified value.

Definition at line 816 of file psyir.py.

816  def form(self, value):
817  '''
818  :param str value: set the form of access for the field to \
819  the specified value.
820  '''
821  self._validate_form(value)
822  self._form = value
823 

References psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg._form, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.ScalarArg._form, psyclone.parse.algorithm.Arg._form, psyclone.psyGen.Argument._form, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg._validate_form(), and psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.ScalarArg._validate_form().

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

◆ fortran_string()

def psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg.fortran_string (   self)
:returns: the metadata represented by this class as a \
    Fortran string.
:rtype: str

Definition at line 708 of file psyir.py.

708  def fortran_string(self):
709  '''
710  :returns: the metadata represented by this class as a \
711  Fortran string.
712  :rtype: str
713  '''
714  if self.stencil:
715  return (f"go_arg({self.access}, {self.grid_point_type}, "
716  f"{self.form}({', '.join(self.stencil)}))")
717  return (f"go_arg({self.access}, {self.grid_point_type}, "
718  f"{self.form})")
719 

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:

◆ grid_point_type() [1/2]

def psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg.grid_point_type (   self)
:returns: the value of the grid point type (go_ct, ...) \
    for the field argument.
:rtype: str

Definition at line 772 of file psyir.py.

772  def grid_point_type(self):
773  '''
774  :returns: the value of the grid point type (go_ct, ...) \
775  for the field argument.
776  :rtype: str
777  '''
778  return self._grid_point_type
779 

References psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg._grid_point_type.

◆ grid_point_type() [2/2]

def psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg.grid_point_type (   self,
  value 
)
:param str value: set the field grid point type (ct, ...) \
    to the specified value.

Definition at line 781 of file psyir.py.

781  def grid_point_type(self, value):
782  '''
783  :param str value: set the field grid point type (ct, ...) \
784  to the specified value.
785  '''
786  self._validate_grid_point_type(value)
787  self._grid_point_type = value
788 

References psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg._grid_point_type, and psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg._validate_grid_point_type().

Here is the call graph for this function:

◆ stencil() [1/2]

def psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg.stencil (   self)
:returns: the stencil value, or None if there is no stencil.
:rtype: Optional[List[str]]

Definition at line 876 of file psyir.py.

876  def stencil(self):
877  '''
878  :returns: the stencil value, or None if there is no stencil.
879  :rtype: Optional[List[str]]
880  '''
881  return self._stencil
882 

References psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg._stencil, psyclone.domain.lfric.arg_index_to_metadata_index.ArgIndexToMetadataIndex._stencil(), psyclone.domain.lfric.kernel.field_arg_metadata.FieldArgMetadata._stencil, psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._stencil, psyclone.domain.lfric.metadata_to_arguments_rules.MetadataToArgumentsRules._stencil(), psyclone.dynamo0p3.DynKernelArgument._stencil, psyclone.gocean1p0.GOStencil._stencil, and psyclone.parse.kernel.Descriptor._stencil.

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

◆ stencil() [2/2]

def psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg.stencil (   self,
  value_list 
)
:param value_list: set the new stencil value, encoded as \
    three strings, each of three digits (0 or 1), see the \
    `psyclone user guide <https://psyclone.readthedocs.io/en/\
stable/gocean1p0.html#argument-metadata-meta-args>` \
    for more details.
:type value_list: List[str]

Definition at line 884 of file psyir.py.

884  def stencil(self, value_list):
885  '''
886  :param value_list: set the new stencil value, encoded as \
887  three strings, each of three digits (0 or 1), see the \
888  `psyclone user guide <https://psyclone.readthedocs.io/en/\
889 stable/gocean1p0.html#argument-metadata-meta-args>` \
890  for more details.
891  :type value_list: List[str]
892 
893  '''
894  self._validate_stencil(value_list)
895  self._stencil = value_list
896  # If form was not GO_STENCIL, we need to set it to
897  # GO_STENCIL now that we are providing a stencil value as
898  # the format is GO_STENCIL(stencil) which is _form (
899  # _stencil ).
900  if self._form.upper() != "GO_STENCIL":
901  self._form = "GO_STENCIL"
902 
903  class ScalarArg():

References psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg._form, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.ScalarArg._form, psyclone.parse.algorithm.Arg._form, psyclone.psyGen.Argument._form, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg._stencil, psyclone.domain.lfric.arg_index_to_metadata_index.ArgIndexToMetadataIndex._stencil(), psyclone.domain.lfric.kernel.field_arg_metadata.FieldArgMetadata._stencil, psyclone.domain.lfric.lfric_arg_descriptor.LFRicArgDescriptor._stencil, psyclone.domain.lfric.metadata_to_arguments_rules.MetadataToArgumentsRules._stencil(), psyclone.dynamo0p3.DynKernelArgument._stencil, psyclone.gocean1p0.GOStencil._stencil, psyclone.parse.kernel.Descriptor._stencil, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg._validate_stencil(), and psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.FieldArg.stencil().

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: