Clicky
Showing changes from revision #2 to #3:
(追記) Added (追記ここまで) | (削除) Removed (削除ここまで) | (削除) Chan (削除ここまで)(追記) ged (追記ここまで)
modulo(a,p)
computes the a
modulo p
.
Fortran 95 and later
result = modulo(a, p)
a
- Shall be a scalar of type integer
or real
p
- Shall be a scalar of the same type and kind as a
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 r
such that a=q*p+r
, where q
is an integer and r
is between 0 (inclusive) and p
(exclusive).
a
(追記ここまで)p
(追記ここまで)(追記) are of type (追記ここまで)(追記) integer
(追記ここまで)(追記) : (追記ここまで)(追記) modulo(a,p)
(追記ここまで)(追記) has the value (追記ここまで)(追記) r
(追記ここまで)(追記) such that ‘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
.
a
(追記ここまで)p
(追記ここまで)(追記) are of type (追記ここまで)(追記) real
(追記ここまで)(追記) : (追記ここまで)(追記) modulo(a,p)
(追記ここまで)(追記) has the value of (追記ここまで)(追記) a - floor (a / p) * p
(追記ここまで)(追記) . (追記ここまで)In all cases, if p
is zero the result is processor-dependent.
program test_modulo
print *, modulo(17,3)
print *, modulo(17.5,5.5)
print *, modulo(-17,3)
print *, modulo(-17.5,5.5)
print *, modulo(17,-3)
print *, modulo(17.5,-5.5)
end program