Файл HDF5, созданный в Фортране, не записывается до окончания симуляции - PullRequest
0 голосов
/ 29 октября 2019

Я пишу приложение на Фортране, которое выводит один файл, содержащий несколько массивов на каждом временном шаге. В конце временного шага открывается новый файл и в него записываются данные. Каждый из этих файлов создается путем вызова:

  ! 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(), но это тоже не помогло. Как мне очистить и закрыть / записать эти файлы в конце временного шага, как только я закончу с ними?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...