or
- Date:
02-09-2023
NAME
OR - Computes logical sum
SYNOPSIS
OR ([I=]i,[J=]j)
STANDARDS
Fortran extension
DESCRIPTION
OR is an elemental function. It accepts the following arguments:
- i
Must be of type BOOLEAN, INTEGER, REAl, Cray pointer, or LOGICAL.
- j
Must be of type BOOLEAN, INTEGER, REAl, Cray pointer, or LOGICAL.
NOTES
This is an outmoded routine. Refer to the Cray Fortran Reference Manual for information about outmoded features and their preferred standard alternatives.
The name of this intrinsic cannot be passed as an argument.
CAUTIONS
Unexpected results can occur when Boolean functions are declared external and then used with logical arguments. The external Boolean functions always treat their arguments as type Boolean and return a Boolean result.
RETURN VALUES
When given two arguments of type logical, OR computes a logical sum and returns a logical result.
When given two arguments of type INTEGER, REAL, BOOLEAN, or pointer, OR computes a bit-wise logical sum and returns a BOOLEAN result. No type conversion occurs.
The following tables show both the logical sum and bit-wise logical sum:
------------------------------------------------------
Logical Logical (Logical Variable 1) OR
Variable 1 Variable 2 (Logical Variable 2)
------------------------------------------------------
T T T
T F T
F T T
F F F
------------------------------------------------------
------------------------------------------------------
Bit of Bit of (Bit of Variable 1) OR
Variable 1 Variable 2 (Bit of Variable 2)
------------------------------------------------------
1 1 1
1 0 1
0 1 1
0 0 0
------------------------------------------------------
EXAMPLES
The following section of Fortran code shows the OR function used with two arguments of type logical:
LOGICAL L1, L2, L3
...
L3 = OR(L1,L2)
The following section of Fortran code shows the OR function used with two arguments of type integer. The bit patterns of the arguments and result are also shown. For clarity, only the rightmost 8 bits are shown.
INTEGER I1, I2, I3
I1 = 12
I2 = 10
...
I3 = OR(I1,I2)
------------------------------- -------------------------------
| 0 | | | | | | | | | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
------------------------------- -------------------------------
I1 I2
-------------------------------
| 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
-------------------------------
I3