https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82419
--- Comment #2 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- (dat(1:cn,n)) is not a variable, but an expression. Remove the enclosing parentheses and your code will compile. BTW the provided code needs a some more surgery in order to be compiled (dlc not defines, iu, filecolumns, and filelines not typed).