H5Sselect_elements /
h5sselect_elements_f function.
The H5Scopy / h5scopy_f function allows
you to make an exact copy of a dataspace.
This can reduce the number of function calls needed when
selecting a dataspace.
H5Sselect_elements /
h5sselect_elements_f
to select individual points in a dataset and how to use
H5Scopy / h5scopy_f
to make a copy of a dataspace.
h5_copy.cselectele.f90Copy.java
H5Sselect_elements / h5sselect_elements_f
selects array elements to be
included in the selection for a dataspace:
C:
herr_t H5Sselect_elements (hid_t space_id, H5S_seloper_t operator,
size_t num_elements,
const hsize_t **coord )
FORTRAN:
h5sselect_elements_f (space_id, operator, num_elements, coord, hdferr)
space_id IN: INTEGER(HID_T)
operator IN: INTEGER
num_elements IN: INTEGER
coord IN: INTEGER(HSIZE_T), DIMENSION(*,*)
hdferr OUT: INTEGER
H5S_SELECT_SET (H5S_SELECT_SET_F in FORTRAN)
H5S_SELECT_OR (H5S_SELECT_OR_F in FORTRAN)
NUMP x RANK in C
(RANK x NUMP in FORTRAN)
where NUMP is the number of selected points
and RANK is the rank of the dataset.
Note that these coordinates are 0-based in C and 1-based in FORTRAN.
Consider the non-zero elements of the following array:
0 59 0 53
0 0 0 0
0 0 1 0
In C, the coord array selecting these points would be as follows:
0 1
0 3
2 2
While in FORTRAN, the coord array would be as follows:
1 1 3
2 4 3
H5Scopy / h5scopy_f creates an exact copy of a dataspace:
C:
hid_t H5Scopy (hid_t space_id)FORTRAN:
h5scopy_f (space_id, new_space_id, hdferr)
space_id IN: INTEGER(HID_T)
new_space_id OUT: INTEGER(HID_T)
hdferr OUT: INTEGER
Fig. S.1a
Fig. S.2a File Contents
Following is the DDL for copy1.h5 and copy2.h5, as viewed with
the following commands:
h5dump copy1.h5
h5dump copy2.h5
C:copy1.h5 in DDL
HDF5 "copy1.h5" {
GROUP "/" {
DATASET "Copy1" {
DATATYPE { H5T_STD_I32BE }
DATASPACE { SIMPLE ( 3, 4 ) / ( 3, 4 ) }
DATA {
0, 59, 0, 53,
0, 0, 0, 0,
0, 0, 0, 0
}
}
}
}
Fig. S.1b copy2.h5 in DDL
HDF5 "copy2.h5" {
GROUP "/" {
DATASET "Copy2" {
DATATYPE { H5T_STD_I32BE }
DATASPACE { SIMPLE ( 3, 4 ) / ( 3, 4 ) }
DATA {
1, 59, 1, 53,
1, 1, 1, 1,
1, 1, 1, 1
}
}
}
}
FORTRAN:copy1.h5 in DDL
HDF5 "copy1.h5" {
GROUP "/" {
DATASET "Copy1" {
DATATYPE { H5T_STD_I32BE }
DATASPACE { SIMPLE ( 4, 3 ) / ( 4, 3 ) }
DATA {
0, 0, 0,
53, 0, 0,
0, 0, 0,
59, 0, 0
}
}
}
}
Fig. S.2b copy2.h5 in DDL
HDF5 "copy2.h5" {
GROUP "/" {
DATASET "Copy2" {
DATATYPE { H5T_STD_I32BE }
DATASPACE { SIMPLE ( 4, 3 ) / ( 4, 3 ) }
DATA {
1, 1, 1,
53, 1, 1,
1, 1, 1,
59, 1, 1
}
}
}
}
![]()
The National Center for Supercomputing Applications
University of Illinois
at Urbana-Champaign
hdfhelp@ncsa.uiuc.edu
Last Modified: June 22, 2001