我一直在使用下划线将一个整数定义为fortran中的特定类型.
这是一段代码片段,用于演示具体1_8
含义,例如:
program main
implicit none
integer(2) :: tiny
integer(4) :: short
integer(8) :: long
tiny = 1
short = 1
long = 1
print*, huge(tiny)
print*, huge(1_2)
print*, huge(short)
print*, huge(1_4)
print*, huge(long)
print*, huge(1_8)
end program main
Run Code Online (Sandbox Code Playgroud)
返回(使用PGI或gfortran):
32767
32767
2147483647
2147483647
9223372036854775807
9223372036854775807
Run Code Online (Sandbox Code Playgroud)
我正在使用huge
内部函数返回给定类型的最大数量.所以1_8
显然与整数(8)相同.这也适用于实数,虽然我没有在这里显示.
但是,我一直无法找到这个功能的任何文档,我不记得我在哪里学到它.我的问题是:
使用_KIND
标准的fortran?有没有人有这个来源?
编辑:有人指出我使用的类型值(2,4,8)不可移植 - 例如,不同的编译器/机器可能为巨大的(1_4)提供不同的值.
它是Fortran 90的标准Fortran,尽管每种类型的有效种类值和种类值的含义都取决于处理器.
Fortran标准是什么是"标准"Fortran的权威来源.ISO/IEC 1539-1:2010是您可以购买的当前版本,或者可以从各个地方获得该文档的出版前草稿. https://gcc.gnu.org/wiki/GFortranStandards有一系列有用的链接.
我希望许多编译器手册(例如 - 参见当前PGI Fortran参考手册的 2.2节)和现代Fortran上所有合理的教科书也会描述这个特性.