相关疑难解决方法(0)

Fortran的长期投注

我正在尝试使用大数(~10 ^ 14),我需要能够存储它们并迭代那个长度的循环,即

n=SOME_BIG_NUMBER
do i=n,1,-1
Run Code Online (Sandbox Code Playgroud)

我尝试了通常的星形符号kind=8等,但似乎没有任何效果.然后我检查了huge内在函数和代码:

program inttest

print *,huge(1)
print *,huge(2)
print *,huge(4)
print *,huge(8)
print *,huge(16)
print *,huge(32)

end program inttest
Run Code Online (Sandbox Code Playgroud)

在所有情况下产生数字2147483647.为什么是这样?我在64位机器上使用gfortran(f95).

如果我需要一个bignum图书馆,人们会建议哪一个?

fortran loops largenumber

4
推荐指数
2
解决办法
5166
查看次数

gfortran 错误:整数对于 (1) 处的同类而言太大了

我想查看 gfortran 的整数种类

所以我写了这一行

write(*,"(1X,I20,'correspond to kind  ',I2)"),11111111111,kind(11111111111)
Run Code Online (Sandbox Code Playgroud)

会有编译错误说

test.f90:67:57 类型的精度:错误:整数对于 (1) 处的同类来说太大了。可以使用选项 -fno-range-check 禁用该检查

所以我尝试用-fno-range-check. 但它给出了结果

-1773790777对应种类4

怎么了?另一方面,intel fortran 没有给出错误和正确答案

fortran gfortran

2
推荐指数
1
解决办法
1879
查看次数

标签 统计

fortran ×2

gfortran ×1

largenumber ×1

loops ×1