summaryrefslogtreecommitdiffstats
path: root/examples/h5_extend_write.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/h5_extend_write.c')
-rw-r--r--examples/h5_extend_write.c304
1 files changed, 154 insertions, 150 deletions
diff --git a/examples/h5_extend_write.c b/examples/h5_extend_write.c
index 6b20a1e..af061bc 100644
--- a/examples/h5_extend_write.c
+++ b/examples/h5_extend_write.c
@@ -13,155 +13,159 @@
#define NX 10
#define NY 5
-main ()
+int
+main (void)
{
- hid_t file; /* handles */
- hid_t datatype, dataspace, dataset;
- hid_t filespace;
- hid_t cparms;
- hsize_t dims[2] = { 3, 3}; /* dataset dimensions
- at the creation time */
- hsize_t dims1[2] = { 3, 3}; /* data1 dimensions */
- hsize_t dims2[2] = { 7, 1}; /* data2 dimensions */
- hsize_t dims3[2] = { 2, 2}; /* data3 dimensions */
-
- hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED};
- hsize_t chunk_dims[2] ={2, 5};
- hsize_t size[2];
- hssize_t offset[2];
-
- herr_t status;
-
- int data1[3][3] = { 1, 1, 1, /* data to write */
- 1, 1, 1,
- 1, 1, 1 };
-
- int data2[7] = { 2, 2, 2, 2, 2, 2, 2};
-
- int data3[2][2] = { 3, 3,
- 3, 3};
-
-/*
- * Create the data space with ulimited dimensions.
- */
-dataspace = H5Screate_simple(RANK, dims, maxdims);
-
-/*
- * Create a new file. If file exists its contents will be overwritten.
- */
-file = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
-
-/*
- * Modify dataset creation properties, i.e. enable chunking.
- */
-cparms = H5Pcreate (H5P_DATASET_CREATE);
-status = H5Pset_chunk( cparms, RANK, chunk_dims);
-
-/*
- * Create a new dataset within the file using cparms
- * creation properties.
- */
-dataset = H5Dcreate(file, DATASETNAME, H5T_NATIVE_INT, dataspace,
- cparms);
-
-/*
- * Extend the dataset. This call assures that dataset is at least 3 x 3.
- */
-size[0] = 3;
-size[1] = 3;
-status = H5Dextend (dataset, size);
-
-/*
- * Select a hyperslab.
- */
-filespace = H5Dget_space (dataset);
-offset[0] = 0;
-offset[1] = 0;
-status = H5Sselect_hyperslab(filespace, H5S_SELECT_SET, offset, NULL,
- dims1, NULL);
-
-/*
- * Write the data to the hyperslab.
- */
-status = H5Dwrite(dataset, H5T_NATIVE_INT, dataspace, filespace,
- H5P_DEFAULT, data1);
-
-/*
- * Extend the dataset. Dataset becomes 10 x 3.
- */
-dims[0] = dims1[0] + dims2[0];
-size[0] = dims[0];
-size[1] = dims[1];
-status = H5Dextend (dataset, size);
-
-/*
- * Select a hyperslab.
- */
-filespace = H5Dget_space (dataset);
-offset[0] = 3;
-offset[1] = 0;
-status = H5Sselect_hyperslab(filespace, H5S_SELECT_SET, offset, NULL,
- dims2, NULL);
-
-/*
- * Define memory space
- */
-dataspace = H5Screate_simple(RANK, dims2, NULL);
-
-/*
- * Write the data to the hyperslab.
- */
-status = H5Dwrite(dataset, H5T_NATIVE_INT, dataspace, filespace,
- H5P_DEFAULT, data2);
-
-/*
- * Extend the dataset. Dataset becomes 10 x 5.
- */
-dims[1] = dims1[1] + dims3[1];
-size[0] = dims[0];
-size[1] = dims[1];
-status = H5Dextend (dataset, size);
-
-/*
- * Select a hyperslab
- */
-filespace = H5Dget_space (dataset);
-offset[0] = 0;
-offset[1] = 3;
-status = H5Sselect_hyperslab(filespace, H5S_SELECT_SET, offset, NULL,
- dims3, NULL);
-
-/*
- * Define memory space.
- */
-dataspace = H5Screate_simple(RANK, dims3, NULL);
-
-/*
- * Write the data to the hyperslab.
- */
-status = H5Dwrite(dataset, H5T_NATIVE_INT, dataspace, filespace,
- H5P_DEFAULT, data3);
-
-/*
- * Resulting dataset
- *
- 3 3 3 2 2
- 3 3 3 2 2
- 3 3 3 0 0
- 2 0 0 0 0
- 2 0 0 0 0
- 2 0 0 0 0
- 2 0 0 0 0
- 2 0 0 0 0
- 2 0 0 0 0
- 2 0 0 0 0
- */
-/*
- * Close/release resources.
- */
-H5Dclose(dataset);
-H5Sclose(dataspace);
-H5Sclose(filespace);
-H5Fclose(file);
-
+ hid_t file; /* handles */
+ hid_t dataspace, dataset;
+ hid_t filespace;
+ hid_t cparms;
+ hsize_t dims[2] = { 3, 3}; /*
+ * dataset dimensions
+ * at the creation time
+ */
+ hsize_t dims1[2] = { 3, 3}; /* data1 dimensions */
+ hsize_t dims2[2] = { 7, 1}; /* data2 dimensions */
+ hsize_t dims3[2] = { 2, 2}; /* data3 dimensions */
+
+ hsize_t maxdims[2] = {H5S_UNLIMITED, H5S_UNLIMITED};
+ hsize_t chunk_dims[2] ={2, 5};
+ hsize_t size[2];
+ hssize_t offset[2];
+
+ herr_t status;
+
+ int data1[3][3] = { {1, 1, 1}, /* data to write */
+ {1, 1, 1},
+ {1, 1, 1} };
+
+ int data2[7] = { 2, 2, 2, 2, 2, 2, 2};
+
+ int data3[2][2] = { {3, 3},
+ {3, 3} };
+
+ /*
+ * Create the data space with ulimited dimensions.
+ */
+ dataspace = H5Screate_simple(RANK, dims, maxdims);
+
+ /*
+ * Create a new file. If file exists its contents will be overwritten.
+ */
+ file = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ /*
+ * Modify dataset creation properties, i.e. enable chunking.
+ */
+ cparms = H5Pcreate (H5P_DATASET_CREATE);
+ status = H5Pset_chunk( cparms, RANK, chunk_dims);
+
+ /*
+ * Create a new dataset within the file using cparms
+ * creation properties.
+ */
+ dataset = H5Dcreate(file, DATASETNAME, H5T_NATIVE_INT, dataspace,
+ cparms);
+
+ /*
+ * Extend the dataset. This call assures that dataset is at least 3 x 3.
+ */
+ size[0] = 3;
+ size[1] = 3;
+ status = H5Dextend (dataset, size);
+
+ /*
+ * Select a hyperslab.
+ */
+ filespace = H5Dget_space (dataset);
+ offset[0] = 0;
+ offset[1] = 0;
+ status = H5Sselect_hyperslab(filespace, H5S_SELECT_SET, offset, NULL,
+ dims1, NULL);
+
+ /*
+ * Write the data to the hyperslab.
+ */
+ status = H5Dwrite(dataset, H5T_NATIVE_INT, dataspace, filespace,
+ H5P_DEFAULT, data1);
+
+ /*
+ * Extend the dataset. Dataset becomes 10 x 3.
+ */
+ dims[0] = dims1[0] + dims2[0];
+ size[0] = dims[0];
+ size[1] = dims[1];
+ status = H5Dextend (dataset, size);
+
+ /*
+ * Select a hyperslab.
+ */
+ filespace = H5Dget_space (dataset);
+ offset[0] = 3;
+ offset[1] = 0;
+ status = H5Sselect_hyperslab(filespace, H5S_SELECT_SET, offset, NULL,
+ dims2, NULL);
+
+ /*
+ * Define memory space
+ */
+ dataspace = H5Screate_simple(RANK, dims2, NULL);
+
+ /*
+ * Write the data to the hyperslab.
+ */
+ status = H5Dwrite(dataset, H5T_NATIVE_INT, dataspace, filespace,
+ H5P_DEFAULT, data2);
+
+ /*
+ * Extend the dataset. Dataset becomes 10 x 5.
+ */
+ dims[1] = dims1[1] + dims3[1];
+ size[0] = dims[0];
+ size[1] = dims[1];
+ status = H5Dextend (dataset, size);
+
+ /*
+ * Select a hyperslab
+ */
+ filespace = H5Dget_space (dataset);
+ offset[0] = 0;
+ offset[1] = 3;
+ status = H5Sselect_hyperslab(filespace, H5S_SELECT_SET, offset, NULL,
+ dims3, NULL);
+
+ /*
+ * Define memory space.
+ */
+ dataspace = H5Screate_simple(RANK, dims3, NULL);
+
+ /*
+ * Write the data to the hyperslab.
+ */
+ status = H5Dwrite(dataset, H5T_NATIVE_INT, dataspace, filespace,
+ H5P_DEFAULT, data3);
+
+ /*
+ * Resulting dataset
+ *
+ * 3 3 3 2 2
+ * 3 3 3 2 2
+ * 3 3 3 0 0
+ * 2 0 0 0 0
+ * 2 0 0 0 0
+ * 2 0 0 0 0
+ * 2 0 0 0 0
+ * 2 0 0 0 0
+ * 2 0 0 0 0
+ * 2 0 0 0 0
+ */
+ /*
+ * Close/release resources.
+ */
+ H5Dclose(dataset);
+ H5Sclose(dataspace);
+ H5Sclose(filespace);
+ H5Fclose(file);
+
+ return 0;
}