3

我有一段 Fortran 代码,而我的 Fortran 编辑器(Force 2.0.9)无法理解该代码中的以下行。

real(kr8) :: rnum

我找不到关于这种类型的变量声明的任何信息。(kr8) 是什么意思?如果有人可以向我解释,我真的很感激?

4

2 回答 2

6

这是以下简称:

real(kind=kr8) :: rnum

在这种情况下,变量或参数kr8在代码的其他地方指定 - 如果在同一过程中,则在此行上方,如果通过模块访问,则在不同文件中。从它的名字,人们可以假设它kr8是以这样一种方式定义的,它对于某些特定的编译器具有一种双精度浮点数(大小为 8 个字节)。

请参阅您的 Fortran 编译器文档,了解kind参数对于整数和实数变量的各种精度和范围可以采用的值。如果你使用 force,你的编译器要么是 gfortran,要么是 g95,要么是 g77。该kind参数是 Fortran 90 引入的一个特性,如果你的编译器是 g77,你可能无法使用这个参数进行编译。

阅读这个 SO 问题的答案也很有用:Fortran 90 kind parameter

于 2012-08-02T22:21:10.077 回答
2

这是关于在 Fortran >=90 中声明变量的几种方法的先前答案:Fortran: integer*4 vs integer(4) vs integer(kind=4)。另请参阅扩展双精度,了解这如何与实变量一起使用。

于 2012-08-02T22:46:09.747 回答