FORTRAN:保存数组并在另一个程序中使用

Posted

技术标签:

【中文标题】FORTRAN:保存数组并在另一个程序中使用【英文标题】:FORTRAN: Save array and use in another programme 【发布时间】:2014-03-18 16:48:30 【问题描述】:

是否可以在一个程序中创建一个数组,然后在其他程序中使用它?我要创建的数组非常大,它的创建需要一段时间,所以我不想每次运行主程序时都重新创建它,而是在另一个程序中创建一次后使用它。由于它的大小,我不确定是否将其打印到文件然后再读回效率也不会很低?

它是一个维度为 1:300 000 和 100 的整数数组。

【问题讨论】:

见***.com/questions/21058408/… 【参考方案1】:

长评:

您可以使用多种格式保存数据:Fortran 未格式化的顺序、Fortran 未格式化的直接、Fortran 未格式化的流、NetCDF、HDF5、VTK ...... 真的很难用任何明确的答案来回答这个问题。我们真的不知道计算它有多耗时,因此我们无法判断保存是否会更耗时。

您当然应该寻找unformattedbinary 格式。

编辑:您的数组实际上并没有那么大。保存和阅读将很快。只需使用未格式化的文件形式。

【讨论】:

这个和其他细节应该在问题中,而不是在这里。 当我在代码中包含这个OPEN(UNIT=10,FILE='all_paths.direct',FORM='UNFORMATTED', ACCESS='sequential', STATUS='unknown') 时,我得到一个分段错误? 这个和其他细节(这不足以诊断问题!)应该在问题中,而不是在这里。并且可能是针对这个特定问题的全新问题。

以上是关于FORTRAN:保存数组并在另一个程序中使用的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 和 Fortran 代码之间传递复数数组

可以将 Fortran 数组保存为 .npy 格式吗?

Python Numpy - 无法正确保存/加载数组

在 Fortran 中导入 .mat 文件 - 分段错误错误

使用jpa注释在一个事务中保存数据并在另一个事务中获取数据

fortran子程序中可以用动态数组吗??