Description: Extended operators for convenient string manipulations.
For x and y scalars or arrays of any compatible rank, and of any
combination of type character and String:
result = x // y
result = x + y
Note
Concatenation of mixed type will return a String.
For x and y scalars or arrays of any compatible rank, and of any
combination of type character and String:
result = x - y
Note
Excision always returns a String value even when both arguments
are of type character. This ensures that excision can be performed
elementally even for character values, which would not be
well-defined with a return type of character. For two scalar
character values, one may simply perform the conversion
result = str(x - y) to return a scalar character.
Note
String arithmetic is not associative, commutative, or distributive in general:
(x + y) + z == x + (y + z) and x + (y - z) /= (x +
y) - z are both .true. in general.x + y /= y + x and x + y - z /= x - z + y are both
.true. in general.x - (y + z) /= x - y - z is .true. in general.For x a scalar or array of any rank, and of type character or
String:
result = x**ncopies
ncopies is of type integerNote
The ** operator is a wrapper for the
repeat
intrinsic, and extended for type String.
For x and y scalars or arrays of any compatible rank, and of any
combination of type character and String:
result = (x == y)
result = (x .eq. y)
For x and y scalars or arrays of any compatible rank, and of any
combination of type character and String:
result = (x /= y)
result = (x .ne. y)