Reference Guide  2.5.0
psyclone.domain.lfric.lfric_builtins.LFRicRealToRealXKern Class Reference
Inheritance diagram for psyclone.domain.lfric.lfric_builtins.LFRicRealToRealXKern:
Collaboration diagram for psyclone.domain.lfric.lfric_builtins.LFRicRealToRealXKern:

Public Member Functions

def metadata (cls)
 
def __str__ (self)
 
def lower_to_language_level (self)
 
- Public Member Functions inherited from psyclone.domain.lfric.lfric_builtins.LFRicBuiltIn
def __init__ (self)
 
def reference_accesses (self, var_accesses)
 
def load (self, call, parent=None)
 
def undf_name (self)
 
def qr_required (self)
 
def reference_element (self)
 
def cma_operation (self)
 
def is_intergrid (self)
 
def fs_descriptors (self)
 
def get_dof_loop_index_symbol (self)
 
def get_indexed_field_argument_references (self)
 
def get_scalar_argument_references (self)
 
- Public Member Functions inherited from psyclone.psyGen.BuiltIn
def dag_name (self)
 
def load (self, call, arguments, parent=None)
 
def local_vars (self)
 
- Public Member Functions inherited from psyclone.psyGen.Kern
def __init__ (self, parent, call, name, ArgumentsClass, check=True)
 
def args (self)
 
def node_str (self, colour=True)
 
def is_reduction (self)
 
def reduction_arg (self)
 
def reprod_reduction (self)
 
def local_reduction_name (self)
 
def zero_reduction_variable (self, parent, position=None)
 
def reduction_sum_loop (self, parent)
 
def arg_descriptors (self)
 
def arg_descriptors (self, obj)
 
def arguments (self)
 
def name (self)
 
def name (self, value)
 
def is_coloured (self)
 
def iterates_over (self)
 
def gen_code (self, parent)
 

Additional Inherited Members

- Static Public Member Functions inherited from psyclone.domain.lfric.lfric_builtins.LFRicBuiltIn
def metadata ()
 
- Public Attributes inherited from psyclone.domain.lfric.lfric_builtins.LFRicBuiltIn
 qr_rules
 
 mesh
 
 arg_descriptors
 

Detailed Description

 Converts real-valued field elements to real-valued field elements
of a different precision using the Fortran intrinsic `REAL` function,
`Y = REAL(X, kind=r_<prec>)`. Here `Y` is a real-valued field of
precision `kind=r_<prec>` and `X` is the real-valued field whose
values are to be converted from their defined precision.

Definition at line 2742 of file lfric_builtins.py.

Member Function Documentation

◆ lower_to_language_level()

def psyclone.domain.lfric.lfric_builtins.LFRicRealToRealXKern.lower_to_language_level (   self)
Lowers this LFRic-specific built-in kernel to language-level PSyIR.
This BuiltIn node is replaced by an Assignment node.

:returns: the lowered version of this node.
:rtype: :py:class:`psyclone.psyir.node.Node`

Definition at line 2769 of file lfric_builtins.py.

2769  def lower_to_language_level(self):
2770  '''
2771  Lowers this LFRic-specific built-in kernel to language-level PSyIR.
2772  This BuiltIn node is replaced by an Assignment node.
2773 
2774  :returns: the lowered version of this node.
2775  :rtype: :py:class:`psyclone.psyir.node.Node`
2776 
2777  '''
2778  # Get indexed references for each of the field (proxy) arguments.
2779  arg_refs = self.get_indexed_field_argument_references()
2780 
2781  # Create the PSyIR for the kernel:
2782  # proxy0%data(df) = REAL(proxy1%data, kind=r_<prec>)
2783  lhs = arg_refs[0]
2784  r_precision = arg_refs[0].datatype.precision
2785  rhs = IntrinsicCall.create(
2786  IntrinsicCall.Intrinsic.REAL,
2787  [arg_refs[1], ("kind", Reference(r_precision))])
2788 
2789  # Create assignment and replace node
2790  return self._replace_with_assignment(lhs, rhs)
2791 
2792 
2793 # ******************************************************************* #
2794 # ************** Built-ins for integer-valued fields **************** #
2795 # ******************************************************************* #
2796 
2797 # ------------------------------------------------------------------- #
2798 # ============== Adding integer fields ============================== #
2799 # ------------------------------------------------------------------- #
2800 

References psyclone.domain.lfric.lfric_builtins.LFRicBuiltIn._replace_with_assignment(), and psyclone.domain.lfric.lfric_builtins.LFRicBuiltIn.get_indexed_field_argument_references().

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

◆ metadata()

def psyclone.domain.lfric.lfric_builtins.LFRicRealToRealXKern.metadata (   cls)
Returns the kernel metadata describing this built-in.

:returns: kernel metadata describing this built-in.
:rtype: :py:class:`psyclone.domain.lfric.kernel.LFRicKernelMetadata`

Definition at line 2754 of file lfric_builtins.py.

2754  def metadata(cls):
2755  '''Returns the kernel metadata describing this built-in.
2756 
2757  :returns: kernel metadata describing this built-in.
2758  :rtype: :py:class:`psyclone.domain.lfric.kernel.LFRicKernelMetadata`
2759 
2760  '''
2761  return cls._builtin_metadata([
2762  FieldArgMetadata("gh_real", "gh_write", "any_space_1"),
2763  FieldArgMetadata("gh_real", "gh_read", "any_space_1")])
2764 

References psyclone.domain.lfric.lfric_builtins.LFRicBuiltIn._builtin_metadata(), and psyclone.domain.lfric.lfric_builtins.LFRicBuiltIn.metadata().

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: