LGE(3) - [CHARACTER:COMPARE] ASCII Lexical greater than or equal
result = lge(string_a, stringb)
elemental logical function lge(string_a, string_b)character(len=*),intent(in) :: string_a character(len=*),intent(in) :: string_b
o STRING_A is default character or an ASCII character. o STRING_B is the same type and kind as STRING_A o the result is a default logical
LGE(3) determines whether one string is lexically greater than or equal to another string, where the two strings are interpreted as containing ASCII character codes. If STRING_A and STRING_B are not the same length, the shorter is compared as if spaces were appended to it to form a value that has the same length as the longer.
The lexical comparison intrinsics LGE(3), LGT(3), LLE(3), and LLT(3) differ from the corresponding intrinsic operators .ge., .gt., .le., and [char46]lt., in that the latter use the processors character ordering (which is not ASCII on some targets), whereas the former always use the ASCII ordering.
o STRING_A : string to be tested o STRING_B : string to compare to STRING_A
Returns .true. if string_a >= string_b, and .false. otherwise, based on the ASCII collating sequence.
If both input arguments are null strings, .true. is always returned.
If either string contains a character not in the ASCII character set, the result is processor dependent.
Sample program:
program demo_lge implicit none integer :: i print *,the ASCII collating sequence for printable characters write(*,(1x,19a))(char(i),i=32,126) ! ASCII order write(*,*) lge(abc,ABC) ! [T] lowercase is > uppercase write(*,*) lge(abc,abc ) ! [T] trailing spaces ! If both strings are of zero length the result is true write(*,*) lge(,) ! [T] write(*,*) lge(,a) ! [F] the null string is padded write(*,*) lge(a,) ! [T] ! elemental write(*,*) lge(abc,[abc,123]) ! [T T] scalar and array write(*,*) lge([cba, 123],abc) ! [T F] write(*,*) lge([abc,123],[cba,123]) ! [F T] both arrays end program demo_lgeResults:
> the ASCII collating sequence for printable characters > !"#$%&()*+,-./012 > 3456789:;<=>?@ABCDE > FGHIJKLMNOPQRSTUVWX > YZ[\]^_abcdefghijk > lmnopqrstuvwxyz{|}~ > T > T > T > F > T > T T > T F > F T
FORTRAN 77
LGT(3), LLE(3), LLT(3)
Functions that perform operations on character strings, return lengths of arguments, and search for certain arguments:
SCAN(3), VERIFY(3)
o ELEMENTAL: ADJUSTL(3), ADJUSTR(3), INDEX(3), Fortran intrinsic descriptions (license: MIT) @urbanjost
o NONELEMENTAL: LEN_TRIM(3), LEN(3), REPEAT(3), TRIM(3)
Nemo Release 3.1 | lge (3fortran) | November 02, 2024 |