2012-10-07 98 views
1

我目前正在学习Fortran 90,并且一直在试验kindselected_real_kind变量参数。在我的实验中,我发现变量只能包含长达33位数的值。我的问题是,我如何计算更长的数字?例如,如果可能的话,我如何计算40位数的数字?请提供源代码。Fortran 90 - 计算极大值

作为一个便笺,我已经注意到,python和common lisp可以计算出数百个数字的数字而不会失去精度。 Fortran中是否存在这样的能力?如果不是,它可以被仿效吗?

在此先感谢。

回答

3

如果你想计算的数字非常长,你需要一个库,如ARPREC。否则,最高的本地等级依赖于处理器,例如,对于大多数平台,它是128位(种类16)的gfortran。你也可以尝试C库sach GMP

+0

尽管gfortran现在需要一个任意的精确库(http://www.mpfr.org/),因此理论上可以用gfortran支持更高的精度,尽管我对此不太确定。还可以在以下网址找到更多指针:http://crd-legacy.lbl.gov/~dhbailey/mpdist/ – haraldkl

+0

我认为这样一个任意长度的实现将不是标准的Fortran。序列关联会有问题。这些数据实际上只能是可以分配的或指针。 –

+0

我下载了ARPREC和mpdist,但我没有看到如何从我的程序中调用它们。在Geany上,使用gFortran进行编译时,会出现“无法找到mpdist.mod”的错误,即使我已将其设置为$ PATH。如果有帮助,我在Linux Mint 13上。 – Progrmr