首页 > 解决方案 > 在 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(),但这也无济于事。完成这些文件后,如何在时间步结束时刷新和关闭/写入这些文件?

标签: fortranhdf5intel-fortran

解决方案


推荐阅读