This patch permits interface subroutine sub (x) real x(10)[*] end subroutine end interface real :: x(100)[*] call sub (x(10)) end where one passes an array element ("x(10)") of a contiguous array to a coarray dummy argument. That's permitted per interpretation request F08/0048, which ended up in Fortran 2008's Corrigendum 2 - and is also in the current Fortran 2015 drafts: "If the dummy argument is an array coarray that has the CONTIGUOUS attribute or is not of assumed shape, the corresponding actual argument shall be simply contiguous or an element of a simply contiguous array." the "or ..." of the last line was added in the corrigendum. I hope and think that I got the true/false of the other users correct - in most cases, it probably doesn't matter as the caller is only reached for expr->rank > 0. Build and regtested on x86-64-gnu-linux. OK for the trunk? Tobias