Interesting pre-processor problem
program question
character (len=*), parameter :: s = '????'
end program question
This compiled successfully in most cases but when the code was pre-processed prior to compilation, it failed with an error that indicated that the string delimiter was missing. Sure enough when the pre-processed source code was dumped, it became clear that the string had been converted to:
s = '??^
Eventually, someone pointed me to the relevant bit of documentation that explained the problem: the ??'
string just happened to match the one of the trigraphs automatically replaced by the C pre-processor, used by the Fortran compiler to prepare the source ahead of the compilation phase...