@@ -93,6 +93,7 @@ static char* HDF5_GetVersion();
9393static void HDF5_Fsync (void * , IOR_param_t * );
9494static IOR_offset_t HDF5_GetFileSize (IOR_param_t * , MPI_Comm , char * );
9595static int HDF5_Access (const char * , int , IOR_param_t * );
96+ static option_help * HDF5_get_options ();
9697
9798/************************** D E C L A R A T I O N S ***************************/
9899
@@ -111,6 +112,7 @@ ior_aiori_t hdf5_aiori = {
111112 .rmdir = aiori_posix_rmdir ,
112113 .access = HDF5_Access ,
113114 .stat = aiori_posix_stat ,
115+ .get_options = HDF5_get_options
114116};
115117
116118static hid_t xferPropList ; /* xfer property list */
@@ -120,8 +122,27 @@ hid_t fileDataSpace; /* file data space id */
120122hid_t memDataSpace ; /* memory data space id */
121123int newlyOpenedFile ; /* newly opened file */
122124
125+ /************************** O P T I O N S *****************************/
126+ struct HDF5_options {
127+ int collective_md ;
128+ };
123129/***************************** F U N C T I O N S ******************************/
124130
131+
132+ static struct HDF5_options o = {
133+ .collective_md = 0
134+ };
135+
136+ static option_help options [] = {
137+ {0 , "hdf5.collectiveMetadata" , "Use collectiveMetadata (available since HDF5-1.10.0)" , OPTION_FLAG , 'd' , & o .collective_md },
138+ LAST_OPTION
139+ };
140+
141+ static option_help * HDF5_get_options (){
142+ return options ;
143+ }
144+
145+
125146/*
126147 * Create and open a file through the HDF5 interface.
127148 */
@@ -229,7 +250,7 @@ static void *HDF5_Open(char *testFileName, IOR_param_t * param)
229250 "cannot set alignment" );
230251
231252#ifdef HAVE_H5PSET_ALL_COLL_METADATA_OPS
232- if (param -> collective_md ) {
253+ if (o . collective_md ) {
233254 /* more scalable metadata */
234255
235256 HDF5_CHECK (H5Pset_all_coll_metadata_ops (accessPropList , 1 ),
0 commit comments