psyclone.domain.lfric.lfric_builtins#
This module implements the support for ‘built-in’ operations in the PSyclone LFRic API. Each supported built-in is implemented as a different Python class, all inheriting from the LFRicBuiltIn class. The LFRicBuiltInCallFactory creates the Python object required for a given built-in call.
Classes#
LFRicBuiltInCallFactory: Creates the necessary framework for a call to an LFRic built-in,LFRicBuiltIn: Abstract base class for a node representing a call to an LFRicLFRicXPlusYKern: Add one, real-valued, field to another and return the result asLFRicIncXPlusYKern: Add the second, real-valued, field to the first field and return it.LFRicAPlusXKern: Y = a + X where a is a real scalar and X and Y areLFRicIncAPlusXKern: X = a + X where a is a real scalar and X is a real-valuedLFRicAXPlusYKern: Z = a*X + Y where a is a real scalar and Z, X andLFRicIncAXPlusYKern: X = a*X + Y where a is a real scalar and X and Y areLFRicIncXPlusBYKern: X = X + b*Y where b is a real scalar and X and Y areLFRicAXPlusBYKern: Z = a*X + b*Y where a and b are real scalars and Z, X andLFRicIncAXPlusBYKern: X = a*X + b*Y where a and b are real scalars and X and YLFRicAXPlusAYKern: Z = a*X + a*Y = a*(X + Y) where a is a real scalar and Z,LFRicXMinusYKern: Subtract one, real-valued, field from another and return theLFRicIncXMinusYKern: Subtract the second, real-valued, field from the first fieldLFRicAMinusXKern: Y = a - X where a is a real scalar and X and Y are real-valuedLFRicIncAMinusXKern: X = a - X where a is a real scalar and X is a real-valuedLFRicXMinusAKern: Y = X - a where a is a real scalar and X and Y are real-valuedLFRicIncXMinusAKern: X = X - a where a is a real scalar and X is a real-valuedLFRicAXMinusYKern: Z = a*X - Y where a is a real scalar and Z, X andLFRicXMinusBYKern: Z = X - b*Y where b is a real scalar and Z, X andLFRicIncXMinusBYKern: X = X - b*Y where b is a real scalar and X and Y areLFRicAXMinusBYKern: Z = a*X - b*Y where a and b are real scalars and Z, X andLFRicXTimesYKern: DoF-wise product of one, real-valued, field with another withLFRicIncXTimesYKern: Multiply the first, real-valued, field by the second and return it.LFRicIncAXTimesYKern: X = a*X*Y where a is a real scalar and X and Y areLFRicATimesXKern: Multiply the first, real-valued, field by a real scalar andLFRicIncATimesXKern: Multiply a real-valued field by a real scalar and return it.LFRicXDividebyYKern: Divide the first, real-valued, field by the second and returnLFRicIncXDividebyYKern: Divide the first, real-valued, field by the second and return it.LFRicXDividebyAKern: Divide a real-valued field by a real scalar and return theLFRicIncXDividebyAKern: Divide a real-valued field by a real scalar and return it.LFRicADividebyXKern: DoF-wise division of a scalar value a by the elementsLFRicIncADividebyXKern: DoF-wise division of a scalar value a by the elementsLFRicIncXPowrealAKern: Raise a real-valued field to a real power and return it.LFRicIncXPowintNKern: Raise a real-valued field to an integer power and return it.LFRicSetvalCKern: Set a real-valued field equal to a real scalar value.LFRicSetvalXKern: Set a real-valued field equal to another, real-valued, field.LFRicSetvalRandomKern: Fill a real-valued field with pseudo-random numbers.LFRicXInnerproductYKern: Calculates the inner product of two real-valued fields,LFRicXInnerproductXKern: Calculates the inner product of one real-valued field by itself,LFRicSumXKern: Computes the sum of the elements of a real-valued field.LFRicSignXKern: Returns the sign of a real-valued field elements using theLFRicMaxAXKern: Returns the maximum of a real scalar and real-valued fieldLFRicIncMaxAXKern: Returns the maximum of a real scalar and real-valued fieldLFRicMinAXKern: Returns the minimum of a real scalar and real-valued fieldLFRicIncMinAXKern: Returns the minimum of a real scalar and real-valued fieldLFRicRealToIntXKern: Converts real-valued field elements to integer-valuedLFRicRealToRealXKern: Converts real-valued field elements to real-valued field elementsLFRicIntXPlusYKern: Add corresponding elements of two, integer-valued, fields, XLFRicIntIncXPlusYKern: Add each element of an integer-valued field, X, to theLFRicIntAPlusXKern: Add an integer scalar value, a, to each element of anLFRicIntIncAPlusXKern: Add an integer scalar value, a, to each element of anLFRicIntXMinusYKern: Subtract each element of an integer-valued field, Y, fromLFRicIntIncXMinusYKern: Subtract each element of an integer-valued field, Y, fromLFRicIntAMinusXKern: Subtract each element of an integer-valued field, X, fromLFRicIntIncAMinusXKern: Subtract each element of an integer-valued field, X, fromLFRicIntXMinusAKern: Subtract an integer scalar value, a, from each element of anLFRicIntIncXMinusAKern: Subtract an integer scalar value, a, from each element of anLFRicIntXTimesYKern: Multiply each element of one, integer-valued, field, X, byLFRicIntIncXTimesYKern: Multiply each element of one, integer-valued, field, X, byLFRicIntATimesXKern: Multiply each element of the first, integer-valued, field, X,LFRicIntIncATimesXKern: Multiply each element of an integer-valued field, X byLFRicIntSetvalCKern: Assign a single constant integer scalar value, c, to allLFRicIntSetvalXKern: Copy one element of an integer-valued field (second argument),LFRicIntSignXKern: Returns the sign of an integer-valued field elements using theLFRicIntMaxAXKern: Returns the maximum of an integer scalar and integer-valuedLFRicIntIncMaxAXKern: Returns the maximum of an integer scalar and integer-valuedLFRicIntMinAXKern: Returns the minimum of an integer scalar and integer-valuedLFRicIntIncMinAXKern: Returns the minimum of an integer scalar and integer-valuedLFRicIntToRealXKern: Converts integer-valued field elements to real-valued
- class psyclone.domain.lfric.lfric_builtins.LFRicBuiltInCallFactory[source]#
Creates the necessary framework for a call to an LFRic built-in, This consists of the operation itself and the loop over unique DoFs.
Inheritance

- static create(call, parent=None)[source]#
Create the objects needed for a call to the built-in described in the call (BuiltInCall) object.
- Parameters:
call (
psyclone.parse.algorithm.BuiltInCall) – details of the call to this built-in in the Algorithm layer.parent (
psyclone.domain.lfric.LFRicInvokeSchedule) – the schedule instance to which the built-in call belongs.
- Raises:
ParseError – if the name of the function being called is not a recognised built-in.
InternalError – if the built-in does not iterate over DoFs.
- class psyclone.domain.lfric.lfric_builtins.LFRicBuiltIn[source]#
Abstract base class for a node representing a call to an LFRic built-in.
- Raises:
NotImplementedError – if a subclass of this abstract class does not set the value of ‘_datatype’.
Inheritance

- property cma_operation#
Built-ins do not perform operations with Column-Matrix-Assembly operators.
- Returns:
None
- Return type:
NoneType
- property fs_descriptors#
- Returns:
a list of function space descriptor objects which contain information about the function spaces.
- Return type:
list of
psyclone.lfric.FSDescriptor
- get_dof_loop_index_symbol()[source]#
Finds or creates the symbol representing the index in any loops over DoFs.
- Returns:
symbol representing the DoF loop index.
- Return type:
- get_indexed_field_argument_references()[source]#
Creates a DoF-indexed StructureReference for each of the field arguments to this Built-In kernel. e.g. if the kernel has a field argument named ‘fld1’ then this routine will create an ArrayReference for ‘fld1_data(df)’ where ‘df’ is the DoF-loop variable and ‘fld1_data’ is the pointer to the data array within the fld1 object.
- Returns:
a reference to the ‘df’th element of each kernel argument that is a field.
- Return type:
- get_scalar_argument_references()[source]#
Finds or creates either a Reference (for a symbol) or PSyIR (for a literal expression) for any scalar arguments to this Built-In kernel.
- Returns:
a Reference or PSyIR expression for each scalar kernel argument.
- Return type:
list of subclasses of :py:class:`psyclone.psyir.nodes.Node
- property halo_depth#
- Returns:
None as BuiltIns do not (by default) iterate into halo cells.
- Return type:
NoneType
- property is_intergrid#
We don’t have any inter-grid built-ins.
- Returns:
False
- Return type:
bool
- load(call, parent=None)[source]#
Populate the state of this object using the supplied call object.
- Parameters:
call (
psyclone.parse.algorithm.BuiltInCall) – The BuiltIn object from which to extract information about this built-in call.parent (
psyclone.domain.lfric.LFRicLoop) – The parent node of the kernel call in the PSyIR we are constructing. This will be a loop.
- property qr_required#
Built-ins do not currently require quadrature.
- Returns:
False
- Return type:
bool
- reference_accesses()[source]#
- Return type:
- Returns:
a map of all the symbol accessed inside this node, the keys are Signatures (unique identifiers to a symbol and its structure acccessors) and the values are AccessSequence (a sequence of AccessTypes).
- Raises:
InternalError – if an unsupported argument type is encountered.
- property reference_element#
Built-ins do not require reference-element properties.
- Returns:
None
- Return type:
NoneType
- property undf_name#
Dynamically looks up the name of the ‘undf’ variable for the space that this kernel updates.
- Returns:
the name of the undf variable.
- Return type:
str
- class psyclone.domain.lfric.lfric_builtins.LFRicXPlusYKern[source]#
Add one, real-valued, field to another and return the result as a third, real-valued, field.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncXPlusYKern[source]#
Add the second, real-valued, field to the first field and return it.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicAPlusXKern[source]#
Y = a + X where a is a real scalar and X and Y are real-valued fields (DoF-wise addition of a scalar value).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncAPlusXKern[source]#
X = a + X where a is a real scalar and X is a real-valued field (DoF-wise addition of a scalar value).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicAXPlusYKern[source]#
Z = a*X + Y where a is a real scalar and Z, X and Y are real-valued fields.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncAXPlusYKern[source]#
X = a*X + Y where a is a real scalar and X and Y are real-valued fields.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncXPlusBYKern[source]#
X = X + b*Y where b is a real scalar and X and Y are real-valued fields.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicAXPlusBYKern[source]#
Z = a*X + b*Y where a and b are real scalars and Z, X and Y are real-valued fields.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncAXPlusBYKern[source]#
X = a*X + b*Y where a and b are real scalars and X and Y are real-valued fields.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicAXPlusAYKern[source]#
Z = a*X + a*Y = a*(X + Y) where a is a real scalar and Z, X and Y are real-valued fields.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicXMinusYKern[source]#
Subtract one, real-valued, field from another and return the result as a third, real-valued, field.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncXMinusYKern[source]#
Subtract the second, real-valued, field from the first field and return it.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicAMinusXKern[source]#
Y = a - X where a is a real scalar and X and Y are real-valued fields (DoF-wise subtraction of field elements from a scalar value).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncAMinusXKern[source]#
X = a - X where a is a real scalar and X is a real-valued field (DoF-wise subtraction of field elements from a scalar value).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicXMinusAKern[source]#
Y = X - a where a is a real scalar and X and Y are real-valued fields (DoF-wise subtraction of a scalar value from field elements).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncXMinusAKern[source]#
X = X - a where a is a real scalar and X is a real-valued field (DoF-wise subtraction of a scalar value from field elements).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicAXMinusYKern[source]#
Z = a*X - Y where a is a real scalar and Z, X and Y are real-valued fields.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicXMinusBYKern[source]#
Z = X - b*Y where b is a real scalar and Z, X and Y are real-valued fields.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncXMinusBYKern[source]#
X = X - b*Y where b is a real scalar and X and Y are real-valued fields.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicAXMinusBYKern[source]#
Z = a*X - b*Y where a and b are real scalars and Z, X and Y are real-valued fields.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicXTimesYKern[source]#
DoF-wise product of one, real-valued, field with another with the result returned as a third, real-valued, field.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncXTimesYKern[source]#
Multiply the first, real-valued, field by the second and return it.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncAXTimesYKern[source]#
X = a*X*Y where a is a real scalar and X and Y are real-valued fields.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicATimesXKern[source]#
Multiply the first, real-valued, field by a real scalar and return the result as a second, real-valued, field (Y = a*X).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncATimesXKern[source]#
Multiply a real-valued field by a real scalar and return it.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicXDividebyYKern[source]#
Divide the first, real-valued, field by the second and return the result as a third, real-valued, field.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncXDividebyYKern[source]#
Divide the first, real-valued, field by the second and return it.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicXDividebyAKern[source]#
Divide a real-valued field by a real scalar and return the result in another, real-valued, field.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncXDividebyAKern[source]#
Divide a real-valued field by a real scalar and return it.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicADividebyXKern[source]#
DoF-wise division of a scalar value a by the elements of a real-valued field, X, storing the result in another, real-valued, field, Y (Y = a/X).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncADividebyXKern[source]#
DoF-wise division of a scalar value a by the elements of a real-valued field, X, storing the result in the same field (X = a/X).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncXPowrealAKern[source]#
Raise a real-valued field to a real power and return it.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncXPowintNKern[source]#
Raise a real-valued field to an integer power and return it.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicSetvalCKern[source]#
Set a real-valued field equal to a real scalar value.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicSetvalXKern[source]#
Set a real-valued field equal to another, real-valued, field.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicSetvalRandomKern[source]#
Fill a real-valued field with pseudo-random numbers.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicXInnerproductYKern[source]#
Calculates the inner product of two real-valued fields, innprod = SUM( X(:)*Y(:) ).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicXInnerproductXKern[source]#
Calculates the inner product of one real-valued field by itself, innprod = SUM( X(:)*X(:) ).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicSumXKern[source]#
Computes the sum of the elements of a real-valued field.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicSignXKern[source]#
Returns the sign of a real-valued field elements using the Fortran intrinsic sign function, Y = sign(a, X).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicMaxAXKern[source]#
Returns the maximum of a real scalar and real-valued field elements. The result is stored as another, real-valued, field: Y = max(a, X).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncMaxAXKern[source]#
Returns the maximum of a real scalar and real-valued field elements. The result is stored in the same, real-valued, field: X = max(a, X).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicMinAXKern[source]#
Returns the minimum of a real scalar and real-valued field elements. The result is stored as another, real-valued, field: Y = min(a, X).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIncMinAXKern[source]#
Returns the minimum of a real scalar and real-valued field elements. The result is stored in the same, real-valued, field: X = min(a, X).
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicRealToIntXKern[source]#
Converts real-valued field elements to integer-valued field elements using the Fortran intrinsic INT function, Y = INT(X, kind=i_<prec>). Here Y is an integer-valued field of precision i_<prec> and X is the real-valued field being converted.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicRealToRealXKern[source]#
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.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntXPlusYKern[source]#
Add corresponding elements of two, integer-valued, fields, X and Y, and return the result as a third, integer-valued, field, Z. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicXPlusYKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntIncXPlusYKern[source]#
Add each element of an integer-valued field, X, to the corresponding element of another integer-valued field, Y, and store the result back in X. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicIncXPlusYKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntAPlusXKern[source]#
Add an integer scalar value, a, to each element of an integer-valued field, X, and return the result as a second, integer-valued, field, Y. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicAPlusXKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntIncAPlusXKern[source]#
Add an integer scalar value, a, to each element of an integer-valued field, X, and return the result in the same field. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicIncAPlusXKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntXMinusYKern[source]#
Subtract each element of an integer-valued field, Y, from the corresponding element of another, integer-valued, field, X, and return the result as a third, integer-valued, field, Z. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicXMinusYKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntIncXMinusYKern[source]#
Subtract each element of an integer-valued field, Y, from the corresponding element of another, integer-valued, field, X, and store the result back in X. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicIncXMinusYKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntAMinusXKern[source]#
Subtract each element of an integer-valued field, X, from an integer scalar value, a, and return the result as a second, integer-valued, field, Y. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicAMinusXKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntIncAMinusXKern[source]#
Subtract each element of an integer-valued field, X, from an integer scalar value, a, and return the result in the same field. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicIncAMinusXKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntXMinusAKern[source]#
Subtract an integer scalar value, a, from each element of an integer-valued field, X, and return the result as a second, integer-valued, field, Y. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicXMinusAKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntIncXMinusAKern[source]#
Subtract an integer scalar value, a, from each element of an integer-valued field, X, and return the result in the same field. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicIncXMinusAKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntXTimesYKern[source]#
Multiply each element of one, integer-valued, field, X, by the corresponding element of another, integer-valued, field, Y, and return the result as a third, integer-valued, field, Z. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicXTimesYKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntIncXTimesYKern[source]#
Multiply each element of one, integer-valued, field, X, by the corresponding element of another, integer-valued, field, Y, and store the result back in X. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicIncXTimesYKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntATimesXKern[source]#
Multiply each element of the first, integer-valued, field, X, by an integer scalar, a, and return the result as a second, integer-valued, field Y (Y = a*X). Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicATimesXKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntIncATimesXKern[source]#
Multiply each element of an integer-valued field, X by an integer scalar, a, and store the result back in X. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicIncATimesXKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntSetvalCKern[source]#
Assign a single constant integer scalar value, c, to all elements of an integer-valued field, X. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicSetvalCKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntSetvalXKern[source]#
Copy one element of an integer-valued field (second argument), X, to the corresponding element of another, integer-valued, field (first argument), Y. Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicSetvalXKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntSignXKern[source]#
Returns the sign of an integer-valued field elements using the Fortran intrinsic sign function, Y = sign(a, X). Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicSignXKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntMaxAXKern[source]#
Returns the maximum of an integer scalar and integer-valued field elements. The result is stored as another, integer-valued, field: Y = max(a, X). Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicMaxAXKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntIncMaxAXKern[source]#
Returns the maximum of an integer scalar and integer-valued field elements. The result is stored in the same, integer-valued, field: X = max(a, X). Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicIncMaxAXKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntMinAXKern[source]#
Returns the minimum of an integer scalar and integer-valued field elements. The result is stored as another, integer-valued, field: Y = min(a, X). Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicMinAXKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntIncMinAXKern[source]#
Returns the minimum of an integer scalar and integer-valued field elements. The result is stored in the same, integer-valued, field: X = min(a, X). Inherits the lower_to_language_level method from the real-valued built-in equivalent LFRicIncMinAXKern.
Inheritance

- class psyclone.domain.lfric.lfric_builtins.LFRicIntToRealXKern[source]#
Converts integer-valued field elements to real-valued field elements using the Fortran intrinsic REAL function, Y = REAL(X, kind=r_<prec>). Here Y is a real-valued field of precision r_<prec> and X is the integer-valued field being converted.
Inheritance
