Intel® Fortran Compiler Classic and Intel® Fortran Compiler Developer Guide and Reference
A newer version of this document is available. Customers should click here to go to the newest version.
MODULO
Elemental Intrinsic Function (Generic): Returns the modulo of the arguments.
result = MODULO (a,p)
a  |  
      (Input) Must be of type integer or real.  |  
     
p  |  
      (Input) Must have the same type and kind parameters as a. It must not have a value of zero.  |  
     
Results
The result type is the same a. The result value depends on the type of a, as follows:
If a is of type integer and p is not equal to zero, the value of the result is a - FLOOR(REAL( a) / REAL( p)) * p, that is, the result has a value such that a = q * p + result where q is an integer. The following also applies:
If p > 0, then 0 <= result < p
If p < 0, then p < result <= 0
If a is of type real and p is not equal to zero, the value of the result is a - FLOOR( a/ p) * p.
If p is equal to zero (regardless of the type of a), the result is undefined.
Example
MODULO (7, 3) has the value 1.
MODULO (9, -6) has the value -3.
MODULO (-9, 6) has the value 3.
The following shows more examples:
 INTEGER I
 REAL R
 I= MODULO(8, 5)         ! returns 3          Note: q=1
 I= MODULO(-8, 5)        ! returns 2          Note: q=-2
 I= MODULO(8, -5)        ! returns -2         Note: q=-2
 I= MODULO(-8,-5)        ! returns -3         Note: q=1
 R= MODULO(7.285, 2.35)  ! returns 0.2350001  Note: q=3
 R= MODULO(7.285, -2.35) ! returns -2.115     Note: q=-4