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