When comparing characteristics of dummy arguments to dummy procedures
for compatibility, ignore extent expressions in shapes that are
dummy argument descriptor inquiries -- they will necessarily refer
to distinct dummy argument symbols and return a false incompatibility
result. For example, in:
module m
contains
subroutine bar(s)
interface
subroutine s(g)
integer, intent(in) :: g(:)
end subroutine s
end interface
end subroutine bar
subroutine t(v)
integer, intent(in) :: v(:)
end subroutine t
subroutine foo
call bar(t)
end subroutine foo
end modulethe actual procedure argument "t" is compatible with the dummy procedure
argument "s" of "bar", because the ranks of t's dummy data object argument
"v" and s's argument "g" match, and their extents are both assumed.