我正在尝试使用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).
答案 0 :(得分:3)
int64
不是整数的默认种类。在评估赋值的RHS时,编译器会尝试使用4807526976
结束的默认整数种类(因此)发出警告。
手动指定种类
i = 4807526976_int64
就像一个魅力。顺便说一句:ifort
似乎很聪明,可以自己正确地选择那种; - )