Intel® Fortran Compiler 18.0 Developer Guide and Reference
NLS Function: Determines whether a given character is the lead (first) byte of a multibyte character sequence.
USE IFNLS
result = MBLead (char)
char |
(Input) CHARACTER(1). Character to be tested for lead status. |
The result type is LOGICAL(4). The result is .TRUE. if char is the first character of a multibyte character sequence; otherwise, .FALSE..
MBLead only works stepping forward through a whole multibyte character string. For example:
DO i = 1, LEN(str) ! LEN returns the number of bytes, not the ! number of characters in str WRITE(*, 100) MBLead (str(i:i)) END DO 100 FORMAT (L2, \)
MBLead is passed only one character at a time and must start on a lead byte and step through a string to establish context for the character. MBLead does not correctly identify a nonlead byte if it is passed only the second byte of a multibyte character because the status of lead byte or trail byte depends on context.
The function MBStrLead is passed a whole string and can identify any byte within the string as a lead or trail byte because it performs a context-sensitive test, scanning all the way back to the beginning of a string if necessary to establish context. So, MBStrLead can be much slower than MBLead (up to n times slower, where n is the length of the string).