It happens with both gfortan, gcc and ifort and icc I mainly use to compile my programs.
Below an error message when I compile wrf model.
mpif90 -f90=ifort -o tc.exe -O3 -ip -fp-model precise -w -ftz -align all -fno-alias -FR -convert big_endian -Wl,-stack_addr,0xF10000000 -Wl,-stack_size,0x64000000 tc_em.o ../dyn_em/module_initialize_real.o libwrflib.a /Users/sarr/nwrf/WRFV3/external/fftpack/fftpack5/libfftpack.a /Users/sarr/nwrf/WRFV3/external/io_grib1/libio_grib1.a /Users/sarr/nwrf/WRFV3/external/io_grib_share/libio_grib_share.a /Users/sarr/nwrf/WRFV3/external/io_int/libwrfio_int.a -L/Users/sarr/nwrf/WRFV3/external/esmf_time_f90 -lesmf_time /Users/sarr/nwrf/WRFV3/external/RSL_LITE/librsl_lite.a /Users/sarr/nwrf/WRFV3/frame/module_internal_header_util.o /Users/sarr/nwrf/WRFV3/frame/pack_utils.o -L/Users/sarr/nwrf/WRFV3/external/io_netcdf -lwrfio_nf -L/Users/sarr/local/ncdf_int/lib -lnetcdff -lnetcdf
Undefined symbols for architecture x86_64:
"_module_domain_type_mp_program_name_", referenced from:
_MAIN__ in tc_em.o
_input_wrf_ in libwrflib.a(input_wrf.o)
_output_wrf_ in libwrflib.a(output_wrf.o)
ld: symbol(s) not found for architecture x86_64
make[1]: [em_real] Error 1 (ignored)