[ . . . ]In computer, there is a difference between the "truncated division" (also called "symmetric") and the "floored division". Most langage implement the truncated division, when the math definition is the "floored division". And I agree that modulo and integer division should be compatible to get (m div n) * n + (m mod n) == mIn Fortran, MOD and MODULO functions have different behaviour with negative numbers !!
I'm afraid Fortran misses a floored division (?)