https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96711
--- Comment #5 from kargl at gcc dot gnu.org --- Trivial workaround. program nint_error implicit none integer(kind=16) :: m real(8) :: x, y x = 1 y = x - 1 m = anint(y) print *, m end This will use libquadmath to round y to a quad precision floating point integral number, and then the rounded value will assigned to m where type conversion occurs.