首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fortran中write(*,*)和write(6,*)的区别

Fortran中write(*,*)和write(6,*)的区别
EN

Stack Overflow用户
提问于 2015-02-20 10:50:44
回答 1查看 5.4K关注 0票数 3

我知道这听起来像是一个愚蠢的问题:

代码语言:javascript
复制
write(*,*)

代码语言:javascript
复制
write(6,*)

?我在研究所的超级计算机上运行一个复杂的代码,它通过一个不同于6的单元号输出一个数据文件,显然,用上面的代码编译的Fortran代码给了我一个不同的数据文件(即,数据不匹配)。

我知道(*,*)格式用于标准输出,而(6,*)在屏幕上呈现,但是我真的很困惑为什么这会对我的实际数据产生影响。任何关于这是如何工作的想法将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2015-02-20 20:13:21

*表示的单位是“标准输出”(不是真正的Fortran标准术语)。它通常作为单元编号6预先连接,但它可以连接到不同的单编译器选项控件。您可以在模块iso_fortran_env中使用常量OUTPUT_UNIT检查这一点

代码语言:javascript
复制
OUTPUT_UNIT:
    Identifies the preconnected unit identified by the asterisk (*) in WRITE statement. 

(摘自gfortran文档)

大多数情况下,可以预期两者的结果是相同的。如果不是你的情况,你必须显示出差异是什么样子的。

如果您使用其他单元编号,并在您自己的代码中打开它,则任何事情都可能发生。您必须检查打开文件时使用的选项,即open语句和编译器选项。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28620899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档