Max*_*Max 2 c fortran binaryfiles
我有一个由fortran代码生成的二进制文件.该文件包含一系列双精度数.我需要在我的C程序中打开它,然后像通常的数组一样使用它.
我该怎么做?
二进制文件中如何表示double类型?
对于未格式化(即二进制)顺序文件,几乎所有Fortran编译器都会在每条记录的开头和结尾写入记录的长度.通常,长度以四个字节写入,但有些编译器使用八个字节.记录是使用单个Fortran写入语句编写的所有内容.如果这个数组是用一个带有这种类型文件的Fortran写语句编写的,那么你有4或8个字节要跳过,然后是数组,然后是4或8个额外字节.您可以通过使用十六进制编辑器查看文件来解决这个问题.如果数组是用多个写语句分段编写的(例如,按列或行),则每个记录都将具有此结构.
如果文件由Fortran编写为未格式化,则Fortran double类型将以该计算机的二进制表示形式编写.您应该能够在同一计算机类型的C中读取它.如果您正在更改体系结构而不仅仅是语言,则二进制表示可能会有所不同.
Fortran有其他文件访问方法,不包括记录长度信息.例如,直接访问.流访问的新方法是为语言间兼容性而设计的.
如果数组是多维的,你可能想要转置它,因为Fortran有列主要数组,而C使用row-major.
相关问题:Fortran未格式化文件格式和使用python读取fortran无格式文件