我刚从Python进入Fortran90,老实说,到目前为止,最困难的部分已经习惯了用于编写输出的格式化代码。我遇到了一个格式问题,我似乎无法用谷歌搜索或弄乱我的出路,我已经在该网站上搜索了答案,但没有发现任何有用的信息。
我正在计算并将输出写入文件。我正在使用以下代码格式化计算结果
write(file, ('13ES11.2)') kappa
有些值很小,所以我最终得到三位数的负值。所以应该是这样的
10e-100
但是相反,我在输出文件中得到了这个
10-100
这对我没有帮助,因为我还有另一个程序需要读取该文件并了解这些数字是指数。
我会很感激任何人在这方面的帮助。
最佳答案
尝试使用ES11.2E3
的格式规范。这允许指数(总是)有三个位置。
Fortran格式的输入和输出具有“固定列宽”的强烈 flavor 。如果没有指数字段宽度规范,则“默认”宽度为2。如果指数部分要求的位置比该位置多,则借用通常由E占据的列以至少允许输出继续而不会丢失信息。如果指数输出要求比默认值多两个,那么您会看到星星。
请注意,如果您的其他程序是用Fortran编写的,则它将理解带有E的这些奇怪的实数。
诸如G0.3
之类的编辑描述符为这种奇怪现象提供了部分解决方法,但是不能保证您使用科学格式。
关于file - 对于三位数的指数,Fortran在输出中删除 'E',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24004824/