fortran 格式说明符的标准文档解释了如何使用两个参数控制大多数格式,通常称为w和d。例如,格式说明符Fw.d表示数字将打印出w字符宽度(包括小数)和小数点d右侧的数字。G 格式类似,除了d被解释为要打印的有效位数。
到目前为止,我发现的所有文档都使用了w> 0 的示例,但我最近在这里了解到,您可以在格式说明符中对宽度参数使用零,这对于 CSV 输出之类的东西非常有用。似乎这w=0被解释为“可变宽度”,您可以根据需要获得尽可能多或尽可能少的空间,以满足d参数(它为 F 格式提供小数位,为 G 格式提供有效数字)。例如,这是具有不同值的 F 格式(“b”表示空白字符):
! tested with gfortran 5.5 on linux
print '(F8.3)', 7.777 ! prints bbb7.777
print '(F4.3)', 7.777 ! prints ****
print '(F0.3)', 7.777 ! prints 7.777
这一切似乎都说得通。G 对我来说有点困惑,因为G8.3它没有任何空白,我不知道为什么会G4.3失败,但无论如何它都在这里:
print '(G8.3)', 7.777 ! prints 7.78
print '(G4.3)', 7.777 ! prints ****
print '(G0.3)', 7.777 ! prints 7.78
我的问题是我通过反复试验的理解是否正确,这是否记录在任何地方,它是否是 Fortran 标准的一部分,还是特定于实现?
(我花了很多时间在谷歌上搜索这些信息,但找不到任何东西,也许是因为我不知道要使用什么搜索词。)