整数の除算#

Fortran では、浮動小数点演算と整数演算を区別します。 整数の除算は常に整数演算で行われることに注意することが重要です。 さらに、Fortran では標準の計算順序(例:乗算と除算が括弧がない限り加算と減算に先行する)が使用されますが、同じ優先順位の演算は左から右の順に評価されます。 奇数の整数の整数除算の例を次に示します

integer :: n
n = 3
print *, n / 2  ! prints 1
print *, n*(n + 1)/2  ! prints 6
print *, n/2*(n + 1)  ! prints 4 (left-to-right evaluation order)
n = -3
print *, n / 2  ! prints -1

このコンテキストで実際に整数演算を使用するかどうかを慎重に検討してください。 代わりに浮動小数点演算を使用する場合は、除算演算子を使用する前に実数にキャストするか、整数に 1.0_dp を乗算して分離してください

integer :: n
n = 3
print *, real(n, dp) / 2  ! prints 1.5
print *, n * 1.0_dp / 2  ! prints 1.5
n = -3
print *, real(n, dp) / 2  ! prints -1.5
print *, n * 1.0_dp / 2  ! prints -1.5