我有一段 Fortran 代码,而我的 Fortran 编辑器(Force 2.0.9)无法理解该代码中的以下行。
real(kr8) :: rnum
我找不到关于这种类型的变量声明的任何信息。(kr8) 是什么意思?如果有人可以向我解释,我真的很感激?
这是以下简称:
real(kind=kr8) :: rnum
在这种情况下,变量或参数kr8
在代码的其他地方指定 - 如果在同一过程中,则在此行上方,如果通过模块访问,则在不同文件中。从它的名字,人们可以假设它kr8
是以这样一种方式定义的,它对于某些特定的编译器具有一种双精度浮点数(大小为 8 个字节)。
请参阅您的 Fortran 编译器文档,了解kind
参数对于整数和实数变量的各种精度和范围可以采用的值。如果你使用 force,你的编译器要么是 gfortran,要么是 g95,要么是 g77。该kind
参数是 Fortran 90 引入的一个特性,如果你的编译器是 g77,你可能无法使用这个参数进行编译。
阅读这个 SO 问题的答案也很有用:Fortran 90 kind parameter。
这是关于在 Fortran >=90 中声明变量的几种方法的先前答案:Fortran: integer*4 vs integer(4) vs integer(kind=4)。另请参阅扩展双精度,了解这如何与实变量一起使用。