对于三位指数,Fortran 删除输出中的'E'



我刚刚从Python开始使用Fortran90,老实说,到目前为止最难的部分是习惯用于编写输出的格式化代码。我遇到了一个格式问题,我似乎无法谷歌或摆弄我的方式,我已经搜索了这个网站的答案,但没有找到任何有用的。

我正在进行计算并将输出写入文件。我正在用以下代码格式化计算结果

write(file, ('13ES11.2)') kappa

有些值非常小,所以我最终得到三位数的负值。所以应该是这样的

10 e - 100

但是在我的输出文件中,我得到了这个

10 - 100

这对我没有帮助,因为我有另一个程序需要读取该文件并理解这些数字是指数。

我非常感谢任何人的帮助。

尝试ES11.2E3的格式规范。这允许(总是)三个位置的指数。

对于Fortran格式的输入和输出有一种强烈的"固定列宽"的味道。如果没有指数字段宽度规范,"默认"宽度为2。如果指数部分需要比这多一个位置,则借用通常由E占用的列,以至少允许输出继续而不丢失信息。如果指数输出需要比默认值多两个,那么您将看到星号。

请注意,如果您的其他程序是用Fortran编写的,那么它将理解这些缺少e的奇怪实数。

G0.3这样的编辑描述符提供了解决这个问题的部分方法,但是不能保证格式的科学性。