对于三位数指数,Fortran会在输出中删除"E"

Ale*_*exa 8 format file fortran90 exponential output

我只是从Python进入Fortran90,老实说,到目前为止最困难的部分已经习惯了格式化代码来编写输出.我遇到了一个格式化问题,我似乎无法google或摆弄我的方式,我搜索了这个网站的答案,但没有找到任何有用的东西.

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

写(文件,('13ES11.2)')kappa

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

10E-100

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

10-100

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

我很感激任何人的帮助.

Ian*_*anH 13

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

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

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

一个编辑描述符,例如G0.3提供这种奇怪的部分解决方法,但你不能保证科学的格式.