module dynamic
implicit none

private
public :: hello

interface hello
  module procedure say
end interface hello

contains

subroutine say
  print *, "Hello from shared library."
end subroutine say

end module dynamic