HP OpenVMS Systems Documentation |
HP Fortran for OpenVMS
|
Previous | Contents | Index |
Description: | Returns three integer values representing the current month, day, and year. | ||
Class: | Subroutine | ||
Arguments: | I is the current month. | ||
J is the current day. | |||
K is the current year.
Warning: The two-digit year return value may cause problems with the year 2000. Use DATE_AND_TIME instead (see Section 9.4.36). |
Note: If time-zone information is not available on the system, a blank is returned for the ZONE argument and --1 is returned for the differential element of the VALUES argument.
Examples
If the current date is September 16, 1996, the values of the integer variables upon return are: I = 9, J = 16, and K = 96.
Description: | Performs an exclusive OR on corresponding bits. 1 | ||
Class: | Elemental function; Generic | ||
Arguments: | I | Must be of type integer. | |
J | Must be of type integer with the same kind parameter as I. | ||
Results: |
The result type is the same as I. The result value is derived by
combining I and J bit-by-bit according to the following truth table:
I J IEOR (I, J) The model for the interpretation of an integer value as a sequence of bits is shown in Section D.3. |
Specific Name | Argument Type | Result Type |
---|---|---|
INTEGER(1) | INTEGER(1) | |
IIEOR | INTEGER(2) | INTEGER(2) |
JIEOR | INTEGER(4) | INTEGER(4) |
KIEOR | INTEGER(8) | INTEGER(8) |
Examples
IEOR (1, 4) has the value 5.
IEOR (3, 10) has the value 9.
Examples
ILEN (4) has the value 3.
ILEN (--4) has the value 2.
9.4.68 ILEN (I)
Description:
Returns the length (in bits) of the two's complement representation of
an integer.
Class:
Elemental function; Generic
Arguments:
I must be of type integer.
Results:
The result type is the same as I. The result value is (LOG
2( I + 1 )) if I is not negative; otherwise, the result
value is (LOG
2( -I )).
9.4.69 INDEX (STRING, SUBSTRING [,BACK] [,KIND])
Description: | Returns the starting position of a substring within a string. | ||
Class: | Elemental function; Generic | ||
Arguments: | STRING | Must be of type character. | |
SUBSTRING | Must be of type character. | ||
BACK (opt) | Must be of type logical. | ||
KIND (opt) | Must be a scalar integer initialization expression. | ||
Results: |
The result is of type integer.
If KIND is present, the kind parameter of the result
is that specified by KIND; otherwise, the kind parameter of the result
is that of default integer. If the processor cannot represent the
result value in the kind of the result, the result is undefined.
If BACK is absent or false, the value returned is the minimum value of I such that STRING (I : I + LEN (SUBSTRING) - 1) = SUBSTRING (or zero if there is no such value). If LEN (STRING) < LEN (SUBSTRING), zero is returned. If LEN (SUBSTRING) = zero, 1 is returned. If BACK is true, the value returned is the maximum value of I such that STRING (I : I + LEN (SUBSTRING) - 1) = SUBSTRING (or zero if there is no such value). If LEN(STRING) < LEN (SUBSTRING), zero is returned. If LEN (SUBSTRING) = zero, LEN (STRING) + 1 is returned. |
Specific Name | Argument Type | Result Type |
---|---|---|
INDEX | CHARACTER | INTEGER(4) |
CHARACTER | INTEGER(8) |
Examples
INDEX ( ' FORTRAN ' , ' O ' , BACK = .TRUE.) has the value 2.
INDEX ( ' XXXX ' , "-", BACK = .TRUE.) has the value 0.
INDEX ( ' XXXX ' , " ", BACK = .TRUE.) has the value 5.
Description: | Converts a value to integer type. | ||
Class: | Elemental function; Generic | ||
Arguments: | A | Must be of type integer, real, or complex. | |
KIND (opt) | Must be a scalar integer initialization expression. | ||
Results: |
The result is of type integer. If KIND is present, the kind parameter
of the result is that specified by KIND; otherwise, the kind parameter
of the result is that shown in the following table. If the processor
cannot represent the result value in the kind of the result, the result
is undefined.
Functions that cause conversion of one data type to another type have the same effect as the implied conversion in assignment statements. The result value depends on the type and absolute value of A:
The setting of compiler options specifying integer size can affect INT, IDINT, and IQINT. The setting of compiler options specifying integer size or real size can affect IFIX. |
Specific Name1 | Argument Type | Result Type |
---|---|---|
INTEGER(1), INTEGER(2), INTEGER(4) | INTEGER(4) | |
INTEGER(1), INTEGER(2), INTEGER(4), INTEGER(8) | INTEGER(8) | |
IIFIX 2 | REAL(4) | INTEGER(2) |
IINT | REAL(4) | INTEGER(2) |
IFIX 3 | REAL(4) | INTEGER(4) |
JFIX | INTEGER(1), INTEGER(2), INTEGER(4), INTEGER(8), REAL(4), REAL(8), REAL(16), COMPLEX(4), COMPLEX(8), COMPLEX(16) | INTEGER(4) |
INT 4 | REAL(4) | INTEGER(4) |
KIFIX | REAL(4) | INTEGER(8) |
KINT | REAL(4) | INTEGER(8) |
IIDINT | REAL(8) | INTEGER(2) |
IDINT 5 | REAL(8) | INTEGER(4) |
KIDINT | REAL(8) | INTEGER(8) |
IIQINT | REAL(16) | INTEGER(2) |
IQINT 6 | REAL(16) | INTEGER(4) |
KIQINT | REAL(16) | INTEGER(8) |
COMPLEX(4), COMPLEX(8), COMPLEX(16) | INTEGER(2) | |
COMPLEX(4), COMPLEX(8), COMPLEX(16) | INTEGER(4) | |
COMPLEX(4), COMPLEX(8), COMPLEX(16) | INTEGER(8) | |
INT1 | INTEGER(1), INTEGER(2), INTEGER(4), INTEGER(8), REAL(4), REAL(8), REAL(16), COMPLEX(4), COMPLEX(8), COMPLEX(16) | INTEGER(1) |
INT2 | INTEGER(1), INTEGER(2), INTEGER(4), INTEGER(8), REAL(4), REAL(8), REAL(16), COMPLEX(4), COMPLEX(8), COMPLEX(16) | INTEGER(2) |
INT4 | INTEGER(1), INTEGER(2), INTEGER(4), INTEGER(8), REAL(4), REAL(8), REAL(16), COMPLEX(4), COMPLEX(8), COMPLEX(16) | INTEGER(4) |
INT8 | INTEGER(1), INTEGER(2), INTEGER(4), INTEGER(8), REAL(4), REAL(8), REAL(16), COMPLEX(4), COMPLEX(8), COMPLEX(16) | INTEGER(8) |
Examples
INT (--4.2) has the value --4.
INT (7.8) has the value 7.
The value is 8.
Examples
Consider the following:
9.4.71 INT_PTR_KIND( )
Description:
Returns the INTEGER KIND that will hold an address. This is a specific
function that has no generic function associated with it. It must not
be passed as an actual argument.
Class:
Inquiry function; Specific
Arguments:
None.
Results:
The result is of type default integer. The result is a scalar with the
value equal to the value of the kind parameter of the integer data type
that can represent an address on the host platform.
REAL A(100)
POINTER (P, A)
INTEGER (KIND=INT_PTR_KIND()) SAVE_P
P = MALLOC (400)
SAVE_P = P
Description: | Performs an inclusive OR on corresponding bits. 1 | ||
Class: | Elemental function; Generic | ||
Arguments: | I | Must be of type integer. | |
J | Must be of type integer with the same kind parameter as I. | ||
Results: |
The result type is the same as I. The result value is derived by
combining I and J bit-by-bit according to the following truth table:
I J IOR (I, J) The model for the interpretation of an integer value as a sequence of bits is shown in Section D.3. |
Specific Name | Argument Type | Result Type |
---|---|---|
INTEGER(1) | INTEGER(1) | |
IIOR | INTEGER(2) | INTEGER(2) |
JIOR | INTEGER(4) | INTEGER(4) |
KIOR | INTEGER(8) | INTEGER(8) |
Examples
IOR (1, 4) has the value 5.
IOR (1, 2) has the value 3.
Positive shifts are left (toward the most significant bit);
negative shifts are right (toward the least significant bit).
If SHIFT is positive, the shift is to the left; if SHIFT is
negative, the shift is to the right. If SHIFT is zero, no shift is
performed.
Bits shifted out from the left or from the right, as appropriate,
are lost. If the shift is to the left, zeros are shifted in on the
right. If the shift is to the right, copies of the sign bit (0 for
non-negative I; 1 for negative I) are shifted in on the left.
The kind of integer is important in arithmetic shifting because
sign varies among integer representations (see the following example).
If you want to shift a one-byte or two-byte argument, you must declare
it as INTEGER(1) or INTEGER(2).
Examples
Consider the following:
9.4.73 ISHA (I, SHIFT)
Description:
Arithmetically shifts an integer left or right by a specified number of
bits.
Class:
Elemental function; Generic
Arguments:
I
Must be of type integer. This argument is the value to be shifted.
SHIFT
Must be of type integer. This argument is the direction and distance of
shift.
Results:
The result type is the same as I. The result is equal to I shifted
arithmetically by SHIFT bits.
INTEGER(1) i, res1
INTEGER(2) j, res2
i = -128 ! equal to 10000000
j = -32768 ! equal to 10000000 00000000
res1 = ISHA (i, -4) ! returns 11111000 = -8
res2 = ISHA (j, -4) ! returns 11111000 00000000 = -2048
Positive rotations are left (toward the most significant bit);
negative rotations are right (toward the least significant bit).
If SHIFT is positive, I is rotated left SHIFT bits. If SHIFT is
negative, I is rotated right SHIFT bits. Bits shifted out one end are
shifted in the other. No bits are lost.
The kind of integer is important in circular shifting. With an
INTEGER(4) argument, all 32 bits are shifted. If you want to rotate a
one-byte or two-byte argument, you must declare it as INTEGER(1) or
INTEGER(2).
Examples
Consider the following:
9.4.74 ISHC (I, SHIFT)
Description:
Rotates an integer left or right by specified number of bits. Bits
shifted out one end are shifted in the other end. No bits are lost.
Class:
Elemental function; Generic
Arguments:
I
Must be of type integer. This argument is the value to be rotated.
SHIFT
Must be of type integer. This argument is the direction and distance of
rotation.
Results:
The result type is the same as I. The result is equal to I circularly
rotated by SHIFT bits.
INTEGER(1) i, res1
INTEGER(2) j, res2
i = 10 ! equal to 00001010
j = 10 ! equal to 00000000 00001010
res1 = ISHC (i, -3) ! returns 01000001 = 65
res2 = ISHC (j, -3) ! returns 01000000 00000001 = 16385
Description: | Performs a logical shift. | ||
Class: | Elemental function; Generic | ||
Arguments: | I | Must be of type integer. | |
SHIFT | Must be of type integer. The absolute value for SHIFT must be less than or equal to BIT_SIZE (I). | ||
Results: |
The result type is the same as I. The result has the value obtained by
shifting the bits of I by SHIFT positions. If SHIFT is positive
1, the shift is to the left; if SHIFT is negative
2, the shift is to the right. If SHIFT is zero, no shift is
performed.
Bits shifted out from the left or from the right, as appropriate, are lost. Zeros are shifted in from the opposite end. The model for the interpretation of an integer value as a sequence of bits is shown in Section D.3. For more information on bit functions, see Section 9.3.3. |
Specific Name | Argument Type | Result Type |
---|---|---|
INTEGER(1) | INTEGER(1) | |
IISHFT | INTEGER(2) | INTEGER(2) |
JISHFT | INTEGER(4) | INTEGER(4) |
KISHFT | INTEGER(8) | INTEGER(8) |
Examples
ISHFT (2, 1) has the value 4.
ISHFT (2, --1) has the value 1.
Previous | Next | Contents | Index |