https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108680
--- Comment #12 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> --- "The keyword INTEGER with no kind-selector specifies type integer with default kind; the kind type parameter value is equal to KIND (0). The decimal exponent range of default integer shall be at least 5." -- 7.4.3.1 Integer type Just playing last night: program ranger implicit none integer(2) :: two integer(4) :: four integer(8) :: eight real(4) :: tworeal,foureal four = huge(four) eight = huge(eight) tworeal = real(huge(two)) ! log10 does no accept integer arguments foureal = real(huge(four)) print *, range(two), huge(two), log10(tworeal), int(log10(tworeal)) print *, range(four), huge(four), log10(foureal), int(log10(foureal)) end program ranger integer(2) range is 4, less than 5, so does not meet requirement for default INTEGER.