module circle implicit none integer :: x real :: radius interface default module procedure timestwo end interface contains elemental integer function timestwo(x) result(y) integer, intent(in) :: x y = 2*x end function end module circle program prog use, non_intrinsic :: circle, only: timestwo, x implicit none x = 3 if (timestwo(x) /= 6) error stop 'fortran module procedure problem' print *,'OK: Fortran module procedure' end program prog