Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran 如何创建实(种类=32)变量?_Fortran - Fatal编程技术网

Fortran 如何创建实(种类=32)变量?

Fortran 如何创建实(种类=32)变量?,fortran,Fortran,当使用REAL(KIND=16)或REAL*16时,我的程序在精度方面有一些问题。有没有比精度更高的方法?REAL*32(种类值不能直接移植)将是256位的REAL。没有这样的IEEE浮点类型。看 我不知道有哪个处理器(编译器)支持这种类型的扩展。而且,我所知的任何硬件都无法以本机方式处理此问题 在如此高的精度下,我将重新考虑算法及其稳定性。通常程序需要的精度不超过四字节(16字节)。正常情况下,即使是双倍也足够了。我的许多计算都是单精度的 最后,有些库支持更高的精度,但它们的使用比使用不同种类

当使用REAL(KIND=16)或REAL*16时,我的程序在精度方面有一些问题。有没有比精度更高的方法?

REAL*32
(种类值不能直接移植)将是256位的
REAL
。没有这样的IEEE浮点类型。看

我不知道有哪个处理器(编译器)支持这种类型的扩展。而且,我所知的任何硬件都无法以本机方式处理此问题

在如此高的精度下,我将重新考虑算法及其稳定性。通常程序需要的精度不超过四字节(16字节)。正常情况下,即使是双倍也足够了。我的许多计算都是单精度的

最后,有些库支持更高的精度,但它们的使用比使用不同种类的参数重新编译更复杂。看


在特殊要求下:种类编号取决于实现。第16类可能不存在,也可能不表示IEEE 128位浮点。这里有很多问题
等等。

当前所有Fortran编译器都支持32位和64位浮点数。有些还支持其他尺寸。有关如何指定变量类型的指导,请参见的答案。real(N)与real*N不同,不应使用。你看,我从来没有这样做过,但重复同样的话是很累的。在这里,问题的意图是完全清楚的。REAL*16至少在存储大小上是唯一的,事实上,在我所知道的所有系统上,它都是IEEE 128位浮点。它始终是16个字符(16字节)的实变量,尽管不是标准变量。