Skip to content

Instantly share code, notes, and snippets.

@alanbriolat
Created October 31, 2012 15:45
Show Gist options
  • Save alanbriolat/3987781 to your computer and use it in GitHub Desktop.
Save alanbriolat/3987781 to your computer and use it in GitHub Desktop.
Horrible indistinguishable Fortran strings
program strings
implicit none
character(len=20) :: a, b
print *, "strings: ", a, b
if (a == b) then
print *, "strings are equal"
endif
print *, "len(): ", len(a), len(b)
if (len(a) == len(b)) then
print *, "strings are equal length"
endif
print *, "len_trim(): ", len_trim(a), len_trim(b)
if (len_trim(a) == len_trim(b)) then
print *, "strings are equal len_trim", len_trim(a), len_trim(b)
endif
a = "foo"
b = "foo "
print *, "strings: ", a, b
if (a == b) then
print *, "strings are equal"
endif
print *, "len(): ", len(a), len(b)
if (len(a) == len(b)) then
print *, "strings are equal length"
endif
print *, "len_trim(): ", len_trim(a), len_trim(b)
if (len_trim(a) == len_trim(b)) then
print *, "strings are equal len_trim", len_trim(a), len_trim(b)
endif
end program
@alanbriolat
Copy link
Author

Output is:

 strings are equal
 strings are equal length          20          20
 strings are equal len_trim           3           3

@alanbriolat
Copy link
Author

$ gfortran string.f90 
$ ./a.out 
 strings: jSD¬�Е3ÿ�À@Ж3
 len():           20          20
 strings are equal length
 len_trim():           20          20
 strings are equal len_trim          20          20
 strings: foo                 foo                 
 strings are equal
 len():           20          20
 strings are equal length
 len_trim():            3           3
 strings are equal len_trim           3           3
$ gfortran -O2 string.f90 
$ ./a.out 
 strings: Å÷ª�ÿÿÿÿ ZIª�ØôG«�P¨Ö
 len():           20          20
 strings are equal length
 len_trim():           20          20
 strings are equal len_trim          20          20
 strings: foo                 foo                 
 strings are equal
 len():           20          20
 strings are equal length
 len_trim():            3           3
 strings are equal len_trim           3           3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment