gpt4 book ai didi

fortran - 在 Fortran 中是否有一种简短、可移植的方法来指定 "kind"?

转载 作者:行者123 更新时间:2023-12-02 16:05:39 25 4
gpt4 key购买 nike

我通常使用这种形式在我的 Fortran 代码中获得 double :

use, intrinsic :: ISO_FORTRAN_ENV
real(kind=real64) :: a = 5d0

但是,当连续定义多个变量时,real(kind=real64) 会变得非常重复。只使用 real*8 很诱人,尽管我避免这样做,因为我被告知,尽管不太可能,但它有可能使程序不可移植。

From another question I found on the subject我看到 real(real64) 有效,但我不知道这是否是一个好的做法;它似乎与使用 real(8) 相同,因为至少在我的系统上,real64 = 8。是否有比 real(kind=real64) 更短的方法在变量声明中指定类型? real*8 是否有可能导致问题?

最佳答案

两者的区别

use, intrinsic :: ISO_FORTRAN_ENV
Real( kind = real64 ) :: a

use, intrinsic :: ISO_FORTRAN_ENV
Real( real64 ) :: a

纯粹是风格上的。两者同样具有可移植性,并且就代码而言是相同的。事实上,我无法理解为什么你认为它们不同。如果您认为 real64 太长而无法输入,您可以随时使用

use, intrinsic :: ISO_FORTRAN_ENV
Integer, Parameter :: wp = real64
Real( wp ) :: a

技术上不可移植的是使用 5d0 作为常量并假设它是与 real64 类型相同的实数。 double 已经过时了,忘记它,而是正确使用种类机制

use, intrinsic :: ISO_FORTRAN_ENV
Integer, Parameter :: wp = real64
Real( wp ) :: a = 5.0_wp

关于fortran - 在 Fortran 中是否有一种简短、可移植的方法来指定 "kind"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57316135/

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