I can see error codes EISDIR and EEXIST are checked in ad_ufs_open.c and the corresponding MPI_ERR_BAD_FILE and MPI_ERR_FILE_EXISTS are generated. But this update does not appear on other file systems, such as Lustre and GPFS. PnetCDF needs an MPI-IO that can return the MPI_ERR_FILE_EXISTS class when the MPI_MODE_EXCL mode is set and the file exist. This class will correspond to NC_EEXIST in PnetCDF (when NC_NOCLOBBER is set in ncmpi_create and file exists). ad_ufs_open.c 94 else if(errno == EISDIR) { 95 *error_code = MPIO_Err_create_code(MPI_SUCCESS, 96 MPIR_ERR_RECOVERABLE, myname, 97 __LINE__, MPI_ERR_BAD_FILE, 98 "**filename", 0); 99 } 100 else if(errno == EEXIST) { 101 *error_code = MPIO_Err_create_code(MPI_SUCCESS, 102 MPIR_ERR_RECOVERABLE, myname, 103 __LINE__, MPI_ERR_FILE_EXISTS, 104 "**fileexist", 0); 105 106 } Wei-keng