summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/h5_select.c286
1 files changed, 144 insertions, 142 deletions
diff --git a/examples/h5_select.c b/examples/h5_select.c
index 1ad3c04..fe4850b 100644
--- a/examples/h5_select.c
+++ b/examples/h5_select.c
@@ -31,8 +31,7 @@
#define NPOINTS 4 /* Number of points that will be selected
and overwritten */
-int
-main (void)
+int main (void)
{
hid_t file, dataset; /* File and dataset identifiers */
@@ -56,151 +55,154 @@ main (void)
int matrix[MSPACE_DIM1][MSPACE_DIM2];
int vector[MSPACE1_DIM];
int values[] = {53, 59, 61, 67}; /* New values to be written */
-/*
- * Buffers' initialization.
- */
-vector[0] = vector[MSPACE1_DIM - 1] = -1;
-for (i = 1; i < MSPACE1_DIM - 1; i++) vector[i] = i;
-
-for (i = 0; i < MSPACE_DIM1; i++) {
- for (j = 0; j < MSPACE_DIM2; j++)
- matrix[i][j] = 0;
-}
-/*
- * Create a file.
- */
-file = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
-/*
- * Create dataspace for the dataset in the file.
- */
-fid = H5Screate_simple(FSPACE_RANK, fdim, NULL);
-
-/*
- * Create dataset and write it into the file.
- */
-dataset = H5Dcreate(file, "Matrix in file", H5T_NATIVE_INT, fid, H5P_DEFAULT);
-ret = H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, matrix);
-
-/*
- * Select hyperslab for the dataset in the file, using 3x2 blocks, (4,3) stride
- * (2,4) count starting at the position (0,1).
- */
-start[0] = 0; start[1] = 1;
-stride[0] = 4; stride[1] = 3;
-count[0] = 2; count[1] = 4;
-block[0] = 3; block[1] = 2;
-ret = H5Sselect_hyperslab(fid, H5S_SELECT_SET, start, stride, count, block);
-
-/*
- * Create dataspace for the first dataset.
- */
-mid1 = H5Screate_simple(MSPACE1_RANK, dim1, NULL);
-
-/*
- * Select hyperslab.
- * We will use 48 elements of the vector buffer starting at the second element.
- * Selected elements are 1 2 3 . . . 48
- */
-start[0] = 1;
-stride[0] = 1;
-count[0] = 48;
-block[0] = 1;
-ret = H5Sselect_hyperslab(mid1, H5S_SELECT_SET, start, stride, count, block);
+ /*
+ * Buffers' initialization.
+ */
+ vector[0] = vector[MSPACE1_DIM - 1] = -1;
+ for (i = 1; i < MSPACE1_DIM - 1; i++) vector[i] = i;
+
+ for (i = 0; i < MSPACE_DIM1; i++) {
+ for (j = 0; j < MSPACE_DIM2; j++)
+ matrix[i][j] = 0;
+ }
+
+ /*
+ * Create a file.
+ */
+ file = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ /*
+ * Create dataspace for the dataset in the file.
+ */
+ fid = H5Screate_simple(FSPACE_RANK, fdim, NULL);
+
+ /*
+ * Create dataset and write it into the file.
+ */
+ dataset = H5Dcreate(file, "Matrix in file", H5T_NATIVE_INT, fid, H5P_DEFAULT);
+ ret = H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, matrix);
+
+ /*
+ * Select hyperslab for the dataset in the file, using 3x2 blocks,
+ * (4,3) stride and (2,4) count starting at the position (0,1).
+ */
+ start[0] = 0; start[1] = 1;
+ stride[0] = 4; stride[1] = 3;
+ count[0] = 2; count[1] = 4;
+ block[0] = 3; block[1] = 2;
+ ret = H5Sselect_hyperslab(fid, H5S_SELECT_SET, start, stride, count, block);
+
+ /*
+ * Create dataspace for the first dataset.
+ */
+ mid1 = H5Screate_simple(MSPACE1_RANK, dim1, NULL);
+
+ /*
+ * Select hyperslab.
+ * We will use 48 elements of the vector buffer starting at the second element.
+ * Selected elements are 1 2 3 . . . 48
+ */
+ start[0] = 1;
+ stride[0] = 1;
+ count[0] = 48;
+ block[0] = 1;
+ ret = H5Sselect_hyperslab(mid1, H5S_SELECT_SET, start, stride, count, block);
-/*
- * Write selection from the vector buffer to the dataset in the file.
- *
- * File dataset should look like this:
- * 0 1 2 0 3 4 0 5 6 0 7 8
- * 0 9 10 0 11 12 0 13 14 0 15 16
- * 0 17 18 0 19 20 0 21 22 0 23 24
- * 0 0 0 0 0 0 0 0 0 0 0 0
- * 0 25 26 0 27 28 0 29 30 0 31 32
- * 0 33 34 0 35 36 0 37 38 0 39 40
- * 0 41 42 0 43 44 0 45 46 0 47 48
- * 0 0 0 0 0 0 0 0 0 0 0 0
- */
-ret = H5Dwrite(dataset, H5T_NATIVE_INT, mid1, fid, H5P_DEFAULT, vector);
-
-/*
- * Reset the selection for the file dataspace fid.
- */
-ret = H5Sselect_none(fid);
-
-/*
- * Create dataspace for the second dataset.
- */
-mid2 = H5Screate_simple(MSPACE2_RANK, dim2, NULL);
-
-/*
- * Select sequence of NPOINTS points in the file dataspace.
- */
-coord[0][0] = 0; coord[0][1] = 0;
-coord[1][0] = 3; coord[1][1] = 3;
-coord[2][0] = 3; coord[2][1] = 5;
-coord[3][0] = 5; coord[3][1] = 6;
-
-ret = H5Sselect_elements(fid, H5S_SELECT_SET, NPOINTS,
- (const hssize_t **)coord);
-
-/*
- * Write new selection of points to the dataset.
- */
-ret = H5Dwrite(dataset, H5T_NATIVE_INT, mid2, fid, H5P_DEFAULT, values);
-
-/*
- * File dataset should look like this:
- * 53 1 2 0 3 4 0 5 6 0 7 8
- * 0 9 10 0 11 12 0 13 14 0 15 16
- * 0 17 18 0 19 20 0 21 22 0 23 24
- * 0 0 0 59 0 61 0 0 0 0 0 0
- * 0 25 26 0 27 28 0 29 30 0 31 32
- * 0 33 34 0 35 36 67 37 38 0 39 40
- * 0 41 42 0 43 44 0 45 46 0 47 48
- * 0 0 0 0 0 0 0 0 0 0 0 0
- *
- */
+ /*
+ * Write selection from the vector buffer to the dataset in the file.
+ *
+ * File dataset should look like this:
+ * 0 1 2 0 3 4 0 5 6 0 7 8
+ * 0 9 10 0 11 12 0 13 14 0 15 16
+ * 0 17 18 0 19 20 0 21 22 0 23 24
+ * 0 0 0 0 0 0 0 0 0 0 0 0
+ * 0 25 26 0 27 28 0 29 30 0 31 32
+ * 0 33 34 0 35 36 0 37 38 0 39 40
+ * 0 41 42 0 43 44 0 45 46 0 47 48
+ * 0 0 0 0 0 0 0 0 0 0 0 0
+ */
+ ret = H5Dwrite(dataset, H5T_NATIVE_INT, mid1, fid, H5P_DEFAULT, vector);
+
+ /*
+ * Reset the selection for the file dataspace fid.
+ */
+ ret = H5Sselect_none(fid);
+
+ /*
+ * Create dataspace for the second dataset.
+ */
+ mid2 = H5Screate_simple(MSPACE2_RANK, dim2, NULL);
+
+ /*
+ * Select sequence of NPOINTS points in the file dataspace.
+ */
+ coord[0][0] = 0; coord[0][1] = 0;
+ coord[1][0] = 3; coord[1][1] = 3;
+ coord[2][0] = 3; coord[2][1] = 5;
+ coord[3][0] = 5; coord[3][1] = 6;
+
+ ret = H5Sselect_elements(fid, H5S_SELECT_SET, NPOINTS,
+ (const hssize_t **)coord);
+
+ /*
+ * Write new selection of points to the dataset.
+ */
+ ret = H5Dwrite(dataset, H5T_NATIVE_INT, mid2, fid, H5P_DEFAULT, values);
+
+ /*
+ * File dataset should look like this:
+ * 53 1 2 0 3 4 0 5 6 0 7 8
+ * 0 9 10 0 11 12 0 13 14 0 15 16
+ * 0 17 18 0 19 20 0 21 22 0 23 24
+ * 0 0 0 59 0 61 0 0 0 0 0 0
+ * 0 25 26 0 27 28 0 29 30 0 31 32
+ * 0 33 34 0 35 36 67 37 38 0 39 40
+ * 0 41 42 0 43 44 0 45 46 0 47 48
+ * 0 0 0 0 0 0 0 0 0 0 0 0
+ *
+ */
-/*
- * Close memory file and memory dataspaces.
- */
-ret = H5Sclose(mid1);
-ret = H5Sclose(mid2);
-ret = H5Sclose(fid);
+ /*
+ * Close memory file and memory dataspaces.
+ */
+ ret = H5Sclose(mid1);
+ ret = H5Sclose(mid2);
+ ret = H5Sclose(fid);
-/*
- * Close dataset.
- */
-ret = H5Dclose(dataset);
-
-/*
- * Close the file.
- */
-ret = H5Fclose(file);
-/*
- * Open the file.
- */
-file = H5Fopen(FILE, H5F_ACC_RDONLY, H5P_DEFAULT);
-
-/*
- * Open the dataset.
- */
-dataset = dataset = H5Dopen(file,"Matrix in file");
-
-/*
- * Read data back to the buffer matrix.
- */
-ret = H5Dread(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL,
+ /*
+ * Close dataset.
+ */
+ ret = H5Dclose(dataset);
+
+ /*
+ * Close the file.
+ */
+ ret = H5Fclose(file);
+
+ /*
+ * Open the file.
+ */
+ file = H5Fopen(FILE, H5F_ACC_RDONLY, H5P_DEFAULT);
+
+ /*
+ * Open the dataset.
+ */
+ dataset = dataset = H5Dopen(file,"Matrix in file");
+
+ /*
+ * Read data back to the buffer matrix.
+ */
+ ret = H5Dread(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL,
H5P_DEFAULT, matrix);
-/*
- * Display the result.
- */
-for (i=0; i < MSPACE_DIM1; i++) {
- for(j=0; j < MSPACE_DIM2; j++) printf("%3d ", matrix[i][j]);
- printf("\n");
-}
+ /*
+ * Display the result.
+ */
+ for (i=0; i < MSPACE_DIM1; i++) {
+ for(j=0; j < MSPACE_DIM2; j++) printf("%3d ", matrix[i][j]);
+ printf("\n");
+ }
-return 0;
+ return 0;
}