fortran - 在 Fortran 中创建的 HDF5 文件直到模拟结束才写入
问题描述
我正在用 Fortran 编写一个应用程序,它在每个时间步转储一个包含多个数组的单个文件。在时间步结束时,打开一个新文件并将数据写入其中。这些文件中的每一个都是通过调用创建的:
! Create a new file
CALL h5fcreate_f(trim(filename), H5F_ACC_TRUNC_F, file_id, error)
close_hdf()
并通过在每个时间步结束时调用以下子程序来关闭:
subroutine close_hdf()
! Close the file
CALL h5fclose_f(file_id, error)
! Close FORTRAN interface
CALL h5close_f(error)
end subroutine close_hdf
然而,在时间步结束时,文件是零字节,我必须杀死可执行文件或等到所有时间步都完成才能分析数据。为什么文件没有被刷新?
我也尝试通过调用来刷新数据
CALL h5fflush_f(file_id, H5F_SCOPE_GLOBAL , error)
在里面close_hdf()
,但这也无济于事。完成这些文件后,如何在时间步结束时刷新和关闭/写入这些文件?
解决方案
推荐阅读
- angular - 在延迟加载的模块上下文下无法识别组件@input
- charts - 错误:验证失败:无法识别“”:版本“networking.k8s.io/v1beta1”中类型“FrontendConfig”没有匹配项
- amazon-web-services - 两个 EC2 在同一个 VPC 和 SUBNET 但一个可以连接互联网,另一个不能,为什么?
- html - 在屏幕中心居中导航栏标题
- reactjs - this.props.history.push 未定义
- c# - 上传图像 ASP.NET Core MVC 时退出代码 -1
- python - Python - 我提取素数的查询不起作用
- c++ - 如何解决快速排序功能中的问题?
- c# - 在生产中正常重新启动 Service Fabric 应用程序以反映对数据包的更新
- c# - 如何将模型列表转换为从它继承的另一个模型列表?