!> Module with functions
!! \version 1.0

module modfce

implicit none

!> generic interface
interface genfce
  !> genfce integer
  module procedure genfce1
  !> genfce real
  !! \param x input real
  module procedure genfce2
end interface

private :: genfce1,genfce2

contains

integer(4) function genfce1()
  genfce1 = 1
end function

real(8) function genfce2(x)
  real(8) :: x

  genfce2 = x
end function

!> fce2 function
!! in a module
!! \param xInput input parameter xInput
!! \param y input y

function fce2 ( xInput, y )
  real(8) :: fce2
  real(8),intent(in) :: xInput
  real(8) :: y

  fce2 = xInput+1.d0
end function

!> A module subroutine
subroutine sub2()

  write(*,*)'sub2'
end subroutine

end module
