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 module
the 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.