The *.mod files produced by Gfortran are run-of-the-mill text files compressed by gzip. You can do
gzip -cd utils.mod
and you should see something similar to
GFORTRAN module version '15' created from module.f90
(() () () () () () () () () () () () () () () () () () () () () () () ()
() () ())
()
()
()
()
()
(2 'say_hello' 'utils' '' 1 ((PROCEDURE UNKNOWN-INTENT MODULE-PROC DECL
UNKNOWN 0 0 SUBROUTINE) () (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () ()
() 0 0)
3 'utils' 'utils' '' 1 ((MODULE UNKNOWN-INTENT UNKNOWN-PROC UNKNOWN
UNKNOWN 0 0) () (UNKNOWN 0 0 0 0 UNKNOWN ()) 0 0 () () 0 () () () 0 0)
)
('say_hello' 0 2 'utils' 0 3)