Two modules with the same name in one program

Out of interest, what would the justification be for having several modules with the same name? I can define an overloaded function which uses a common name for multiple subroutines/functions using an interface:

interface print_number
   subroutine print_real(x)
   real :: x
   end subroutine print_real

   subroutine print_int(x)
   integer :: x
   end subroutine print_int
end interface print_number

So I could then just do call print_num(x) to get Fortran to pick what subroutine it wants (thinking aloud here, you all probably know this).