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