gpt4 book ai didi

fortran - 使用下划线定义种类/精度

转载 作者:行者123 更新时间:2023-12-02 17:47:50 29 4
gpt4 key购买 nike

我一直使用下划线将整数定义为 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

返回(使用 PGI 或 gfortran):

32767
32767
2147483647
2147483647
9223372036854775807
9223372036854775807

我使用huge内部函数返回给定类型的最大数字。所以1_8显然与integer(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 reference manual 的第 2.2 节)和所有有关现代 Fortran 的合理教科书也会描述此功能。

关于fortran - 使用下划线定义种类/精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30362298/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com