Print

Print


I have a compiler that objects to the following.  I think it's OK.

module A
  private
  interface S; module procedure S_; end interface S
  public S
contains
  subroutine S_ ( I )
    integer I
    ...
  end subroutine S_
end module A

module B
  use A
  private
  interface S; module procedure S_; end interface S
  public S
contains
  subroutine S_
    call S ( 10 )
  end subroutine S_
end module B_

program P
  use B
  call S
end program P

At the "use B" in program P, the compiler complains that it has
two specific procedures S_.

Shouldn't A%S_ and B%S_ be well hidden by PRIVATE statements, and/or
qualified in some hidden compiler-specific way by their module names?

Best regards,
Van Snyder



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%