首页 > 解决方案 > 在未格式化的直接访问中打开文件时,应在 recl 中使用什么?

问题描述

我试图完全理解如何在 Fortran 中处理二进制文件。具体来说,我正在阅读此https://atmos.washington.edu/~salathe/osx_unix/endian.html,其中介绍了当要写入的记录是固定长度时如何编写二进制文件。考虑到系统的字节序是相同的(据我所知,大多数实际系统是 2021 年的情况),这种情况旨在允许一种可以轻松地从其他编程语言读取/写入的原始格式现在是小尾数)。

在文章中,据说使用direct和打开文件unformatted

open (unit=1, file='out.r4', form='unformatted', access='direct', recl=m*n*sizeofreal)

如果我正确理解它的工作原理,该recl参数用于控制要写入的记录的大小。

recl我对如何在 Fortran 中使用有几个疑问:

我的实验表明,bytes在编写派生类型记录时使用派生类型的大小就足够了;但我不知道这是否取决于我使用的特定编译器。

默认情况下,我尝试使用flangFortran 95 来做事(只是为了学习一个完全兼容的标准f2py)。

标签: fortranfortran95flang

解决方案


推荐阅读