Clicky

Fortran Wiki
modulo

Description

modulo(a,p) computes the a modulo p.

Standard

Fortran 95 and later

Class

Elemental function

Syntax

result = modulo(a, p)

Arguments

  • a - Shall be a scalar of type integer or real.
  • p - Shall be a scalar of the same type and kind as a. It shall not be zero.

Return value

The type and kind of the result are those of the arguments.

  • If a and p are of type integer: modulo(a,p) has the value of a - floor (real(a) / real(p)) * p.
  • If a and p are of type real: modulo(a,p) has the value of a - floor (a / p) * p.

The returned value has the same sign as p and a magnitude less than the magnitude of p.

Example

program test_modulo
  print *, modulo(17,3)        ! yields 2
  print *, modulo(17.5,5.5)    ! yields 1.0

  print *, modulo(-17,3)       ! yields 1
  print *, modulo(-17.5,5.5)   ! yields 4.5

  print *, modulo(17,-3)       ! yields -1
  print *, modulo(17.5,-5.5)   ! yields -4.5
end program

See also

mod

category: intrinsics