Returns the starting position of a substring within a string.
Class
Elemental function
Argument type and attributes
STRING
must be of type character.
SUBSTRING
must be of type character with the same kind type parameter as STRING.
BACK (optional)
must be of type logical.
Result type and attributes
Default integer.
Result value
Case (i): If BACK is absent or present with the value .FALSE.,
the result is the minimum positive value of I such that STRING (I
: I + LEN (SUBSTRING) - 1) = SUBSTRING or zero if there is no
such value. Zero is returned if LEN (STRING) < LEN (SUBSTRING).
One is returned if LEN (SUBSTRING) = 0.
Case (ii): If BACK is present with the value .TRUE., the result
is the maximum value of I less than or equal to LEN (STRING) - LEN (SUBSTRING)
+ 1, such that STRING (I : I + LEN (SUBSTRING) - 1) = SUBSTRING
or zero if there is no such value. Zero is returned if LEN (STRING) < LEN
(SUBSTRING) and LEN (STRING) + 1 is returned if LEN (SUBSTRING) = 0.
Examples
INDEX ('FORTRAN', 'R') has the value 3.
INDEX ('FORTRAN', 'R', BACK = .TRUE.) has the value 5.
Specific Name
Argument Type
Result Type
Pass As Arg?
INDEX
default character
default integer
yes 1
Notes:
When this specific name is passed as an argument, the procedure can only
be referenced without the BACK optional argument.