@@ -290,6 +290,9 @@ ncmpi_create(MPI_Comm comm,
290290#ifdef ENABLE_BURST_BUFFER
291291 int enable_bb_driver = 0 ;
292292#endif
293+ #ifdef ENABLE_CHUNKING
294+ int enable_chk_driver = 0 ;
295+ #endif
293296
294297 MPI_Comm_rank (comm , & rank );
295298 MPI_Comm_size (comm , & nprocs );
@@ -382,6 +385,18 @@ ncmpi_create(MPI_Comm comm,
382385 enable_bb_driver = 1 ;
383386 }
384387#endif
388+ #ifdef ENABLE_CHUNKING
389+ if (combined_info != MPI_INFO_NULL ) {
390+ char value [MPI_MAX_INFO_VAL ];
391+ int flag ;
392+
393+ /* check if nc_chunking is enabled */
394+ MPI_Info_get (combined_info , "nc_chunking" , MPI_MAX_INFO_VAL - 1 ,
395+ value , & flag );
396+ if (flag && strcasecmp (value , "enable" ) == 0 )
397+ enable_chk_driver = 1 ;
398+ }
399+ #endif
385400
386401 /* Use environment variable and cmode to tell the file format
387402 * which is later used to select the right driver.
@@ -462,6 +477,11 @@ ncmpi_create(MPI_Comm comm,
462477 if (enable_bb_driver )
463478 driver = ncbbio_inq_driver ();
464479 else
480+ #endif
481+ #ifdef ENABLE_CHUNKING
482+ if (enable_chk_driver )
483+ driver = ncchkio_inq_driver ();
484+ else
465485#endif
466486 /* default is the driver built on top of MPI-IO */
467487 driver = ncmpio_inq_driver ();
@@ -558,6 +578,9 @@ ncmpi_open(MPI_Comm comm,
558578#ifdef ENABLE_BURST_BUFFER
559579 int enable_bb_driver = 0 ;
560580#endif
581+ #ifdef ENABLE_CHUNKING
582+ int enable_chk_driver = 0 ;
583+ #endif
561584
562585 MPI_Comm_rank (comm , & rank );
563586 MPI_Comm_size (comm , & nprocs );
@@ -688,6 +711,18 @@ ncmpi_open(MPI_Comm comm,
688711 enable_bb_driver = 1 ;
689712 }
690713#endif
714+ #ifdef ENABLE_CHUNKING
715+ if (combined_info != MPI_INFO_NULL ) {
716+ char value [MPI_MAX_INFO_VAL ];
717+ int flag ;
718+
719+ /* check if nc_chunking is enabled */
720+ MPI_Info_get (combined_info , "nc_chunking" , MPI_MAX_INFO_VAL - 1 ,
721+ value , & flag );
722+ if (flag && strcasecmp (value , "enable" ) == 0 )
723+ enable_chk_driver = 1 ;
724+ }
725+ #endif
691726
692727#ifdef ENABLE_NETCDF4
693728 if (format == NC_FORMAT_NETCDF4_CLASSIC || format == NC_FORMAT_NETCDF4 ) {
@@ -716,6 +751,11 @@ ncmpi_open(MPI_Comm comm,
716751 if (enable_bb_driver )
717752 driver = ncbbio_inq_driver ();
718753 else
754+ #endif
755+ #ifdef ENABLE_CHUNKING
756+ if (enable_chk_driver )
757+ driver = ncchkio_inq_driver ();
758+ else
719759#endif
720760 {
721761 /* ncmpio driver */
0 commit comments