fortran Int64 整数太大

fortran Int64 Integer too big

我正在尝试使用 Integer(int64) 设置一个整数,但设置为时遇到问题。当我调用 huge 时,我得到 9223372036854775807。但是当我尝试设置应该在范围内的 4807526976 时,我确实遇到了编译错误。

 Integer (Int64) :: i

  Write (*,*) huge (i)
 i = 4807526976
 Write (*,*) "i: ", i

编译器给我

Error: Integer too big for its kind at (1).

int64 不是整数的默认类型。在评估赋值的 RHS 时,编译器尝试使用默认整数类型 4807526976 结束(因此)发出警告。

手动指定种类

i = 4807526976_int64

很有魅力。顺便说一句:ifort 似乎足够聪明,可以自己正确选择种类 ;-)