问题描述
我试图完全理解如何在 Fortran 中处理二进制文件。具体来说,我正在阅读这个 https://atmos.washington.edu/~salathe/osx_unix/endian.html ,它涵盖了当要写入的记录是固定长度时如何写入二进制文件。考虑到系统的字节序是相同的(据我所知,在 2021 年就是这种情况)现在是 Little Endian)。
open (unit=1,file='out.r4',form='unformatted',access='direct',recl=m*n*sizeofreal)
如果我理解正确的话,recl
参数用于控制要写入的记录的大小。
我对如何在 Fortran 中使用 recl
有几个疑问:
- 是以字节为单位的记录大小吗?
- 它是否依赖于编译器?
- 这是否取决于我们使用的 Fortran 标准?
- 如果是,标准之间有什么区别?
-
recl
的含义取决于我们编写的是派生类型还是“常规”类型?
我的实验表明,在编写派生类型记录时使用派生类型的bytes
大小就足够了;但我不知道这是否取决于我使用的特定编译器。
默认情况下,我尝试使用 flang
和 Fortran 95(只是为了学习与 f2py
完全兼容的标准)。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)