首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未格式化的直接访问文件的可移植性

未格式化的直接访问文件的可移植性
EN

Stack Overflow用户
提问于 2016-10-24 15:06:48
回答 1查看 232关注 0票数 1

我有一个Fortran代码,它编写一个未格式化的直接访问文件。问题是,当我切换到不同的平台时,文件的大小和内容都会发生变化:

  • 第一个平台是Windows (32位版本的程序使用Intel编译器-版本,2009年左右)
  • 第二个平台是Linux (具有gfortran编译器v4.9.0的64位程序版本)。

不幸的是,在Linux中生成的文件无法从windows读取。LINUX中的文件要小5-6倍。然而,被写入的记录总数似乎是相同的。我用十六进制编辑器打开了两个文件,主要区别是文件的windows版本中存在大量的零。在LINUX中有任何方法产生完全相同的文件吗?

如果有帮助,您可以在这里找到两个文件:ZCZVa?dl=0

我使用以下命令打开文件:OPEN(IAST,FILE=ASTFILR,ACCESS='DIRECT',FORM='UNFORMATTED',RECL=80)

我使用以下命令编写:WRITE(IAST,REC=IRC) (SNGL(PHI(I)-REF), I=IBR,IER)

我使用以下命令阅读:READ(IAST,REC=IRC,ERR=999) (PHIS(I), I=1,ISTEP),其中PHISREAL*4数组

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-24 15:36:44

问题是,默认情况下,Intel指定RECL=以字为单位,而GFortran则使用字节。有一个Intel Fortran编译器选项,您可以使用它来使用字节单元。在Linux上,这个选项是

代码语言:javascript
复制
-assume byterecl

对于Windows,我不确定语法是什么,也许类似于

代码语言:javascript
复制
/assume:byterecl
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40221684

复制
相关文章

相似问题

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