我使用Fortran代码,它使用HDF5库来转储输出数据。我一直在超级计算机上运行代码而没有任何问题。最近,我在我们的本地集群上尝试了代码,并在机器上安装了HDF5库。但是,代码运行正常,除了输出部分引发以下错误。
我在互联网上搜索过这个问题。但是,我看到的大多数解决方案都非常特定于他们的代码。我认为这个错误是由一些基本问题引起的。有人可以解释一下,为什么会出现错误?
15:34:05 - Dumping OD...
HDF5-DIAG: Error detected in HDF5 (1.8.17) MPI-process 0:
#000: H5F.c line 522 in H5Fcreate(): unable to create file
major: File accessibilty
minor: Unable to open file
#001: H5Fint.c line 992 in H5F_open(): unable to open file: time = Mon Dec 12 15:34:05 2016
, name = './Production/od_out_t00000010-0067858932.h5', tent_flags = 13
major: File accessibilty
minor: Unable to open file
#002: H5FD.c line 993 in H5FD_open(): open failed
major: Virtual File Layer
minor: Unable to initialize object
#003: H5FDmpio.c line 1059 in H5FD_mpio_open(): MPI_File_open failed
major: Internal error (too specific to document in detail)
minor: Some MPI function failed
#004: H5FDmpio.c line 1059 in H5FD_mpio_open(): MPI_ERR_FILE: invalid file
major: Internal error (too specific to document in detail)
minor: MPI Error String
HDF5-DIAG: Error detected in HDF5 (1.8.17) MPI-process 0:
#000: H5D.c line 165 in H5Dcreate2(): not a location ID
major: Invalid arguments to routine
minor: Inappropriate type
#001: H5Gloc.c line 253 in H5G_loc(): invalid object ID
major: Invalid arguments to routine
minor: Bad value
HDF5-DIAG: Error detected in HDF5 (1.8.17) MPI-process 0:
#000: H5D.c line 460 in H5Dget_space(): not a dataset
major: Invalid arguments to routine
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.8.17) MPI-process 0:
#000: H5Dio.c line 228 in H5Dwrite(): not a dataset
major: Invalid arguments to routine
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.8.17) MPI-process 0:
#000: H5S.c line 392 in H5Sclose(): not a dataspace
major: Invalid arguments to routine
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.8.17) MPI-process 0:
#000: H5D.c line 415 in H5Dclose(): not a dataset
major: Invalid arguments to routine
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.8.17) MPI-process 0:
#000: H5F.c line 774 in H5Fclose(): not a file ID
major: Invalid arguments to routine
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.8.17) MPI-process 0:
#000: H5F.c line 604 in H5Fopen(): unable to open file
major: File accessibilty
minor: Unable to open file
#001: H5Fint.c line 992 in H5F_open(): unable to open file: time = Mon Dec 12 15:34:05 2016
, name = './Production/od_out_t00000010-0067858932.h5', tent_flags = 1
major: File accessibilty
minor: Unable to open file
#002: H5FD.c line 993 in H5FD_open(): open failed
major: Virtual File Layer
minor: Unable to initialize object
#003: H5FDsec2.c line 339 in H5FD_sec2_open(): unable to open file: name = './Production/od_out_t00000010-0067858932.h5', errno = 2, error message = 'No such file or directory', flags = 1, o_flags = 2
major: File accessibilty
minor: Unable to open file
HDF5-DIAG: Error detected in HDF5 (1.8.17) MPI-process 0:
#000: H5D.c line 340 in H5Dopen2(): not a location
major: Invalid arguments to routine
minor: Inappropriate type
#001: H5Gloc.c line 253 in H5G_loc(): invalid object ID
major: Invalid arguments to routine
minor: Bad value
HDF5-DIAG: Error detected in HDF5 (1.8.17) MPI-process 0:
#000: H5A.c line 247 in H5Acreate2(): not a location
major: Invalid arguments to routine
minor: Inappropriate type
#001: H5Gloc.c line 253 in H5G_loc(): invalid object ID
major: Invalid arguments to routine
minor: Bad value
HDF5-DIAG: Error detected in HDF5 (1.8.17) MPI-process 0:
#000: H5A.c line 591 in H5Awrite(): not an attribute
major: Invalid arguments to routine
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.8.17) MPI-process 0:
#000: H5A.c line 1602 in H5Aclose(): not an attribute
major: Invalid arguments to routine
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.8.17) MPI-process 0:
#000: H5D.c line 415 in H5Dclose(): not a dataset
major: Invalid arguments to routine
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.8.17) MPI-process 0:
#000: H5F.c line 774 in H5Fclose(): not a file ID
major: Invalid arguments to routine
minor: Inappropriate type
15:34:05 - Finished dumping HDF5 data.
答案 0 :(得分:0)
我的建议是添加
CALL h5dclose_f(dset_id, ierr) ! terminate create dataset;
每个数据写入操作。它对我有用。