integer(16)変数を使用すると、 を使用するprintと、出力に予想される正確な数のスペースが含まれることに注意しました。したがって、私が使用するとき(ここでプロジェクトオイラーの問題を認識する人もいるかもしれません)
    implicit none
    integer(16)::sum_sq,sq_sum,diff,i
    sum_sq=0;sq_sum=0;
    do i=1,100
       sum_sq=sum_sq+i*i
       sq_sum=sq_sum+i
    enddo
    diff=abs(sq_sum**2-sum_sq)
    print *, "The difference is", diff
私は得る
The difference is 25164150
出力として、または変数にinteger(8)orを使用すると、integer
The difference is             25164150
出力として。これは、フラグの有無にかかわらず、gfortran でのみ発生します (私の ifort は、対処すべき別の問題である-m64を受け入れないようですが、 のスペースを含む出力を返します)。kind=16integer(8)
なぜこれが起こるのか誰にも分かりますか?