对 Fortran 中的实际文字同时使用科学记数法和下划线种类说明符

uLo*_*oop 5 double fortran fortran2003 fortran-iso-c-binding

在 Fortran 中,对浮点文字使用科学记数法很容易:

1.5d-10

将意味着近似于1.5*10^-15.

然而,指数符号和浮点类型说明符的融合有点问题。当人们希望它具有一种类型时,如何声明这个浮点文字C_DOUBLE

我知道这有点吹毛求疵,但在某些情况下,双精度可能与C_DOUBLE.

fra*_*lus 6

真实文字可以通过以下任何形式指定:

  • 1.2
  • 1.2e0
  • 1.2d0
  • 1.2_kind
  • 1.2e0_kind

最后一个是使用种类说明符和指数的示例。那么,具体到这个问题:1.5e-15_C_DOUBLE

当然可能存在1.5d-15与 不同的情况1.5e-15_C_DOUBLE。双精度 和 的类型real(C_DOUBLE)分别由 Fortran 和配套的 C 编译器选择。

允许通过编译器标志将单精度和双精度文字常量提升为更高类型的编译器不会触及real(C_DOUBLE).


对于没有小数部分的实数值,还有其他可用的形式:

  • 1.
  • 1e0
  • 1.e0
  • 1d0
  • 1.d0
  • 1.e0_kind
  • 1e0_kind

也就是说,小数部分是可选的,如果给出指数,则小数分隔符也是可选的。但请注意,这1是一个整数文字,而1e0和 类似是实数。