diff --git a/src/databases/ALS/avtALSFileFormat.C b/src/databases/ALS/avtALSFileFormat.C index cbf20af2e75..d815a66d223 100644 --- a/src/databases/ALS/avtALSFileFormat.C +++ b/src/databases/ALS/avtALSFileFormat.C @@ -30,25 +30,18 @@ using std::string; /// iterate over groups. -herr_t group_info(hid_t loc_id, const char *name, void *opdata) +static herr_t +group_info(hid_t loc_id, const char *name, const H5L_info_t *, void *opdata) { avtALSFileFormat* format = (avtALSFileFormat*)opdata; - H5G_stat_t statbuf; - - /* - * Get type of the object and display its name and type. - * The name of the object is passed to this function by - * the Library. Some magic :-) - */ - H5Gget_objinfo(loc_id, name, 0, &statbuf); - switch (statbuf.type) { - case H5G_GROUP: - format->SetGroupName(name); - break; - default: - printf(" Unable to identify an object "); - } + H5O_info_t objInfo; + if (H5Oget_info_by_name(loc_id, name, &objInfo, H5P_DEFAULT) < 0) + return -1; + + if (objInfo.type == H5O_TYPE_GROUP) + format->SetGroupName(name); + return 0; } @@ -163,12 +156,12 @@ avtALSFileFormat::InitializeTomoHeader(hid_t file) { m_groupName = fraction_data ? fraction_data_str : four_d_data_str; - hid_t dataset_id = H5Dopen(file, m_groupName.c_str(), H5P_DEFAULT); + hid_t dataset_id = H5Dopen2(file, m_groupName.c_str(), H5P_DEFAULT); hsize_t dims[4] = {0,0,0,0}; hid_t filespace = H5Dget_space(dataset_id); - hid_t rank = H5Sget_simple_extent_ndims(filespace); - hid_t status_n = H5Sget_simple_extent_dims(filespace, dims, NULL); + int rank = H5Sget_simple_extent_ndims(filespace); + int status_n = H5Sget_simple_extent_dims(filespace, dims, NULL); std::cout << dims[0] << " " << dims[1] << " " << dims[2] << " " << dims[3] << std::endl; @@ -278,8 +271,16 @@ avtALSFileFormat::InitializeHeader() { file = H5Fopen (m_filename.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT); /// main group seems to be based on filename.. + hid_t rootGroup = H5Gopen2(file, "/", H5P_DEFAULT); + if (rootGroup < 0) + { + status = H5Fclose(file); + return false; + } - H5Giterate(file, "/", NULL, group_info, this); + hsize_t idx = 0; + H5Literate(rootGroup, H5_INDEX_NAME, H5_ITER_INC, &idx, group_info, this); + H5Gclose(rootGroup); /// if group is not set.. if(m_groupName.length() == 0) { @@ -307,10 +308,10 @@ avtALSFileFormat::GetTomoDataSet(hid_t file) { std::cout << m_groupName << " " << m_width << " " << m_height << " " << m_slices << std::endl; hsize_t dims_out[4]; /* dataset dimensions */ - hid_t dataset_id = H5Dopen(file, m_groupName.c_str(), H5P_DEFAULT); + hid_t dataset_id = H5Dopen2(file, m_groupName.c_str(), H5P_DEFAULT); hid_t dataspace = H5Dget_space(dataset_id); - hid_t rank = H5Sget_simple_extent_ndims(dataspace); - hid_t status_n = H5Sget_simple_extent_dims(dataspace, dims_out, NULL); + int rank = H5Sget_simple_extent_ndims(dataspace); + int status_n = H5Sget_simple_extent_dims(dataspace, dims_out, NULL); (void) rank; (void) status_n; @@ -415,14 +416,14 @@ avtALSFileFormat::GetStandardDataSet(hid_t file) { vtkFloatArray* array = vtkFloatArray::New(); /// default STANDARD - hid_t group_id = H5Gopen(file, m_groupName.c_str(), H5P_DEFAULT); + hid_t group_id = H5Gopen2(file, m_groupName.c_str(), H5P_DEFAULT); if(PAR_Size() == 1) { array->SetNumberOfTuples(m_width * m_height * m_slices); for(size_t i = 0; i < m_datasetNames.size(); ++i) { - hid_t dataset_id = H5Dopen(group_id, m_datasetNames[i].c_str(), H5P_DEFAULT); + hid_t dataset_id = H5Dopen2(group_id, m_datasetNames[i].c_str(), H5P_DEFAULT); ///dim1 should be 1, dim2 and dim3 is the size of the dataset H5Dread(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT,array->GetVoidPointer(i*m_width*m_height)); @@ -444,7 +445,7 @@ avtALSFileFormat::GetStandardDataSet(hid_t file) { for(size_t i = m_start, j = 0; i < m_end; ++i, ++j) { - hid_t dataset_id = H5Dopen(group_id, m_datasetNames[i].c_str(), H5P_DEFAULT); + hid_t dataset_id = H5Dopen2(group_id, m_datasetNames[i].c_str(), H5P_DEFAULT); ///dim1 should be 1, dim2 and dim3 is the size of the dataset H5Dread(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT,array->GetVoidPointer(j*m_width*m_height)); diff --git a/src/databases/BATL/avtBATLFileFormat.C b/src/databases/BATL/avtBATLFileFormat.C index d51a48b3bc4..dd1804124aa 100644 --- a/src/databases/BATL/avtBATLFileFormat.C +++ b/src/databases/BATL/avtBATLFileFormat.C @@ -112,7 +112,7 @@ avtBATLFileFormat::InitializeHDF5(void) debug5 << "Initializing HDF5 Library" << endl; H5open(); errStack = H5Ecreate_stack(); - H5Eset_auto(errStack,NULL, NULL); + H5Eset_auto2(errStack, NULL, NULL); H5Eclose_stack(errStack); } @@ -789,7 +789,7 @@ avtBATLFileFormat::GetMesh(int domain, const char *meshname) { debug5 << "GetMesh Marker 3" << endl; - hid_t varId = H5Dopen(fileId, "NodesX", H5P_DEFAULT); + hid_t varId = H5Dopen2(fileId, "NodesX", H5P_DEFAULT); if (varId < 0) { EXCEPTION1(InvalidVariableException, "NodesX"); @@ -851,7 +851,7 @@ avtBATLFileFormat::GetMesh(int domain, const char *meshname) double *y_data = NULL; if (dimension > 1) { - varId = H5Dopen(fileId, "NodesY", H5P_DEFAULT); + varId = H5Dopen2(fileId, "NodesY", H5P_DEFAULT); if (varId < 0) { EXCEPTION1(InvalidVariableException, "NodesY"); @@ -893,7 +893,7 @@ avtBATLFileFormat::GetMesh(int domain, const char *meshname) double *z_data = NULL; if (dimension == 3) { - varId = H5Dopen(fileId, "NodesZ", H5P_DEFAULT); + varId = H5Dopen2(fileId, "NodesZ", H5P_DEFAULT); if (varId < 0) { EXCEPTION1(InvalidVariableException, "NodesZ"); @@ -987,7 +987,7 @@ avtBATLFileFormat::GetMesh(int domain, const char *meshname) string varname = string(meshname).substr(7); - hid_t varId = H5Dopen(fileId, varname.c_str(),H5P_DEFAULT); + hid_t varId = H5Dopen2(fileId, varname.c_str(),H5P_DEFAULT); H5Dread(varId, H5T_NATIVE_FLOAT, H5S_ALL,H5S_ALL,H5P_DEFAULT, vals); H5Dclose(varId); @@ -1385,7 +1385,7 @@ avtBATLFileFormat::GetVar(int visitDomain, const char *vname) // It's a grid variable // - hid_t varId = H5Dopen(fileId, vn_substr.c_str(), H5P_DEFAULT); + hid_t varId = H5Dopen2(fileId, vn_substr.c_str(), H5P_DEFAULT); if (varId < 0) { EXCEPTION1(InvalidVariableException, vn_substr.c_str()); @@ -1685,7 +1685,7 @@ void avtBATLFileFormat::ReadProcessorNumbers() // // Read the bounding box description for the blocks // - hid_t procnumId = H5Dopen(fileId, "Processor Number", H5P_DEFAULT); + hid_t procnumId = H5Dopen2(fileId, "Processor Number", H5P_DEFAULT); if (procnumId < 0) { EXCEPTION1(InvalidFilesException, filename.c_str()); @@ -1750,7 +1750,7 @@ void avtBATLFileFormat::ReadMortonOrdering() // // Read the bounding box description for the blocks // - hid_t mortonidxId = H5Dopen(fileId, "iMortonNode_A", H5P_DEFAULT); + hid_t mortonidxId = H5Dopen2(fileId, "iMortonNode_A", H5P_DEFAULT); if (mortonidxId < 0) { EXCEPTION1(InvalidFilesException, filename.c_str()); @@ -1814,7 +1814,7 @@ void avtBATLFileFormat::ReadCoordinates() // // Read the coordinates description for the blocks // - hid_t coordinatesId = H5Dopen(fileId, "coordinates",H5P_DEFAULT); + hid_t coordinatesId = H5Dopen2(fileId, "coordinates",H5P_DEFAULT); if (coordinatesId < 0) { EXCEPTION1(InvalidFilesException, filename.c_str()); @@ -1891,7 +1891,7 @@ void avtBATLFileFormat::ReadBlockExtents() // // Read the bounding box description for the blocks // - hid_t bboxId = H5Dopen(fileId, "bounding box",H5P_DEFAULT); + hid_t bboxId = H5Dopen2(fileId, "bounding box",H5P_DEFAULT); if (bboxId < 0) { EXCEPTION1(InvalidFilesException, filename.c_str()); @@ -1954,12 +1954,12 @@ void avtBATLFileFormat::ReadBlockExtents() // **************************************************************************** void avtBATLFileFormat::ReadRefinementLevels() { - H5Eset_auto(H5E_DEFAULT, NULL, NULL); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); debug5 << "ReadRefinementLevels Marker 1" << endl; // // Read the bounding box description for the blocks // - hid_t refinementId = H5Dopen(fileId, "refine level",H5P_DEFAULT); + hid_t refinementId = H5Dopen2(fileId, "refine level",H5P_DEFAULT); if (refinementId < 0) { for (int b=0; b -//#define H5_USE_16_API 1 #include #include @@ -69,7 +68,7 @@ avtCarpetHDF5FileFormat::avtCarpetHDF5FileFormat(const char *filename) : avtMTMDFileFormat(filename), data_file(0), xcoord_file(0), ycoord_file(0), zcoord_file(0) { // Turn off error message printing. - H5Eset_auto2(0,0,0); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); // INITIALIZE DATA MEMBERS open_all_files(filename); @@ -859,7 +858,7 @@ avtCarpetHDF5FileFormat::multi_file::multi_file(const char* fname) : refcount(1) hid_t H5f = H5Fopen(haveIndex(fname) ? indexFilename(fname).c_str() : fname, H5F_ACC_RDONLY, H5P_DEFAULT); // access global parameters and attributes group to get the number of io-processes - hid_t group = H5Gopen (H5f, "Parameters and Global Attributes", H5P_DEFAULT); + hid_t group = H5Gopen2(H5f, "Parameters and Global Attributes", H5P_DEFAULT); hid_t attribute = H5Aopen(group, "nioprocs", H5P_DEFAULT); int n_io_procs = 0; @@ -1003,13 +1002,12 @@ private: void *client_data; };*/ -static herr_t H5iter(hid_t group_id, const char *member_name, void *operator_data) -{ - vector* dsetnames = (vector*) operator_data; - char rootname[1000]; - char fullname[1000]; - H5G_stat_t object_info; - int dim = avtCarpetHDF5FileFormat::dim; + static herr_t H5iter(hid_t group_id, const char *member_name, const H5L_info_t *, void *operator_data) + { + vector* dsetnames = (vector*) operator_data; + char rootname[1000]; + char fullname[1000]; + int dim = avtCarpetHDF5FileFormat::dim; // build the full name for the current object to process H5Iget_name(group_id, rootname, 256); @@ -1017,25 +1015,34 @@ static herr_t H5iter(hid_t group_id, const char *member_name, void *operator_dat // the root name is "/", so does not need an extra "/" sprintf(fullname, "%s%s%s", rootname, rootname[strlen(rootname)-1]=='/' ? "" : "/",member_name); - // we are interested in datasets only - skip anything else - H5Gget_objinfo (group_id, member_name, 1, &object_info); - if (object_info.type != H5G_DATASET) - { - if (object_info.type == H5G_GROUP) - { - // iterate over all datasets in this group (if it isn't file metadata) - if (strcmp (member_name, "Parameters and Global Attributes")) - { - H5Giterate (group_id, member_name, NULL, H5iter, operator_data); - } - } + // we are interested in datasets only - skip anything else + H5O_info_t object_info; + if (H5Oget_info_by_name(group_id, member_name, &object_info, H5P_DEFAULT) < 0) + return 0; + + if (object_info.type != H5O_TYPE_DATASET) + { + if (object_info.type == H5O_TYPE_GROUP) + { + // iterate over all datasets in this group (if it isn't file metadata) + if (strcmp (member_name, "Parameters and Global Attributes")) + { + hid_t subgroup = H5Gopen2(group_id, member_name, H5P_DEFAULT); + if (subgroup >= 0) + { + hsize_t idx = 0; + H5Literate(subgroup, H5_INDEX_NAME, H5_ITER_INC, &idx, H5iter, operator_data); + H5Gclose(subgroup); + } + } + } return 0; } - else - { - hid_t dataset = H5Dopen(group_id, member_name, H5P_DEFAULT); + else + { + hid_t dataset = H5Dopen2(group_id, member_name, H5P_DEFAULT); hid_t dataspace = H5Dget_space(dataset); hid_t attrib; @@ -1222,12 +1229,28 @@ void avtCarpetHDF5FileFormat::file_t::openfile(const char* fname) idx_mtime = 0; } //index_file.iterateElems("/", NULL, H5iter, &dsetnames); - H5Giterate (index_file, "/", NULL, H5iter, &dsetnames); + { + hid_t root = H5Gopen2(index_file, "/", H5P_DEFAULT); + if (root >= 0) + { + hsize_t idx = 0; + H5Literate(root, H5_INDEX_NAME, H5_ITER_INC, &idx, H5iter, &dsetnames); + H5Gclose(root); + } + } H5Fclose(index_file); } else { //file->iterateElems("/", NULL, H5iter, &dsetnames); - H5Giterate (file, "/", NULL, H5iter, &dsetnames); + { + hid_t root = H5Gopen2(file, "/", H5P_DEFAULT); + if (root >= 0) + { + hsize_t idx = 0; + H5Literate(root, H5_INDEX_NAME, H5_ITER_INC, &idx, H5iter, &dsetnames); + H5Gclose(root); + } + } } // try to free memory allocated during file traversal @@ -1271,7 +1294,7 @@ void avtCarpetHDF5FileFormat::file_t::set_varnames(const vector& v, cons void avtCarpetHDF5FileFormat::file_t::get_data(const dataset_entry& dset, float** data, const bool removeGhosts) { - hid_t dataset = H5Dopen(file, dset.name().c_str(), H5P_DEFAULT); + hid_t dataset = H5Dopen2(file, dset.name().c_str(), H5P_DEFAULT); hid_t dataspace = H5Dget_space(dataset); //hid_t attrib; @@ -1497,5 +1520,3 @@ avtCarpetHDF5FileFormat::GetAuxiliaryData(const char *var, int timestep, int dom - - diff --git a/src/databases/Chombo/avtChomboFileFormat.C b/src/databases/Chombo/avtChomboFileFormat.C index b818c138635..81ef9289508 100644 --- a/src/databases/Chombo/avtChomboFileFormat.C +++ b/src/databases/Chombo/avtChomboFileFormat.C @@ -56,7 +56,6 @@ // versions of HDF5 before 1.8 and ensures correct compilation with // version 1.8 and thereafter. When, and if, the HDF5 code in this file // is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include #include using std::string; @@ -396,6 +395,12 @@ add_var(hid_t loc_id, const char *varname, void *opData) return 0; } +static herr_t +add_var_literate(hid_t loc_id, const char *varname, const H5L_info_t *, void *opData) +{ + return add_var(loc_id, varname, opData); +} + // // Purpose: Open HDF5 file with close degree semi // @@ -428,10 +433,10 @@ avtChomboFileFormat::InitializeReader(void) // Get current automatic stack traversal function to re-enable it later and // disable HDF5's automatic error printing // - H5E_auto_t h5e_autofunc; + H5E_auto2_t h5e_autofunc; void* h5e_clientdata; - H5Eget_auto(&h5e_autofunc, &h5e_clientdata); - H5Eset_auto(0, 0); + H5Eget_auto2(H5E_DEFAULT, &h5e_autofunc, &h5e_clientdata); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); // // Open file @@ -448,7 +453,7 @@ avtChomboFileFormat::InitializeReader(void) // determine number of dimensions, which we need to know for reading origin // and aspect ratio information. // - hid_t global = H5Gopen(file_handle, "Chombo_global"); + hid_t global = H5Gopen2(file_handle, "Chombo_global", H5P_DEFAULT); if (global < 0) { H5Fclose(file_handle); @@ -475,7 +480,7 @@ avtChomboFileFormat::InitializeReader(void) // // Most of the global info is stored in the "/" group. // - hid_t slash = H5Gopen(file_handle, "/"); + hid_t slash = H5Gopen2(file_handle, "/", H5P_DEFAULT); if (slash < 0) { H5Fclose(file_handle); @@ -765,7 +770,7 @@ avtChomboFileFormat::InitializeReader(void) // // Look for epxressions // - hid_t expressionsGroup = H5Gopen(file_handle, "/Expressions"); + hid_t expressionsGroup = H5Gopen2(file_handle, "/Expressions", H5P_DEFAULT); if (expressionsGroup > 0) { for (int i=0; i= 0) { hid_t ghost_id = H5Aopen_name(data_atts, "outputGhost"); @@ -1326,7 +1331,17 @@ avtChomboFileFormat::InitializeReader(void) // Look for particles // std::list varList; - if (H5Giterate(file_handle, "/particles", 0, add_var, &varList) == 0) + herr_t particleIterStatus = -1; + hid_t particlesGroup = H5Gopen2(file_handle, "/particles", H5P_DEFAULT); + if (particlesGroup >= 0) + { + hsize_t idx = 0; + particleIterStatus = H5Literate(particlesGroup, H5_INDEX_NAME, H5_ITER_INC, &idx, + add_var_literate, &varList); + H5Gclose(particlesGroup); + } + + if (particleIterStatus >= 0) { bool hasXPos = false; bool hasYPos = false; @@ -1410,7 +1425,7 @@ avtChomboFileFormat::InitializeReader(void) hid_t mapping_file_handle = OpenHDF5File(mappingFilename.c_str()); if (mapping_file_handle > 0) { - hid_t slash = H5Gopen(mapping_file_handle, "/"); + hid_t slash = H5Gopen2(mapping_file_handle, "/", H5P_DEFAULT); if (slash > 0) { hid_t ncomponents_id = H5Aopen_name(slash, "num_components"); @@ -1465,7 +1480,7 @@ avtChomboFileFormat::InitializeReader(void) // // Re-enable HDF5's automatic diagnostic output // - H5Eset_auto(h5e_autofunc, h5e_clientdata); + H5Eset_auto2(H5E_DEFAULT, h5e_autofunc, h5e_clientdata); } @@ -2692,7 +2707,7 @@ avtChomboFileFormat::GetMesh(int patch, const char *meshname) double *yPos = 0; double *zPos = 0; - hid_t dataSet = H5Dopen(file_handle, datasetname); + hid_t dataSet = H5Dopen2(file_handle, datasetname, H5P_DEFAULT); if ( dataSet > 0) { hid_t dataSpace = H5Dget_space(dataSet); @@ -2721,7 +2736,7 @@ avtChomboFileFormat::GetMesh(int patch, const char *meshname) } datasetname[strlen(datasetname)-1] = 'y'; - dataSet = H5Dopen(file_handle, datasetname); + dataSet = H5Dopen2(file_handle, datasetname, H5P_DEFAULT); if ( dataSet > 0) { hid_t dataSpace = H5Dget_space(dataSet); @@ -2770,7 +2785,7 @@ avtChomboFileFormat::GetMesh(int patch, const char *meshname) if (dimension > 2) { datasetname[strlen(datasetname)-1] = 'z'; - dataSet = H5Dopen(file_handle, datasetname); + dataSet = H5Dopen2(file_handle, datasetname, H5P_DEFAULT); if ( dataSet > 0) { hid_t dataSpace = H5Dget_space(dataSet); @@ -2831,7 +2846,7 @@ avtChomboFileFormat::GetMesh(int patch, const char *meshname) particleVarnames.begin(), particleVarnames.end(), "polymer_id" ) != particleVarnames.end()) { - dataSet = H5Dopen(file_handle, "/particles/particle_nid"); + dataSet = H5Dopen2(file_handle, "/particles/particle_nid", H5P_DEFAULT); if ( dataSet > 0) { @@ -2852,7 +2867,7 @@ avtChomboFileFormat::GetMesh(int patch, const char *meshname) H5Dclose(dataSet); } - dataSet = H5Dopen(file_handle, "/particles/polymer_id"); + dataSet = H5Dopen2(file_handle, "/particles/polymer_id", H5P_DEFAULT); if ( dataSet > 0) { hid_t dataSpace = H5Dget_space(dataSet); @@ -3146,20 +3161,20 @@ avtChomboFileFormat::GetVar(int patch, const char *varname) "it is not even an HDF5 file."); } } - hid_t level_id = H5Gopen(file_handle, name); + hid_t level_id = H5Gopen2(file_handle, name, H5P_DEFAULT); if (level_id < 0) { EXCEPTION1(InvalidFilesException, "Chombo file does not contain group for requested level."); } - hid_t data = H5Dopen(level_id, "data:datatype=0"); + hid_t data = H5Dopen2(level_id, "data:datatype=0", H5P_DEFAULT); if (data < 0) { EXCEPTION1(InvalidFilesException, "Level does not contain data."); } hid_t space_id = H5Dget_space(data); - hid_t rank = H5Sget_simple_extent_ndims(space_id); + int rank = H5Sget_simple_extent_ndims(space_id); if (rank != 1) { EXCEPTION1(InvalidFilesException, "Rank of dataspace differs from one."); @@ -3266,7 +3281,7 @@ avtChomboFileFormat::GetVar(int patch, const char *varname) std::strcpy(datasetname, particlesGroupName); std::strcat(datasetname, varname); hsize_t nParticles = 0; - hid_t dataSet = H5Dopen(file_handle, datasetname); + hid_t dataSet = H5Dopen2(file_handle, datasetname, H5P_DEFAULT); delete[] datasetname; if ( dataSet > 0) { @@ -3497,20 +3512,20 @@ avtChomboFileFormat::GetVectorVar(int patch, const char *varname) "it is not even an HDF5 file."); } } - hid_t level_id = H5Gopen(file_handle, name); + hid_t level_id = H5Gopen2(file_handle, name, H5P_DEFAULT); if (level_id < 0) { EXCEPTION1(InvalidFilesException, "Chombo file does not contain group for requested level."); } - hid_t data = H5Dopen(level_id, "data:datatype=0"); + hid_t data = H5Dopen2(level_id, "data:datatype=0", H5P_DEFAULT); if (data < 0) { EXCEPTION1(InvalidFilesException, "Level does not contain data."); } hid_t space_id = H5Dget_space(data); - hid_t rank = H5Sget_simple_extent_ndims(space_id); + int rank = H5Sget_simple_extent_ndims(space_id); if (rank != 1) { EXCEPTION1(InvalidFilesException, "Rank of dataspace differs from one."); diff --git a/src/databases/Chombo/avtChomboFileFormat.h b/src/databases/Chombo/avtChomboFileFormat.h index a7a0c8209ff..4634ae5f04f 100644 --- a/src/databases/Chombo/avtChomboFileFormat.h +++ b/src/databases/Chombo/avtChomboFileFormat.h @@ -20,7 +20,6 @@ // versions of HDF5 before 1.8 and ensures correct compilation with // version 1.8 and thereafter. When, and if, the HDF5 code in this file // is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include struct { diff --git a/src/databases/Denovo/avtDenovoFileFormat.C b/src/databases/Denovo/avtDenovoFileFormat.C index c8757f867b3..e67d3e50be6 100644 --- a/src/databases/Denovo/avtDenovoFileFormat.C +++ b/src/databases/Denovo/avtDenovoFileFormat.C @@ -88,7 +88,7 @@ avtDenovoFileFormat::avtDenovoFileFormat(const char *filename) : avtSTMDFileFormat(&filename, 1), fileLoaded(false) { H5open(); - H5Eset_auto(H5E_DEFAULT, NULL, NULL); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); } @@ -169,7 +169,7 @@ avtDenovoFileFormat::LoadFile() varMetaData.push_back(varInfo(fileId, "/denovo/matids", GetFilename())); //Material IDs. - hid_t matId = H5Dopen(fileId, "/denovo/matids", H5P_DEFAULT); + hid_t matId = H5Dopen2(fileId, "/denovo/matids", H5P_DEFAULT); if (matId < 0) EXCEPTION1(InvalidFilesException, GetFilename()); hid_t matIdS = H5Dget_space(matId); if (matIdS < 0) EXCEPTION1(InvalidFilesException, GetFilename()); @@ -180,7 +180,7 @@ avtDenovoFileFormat::LoadFile() H5Sclose(matIdS); //Mix table. - hid_t mixId = H5Dopen(fileId, "/denovo/mixtable", H5P_DEFAULT); + hid_t mixId = H5Dopen2(fileId, "/denovo/mixtable", H5P_DEFAULT); if (mixId < 0) EXCEPTION1(InvalidFilesException, GetFilename()); hid_t mixIdS = H5Dget_space(mixId); if (mixIdS < 0) EXCEPTION1(InvalidFilesException, GetFilename()); diff --git a/src/databases/Denovo/avtDenovoFileFormat.h b/src/databases/Denovo/avtDenovoFileFormat.h index 23e072c590f..acae2640e1b 100644 --- a/src/databases/Denovo/avtDenovoFileFormat.h +++ b/src/databases/Denovo/avtDenovoFileFormat.h @@ -69,7 +69,7 @@ class avtDenovoFileFormat : public avtSTMDFileFormat varInfo() {} varInfo(hid_t fileId, const std::string &nm, const std::string &fileName) : name(nm) { - if ((varId = H5Dopen(fileId, name.c_str(), H5P_DEFAULT)) < 0) + if ((varId = H5Dopen2(fileId, name.c_str(), H5P_DEFAULT)) < 0) EXCEPTION1(InvalidFilesException, fileName); if ((spaceId = H5Dget_space(varId)) < 0) EXCEPTION1(InvalidFilesException, fileName); diff --git a/src/databases/Enzo/avtEnzoFileFormat.C b/src/databases/Enzo/avtEnzoFileFormat.C index d096d8f70ea..784c95b5f1d 100644 --- a/src/databases/Enzo/avtEnzoFileFormat.C +++ b/src/databases/Enzo/avtEnzoFileFormat.C @@ -32,18 +32,49 @@ #include #include -// Define this symbol BEFORE including hdf5.h to indicate the HDF5 code -// in this file uses version 1.6 of the HDF5 API. This is harmless for -// versions of HDF5 before 1.8 and ensures correct compilation with -// version 1.8 and thereafter. When, and if, the HDF5 code in this file -// is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include #include using std::string; using std::vector; +struct EnzoVarNameCollector +{ + std::vector *varNames; + std::vector *particleVarNames; + std::vector *tracerparticleVarNames; +}; + +static herr_t +EnzoCollectDatasetNames(hid_t loc_id, const char *name, const H5L_info_t *, void *opData) +{ + EnzoVarNameCollector *collector = static_cast(opData); + + H5O_info_t objInfo; + if (H5Oget_info_by_name(loc_id, name, &objInfo, H5P_DEFAULT) < 0) + return 0; + + if (objInfo.type != H5O_TYPE_DATASET) + return 0; + + if (strlen(name) > 8 && strncmp(name,"particle",8)==0) + { + if (strncmp(name,"particle_position_",18) != 0) + collector->particleVarNames->push_back(name); + } + else if (strlen(name) > 16 && strncmp(name,"tracer_particles",16)==0) + { + if (strncmp(name,"tracer_particle_position_",25) != 0) + collector->tracerparticleVarNames->push_back(name); + } + else + { + collector->varNames->push_back(name); + } + + return 0; +} + void avtEnzoFileFormat::Grid::PrintRecursive(vector &grids, int level) { string indent(level*3, ' '); @@ -554,74 +585,23 @@ avtEnzoFileFormat::DetermineVariablesFromGridFile() fileType = ENZO_FT_HDF5; - // NOTE: H5Gget_num_objs fails using a file id in HDF51.6.0, but - // works correctly (as the documentation says it should) in - // 1.6.3. Since we're going for portability, just open the - // darn root group and use that instead. - hid_t rootId = H5Gopen(fileId, "/"); - hid_t rootId_tmp; + hid_t rootId = H5Gopen2(fileId, "/", H5P_DEFAULT); - // Make a pass over the contents of the root directory - // looking for a group corresponding to our grid name, and - // open it if necessary. - hsize_t n_objs; - H5Gget_num_objs(rootId, &n_objs); - for (hsize_t var = 0 ; var < n_objs ; var++) + // If there is a group corresponding to our grid name, open it. { - if (H5Gget_objtype_by_idx(rootId, var) == H5G_GROUP) + char gridGroupName[65]; + snprintf(gridGroupName, sizeof(gridGroupName), "Grid%d", smallest_grid); + hid_t gridGroup = H5Gopen2(rootId, gridGroupName, H5P_DEFAULT); + if (gridGroup >= 0) { - int gridindex; - char name[65]; - H5Gget_objname_by_idx(rootId, var, name, 64); - if (sscanf(name, "Grid%d", &gridindex) == 1 && - gridindex == smallest_grid) - { - rootId_tmp = rootId; - rootId = H5Gopen(rootId, name); - H5Gclose(rootId_tmp); - break; - } + H5Gclose(rootId); + rootId = gridGroup; } } - // In case we opened a subdirectory, get the num items again. - H5Gget_num_objs(rootId, &n_objs); - - // Okay, actually do the parsing work. - for (size_t var = 0 ; var < n_objs ; var++) - { - if (H5Gget_objtype_by_idx(rootId, var) == H5G_DATASET) - { - char name[65]; - H5Gget_objname_by_idx(rootId, var, name, 64); - - // NOTE: to do the same diligence as HDF4 here, we should - // really H5Dopen, H5Dget_space, H5Sget_simple_extent_ndims - // and make sure it is a 3D (or 2D?) object before assuming - // it is a mesh variable. For now, assume away! - if (strlen(name) > 8 && strncmp(name,"particle",8)==0) - { - // it's a particle variable; skip over coordinate arrays - if (strncmp(name,"particle_position_",18) != 0) - { - particleVarNames.push_back(name); - } - } - else if (strlen(name) > 16 && - strncmp(name,"tracer_particles",16)==0) - { - // it's a particle variable; skip over coordinate arrays - if (strncmp(name,"tracer_particle_position_",25) != 0) - { - tracerparticleVarNames.push_back(name); - } - } - else - { - varNames.push_back(name); - } - } - } + EnzoVarNameCollector collector{&varNames, &particleVarNames, &tracerparticleVarNames}; + hsize_t idx = 0; + H5Literate(rootId, H5_INDEX_NAME, H5_ITER_INC, &idx, EnzoCollectDatasetNames, &collector); H5Gclose(rootId); H5Fclose(fileId); @@ -1194,34 +1174,23 @@ avtEnzoFileFormat::GetMesh(int domain, const char *meshname) // Make a pass over the contents of the root directory // looking for a group corresponding to our grid name, and // open it if necessary. - hid_t rootId = H5Gopen(fileId, "/"); - hid_t rootId_tmp; - - hsize_t n_objs; - H5Gget_num_objs(rootId, &n_objs); - for (hsize_t var = 0 ; var < n_objs ; var++) + hid_t rootId = H5Gopen2(fileId, "/", H5P_DEFAULT); { - if (H5Gget_objtype_by_idx(rootId, var) == H5G_GROUP) + char gridGroupName[65]; + snprintf(gridGroupName, sizeof(gridGroupName), "Grid%d", domain+1); + hid_t gridGroup = H5Gopen2(rootId, gridGroupName, H5P_DEFAULT); + if (gridGroup >= 0) { - int gridindex; - char name[65]; - H5Gget_objname_by_idx(rootId, var, name, 64); - if (sscanf(name, "Grid%d", &gridindex) == 1 && - gridindex == domain+1) - { - rootId_tmp = rootId; - rootId = H5Gopen(rootId, name); - H5Gclose(rootId_tmp); - break; - } + H5Gclose(rootId); + rootId = gridGroup; } } // temporarily disable error reporting - H5E_auto_t old_errorfunc; + H5E_auto2_t old_errorfunc; void *old_clientdata; - H5Eget_auto(&old_errorfunc, &old_clientdata); - H5Eset_auto(NULL, NULL); + H5Eget_auto2(H5E_DEFAULT, &old_errorfunc, &old_clientdata); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); bool is_particle = (strcmp(meshname, "particles") == 0); const char *xn = is_particle ? "particle_position_x" : "tracer_particle_position_x"; @@ -1229,12 +1198,12 @@ avtEnzoFileFormat::GetMesh(int domain, const char *meshname) const char *zn = is_particle ? "particle_position_z" : "tracer_particle_position_z"; // find the coordinate variables (if they exist) - hid_t var_id_x = H5Dopen(rootId, xn); - hid_t var_id_y = H5Dopen(rootId, yn); - hid_t var_id_z = dimension==3 ? H5Dopen(rootId, zn) : -1; + hid_t var_id_x = H5Dopen2(rootId, xn, H5P_DEFAULT); + hid_t var_id_y = H5Dopen2(rootId, yn, H5P_DEFAULT); + hid_t var_id_z = dimension==3 ? H5Dopen2(rootId, zn, H5P_DEFAULT) : -1; // turn back on error reporting - H5Eset_auto(old_errorfunc, old_clientdata); + H5Eset_auto2(H5E_DEFAULT, old_errorfunc, old_clientdata); // check if the variables exist if (var_id_x < 0 || var_id_y < 0 || @@ -1536,40 +1505,29 @@ avtEnzoFileFormat::GetVar(int domain, const char *varname) // Make a pass over the contents of the root directory // looking for a group corresponding to our grid name, and // open it if necessary. - hid_t rootId = H5Gopen(fileId, "/"); - hid_t rootId_tmp; - - hsize_t n_objs; - H5Gget_num_objs(rootId, &n_objs); - for (hsize_t var = 0 ; var < n_objs ; var++) + hid_t rootId = H5Gopen2(fileId, "/", H5P_DEFAULT); { - if (H5Gget_objtype_by_idx(rootId, var) == H5G_GROUP) + char gridGroupName[65]; + snprintf(gridGroupName, sizeof(gridGroupName), "Grid%d", domain+1); + hid_t gridGroup = H5Gopen2(rootId, gridGroupName, H5P_DEFAULT); + if (gridGroup >= 0) { - int gridindex; - char name[65]; - H5Gget_objname_by_idx(rootId, var, name, 64); - if (sscanf(name, "Grid%d", &gridindex) == 1 && - gridindex == domain+1) - { - rootId_tmp = rootId; - rootId = H5Gopen(rootId, name); - H5Gclose(rootId_tmp); - break; - } + H5Gclose(rootId); + rootId = gridGroup; } } // temporarily disable error reporting - H5E_auto_t old_errorfunc; + H5E_auto2_t old_errorfunc; void *old_clientdata; - H5Eget_auto(&old_errorfunc, &old_clientdata); - H5Eset_auto(NULL, NULL); + H5Eget_auto2(H5E_DEFAULT, &old_errorfunc, &old_clientdata); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); // find the variable (if it exists) - hid_t varId = H5Dopen(rootId, varname); + hid_t varId = H5Dopen2(rootId, varname, H5P_DEFAULT); // turn back on error reporting - H5Eset_auto(old_errorfunc, old_clientdata); + H5Eset_auto2(H5E_DEFAULT, old_errorfunc, old_clientdata); // check if the variable exists if (varId < 0) diff --git a/src/databases/FLASH/avtFLASHFileFormat.C b/src/databases/FLASH/avtFLASHFileFormat.C index 35ca09dcbca..8c49619c924 100644 --- a/src/databases/FLASH/avtFLASHFileFormat.C +++ b/src/databases/FLASH/avtFLASHFileFormat.C @@ -46,7 +46,6 @@ // versions of HDF5 before 1.8 and ensures correct compilation with // version 1.8 and thereafter. When, and if, the HDF5 code in this file // is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include #include @@ -156,7 +155,7 @@ avtFLASHFileFormat::InitializeHDF5(void) { debug5 << "Initializing HDF5 Library" << endl; H5open(); - H5Eset_auto(NULL, NULL); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); } // **************************************************************************** @@ -838,7 +837,7 @@ avtFLASHFileFormat::GetMesh(int domain, const char *meshname) } else if (string(meshname) == "particles") { - hid_t pointId = H5Dopen(fileId, particleHDFVarName.c_str()); + hid_t pointId = H5Dopen2(fileId, particleHDFVarName.c_str(), H5P_DEFAULT); vtkPoints *points = vtkPoints::New(); points->SetNumberOfPoints(numParticles); @@ -947,7 +946,7 @@ avtFLASHFileFormat::GetMesh(int domain, const char *meshname) float *vals = new float[nvals]; string varname = string(meshname).substr(7); - hid_t varId = H5Dopen(fileId, varname.c_str()); + hid_t varId = H5Dopen2(fileId, varname.c_str(), H5P_DEFAULT); H5Dread(varId, H5T_NATIVE_FLOAT, H5S_ALL,H5S_ALL,H5P_DEFAULT, vals); H5Dclose(varId); @@ -1408,7 +1407,7 @@ avtFLASHFileFormat::GetVar(int visitDomain, const char *vname) string varname = particleVarNames[index]; hid_t vartype = particleVarTypes[index]; - hid_t pointId = H5Dopen(fileId, particleHDFVarName.c_str()); + hid_t pointId = H5Dopen2(fileId, particleHDFVarName.c_str(), H5P_DEFAULT); vtkFloatArray * fa = vtkFloatArray::New(); fa->SetNumberOfTuples(numParticles); @@ -1463,7 +1462,7 @@ avtFLASHFileFormat::GetVar(int visitDomain, const char *vname) // It's a grid variable // - hid_t varId = H5Dopen(fileId, vn_substr.c_str()); + hid_t varId = H5Dopen2(fileId, vn_substr.c_str(), H5P_DEFAULT); if (varId < 0) { EXCEPTION1(InvalidVariableException, vn_substr.c_str()); @@ -1755,7 +1754,7 @@ avtFLASHFileFormat::ReadAllMetaData() // Support for files w/o "processor number" void avtFLASHFileFormat::ReadProcessorNumbers() { - hid_t rootId = H5Gopen(fileId, "/"); + hid_t rootId = H5Gopen2(fileId, "/", H5P_DEFAULT); if (rootId < 0) { debug5 << "[avtFLASHFileFormat::ReadProcessorNumbers] - Didn't open root group" << endl; @@ -1794,7 +1793,7 @@ void avtFLASHFileFormat::ReadProcessorNumbers() // // Read the processor number description for the blocks // - hid_t procnumId = H5Dopen(fileId, "processor number"); + hid_t procnumId = H5Dopen2(fileId, "processor number", H5P_DEFAULT); if (procnumId < 0) { H5Fclose(fileId); @@ -1879,7 +1878,7 @@ void avtFLASHFileFormat::ReadCoordinates() // // Read the coordinates description for the blocks // - hid_t coordinatesId = H5Dopen(fileId, "coordinates"); + hid_t coordinatesId = H5Dopen2(fileId, "coordinates", H5P_DEFAULT); if (coordinatesId < 0) { EXCEPTION1(InvalidFilesException, filename.c_str()); @@ -1978,7 +1977,7 @@ void avtFLASHFileFormat::ReadNodeTypes() // // Read the node type description for the blocks // - hid_t nodetypeId = H5Dopen(fileId, "node type"); + hid_t nodetypeId = H5Dopen2(fileId, "node type", H5P_DEFAULT); if (nodetypeId < 0) { EXCEPTION1(InvalidFilesException, filename.c_str()); @@ -2052,18 +2051,18 @@ void avtFLASHFileFormat::ReadNodeTypes() void avtFLASHFileFormat::ReadBlockStructure() { // temporarily disable error reporting - H5E_auto_t old_errorfunc; + H5E_auto2_t old_errorfunc; void *old_clientdata; - H5Eget_auto(&old_errorfunc, &old_clientdata); - H5Eset_auto(NULL, NULL); + H5Eget_auto2(H5E_DEFAULT, &old_errorfunc, &old_clientdata); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); // // Read the "gid" block connectivity description // - hid_t gidId = H5Dopen(fileId, "gid"); + hid_t gidId = H5Dopen2(fileId, "gid", H5P_DEFAULT); // turn back on error reporting - H5Eset_auto(old_errorfunc, old_clientdata); + H5Eset_auto2(H5E_DEFAULT, old_errorfunc, old_clientdata); if (gidId < 0) { @@ -2167,7 +2166,7 @@ void avtFLASHFileFormat::ReadBlockExtents() // // Read the bounding box description for the blocks // - hid_t bboxId = H5Dopen(fileId, "bounding box"); + hid_t bboxId = H5Dopen2(fileId, "bounding box", H5P_DEFAULT); if (bboxId < 0) { EXCEPTION1(InvalidFilesException, filename.c_str()); @@ -2291,7 +2290,7 @@ void avtFLASHFileFormat::ReadRefinementLevels() // // Read the bounding box description for the blocks // - hid_t refinementId = H5Dopen(fileId, "refine level"); + hid_t refinementId = H5Dopen2(fileId, "refine level", H5P_DEFAULT); if (refinementId < 0) { EXCEPTION1(InvalidFilesException, filename.c_str()); @@ -2374,7 +2373,7 @@ void avtFLASHFileFormat::ReadSimulationParameters(hid_t file_id, // // Read the simulation parameters // - hid_t simparamsId = H5Dopen(file_id, "simulation parameters"); + hid_t simparamsId = H5Dopen2(file_id, "simulation parameters", H5P_DEFAULT); if (simparamsId < 0) { EXCEPTION1(InvalidFilesException, filename.c_str()); @@ -2474,7 +2473,7 @@ avtFLASHFileFormat::ReadUnknownNames() // // Read the variable ("unknown") names // - hid_t unknownsId = H5Dopen(fileId, "unknown names"); + hid_t unknownsId = H5Dopen2(fileId, "unknown names", H5P_DEFAULT); if (unknownsId < 0) { EXCEPTION1(InvalidFilesException, filename.c_str()); @@ -2552,23 +2551,23 @@ void avtFLASHFileFormat::ReadParticleAttributes() { // temporarily disable error reporting - H5E_auto_t old_errorfunc; + H5E_auto2_t old_errorfunc; void *old_clientdata; - H5Eget_auto(&old_errorfunc, &old_clientdata); - H5Eset_auto(NULL, NULL); + H5Eget_auto2(H5E_DEFAULT, &old_errorfunc, &old_clientdata); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); // find the particle variable (if it exists) hid_t pointId; particleHDFVarName = "particle tracers"; - pointId = H5Dopen(fileId, particleHDFVarName.c_str()); + pointId = H5Dopen2(fileId, particleHDFVarName.c_str(), H5P_DEFAULT); if (pointId < 0) { particleHDFVarName = "tracer particles"; - pointId = H5Dopen(fileId, particleHDFVarName.c_str()); + pointId = H5Dopen2(fileId, particleHDFVarName.c_str(), H5P_DEFAULT); } // turn back on error reporting - H5Eset_auto(old_errorfunc, old_clientdata); + H5Eset_auto2(H5E_DEFAULT, old_errorfunc, old_clientdata); // Doesn't exist? No problem -- we just don't have any particles if (pointId < 0) @@ -3062,10 +3061,10 @@ avtFLASHFileFormat::ReadVersionInfo(hid_t file_id) { debug5 << "Determining FLASH file format version." << endl; // temporarily disable error reporting - H5E_auto_t old_errorfunc; + H5E_auto2_t old_errorfunc; void *old_clientdata; - H5Eget_auto(&old_errorfunc, &old_clientdata); - H5Eset_auto(NULL, NULL); + H5Eget_auto2(H5E_DEFAULT, &old_errorfunc, &old_clientdata); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); // If this is a FLASH3 Particles file, or a FLASH3 file with particles, // then it will have the "particle names" field. If, in addition, it's a @@ -3074,7 +3073,7 @@ avtFLASHFileFormat::ReadVersionInfo(hid_t file_id) // needed for non-particle files. So...further checking all around. int flash3_particles = 0; // Init to false - hid_t h5_PN = H5Dopen(file_id, "particle names"); + hid_t h5_PN = H5Dopen2(file_id, "particle names", H5P_DEFAULT); if (h5_PN >= 0) { flash3_particles = 1; @@ -3085,13 +3084,13 @@ avtFLASHFileFormat::ReadVersionInfo(hid_t file_id) // // Read the file format version (<= 7 means FLASH2) // - hid_t h5_FFV = H5Dopen(file_id, "file format version"); + hid_t h5_FFV = H5Dopen2(file_id, "file format version", H5P_DEFAULT); if (h5_FFV < 0) { debug5 << "File format version not found in global attributes. " << "Looking for sim info." << endl; - hid_t h5_SI = H5Dopen(file_id, "sim info"); + hid_t h5_SI = H5Dopen2(file_id, "sim info", H5P_DEFAULT); if (h5_SI < 0) { debug5 << "sim info not found, assuming FLASH2...unless FLASH3 particles" << endl; @@ -3135,7 +3134,7 @@ avtFLASHFileFormat::ReadVersionInfo(hid_t file_id) fileFormatVersion = simInfo.file_format_version; } // turn back on error reporting - H5Eset_auto(old_errorfunc, old_clientdata); + H5Eset_auto2(H5E_DEFAULT, old_errorfunc, old_clientdata); return; } @@ -3152,7 +3151,7 @@ avtFLASHFileFormat::ReadVersionInfo(hid_t file_id) H5Dclose(h5_FFV); // turn back on error reporting - H5Eset_auto(old_errorfunc, old_clientdata); + H5Eset_auto2(H5E_DEFAULT, old_errorfunc, old_clientdata); } // **************************************************************************** @@ -3182,7 +3181,7 @@ avtFLASHFileFormat::ReadIntegerScalars(hid_t file_id) if (fileFormatVersion < FLASH3_FFV8) return; - hid_t intScalarsId = H5Dopen(file_id, "integer scalars"); + hid_t intScalarsId = H5Dopen2(file_id, "integer scalars", H5P_DEFAULT); // // // Read the integer scalars @@ -3264,7 +3263,7 @@ avtFLASHFileFormat::ReadRealScalars(hid_t file_id) if (fileFormatVersion < FLASH3_FFV8) return; - hid_t realScalarsId = H5Dopen(file_id, "real scalars"); + hid_t realScalarsId = H5Dopen2(file_id, "real scalars", H5P_DEFAULT); // // Read the real scalars // @@ -3340,15 +3339,15 @@ avtFLASHFileFormat::ReadParticleAttributes_FLASH3() return; // temporarily disable error reporting - H5E_auto_t old_errorfunc; + H5E_auto2_t old_errorfunc; void *old_clientdata; - H5Eget_auto(&old_errorfunc, &old_clientdata); - H5Eset_auto(NULL, NULL); + H5Eget_auto2(H5E_DEFAULT, &old_errorfunc, &old_clientdata); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); - hid_t pnameId = H5Dopen(fileId, "particle names"); + hid_t pnameId = H5Dopen2(fileId, "particle names", H5P_DEFAULT); // turn back on error reporting - H5Eset_auto(old_errorfunc, old_clientdata); + H5Eset_auto2(H5E_DEFAULT, old_errorfunc, old_clientdata); // do we have particle names? if (pnameId < 0) @@ -3422,21 +3421,21 @@ avtFLASHFileFormat::ReadParticleAttributes_FLASH3() // // temporarily disable error reporting - H5Eget_auto(&old_errorfunc, &old_clientdata); - H5Eset_auto(NULL, NULL); + H5Eget_auto2(H5E_DEFAULT, &old_errorfunc, &old_clientdata); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); // find the particle variable (if it exists) hid_t pointId; particleHDFVarName = "particle tracers"; - pointId = H5Dopen(fileId, particleHDFVarName.c_str()); + pointId = H5Dopen2(fileId, particleHDFVarName.c_str(), H5P_DEFAULT); if (pointId < 0) { particleHDFVarName = "tracer particles"; - pointId = H5Dopen(fileId, particleHDFVarName.c_str()); + pointId = H5Dopen2(fileId, particleHDFVarName.c_str(), H5P_DEFAULT); } // turn back on error reporting - H5Eset_auto(old_errorfunc, old_clientdata); + H5Eset_auto2(H5E_DEFAULT, old_errorfunc, old_clientdata); // Doesn't exist? No problem -- we just don't have any particles if (pointId < 0) diff --git a/src/databases/FLASH/avtFLASHFileFormat.h b/src/databases/FLASH/avtFLASHFileFormat.h index 52928b09088..a3a40c235c8 100644 --- a/src/databases/FLASH/avtFLASHFileFormat.h +++ b/src/databases/FLASH/avtFLASHFileFormat.h @@ -20,7 +20,6 @@ // versions of HDF5 before 1.8 and ensures correct compilation with // version 1.8 and thereafter. When, and if, the HDF5 code in this file // is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include #include diff --git a/src/databases/H5Nimrod/H5utils.C b/src/databases/H5Nimrod/H5utils.C index d3283756480..8cfd2e39f65 100644 --- a/src/databases/H5Nimrod/H5utils.C +++ b/src/databases/H5Nimrod/H5utils.C @@ -176,7 +176,7 @@ H5NIMROD_read_dims (hid_t parent_id, hsize_t dims[16]; int i, j; - hid_t dataset_id = H5Dopen (parent_id, dataset_name); + hid_t dataset_id = H5Dopen2(parent_id, dataset_name, H5P_DEFAULT); if (dataset_id < 0) return H5NIMROD_ERR; hid_t dataspace_id = H5Dget_space (dataset_id); @@ -200,7 +200,7 @@ H5NIMROD_read_float32_array (hid_t parent_id, int ndims, hsize_t * dims, float *array) { hid_t dataspace, dataset, memspace; - dataset = H5Dopen (parent_id, dataset_name); + dataset = H5Dopen2(parent_id, dataset_name, H5P_DEFAULT); if (dataset < 0) { printf ("H5Utils:H5NIMROD Could not open dataset %s\n", dataset_name); @@ -242,25 +242,22 @@ H5NIMROD_read_float32_array (hid_t parent_id, return H5NIMROD_SUCCESS; } -herr_t -_iteration_operator (hid_t group_id, /*!< [in] group id */ - const char *member_name, /*!< [in] group name */ - void *operator_data /*!< [in,out] data passed to the iterator */ - ) +static herr_t +_iteration_operator(hid_t group_id, const char *member_name, const H5L_info_t *, void *operator_data) { struct _iter_op_data *data = (struct _iter_op_data *) operator_data; - herr_t herr; - H5G_stat_t objinfo; if (data->type != H5G_UNKNOWN) { - herr = H5Gget_objinfo (group_id, member_name, 1, &objinfo); - if (herr < 0) - return herr; - - if (objinfo.type != data->type) - return 0; /* don't count, continue iteration */ + H5O_info_t objInfo; + if (H5Oget_info_by_name(group_id, member_name, &objInfo, H5P_DEFAULT) < 0) + return 0; + + if (data->type == H5G_GROUP && objInfo.type != H5O_TYPE_GROUP) + return 0; /* don't count, continue iteration */ + if (data->type == H5G_DATASET && objInfo.type != H5O_TYPE_DATASET) + return 0; /* don't count, continue iteration */ } if (data->name && (data->stop_idx == data->count)) @@ -288,15 +285,20 @@ H5NIMROD_get_num_objects_matching_pattern (hid_t group_id, char *const pattern) { - int herr; - int idx = 0; + herr_t herr; + hsize_t idx = 0; struct _iter_op_data data; memset (&data, 0, sizeof (data)); data.type = type; data.pattern = pattern; - herr = H5Giterate (group_id, group_name, &idx, _iteration_operator, &data); + hid_t grp = H5Gopen2(group_id, group_name, H5P_DEFAULT); + if (grp < 0) + return H5NIMROD_ERR; + + herr = H5Literate(grp, H5_INDEX_NAME, H5_ITER_INC, &idx, _iteration_operator, &data); + H5Gclose(grp); if (herr < 0) return herr; @@ -313,7 +315,7 @@ H5NIMROD_get_object_name (hid_t group_id, herr_t herr; struct _iter_op_data data; - int iterator_idx = 0; + hsize_t iterator_idx = 0; memset (&data, 0, sizeof (data)); data.stop_idx = idx; @@ -321,8 +323,13 @@ H5NIMROD_get_object_name (hid_t group_id, data.name = obj_name; data.len = len_obj_name; - herr = H5Giterate (group_id, group_name, &iterator_idx, + hid_t grp = H5Gopen2(group_id, group_name, H5P_DEFAULT); + if (grp < 0) + return H5NIMROD_ERR; + + herr = H5Literate(grp, H5_INDEX_NAME, H5_ITER_INC, &iterator_idx, _iteration_operator, &data); + H5Gclose(grp); if (herr < 0) return herr; diff --git a/src/databases/H5Nimrod/H5utils.h b/src/databases/H5Nimrod/H5utils.h index 8881ec56938..f93947f6cf0 100644 --- a/src/databases/H5Nimrod/H5utils.h +++ b/src/databases/H5Nimrod/H5utils.h @@ -1,9 +1,3 @@ -// Define this symbol BEFORE including hdf5.h to indicate the HDF5 code -// in this file uses version 1.6 of the HDF5 API. This is harmless for -// versions of HDF5 before 1.8 and ensures correct compilation with -// version 1.8 and thereafter. When, and if, the HDF5 code in this file -// is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include #define MAXLENGTH 256 @@ -23,13 +17,7 @@ int _transpose_3D (float *data, hsize_t * dims); hid_t _normalize_h5_type (hid_t type); -herr_t _iteration_operator (hid_t group_id, /*!< [in] group id */ - const char *member_name, /*!< [in] group name */ - void *operator_data); /*!< [in,out] data passed to the iterator */ - -int _get_num_groups_matching_pattern (hid_t group_id, - const char *group_name, - const hid_t type, char *const pattern); +// Internal iteration helpers are defined in `H5utils.C`. int H5NIMROD_read_attrib (hid_t id, const char *attrib_name, diff --git a/src/databases/H5Nimrod/avtH5NimrodFileFormat.C b/src/databases/H5Nimrod/avtH5NimrodFileFormat.C index 56cc52dd273..79273f74df0 100644 --- a/src/databases/H5Nimrod/avtH5NimrodFileFormat.C +++ b/src/databases/H5Nimrod/avtH5NimrodFileFormat.C @@ -104,7 +104,7 @@ avtH5NimrodFileFormat::avtH5NimrodFileFormat (const char *filename): // Init HDF5 and turn off error message printing. H5open(); - H5Eset_auto( NULL, NULL ); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); // Check for a valid H5NIMROD file if( H5Fis_hdf5( filename ) < 0 ) @@ -116,7 +116,7 @@ avtH5NimrodFileFormat::avtH5NimrodFileFormat (const char *filename): hsize_t i, npoints; // Read attributes - root_id = H5Gopen (file_id, "/"); + root_id = H5Gopen2(file_id, "/", H5P_DEFAULT); if ( root_id < 0 ) { @@ -135,7 +135,7 @@ avtH5NimrodFileFormat::avtH5NimrodFileFormat (const char *filename): } debug5 << "time: " << time << std::endl; - hid_t grid_id = H5Gopen (file_id, "/GRID"); + hid_t grid_id = H5Gopen2(file_id, "/GRID", H5P_DEFAULT); if (grid_id < 0) { H5Gclose(root_id); @@ -223,7 +223,7 @@ avtH5NimrodFileFormat::avtH5NimrodFileFormat (const char *filename): nsteps++; - group_id = H5Gopen (root_id, name1); + group_id = H5Gopen2(root_id, name1, H5P_DEFAULT); memset( stepnumber, 0, MAXLENGTH ); @@ -441,7 +441,7 @@ avtH5NimrodFileFormat::GetMesh (int timestate, const char *meshname) "File '" + fname + "' can not be opened" ); } - hid_t grid_id = H5Gopen (file, "/GRID"); + hid_t grid_id = H5Gopen2(file, "/GRID", H5P_DEFAULT); vtkpoints->SetNumberOfPoints (npoints); float *Xcoord; @@ -512,8 +512,8 @@ avtH5NimrodFileFormat::GetVar (int timestate, const char *varname) } hid_t root_id, group_id; - root_id = H5Gopen (file, "/"); - group_id = H5Gopen (root_id, stepnames[timestate].c_str ()); + root_id = H5Gopen2(file, "/", H5P_DEFAULT); + group_id = H5Gopen2(root_id, stepnames[timestate].c_str (), H5P_DEFAULT); float *var; hsize_t npoints = 1; @@ -572,8 +572,8 @@ avtH5NimrodFileFormat::GetVectorVar (int timestate, const char *varname) } hid_t root_id, group_id; - root_id = H5Gopen (file, "/"); - group_id = H5Gopen (root_id, stepnames[timestate].c_str ()); + root_id = H5Gopen2(file, "/", H5P_DEFAULT); + group_id = H5Gopen2(root_id, stepnames[timestate].c_str (), H5P_DEFAULT); int num_comp = H5NIMROD_get_num_objects_matching_pattern (group_id, varname, H5G_DATASET, @@ -590,7 +590,7 @@ avtH5NimrodFileFormat::GetVectorVar (int timestate, const char *varname) for (int idx = 0; idx < num_comp; idx++) comp[idx] = (float *) malloc (sizeof (float) * npoints); - hid_t vector_id = H5Gopen (group_id, varname); + hid_t vector_id = H5Gopen2(group_id, varname, H5P_DEFAULT); char name[MAXLENGTH]; int len_of_name = MAXLENGTH; for (int idx = 0; idx < num_comp; idx++) diff --git a/src/databases/H5Nimrod/avtH5NimrodFileFormat.h b/src/databases/H5Nimrod/avtH5NimrodFileFormat.h index b7cb06062fd..dd082fff8cf 100644 --- a/src/databases/H5Nimrod/avtH5NimrodFileFormat.h +++ b/src/databases/H5Nimrod/avtH5NimrodFileFormat.h @@ -11,12 +11,6 @@ #include -// Define this symbol BEFORE including hdf5.h to indicate the HDF5 code -// in this file uses version 1.6 of the HDF5 API. This is harmless for -// versions of HDF5 before 1.8 and ensures correct compilation with -// version 1.8 and thereafter. When, and if, the HDF5 code in this file -// is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include #include "H5utils.h" diff --git a/src/databases/M3D/avtM3DFileFormat.C b/src/databases/M3D/avtM3DFileFormat.C index 19bcc2cf0c5..16dfa789cb6 100644 --- a/src/databases/M3D/avtM3DFileFormat.C +++ b/src/databases/M3D/avtM3DFileFormat.C @@ -65,6 +65,8 @@ avtM3DFileFormat::avtM3DFileFormat(const char *filename) avtM3DFileFormat::~avtM3DFileFormat() { + FreeUpResources(); + for ( size_t i = 0; i < m_cellInfo.size(); i++ ) delete m_cellInfo[i]; for ( size_t i = 0; i < m_scalarVarNames.size(); i++ ) @@ -117,10 +119,18 @@ avtM3DFileFormat::GetNTimesteps(void) void avtM3DFileFormat::FreeUpResources(void) { - H5Fclose( m_fileID ); + if (m_fileID >= 0) + { + H5Fclose(m_fileID); + m_fileID = -1; + } for ( size_t i = 0; i < m_planeXforms.size(); i++ ) if ( m_planeXforms[i] ) + { m_planeXforms[i]->Delete(); + m_planeXforms[i] = NULL; + } + m_planeXforms.clear(); } @@ -209,7 +219,7 @@ avtM3DFileFormat::PopulateDatabaseMetaData( avtDatabaseMetaData *md, int timeSta avtCentering cent = AVT_NODECENT; AddScalarVarToMetaData( md, meshvarname, m_meshes[m], cent ); - m_scalarVars.push_back( new VarInfo( meshvarname, m_scalarVarNames[i]->dataID, + m_scalarVars.push_back( new VarInfo( meshvarname, m_scalarVarNames[i]->varIndex, m_scalarVarNames[i]->varDim ) ); } @@ -223,7 +233,7 @@ avtM3DFileFormat::PopulateDatabaseMetaData( avtDatabaseMetaData *md, int timeSta avtCentering cent = AVT_NODECENT; AddScalarVarToMetaData( md, meshvarname, m_meshesPlane3D[m], cent ); - m_scalarVars.push_back( new VarInfo( meshvarname, m_scalarVarNames[i]->dataID, + m_scalarVars.push_back( new VarInfo( meshvarname, m_scalarVarNames[i]->varIndex, m_scalarVarNames[i]->varDim, m ) ); } @@ -235,7 +245,7 @@ avtM3DFileFormat::PopulateDatabaseMetaData( avtDatabaseMetaData *md, int timeSta avtCentering cent = AVT_NODECENT; AddScalarVarToMetaData( md, meshvarname, m_meshesPlane2D[m], cent ); - m_scalarVars.push_back( new VarInfo( meshvarname, m_scalarVarNames[i]->dataID, + m_scalarVars.push_back( new VarInfo( meshvarname, m_scalarVarNames[i]->varIndex, m_scalarVarNames[i]->varDim, m ) ); } } @@ -258,7 +268,7 @@ avtM3DFileFormat::PopulateDatabaseMetaData( avtDatabaseMetaData *md, int timeSta avtCentering cent = AVT_NODECENT; int vector_dim = m_vectorVarNames[i]->varDim; AddVectorVarToMetaData( md, meshvarname, m_meshes[m], cent, vector_dim ); - m_vectorVars.push_back( new VarInfo( meshvarname, m_vectorVarNames[i]->dataID, + m_vectorVars.push_back( new VarInfo( meshvarname, m_vectorVarNames[i]->varIndex, m_vectorVarNames[i]->varDim ) ); } @@ -273,7 +283,7 @@ avtM3DFileFormat::PopulateDatabaseMetaData( avtDatabaseMetaData *md, int timeSta avtCentering cent = AVT_NODECENT; int vector_dim = m_vectorVarNames[i]->varDim; AddVectorVarToMetaData( md, meshvarname, m_meshesPlane3D[m], cent, vector_dim ); - m_vectorVars.push_back( new VarInfo( meshvarname, m_vectorVarNames[i]->dataID, + m_vectorVars.push_back( new VarInfo( meshvarname, m_vectorVarNames[i]->varIndex, m_vectorVarNames[i]->varDim, m ) ); } @@ -286,7 +296,7 @@ avtM3DFileFormat::PopulateDatabaseMetaData( avtDatabaseMetaData *md, int timeSta avtCentering cent = AVT_NODECENT; int vector_dim = m_vectorVarNames[i]->varDim; AddVectorVarToMetaData( md, meshvarname, m_meshesPlane2D[m], cent, vector_dim ); - m_vectorVars.push_back( new VarInfo( meshvarname, m_vectorVarNames[i]->dataID, + m_vectorVars.push_back( new VarInfo( meshvarname, m_vectorVarNames[i]->varIndex, m_vectorVarNames[i]->varDim, m ) ); } } @@ -310,7 +320,7 @@ avtM3DFileFormat::PopulateDatabaseMetaData( avtDatabaseMetaData *md, int timeSta int tensor_dim = m_tensorVarNames[i]->varDim; avtCentering cent = AVT_NODECENT; AddTensorVarToMetaData( md, varname, m_meshes[m], cent, tensor_dim ); - m_tensorVars.push_back( new VarInfo( meshvarname, m_tensorVarNames[i]->dataID, + m_tensorVars.push_back( new VarInfo( meshvarname, m_tensorVarNames[i]->varIndex, m_tensorVarNames[i]->varDim ) ); } @@ -325,7 +335,7 @@ avtM3DFileFormat::PopulateDatabaseMetaData( avtDatabaseMetaData *md, int timeSta int tensor_dim = m_tensorVarNames[i]->varDim; avtCentering cent = AVT_NODECENT; AddTensorVarToMetaData( md, varname, m_meshesPlane3D[m], cent, tensor_dim ); - m_tensorVars.push_back( new VarInfo( meshvarname, m_tensorVarNames[i]->dataID, + m_tensorVars.push_back( new VarInfo( meshvarname, m_tensorVarNames[i]->varIndex, m_tensorVarNames[i]->varDim, m ) ); } @@ -338,7 +348,7 @@ avtM3DFileFormat::PopulateDatabaseMetaData( avtDatabaseMetaData *md, int timeSta int tensor_dim = m_tensorVarNames[i]->varDim; avtCentering cent = AVT_NODECENT; AddTensorVarToMetaData( md, varname, m_meshesPlane2D[m], cent, tensor_dim ); - m_tensorVars.push_back( new VarInfo( meshvarname, m_tensorVarNames[i]->dataID, + m_tensorVars.push_back( new VarInfo( meshvarname, m_tensorVarNames[i]->varIndex, m_tensorVarNames[i]->varDim, m ) ); } } @@ -374,6 +384,10 @@ avtM3DFileFormat::GetMesh( int timestate, int domain, const char *nm ) string meshname = nm; debug5 << "Reading in mesh " << meshname << " [domain, timestate] = " << domain << " " << timestate << endl; + if (m_fileID < 0) + m_fileID = H5Fopen(m_filename.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT); + if (m_fileID < 0) + EXCEPTION1(InvalidFilesException, m_filename.c_str()); // Look for a full mesh first. for ( size_t m = 0; m < m_meshes.size(); m++ ) @@ -384,7 +398,11 @@ avtM3DFileFormat::GetMesh( int timestate, int domain, const char *nm ) vtkUnstructuredGrid *grid = vtkUnstructuredGrid::New(); // Read in points. - hid_t dataID = m_coordIDs[ timestate ]; + char coordPath[512]; + sprintf(coordPath, "/time_coordinates[%d]/coordinates/values", timestate); + hid_t dataID = H5Dopen2(m_fileID, coordPath, H5P_DEFAULT); + if (dataID < 0) + EXCEPTION1(InvalidFilesException, m_filename.c_str()); hid_t spaceID = H5Dget_space( dataID ); hsize_t dims[10]; H5Sget_simple_extent_dims( spaceID, dims, NULL ); @@ -392,10 +410,16 @@ avtM3DFileFormat::GetMesh( int timestate, int domain, const char *nm ) vtkPoints *pts = vtkPoints::New(); pts->SetNumberOfPoints( dims[0] ); H5Dread( dataID, H5T_NATIVE_FLOAT, H5S_ALL, spaceID, H5P_DEFAULT, pts->GetVoidPointer(0) ); + H5Sclose(spaceID); + H5Dclose(dataID); //Read in connectivity. - dataID = m_cellInfo[domain]->id; - spaceID = H5Dget_space( dataID ); + char connPath[512]; + sprintf(connPath, "/cell_set[%d]/node_connect_list", m_cellInfo[domain]->cellSetIndex); + dataID = H5Dopen2(m_fileID, connPath, H5P_DEFAULT); + if (dataID < 0) + EXCEPTION1(InvalidFilesException, m_filename.c_str()); + spaceID = H5Dget_space(dataID); H5Sget_simple_extent_dims( spaceID, dims, NULL ); if ( dims[1] != 6 ) EXCEPTION2( UnexpectedValueException, "Expecting a wedge!", "Connectivity" ); @@ -404,6 +428,8 @@ avtM3DFileFormat::GetMesh( int timestate, int domain, const char *nm ) int *conn = new int[dims[0]*dims[1]]; H5Dread( dataID, H5T_NATIVE_INT, H5S_ALL, spaceID, H5P_DEFAULT, conn ); + H5Sclose(spaceID); + H5Dclose(dataID); int *ptr = conn; for ( size_t i = 0; i < dims[0]; i++ ) { @@ -433,23 +459,35 @@ avtM3DFileFormat::GetMesh( int timestate, int domain, const char *nm ) vtkUnstructuredGrid *grid = vtkUnstructuredGrid::New(); // Read in points. - hid_t dataID = m_coordIDs[ timestate ]; + char coordPath[512]; + sprintf(coordPath, "/time_coordinates[%d]/coordinates/values", timestate); + hid_t dataID = H5Dopen2(m_fileID, coordPath, H5P_DEFAULT); + if (dataID < 0) + EXCEPTION1(InvalidFilesException, m_filename.c_str()); hid_t spaceID = H5Dget_space( dataID ); hsize_t dims[10]; H5Sget_simple_extent_dims( spaceID, dims, NULL ); float *vals = new float[dims[0]*dims[1]]; H5Dread( dataID, H5T_NATIVE_FLOAT, H5S_ALL, spaceID, H5P_DEFAULT, vals ); + H5Sclose(spaceID); + H5Dclose(dataID); //Read in connectivity. - dataID = m_cellInfo[domain]->id; - spaceID = H5Dget_space( dataID ); + char connPath[512]; + sprintf(connPath, "/cell_set[%d]/node_connect_list", m_cellInfo[domain]->cellSetIndex); + dataID = H5Dopen2(m_fileID, connPath, H5P_DEFAULT); + if (dataID < 0) + EXCEPTION1(InvalidFilesException, m_filename.c_str()); + spaceID = H5Dget_space(dataID); H5Sget_simple_extent_dims( spaceID, dims, NULL ); if ( dims[1] != 6 ) EXCEPTION2( UnexpectedValueException, "Expecting a wedge!", "Connectivity" ); int *conn = new int[dims[0]*dims[1]]; H5Dread( dataID, H5T_NATIVE_INT, H5S_ALL, spaceID, H5P_DEFAULT, conn ); + H5Sclose(spaceID); + H5Dclose(dataID); int nPts = m_nNodes / m_nPlanes; vtkPoints *pts = vtkPoints::New(); @@ -489,22 +527,34 @@ avtM3DFileFormat::GetMesh( int timestate, int domain, const char *nm ) vtkUnstructuredGrid *grid = vtkUnstructuredGrid::New(); // Read in points. - hid_t dataID = m_coordIDs[ timestate ]; + char coordPath[512]; + sprintf(coordPath, "/time_coordinates[%d]/coordinates/values", timestate); + hid_t dataID = H5Dopen2(m_fileID, coordPath, H5P_DEFAULT); + if (dataID < 0) + EXCEPTION1(InvalidFilesException, m_filename.c_str()); hid_t spaceID = H5Dget_space( dataID ); hsize_t dims[10]; H5Sget_simple_extent_dims( spaceID, dims, NULL ); float *vals = new float[dims[0]*dims[1]]; H5Dread( dataID, H5T_NATIVE_FLOAT, H5S_ALL, spaceID, H5P_DEFAULT, vals ); + H5Sclose(spaceID); + H5Dclose(dataID); //Read in connectivity. - dataID = m_cellInfo[domain]->id; - spaceID = H5Dget_space( dataID ); + char connPath[512]; + sprintf(connPath, "/cell_set[%d]/node_connect_list", m_cellInfo[domain]->cellSetIndex); + dataID = H5Dopen2(m_fileID, connPath, H5P_DEFAULT); + if (dataID < 0) + EXCEPTION1(InvalidFilesException, m_filename.c_str()); + spaceID = H5Dget_space(dataID); H5Sget_simple_extent_dims( spaceID, dims, NULL ); if ( dims[1] != 6 ) EXCEPTION2( UnexpectedValueException, "Expecting a wedge!", "Connectivity" ); int *conn = new int[dims[0]*dims[1]]; H5Dread( dataID, H5T_NATIVE_INT, H5S_ALL, spaceID, H5P_DEFAULT, conn ); + H5Sclose(spaceID); + H5Dclose(dataID); int nPts = m_nNodes / m_nPlanes; vtkPoints *pts = vtkPoints::New(); @@ -576,24 +626,34 @@ avtM3DFileFormat::GetMesh( int timestate, int domain, const char *nm ) vtkDataArray * avtM3DFileFormat::GetVar( int timestate, int domain, const char *nm ) { - char values[512]; - sprintf( values, "/time_node_data[%d]/node_data[%d]/values", timestate, domain ); + (void) domain; + if (m_fileID < 0) + m_fileID = H5Fopen(m_filename.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT); + if (m_fileID < 0) + EXCEPTION1(InvalidFilesException, m_filename.c_str()); string varname = nm; for ( size_t i = 0; i < m_scalarVars.size(); i++ ) { if ( varname != m_scalarVars[i]->varName ) continue; - - hid_t dataID = m_scalarVars[i]->dataID; - H5Dopen( dataID, values ); - hid_t spaceID = H5Dget_space( dataID ); + char values[512]; + sprintf(values, "/time_node_data[%d]/node_data[%d]/values", + timestate, m_scalarVars[i]->varIndex); + + hid_t dataID = H5Dopen2(m_fileID, values, H5P_DEFAULT); + if (dataID < 0) + EXCEPTION1(InvalidVariableException, varname); + + hid_t spaceID = H5Dget_space(dataID); hsize_t dims[10]; H5Sget_simple_extent_dims( spaceID, dims, NULL ); float *vals = new float[dims[0]*dims[1]]; H5Dread( dataID, H5T_NATIVE_FLOAT, H5S_ALL, spaceID, H5P_DEFAULT, vals ); + H5Sclose(spaceID); + H5Dclose(dataID); vtkFloatArray *var = vtkFloatArray::New(); int nScalars = dims[0], offset = 0; @@ -607,9 +667,9 @@ avtM3DFileFormat::GetVar( int timestate, int domain, const char *nm ) var->SetNumberOfTuples( nScalars ); float *entry = &vals[offset]; - for ( int j = 0; j < nScalars; j++ ) + for (int j = 0; j < nScalars; j++) { - var->SetTuple1( j, vals[j] ); + var->SetTuple1(j, *entry); ++entry; } @@ -650,8 +710,11 @@ avtM3DFileFormat::GetVar( int timestate, int domain, const char *nm ) vtkDataArray * avtM3DFileFormat::GetVectorVar( int timestate, int domain, const char *nm ) { - char values[512]; - sprintf( values, "/time_node_data[%d]/node_data[%d]/values", timestate, domain ); + (void) domain; + if (m_fileID < 0) + m_fileID = H5Fopen(m_filename.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT); + if (m_fileID < 0) + EXCEPTION1(InvalidFilesException, m_filename.c_str()); string varname = nm; for ( size_t i = 0; i < m_vectorVars.size(); i++ ) @@ -659,15 +722,22 @@ avtM3DFileFormat::GetVectorVar( int timestate, int domain, const char *nm ) if ( varname != m_vectorVars[i]->varName ) continue; - hid_t dataID = m_vectorVars[i]->dataID; - H5Dopen( dataID, values ); + char values[512]; + sprintf(values, "/time_node_data[%d]/node_data[%d]/values", + timestate, m_vectorVars[i]->varIndex); - hid_t spaceID = H5Dget_space( dataID ); + hid_t dataID = H5Dopen2(m_fileID, values, H5P_DEFAULT); + if (dataID < 0) + EXCEPTION1(InvalidVariableException, varname); + + hid_t spaceID = H5Dget_space(dataID); hsize_t dims[10]; H5Sget_simple_extent_dims( spaceID, dims, NULL ); float *vals = new float[dims[0]*dims[1]]; H5Dread( dataID, H5T_NATIVE_FLOAT, H5S_ALL, spaceID, H5P_DEFAULT, vals ); + H5Sclose(spaceID); + H5Dclose(dataID); vtkFloatArray *var = vtkFloatArray::New(); int nVecs = dims[0], offset = 0; @@ -851,13 +921,13 @@ avtM3DFileFormat::LoadFile() debug1 << "Attempting to open M3D file " << m_filename << endl; // Init HDF5. H5open(); - H5Eset_auto( NULL, NULL ); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); - m_fileID = H5Fopen( m_filename.c_str(), 0, 0 ); + m_fileID = H5Fopen(m_filename.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT); if ( m_fileID < 0 ) EXCEPTION1( InvalidFilesException, m_filename.c_str() ); - hid_t rootID = H5Gopen( m_fileID, "/" ); + hid_t rootID = H5Gopen2(m_fileID, "/", H5P_DEFAULT); if ( rootID < 0 ) { H5Fclose(m_fileID); @@ -894,8 +964,8 @@ avtM3DFileFormat::LoadFile() delete [] times; //Read in planes information. - hid_t groupid = H5Gopen( m_fileID, "/planes" ); - hid_t dataid = H5Dopen( groupid, "values" ); + hid_t groupid = H5Gopen2(m_fileID, "/planes", H5P_DEFAULT); + hid_t dataid = H5Dopen2(groupid, "values", H5P_DEFAULT); hid_t dataspace = H5Dget_space( dataid ); H5Sselect_all( dataspace ); int planes[2]; @@ -927,62 +997,64 @@ avtM3DFileFormat::LoadFile() EXCEPTION2( UnexpectedValueException, "nnode_data", "Not found or wrong type" ); } - //Load basic info on variables. - for ( size_t t = 0; t < m_timeSteps.size(); t++ ) + // Load basic info on variables (from timestep 0). + for (int n = 0; n < m_nVars; n++) { - for ( int n = 0; n < m_nVars; n++ ) + char field[512], values[512]; + sprintf(field, "/time_node_data[0]/node_data[%d]", n); + sprintf(values, "%s/values", field); + + string labelStr; + hid_t labelID = H5Gopen2(m_fileID, field, H5P_DEFAULT); + if (labelID < 0 || !ReadStringAttribute(labelID, "labels", &labelStr)) { - char field[512], values[512]; - sprintf( field, "/time_node_data[%ld]/node_data[%d]", t, n ); - sprintf( values, "%s/values", field ); - - string labelStr; - hid_t labelID = H5Gopen( m_fileID, field ); - if ( ! ReadStringAttribute( labelID, "labels", &labelStr ) ) - EXCEPTION2( UnexpectedValueException, "Variable Label", "Not found or wrong type" ); - - string varName; - varName.assign( labelStr.c_str(), labelStr.find("," ) ); - hid_t dataID = H5Dopen( m_fileID, values ); - //hid_t clss = H5Tget_class( H5Dget_type( dataID ) ); - hid_t spaceID = H5Dget_space( dataID ); - int numDims = H5Sget_simple_extent_ndims( spaceID ); - hsize_t dimSize[10]; - H5Sget_simple_extent_dims( spaceID, dimSize, NULL ); - - int varDim = dimSize[numDims-1]; - debug1 << "Variable: " << varName << " of dimension " << varDim << endl; - - if ( varDim == 1 ) - m_scalarVarNames.push_back( new VarInfo( varName, dataID, varDim ) ); - else if ( varDim == 2 || varDim == 3 ) - m_vectorVarNames.push_back( new VarInfo( varName, dataID, varDim ) ); - else - m_tensorVarNames.push_back( new VarInfo( varName, dataID, varDim ) ); + if (labelID >= 0) + H5Gclose(labelID); + EXCEPTION2(UnexpectedValueException, "Variable Label", "Not found or wrong type"); } + H5Gclose(labelID); + + string varName; + varName.assign(labelStr.c_str(), labelStr.find(",")); + + hid_t dataID = H5Dopen2(m_fileID, values, H5P_DEFAULT); + if (dataID < 0) + EXCEPTION2(UnexpectedValueException, "Variable Dataset", "Not found"); + + hid_t spaceID = H5Dget_space(dataID); + int numDims = H5Sget_simple_extent_ndims(spaceID); + hsize_t dimSize[10]; + H5Sget_simple_extent_dims(spaceID, dimSize, NULL); + + int varDim = dimSize[numDims-1]; + debug1 << "Variable: " << varName << " of dimension " << varDim << endl; + + H5Sclose(spaceID); + H5Dclose(dataID); + + if (varDim == 1) + m_scalarVarNames.push_back(new VarInfo(varName, n, varDim)); + else if (varDim == 2 || varDim == 3) + m_vectorVarNames.push_back(new VarInfo(varName, n, varDim)); + else + m_tensorVarNames.push_back(new VarInfo(varName, n, varDim)); } - + + H5Gclose(rootID); + //Load mesh info. for ( int n = 0; n < m_nCellSets; n++ ) { char field[512]; sprintf( field, "/cell_set[%d]/node_connect_list", n ); - hid_t connectID = H5Dopen( m_fileID, field ); sprintf( field ,"/cell_set[%d]", n ); - hid_t groupid = H5Gopen( m_fileID, field ); + hid_t groupid = H5Gopen2(m_fileID, field, H5P_DEFAULT); int nCells; ReadAttribute( groupid, "ncells", &nCells ); + H5Gclose(groupid); - m_cellInfo.push_back( new CellInfo( connectID, nCells ) ); - } - - for ( size_t t = 0; t < m_timeSteps.size(); t++ ) - { - char values[512]; - sprintf( values, "/time_coordinates[%ld]/coordinates/values", t ); - hid_t coordID = H5Dopen( m_fileID, values ); - m_coordIDs.push_back( coordID ); + m_cellInfo.push_back(new CellInfo(n, nCells)); } // Finally, calculate the angular spacing of each plane. @@ -1076,14 +1148,25 @@ void avtM3DFileFormat::CalcPlaneAngularSpacing() { // Find the normal of the first plane. - hid_t dataID = m_coordIDs[0]; - hid_t spaceID = H5Dget_space( dataID ); + if (m_fileID < 0) + m_fileID = H5Fopen(m_filename.c_str(), H5F_ACC_RDONLY, H5P_DEFAULT); + if (m_fileID < 0) + EXCEPTION1(InvalidFilesException, m_filename.c_str()); + + char coordPath[512]; + sprintf(coordPath, "/time_coordinates[0]/coordinates/values"); + hid_t dataID = H5Dopen2(m_fileID, coordPath, H5P_DEFAULT); + if (dataID < 0) + EXCEPTION1(InvalidFilesException, m_filename.c_str()); + hid_t spaceID = H5Dget_space(dataID); hsize_t dims[10]; H5Sget_simple_extent_dims( spaceID, dims, NULL ); float *vals = new float[dims[0]*dims[1]]; H5Dread( dataID, H5T_NATIVE_FLOAT, H5S_ALL, spaceID, H5P_DEFAULT, vals ); + H5Sclose(spaceID); + H5Dclose(dataID); vector planes; int nPts = m_nNodes / m_nPlanes; @@ -1174,4 +1257,3 @@ avtM3DFileFormat::GetTimes(vector &outTimes) { outTimes = m_timeSteps; } - diff --git a/src/databases/M3D/avtM3DFileFormat.h b/src/databases/M3D/avtM3DFileFormat.h index 2d8165a6dfc..20a881b1a4c 100644 --- a/src/databases/M3D/avtM3DFileFormat.h +++ b/src/databases/M3D/avtM3DFileFormat.h @@ -9,12 +9,6 @@ #ifndef AVT_M3D_FILE_FORMAT_H #define AVT_M3D_FILE_FORMAT_H -// Define this symbol BEFORE including hdf5.h to indicate the HDF5 code -// in this file uses version 1.6 of the HDF5 API. This is harmless for -// versions of HDF5 before 1.8 and ensures correct compilation with -// version 1.8 and thereafter. When, and if, the HDF5 code in this file -// is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include #include @@ -36,13 +30,13 @@ class VarInfo { public: VarInfo() - { varName = ""; varDim = -1; dataID = -1; planeIdx = -1; } - VarInfo( std::string &nm, hid_t id, int dim, int idx=-1 ) - { varName = nm; dataID = id; varDim = dim; planeIdx = idx; } + { varName = ""; varDim = -1; varIndex = -1; planeIdx = -1; } + VarInfo( std::string &nm, int idx, int dim, int planeIdx_=-1 ) + { varName = nm; varIndex = idx; varDim = dim; planeIdx = planeIdx_; } std::string varName; int varDim, planeIdx; - hid_t dataID; + int varIndex; }; // **************************************************************************** @@ -58,10 +52,11 @@ class VarInfo class CellInfo { public: - CellInfo() { id = -1; numCells = -1; } - CellInfo( int i, int n ) { id = i; numCells = n; } + CellInfo() { cellSetIndex = -1; numCells = -1; } + CellInfo(int i, int n) { cellSetIndex = i; numCells = n; } - int id, numCells; + int cellSetIndex; + int numCells; }; @@ -126,7 +121,6 @@ class avtM3DFileFormat : public avtMTMDFileFormat bool m_vValidFile; std::string m_filename; std::string m_XPClassStr, m_Plane3DString, m_Plane2DString, m_FullString; - std::vector m_coordIDs; std::vector m_timeSteps; std::vector m_cellInfo; std::vector m_scalarVarNames, m_vectorVarNames, m_tensorVarNames; diff --git a/src/databases/M3DC1/avtM3DC1FileFormat.C b/src/databases/M3DC1/avtM3DC1FileFormat.C index 1354956c5f9..4968fece20e 100644 --- a/src/databases/M3DC1/avtM3DC1FileFormat.C +++ b/src/databases/M3DC1/avtM3DC1FileFormat.C @@ -491,7 +491,7 @@ avtM3DC1FileFormat::GetElements(int timestate, const char *meshname) "Element '" + std::string(meshStr) + "' was not found." ); // Open the group. - hid_t meshId = H5Gopen( m_fileID, meshStr, H5P_DEFAULT); + hid_t meshId = H5Gopen2( m_fileID, meshStr, H5P_DEFAULT); if ( meshId < 0 ) EXCEPTION2( NonCompliantException, "M3DC1 Group Open", "Group '" + std::string(meshStr) + "' was not found." ); @@ -507,7 +507,7 @@ avtM3DC1FileFormat::GetElements(int timestate, const char *meshname) "Time step 'nelms' does not match equilibrium 'nelms'" ); // Open the dataset and space info for the elements. - hid_t datasetId = H5Dopen(meshId, "elements", H5P_DEFAULT); + hid_t datasetId = H5Dopen2(meshId, "elements", H5P_DEFAULT); hid_t spaceId = H5Dget_space(datasetId); size_t rank = H5Sget_simple_extent_ndims(spaceId); std::vector sdim(rank); @@ -1074,7 +1074,7 @@ avtM3DC1FileFormat::GetHeaderVar(int timestate, const char *varname) vtkDataArray * dataArray = NULL; ///TODO: check on fix for uninitialized warning // Header variables are at the top level group. - hid_t rootID = H5Gopen( m_fileID, "/", H5P_DEFAULT); + hid_t rootID = H5Gopen2( m_fileID, "/", H5P_DEFAULT); if ( rootID < 0 ) EXCEPTION2( NonCompliantException, "M3DC1 Group Open", "The root group '/' was not found" ); @@ -1233,13 +1233,13 @@ avtM3DC1FileFormat::GetFieldVar(int timestate, const char *varname) } // Open the group. - hid_t groupId = H5Gopen( m_fileID, groupStr, H5P_DEFAULT); + hid_t groupId = H5Gopen2( m_fileID, groupStr, H5P_DEFAULT); if ( groupId < 0 ) EXCEPTION2( NonCompliantException, "M3DC1 Group Open", "Group '" + std::string(groupStr) + "' was not found" ); // Open the field dataset - hid_t datasetId = H5Dopen(groupId, varStr, H5P_DEFAULT); + hid_t datasetId = H5Dopen2(groupId, varStr, H5P_DEFAULT); if ( datasetId < 0 ) EXCEPTION2( NonCompliantException, "M3DC1 Dataset Open", "Dataset '" + std::string(varStr) + "' was not found" ); @@ -1589,7 +1589,7 @@ avtM3DC1FileFormat::GetVectorVar(int timestate, const char *varname) avtM3DC1Field m3dField(elements, nelms, element_dimension, nplanes); // Header variables are at the top level group. - hid_t rootID = H5Gopen( m_fileID, "/", H5P_DEFAULT); + hid_t rootID = H5Gopen2( m_fileID, "/", H5P_DEFAULT); if ( rootID < 0 ) EXCEPTION2( NonCompliantException, "M3DC1 Group Open", "The root group '/' was not found" ); @@ -2134,22 +2134,23 @@ avtM3DC1FileFormat::linkIterator(hid_t locId, const char* name, herr_t avtM3DC1FileFormat::groupIterator(hid_t locId, const char* name, void* opdata) { - avtM3DC1FileFormat* M3DC1FF = static_cast< avtM3DC1FileFormat* >(opdata); + avtM3DC1FileFormat* M3DC1FF = static_cast< avtM3DC1FileFormat* >(opdata); - H5G_stat_t statbuf; - H5Gget_objinfo (locId, name, true, &statbuf); + H5O_info_t objInfo; + if (H5Oget_info_by_name(locId, name, &objInfo, H5P_DEFAULT) < 0) + return 0; - switch (statbuf.type) { + switch (objInfo.type) { - case H5G_DATASET: { - hid_t datasetId = H5Dopen(locId, name, H5P_DEFAULT); - hid_t spaceId = H5Dget_space(datasetId); - size_t rank = H5Sget_simple_extent_ndims(spaceId); - std::vector sdim(rank); - H5Sget_simple_extent_dims(spaceId, &sdim[0], NULL); + case H5O_TYPE_DATASET: { + hid_t datasetId = H5Dopen2(locId, name, H5P_DEFAULT); + hid_t spaceId = H5Dget_space(datasetId); + int rank = H5Sget_simple_extent_ndims(spaceId); + std::vector sdim(rank); + H5Sget_simple_extent_dims(spaceId, &sdim[0], NULL); - H5Dclose(spaceId); - H5Dclose(datasetId); + H5Sclose(spaceId); + H5Dclose(datasetId); if( rank != 2 || (size_t)sdim[0] != M3DC1FF->nelms || @@ -2191,13 +2192,13 @@ avtM3DC1FileFormat::groupIterator(hid_t locId, const char* name, void* opdata) { // Close all open ids when returning an exception. // **************************************************************************** void -avtM3DC1FileFormat::LoadFile() -{ - debug1 << "Attempting to open M3D C1 file " << m_filename << std::endl; + avtM3DC1FileFormat::LoadFile() + { + debug1 << "Attempting to open M3D C1 file " << m_filename << std::endl; - // Init HDF5 and turn off error message printing. - H5open(); - H5Eset_auto( 0, NULL, NULL ); ///TODO: 1st arg should not be NULL + // Init HDF5 and turn off error message printing. + H5open(); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); // Check for a valid M3D C1 file if( H5Fis_hdf5( m_filename.c_str() ) < 0 ) @@ -2208,7 +2209,7 @@ avtM3DC1FileFormat::LoadFile() EXCEPTION1( InvalidFilesException, m_filename.c_str() ); // Root group - hid_t rootID = H5Gopen( m_fileID, "/", H5P_DEFAULT); + hid_t rootID = H5Gopen2(m_fileID, "/", H5P_DEFAULT); if ( rootID < 0 ) { H5Fclose(m_fileID); @@ -2326,7 +2327,7 @@ avtM3DC1FileFormat::LoadFile() // EQUILIBRIUM // Read in equilibrium mesh element information. - hid_t groupId = H5Gopen( m_fileID, "/equilibrium/mesh", H5P_DEFAULT); + hid_t groupId = H5Gopen2( m_fileID, "/equilibrium/mesh", H5P_DEFAULT); if ( groupId < 0 ) { H5Fclose(m_fileID); @@ -2337,13 +2338,13 @@ avtM3DC1FileFormat::LoadFile() if ( ! ReadAttribute( groupId, "nelms", &nelms ) ) EXCEPTION1( InvalidVariableException, "M3DC1 Attribute Reader - 'nelms' was not found or was the wrong type." ); - hid_t datasetId = H5Dopen(groupId, "elements", H5P_DEFAULT); + hid_t datasetId = H5Dopen2(groupId, "elements", H5P_DEFAULT); hid_t spaceId = H5Dget_space(datasetId); size_t rank = H5Sget_simple_extent_ndims(spaceId); std::vector sdim(rank); H5Sget_simple_extent_dims(spaceId, &sdim[0], NULL); - H5Dclose(spaceId); + H5Sclose(spaceId); H5Dclose(datasetId); if( rank != 2 || @@ -2356,7 +2357,7 @@ avtM3DC1FileFormat::LoadFile() H5Gclose( groupId ); // Read in equilibrium field information. - groupId = H5Gopen( m_fileID, "/equilibrium/fields", H5P_DEFAULT); + groupId = H5Gopen2( m_fileID, "/equilibrium/fields", H5P_DEFAULT); if ( groupId < 0 ) { EXCEPTION1( InvalidVariableException, "M3DC1 Group Open - '/equilibrium/fields' was not found" ); @@ -2385,7 +2386,7 @@ avtM3DC1FileFormat::LoadFile() char timeStep[64]; sprintf( timeStep, "/time_%03d", t ); - hid_t groupID = H5Gopen( m_fileID, timeStep, H5P_DEFAULT); + hid_t groupID = H5Gopen2( m_fileID, timeStep, H5P_DEFAULT); if ( groupID < 0 ) { char buf[1024]; @@ -2420,7 +2421,7 @@ avtM3DC1FileFormat::LoadFile() m_cycles.push_back( t ); // Read in the mesh information. - hid_t meshId = H5Gopen( groupID, "mesh", H5P_DEFAULT); + hid_t meshId = H5Gopen2( groupID, "mesh", H5P_DEFAULT); int nElements; if ( ! ReadAttribute( meshId, "nelms", &nElements ) ) @@ -2431,13 +2432,13 @@ avtM3DC1FileFormat::LoadFile() EXCEPTION1( InvalidVariableException, "M3DC1 Element Check - Time step 'nelms' does not match equilibrium 'nelms'" ); - hid_t datasetId = H5Dopen(meshId, "elements", H5P_DEFAULT); + hid_t datasetId = H5Dopen2(meshId, "elements", H5P_DEFAULT); hid_t spaceId = H5Dget_space(datasetId); size_t rank = H5Sget_simple_extent_ndims(spaceId); std::vector sdim(rank); H5Sget_simple_extent_dims(spaceId, &sdim[0], NULL); - H5Dclose(spaceId); + H5Sclose(spaceId); H5Dclose(datasetId); if( rank != 2 || @@ -2451,7 +2452,7 @@ avtM3DC1FileFormat::LoadFile() // Read in the field information. - hid_t fieldID = H5Gopen( groupID, "fields", H5P_DEFAULT); + hid_t fieldID = H5Gopen2( groupID, "fields", H5P_DEFAULT); if ( fieldID < 0 ) EXCEPTION1( InvalidVariableException, "M3DC1 Group Open - 'fields' was not found" ); @@ -2464,7 +2465,7 @@ avtM3DC1FileFormat::LoadFile() for ( size_t i=0; i sdim(rank); H5Sget_simple_extent_dims(spaceId, &sdim[0], NULL); - H5Dclose(spaceId); + H5Sclose(spaceId); H5Dclose(datasetId); if( rank != 2 || diff --git a/src/databases/PFLOTRAN/avtPFLOTRANFileFormat.C b/src/databases/PFLOTRAN/avtPFLOTRANFileFormat.C index 48e2cb544d5..c29b66d0627 100644 --- a/src/databases/PFLOTRAN/avtPFLOTRANFileFormat.C +++ b/src/databases/PFLOTRAN/avtPFLOTRANFileFormat.C @@ -89,7 +89,7 @@ avtPFLOTRANFileFormat::avtPFLOTRANFileFormat(const char *fname): oldFileNeedingCoordFixup = false; // Turn off HDF5 error messages to the terminal. - H5Eset_auto(NULL, NULL); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); } // **************************************************************************** @@ -237,14 +237,14 @@ avtPFLOTRANFileFormat::LoadFile(void) } // Check more mesh structure - hid_t coordsGID = H5Gopen(fileID, "Coordinates"); + hid_t coordsGID = H5Gopen2(fileID, "Coordinates", H5P_DEFAULT); if (coordsGID >= 0) { // We have coordinates; it's structured. // Pull out the mesh dimensions while we're at it. for (int dim=0;dim<3;dim++) { - dimID[dim] = H5Dopen(coordsGID, coordNames[dim].c_str()); + dimID[dim] = H5Dopen2(coordsGID, coordNames[dim].c_str(), H5P_DEFAULT); if (dimID[dim] < 0) { H5Gclose(coordsGID); @@ -278,7 +278,7 @@ avtPFLOTRANFileFormat::LoadFile(void) else { // No coordinates. could it be an unstructured grid? - hid_t domainGID = H5Gopen(fileID, "Domain"); + hid_t domainGID = H5Gopen2(fileID, "Domain", H5P_DEFAULT); if (domainGID < 0) { H5Fclose(fileID); @@ -286,8 +286,8 @@ avtPFLOTRANFileFormat::LoadFile(void) EXCEPTION1(InvalidDBTypeException, "Cannot be a PFLOTRAN file since it does not have a top-level Coordinates or Domain group."); } - cellsID = H5Dopen(domainGID, "Cells"); - vertsID = H5Dopen(domainGID, "Vertices"); + cellsID = H5Dopen2(domainGID, "Cells", H5P_DEFAULT); + vertsID = H5Dopen2(domainGID, "Vertices", H5P_DEFAULT); if (cellsID < 0 || vertsID < 0) { if (cellsID >= 0) @@ -655,7 +655,7 @@ avtPFLOTRANFileFormat::PopulateDatabaseMetaData(avtDatabaseMetaData * md, md->Add(mesh); // Look in the timestep for the list of variables. - hid_t timeGID = H5Gopen(fileID, times[timeState].second.c_str()); + hid_t timeGID = H5Gopen2(fileID, times[timeState].second.c_str(), H5P_DEFAULT); hsize_t nObjs; H5Gget_num_objs(timeGID, &nObjs); for(size_t i=0;i #include diff --git a/src/databases/Pixie/avtPixieFileFormat.C b/src/databases/Pixie/avtPixieFileFormat.C index 8c0a4d02ef0..d5d7d55b54f 100644 --- a/src/databases/Pixie/avtPixieFileFormat.C +++ b/src/databases/Pixie/avtPixieFileFormat.C @@ -36,12 +36,6 @@ #include #include -// Define this symbol BEFORE including hdf5.h to indicate the HDF5 code -// in this file uses version 1.6 of the HDF5 API. This is harmless for -// versions of HDF5 before 1.8 and ensures correct compilation with -// version 1.8 and thereafter. When, and if, the HDF5 code in this file -// is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include #include #include @@ -56,7 +50,7 @@ // static void DetectSilo(int fileId) { - hid_t siloDir = H5Gopen(fileId, ".silo"); + hid_t siloDir = H5Gopen2(fileId, ".silo", H5P_DEFAULT); if (siloDir >= 0) { H5Gclose(siloDir); @@ -68,7 +62,7 @@ static void DetectSilo(int fileId) static void DetectTetrad(int fileId) { - hid_t cell_array = H5Dopen(fileId, "CellArray"); + hid_t cell_array = H5Dopen2(fileId, "CellArray", H5P_DEFAULT); if (cell_array >= 0) { H5Dclose(cell_array); @@ -80,7 +74,7 @@ static void DetectTetrad(int fileId) static void DetectPFLOTRAN(int fileId) { - hid_t coordsGID = H5Gopen(fileId, "Coordinates"); + hid_t coordsGID = H5Gopen2(fileId, "Coordinates", H5P_DEFAULT); if (coordsGID >= 0) { H5Gclose(coordsGID); @@ -92,7 +86,7 @@ static void DetectPFLOTRAN(int fileId) static void DetectUNIC(int fileId) { - hid_t control = H5Dopen(fileId, "CONTROL"); + hid_t control = H5Dopen2(fileId, "CONTROL", H5P_DEFAULT); if (control >= 0) { H5Dclose(control); @@ -104,7 +98,7 @@ static void DetectUNIC(int fileId) static void DetectVisSchema(int fileId) { - hid_t runInfo = H5Gopen(fileId, "runInfo"); + hid_t runInfo = H5Gopen2(fileId, "runInfo", H5P_DEFAULT); if (runInfo >= 0) { hid_t vsVersion = H5Aopen_name(runInfo, "vsVersion"); @@ -147,7 +141,7 @@ static void DetectTyphonIO(int fileId) // //See if file is TyphonIO[v0] format // - hid_t tio_root = H5Gopen(fileId, "/"); + hid_t tio_root = H5Gopen2(fileId, "/", H5P_DEFAULT); hid_t tio_version = H5Aopen_name(tio_root, "TIO_version_major"); if (tio_version >= 0) { @@ -158,7 +152,7 @@ static void DetectTyphonIO(int fileId) "Cannot be a Pixie file because it looks like a TyphonIO file."); } if (tio_root >= 0) H5Gclose(tio_root); - hid_t tio_info = H5Gopen(fileId, "/TyphonIO_FileInfo"); + hid_t tio_info = H5Gopen2(fileId, "/TyphonIO_FileInfo", H5P_DEFAULT); if (tio_info >= 0) { H5Gclose(tio_info); @@ -211,7 +205,7 @@ avtPixieFileFormat::avtPixieFileFormat(const char *filename, const DBOptionsAttr } // Turn off error message printing. - H5Eset_auto(0,0); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); } // **************************************************************************** @@ -476,8 +470,8 @@ avtPixieFileFormat::Initialize() } // Populate the scalar variable list - hid_t gid; - if ((gid = H5Gopen(fileId, "/")) < 0) + hid_t gid = H5Gopen2(fileId, "/", H5P_DEFAULT); + if (gid < 0) { H5Fclose(fileId); EXCEPTION1(InvalidFilesException, (const char *)filenames[0]); @@ -498,8 +492,8 @@ avtPixieFileFormat::Initialize() // links. As such, code is in place to do this. // Iterate over the items in this group. - H5Giterate(fileId, "/", NULL, GetVariableList, (void*)&info); -// H5Literate(fileId, H5_INDEX_NAME, H5_ITER_INC, 0, VisitLinks, (void*)&info); + hsize_t idx = 0; + H5Literate(gid, H5_INDEX_NAME, H5_ITER_INC, &idx, VisitLinks, (void*)&info); H5Gclose(gid); // Tag any coordinates as isCoord. @@ -534,7 +528,7 @@ avtPixieFileFormat::Initialize() // Look for expressions dataset // hid_t expid; - if ((expid = H5Dopen(fileId,"/visit_expressions")) >= 0) + if ((expid = H5Dopen2(fileId, "/visit_expressions", H5P_DEFAULT)) >= 0) { // examine size, dimensionality and type of the dataspace hid_t spid = H5Dget_space(expid); @@ -1708,9 +1702,9 @@ avtPixieFileFormat::ReadVariableFromFile(int timestate, const std::string &varna // debug4 << "avtPixieFileFormat::ReadVariableFromFile: Trying to open data: " << fileVar.c_str() << endl; - hid_t dataId = H5Dopen(fileId, fileVar.c_str()); + hid_t dataId = H5Dopen2(fileId, fileVar.c_str(), H5P_DEFAULT); if(dataId < 0) // try stripping leading slash - dataId = H5Dopen(fileId, std::string(fileVar,1).c_str()); + dataId = H5Dopen2(fileId, std::string(fileVar,1).c_str(), H5P_DEFAULT); if(dataId < 0) { EXCEPTION1(InvalidVariableException, varname); @@ -1982,10 +1976,10 @@ avtPixieFileFormat::VisitLinks(hid_t locId, const char* name, switch(objinfo.type) { case H5O_TYPE_GROUP: - return GetVariableList( locId, name, opdata ); + return GetVariableList(locId, name, linfo, opdata); break; case H5O_TYPE_DATASET: - return GetVariableList( locId, name, opdata ); + return GetVariableList(locId, name, linfo, opdata); break; default: @@ -2045,10 +2039,10 @@ avtPixieFileFormat::VisitLinks(hid_t locId, const char* name, switch(objinfo.type) { case H5O_TYPE_GROUP: - return GetVariableList( locId, name, opdata ); + return GetVariableList(locId, name, linfo, opdata); break; case H5O_TYPE_DATASET: - return GetVariableList( locId, name, opdata ); + return GetVariableList(locId, name, linfo, opdata); break; default: @@ -2121,7 +2115,7 @@ avtPixieFileFormat::VisitLinks(hid_t locId, const char* name, herr_t avtPixieFileFormat::GetVariableList(hid_t group, const char *name, - void *op_data) + const H5L_info_t *, void *op_data) { // Silo files have a ".." group. Don't process that.... Ideally we // might detect and skip hard links, but this doesn't come up often. @@ -2129,7 +2123,6 @@ avtPixieFileFormat::GetVariableList(hid_t group, const char *name, return 0; hid_t obj; - H5G_stat_t statbuf; // // Create a variable name that includes the path and the current @@ -2144,16 +2137,17 @@ avtPixieFileFormat::GetVariableList(hid_t group, const char *name, // // Get information about the object so we know if it is a dataset, // group, type, etc. - // changed 3rd argument to 1 to allow external links. Jean@cscs - H5Gget_objinfo(group, name, 1, &statbuf); + H5O_info_t objInfo; + if (H5Oget_info_by_name(group, name, &objInfo, H5P_DEFAULT) < 0) + return 0; // // Do something with the object based on its type. // - switch (statbuf.type) + switch (objInfo.type) { - case H5G_DATASET: - if ((obj = H5Dopen(group, name)) >= 0) + case H5O_TYPE_DATASET: + if ((obj = H5Dopen2(group, name, H5P_DEFAULT)) >= 0) { VarInfo varInfo; varInfo.fileVarName = varName; @@ -2299,7 +2293,7 @@ avtPixieFileFormat::GetVariableList(hid_t group, const char *name, debug4 << "unable to get dataset " << name << endl; } break; - case H5G_GROUP: + case H5O_TYPE_GROUP: // We found a time state, increment the number of time states. if(info->level == 0 && varName.find("Timestep") != std::string::npos) { @@ -2321,7 +2315,7 @@ avtPixieFileFormat::GetVariableList(hid_t group, const char *name, info->This->haveMeshCoords = true; } - if ((obj = H5Gopen(group, name)) >= 0) + if ((obj = H5Gopen2(group, name, H5P_DEFAULT)) >= 0) { TraversalInfo info2; info2.This = info->This; @@ -2422,8 +2416,8 @@ avtPixieFileFormat::GetVariableList(hid_t group, const char *name, // do this. // Iterate over the items in this group. - H5Giterate(obj, ".", NULL, GetVariableList, (void*)&info2); -// H5Literate(obj, H5_INDEX_NAME, H5_ITER_INC, 0, VisitLinks, (void*)&info); + hsize_t idx = 0; + H5Literate(obj, H5_INDEX_NAME, H5_ITER_INC, &idx, VisitLinks, (void*)&info2); H5Gclose(obj); } else diff --git a/src/databases/Pixie/avtPixieFileFormat.h b/src/databases/Pixie/avtPixieFileFormat.h index 21e4c2d0da1..9856fa1c271 100644 --- a/src/databases/Pixie/avtPixieFileFormat.h +++ b/src/databases/Pixie/avtPixieFileFormat.h @@ -14,12 +14,6 @@ class DBOptionsAttributes; -// Define this symbol BEFORE including hdf5.h to indicate the HDF5 code -// in this file uses version 1.6 of the HDF5 API. This is harmless for -// versions of HDF5 before 1.8 and ensures correct compilation with -// version 1.8 and thereafter. When, and if, the HDF5 code in this file -// is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include #include #include @@ -165,7 +159,7 @@ class avtPixieFileFormat : public avtMTSDFileFormat std::vector time_val; static herr_t VisitLinks(hid_t, const char *, const H5L_info_t *, void *); - static herr_t GetVariableList(hid_t, const char *, void *); + static herr_t GetVariableList(hid_t, const char *, const H5L_info_t *, void *); PixieDBOptions::PartitioningDirection partitioning; bool duplicateData; diff --git a/src/databases/SAMRAI/avtSAMRAIFileFormat.C b/src/databases/SAMRAI/avtSAMRAIFileFormat.C index b0fde02bcaf..95a9033bd04 100644 --- a/src/databases/SAMRAI/avtSAMRAIFileFormat.C +++ b/src/databases/SAMRAI/avtSAMRAIFileFormat.C @@ -65,7 +65,6 @@ // versions of HDF5 before 1.8 and ensures correct compilation with // version 1.8 and thereafter. When, and if, the HDF5 code in this file // is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include #include @@ -107,7 +106,7 @@ avtSAMRAIFileFormat::InitializeHDF5(void) { debug5 << "Initializing HDF5 Library" << endl; H5open(); - H5Eset_auto(NULL, NULL); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); } // **************************************************************************** @@ -1175,7 +1174,7 @@ avtSAMRAIFileFormat::ReadVar(int patch, patch_map[patch].patch_number, var_name.c_str(), offset); } - hid_t h5d_variable = H5Dopen(h5f_file, variable); + hid_t h5d_variable = H5Dopen2(h5f_file, variable, H5P_DEFAULT); if (h5d_variable < 0) { EXCEPTION1(InvalidFilesException, file); @@ -1218,7 +1217,7 @@ avtSAMRAIFileFormat::ReadVar(int patch, // // Ok, now read any material-specific fractional values for this component // - hid_t h5d_mixvar = H5Dopen(h5f_file, mixvar); + hid_t h5d_mixvar = H5Dopen2(h5f_file, mixvar, H5P_DEFAULT); if (h5d_mixvar < 0) continue; @@ -1349,7 +1348,7 @@ avtSAMRAIFileFormat::ReadMatSpecFractions(int patch, string mat_name, EXCEPTION1(InvalidFilesException, file); } - hid_t h5d_variable = H5Dopen(h5f_file, variable); + hid_t h5d_variable = H5Dopen2(h5f_file, variable, H5P_DEFAULT); if (h5d_variable < 0) { EXCEPTION1(InvalidFilesException, file); @@ -3068,7 +3067,7 @@ avtSAMRAIFileFormat::ReadTime(hid_t &h5_file) void avtSAMRAIFileFormat::ReadAndCheckVDRVersion(hid_t &h5_file) { - hid_t h5_dataset = H5Dopen(h5_file,"/BASIC_INFO/VDR_version_number"); + hid_t h5_dataset = H5Dopen2(h5_file, "/BASIC_INFO/VDR_version_number", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/VDR_version_number does not exist. Unable " @@ -3251,7 +3250,7 @@ avtSAMRAIFileFormat::ReadDX(hid_t &h5_file) void avtSAMRAIFileFormat::ReadNumPatches(hid_t &h5_file) { - hid_t h5_dataset = H5Dopen(h5_file, "/BASIC_INFO/number_global_patches"); + hid_t h5_dataset = H5Dopen2(h5_file, "/BASIC_INFO/number_global_patches", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/number_global_patches", file_name.c_str()); @@ -3280,7 +3279,7 @@ avtSAMRAIFileFormat::ReadNumPatches(hid_t &h5_file) void avtSAMRAIFileFormat::ReadNumPatchesLevel(hid_t &h5_file) { - hid_t h5_dataset = H5Dopen(h5_file,"/BASIC_INFO/number_patches_at_level"); + hid_t h5_dataset = H5Dopen2(h5_file, "/BASIC_INFO/number_patches_at_level", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/number_patches_at_level", @@ -3312,8 +3311,8 @@ avtSAMRAIFileFormat::ReadNumPatchesLevel(hid_t &h5_file) void avtSAMRAIFileFormat::ReadRatiosCoarserLevels(hid_t &h5_file) { - hid_t h5_dataset = H5Dopen(h5_file, - "/BASIC_INFO/ratios_to_coarser_levels"); + hid_t h5_dataset = H5Dopen2(h5_file, + "/BASIC_INFO/ratios_to_coarser_levels", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/ratios_to_coarser_levels", @@ -3345,7 +3344,7 @@ avtSAMRAIFileFormat::ReadRatiosCoarserLevels(hid_t &h5_file) void avtSAMRAIFileFormat::ReadNumClusters(hid_t &h5_file) { - hid_t h5_dataset = H5Dopen(h5_file, "/BASIC_INFO/number_file_clusters"); + hid_t h5_dataset = H5Dopen2(h5_file, "/BASIC_INFO/number_file_clusters", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/number_file_clusters", @@ -3375,7 +3374,7 @@ avtSAMRAIFileFormat::ReadNumClusters(hid_t &h5_file) void avtSAMRAIFileFormat::ReadNumProcessors(hid_t &h5_file) { - hid_t h5_dataset = H5Dopen(h5_file, "/BASIC_INFO/number_processors"); + hid_t h5_dataset = H5Dopen2(h5_file, "/BASIC_INFO/number_processors", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/number_processors", file_name.c_str()); @@ -3404,7 +3403,7 @@ avtSAMRAIFileFormat::ReadNumProcessors(hid_t &h5_file) void avtSAMRAIFileFormat::ReadNumVariables(hid_t &h5_file) { - hid_t h5_dataset = H5Dopen(h5_file, "/BASIC_INFO/number_visit_variables"); + hid_t h5_dataset = H5Dopen2(h5_file, "/BASIC_INFO/number_visit_variables", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/number_visit_variables", @@ -3437,7 +3436,7 @@ avtSAMRAIFileFormat::ReadVarCellCentered(hid_t &h5_file) if (num_vars <= 0) return; - hid_t h5_dataset = H5Dopen(h5_file, "/BASIC_INFO/var_cell_centered"); + hid_t h5_dataset = H5Dopen2(h5_file, "/BASIC_INFO/var_cell_centered", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/var_cell_centered", file_name.c_str()); @@ -3468,7 +3467,7 @@ avtSAMRAIFileFormat::ReadVarCellCentered(hid_t &h5_file) void avtSAMRAIFileFormat::ReadGridType(hid_t &h5_file) { - hid_t h5_dataset = H5Dopen(h5_file, "/BASIC_INFO/grid_type"); + hid_t h5_dataset = H5Dopen2(h5_file, "/BASIC_INFO/grid_type", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/grid_type", file_name.c_str()); @@ -3680,7 +3679,7 @@ avtSAMRAIFileFormat::ReadVarExtents(hid_t &h5_file) char ds_name[50]; sprintf(ds_name, "/extents/%s-Extents", var_names[v].c_str()); - hid_t h5_dataset = H5Dopen(h5_file, ds_name); + hid_t h5_dataset = H5Dopen2(h5_file, ds_name, H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::%s", file_name.c_str(), ds_name); @@ -3699,7 +3698,7 @@ avtSAMRAIFileFormat::ReadVarExtents(hid_t &h5_file) sprintf(ds_name, "/extents/%s.%02d-Extents", var_names[v].c_str(), c); - hid_t h5_dataset = H5Dopen(h5_file, ds_name); + hid_t h5_dataset = H5Dopen2(h5_file, ds_name, H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::%s", file_name.c_str(), ds_name); @@ -3739,7 +3738,7 @@ avtSAMRAIFileFormat::ReadVarExtents(hid_t &h5_file) void avtSAMRAIFileFormat::ReadPatchExtents(hid_t &h5_file) { - hid_t h5_dataset = H5Dopen(h5_file, "/extents/patch_extents"); + hid_t h5_dataset = H5Dopen2(h5_file, "/extents/patch_extents", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/extents/patch_extents", file_name.c_str()); @@ -3749,10 +3748,10 @@ avtSAMRAIFileFormat::ReadPatchExtents(hid_t &h5_file) patch_extents = new patch_extents_t[num_patches]; hsize_t dim[] = {3}; - hid_t h5_lower_datatype = H5Tarray_create(H5T_NATIVE_INT, 1, dim, NULL); - hid_t h5_upper_datatype = H5Tarray_create(H5T_NATIVE_INT, 1, dim, NULL); - hid_t h5_xlo_datatype = H5Tarray_create(H5T_NATIVE_DOUBLE, 1, dim, NULL); - hid_t h5_xup_datatype = H5Tarray_create(H5T_NATIVE_DOUBLE, 1, dim, NULL); + hid_t h5_lower_datatype = H5Tarray_create(H5T_NATIVE_INT, 1, dim); + hid_t h5_upper_datatype = H5Tarray_create(H5T_NATIVE_INT, 1, dim); + hid_t h5_xlo_datatype = H5Tarray_create(H5T_NATIVE_DOUBLE, 1, dim); + hid_t h5_xup_datatype = H5Tarray_create(H5T_NATIVE_DOUBLE, 1, dim); int size = H5Tget_size(h5_lower_datatype) + H5Tget_size(h5_upper_datatype) + @@ -3828,7 +3827,7 @@ avtSAMRAIFileFormat::ReadPatchExtents(hid_t &h5_file) void avtSAMRAIFileFormat::ReadPatchBoundaryType(hid_t &h5_file) { - hid_t h5_dataset = H5Dopen(h5_file, "/extents/bdry_type"); + hid_t h5_dataset = H5Dopen2(h5_file, "/extents/bdry_type", H5P_DEFAULT); if (h5_dataset < 0) return; // silently ignore if not available @@ -3856,7 +3855,7 @@ avtSAMRAIFileFormat::ReadPatchBoundaryType(hid_t &h5_file) void avtSAMRAIFileFormat::ReadPatchMap(hid_t &h5_file) { - hid_t h5_dataset = H5Dopen(h5_file, "/extents/patch_map"); + hid_t h5_dataset = H5Dopen2(h5_file, "/extents/patch_map", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/extents/patch_map", file_name.c_str()); @@ -3897,7 +3896,7 @@ avtSAMRAIFileFormat::ReadPatchMap(hid_t &h5_file) void avtSAMRAIFileFormat::ReadChildArrayLength(hid_t &h5_file) { - hid_t h5_dataset = H5Dopen(h5_file, "/BASIC_INFO/child_array_length"); + hid_t h5_dataset = H5Dopen2(h5_file, "/BASIC_INFO/child_array_length", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/child_array_length", file_name.c_str()); @@ -3929,7 +3928,7 @@ avtSAMRAIFileFormat::ReadChildArray(hid_t &h5_file) if (child_array_length == 0) return; - hid_t h5_dataset = H5Dopen(h5_file, "/BASIC_INFO/child_array"); + hid_t h5_dataset = H5Dopen2(h5_file, "/BASIC_INFO/child_array", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/child_array", file_name.c_str()); @@ -3963,7 +3962,7 @@ avtSAMRAIFileFormat::ReadChildPointerArray(hid_t &h5_file) if (child_array_length == 0) return; - hid_t h5_dataset = H5Dopen(h5_file, "/BASIC_INFO/child_pointer_array"); + hid_t h5_dataset = H5Dopen2(h5_file, "/BASIC_INFO/child_pointer_array", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/child_pointer_array", file_name.c_str()); @@ -4001,7 +4000,7 @@ avtSAMRAIFileFormat::ReadChildPointerArray(hid_t &h5_file) void avtSAMRAIFileFormat::ReadParentArrayLength(hid_t &h5_file) { - hid_t h5_dataset = H5Dopen(h5_file, "/BASIC_INFO/parent_array_length"); + hid_t h5_dataset = H5Dopen2(h5_file, "/BASIC_INFO/parent_array_length", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/parent_array_length", file_name.c_str()); @@ -4033,7 +4032,7 @@ avtSAMRAIFileFormat::ReadParentArray(hid_t &h5_file) if (parent_array_length == 0) return; - hid_t h5_dataset = H5Dopen(h5_file, "/BASIC_INFO/parent_array"); + hid_t h5_dataset = H5Dopen2(h5_file, "/BASIC_INFO/parent_array", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/parent_array", file_name.c_str()); @@ -4067,7 +4066,7 @@ avtSAMRAIFileFormat::ReadParentPointerArray(hid_t &h5_file) if (parent_array_length == 0) return; - hid_t h5_dataset = H5Dopen(h5_file, "/BASIC_INFO/parent_pointer_array"); + hid_t h5_dataset = H5Dopen2(h5_file, "/BASIC_INFO/parent_pointer_array", H5P_DEFAULT); if (h5_dataset < 0) { char str[1024]; sprintf(str, "%s::/BASIC_INFO/parent_pointer_array", file_name.c_str()); @@ -4603,7 +4602,7 @@ avtSAMRAIFileFormat::ReadDataset(hid_t &hdfFile, const char *dsPath, return false; } - hid_t h5_dataset = H5Dopen(hdfFile, dsPath); + hid_t h5_dataset = H5Dopen2(hdfFile, dsPath, H5P_DEFAULT); if (h5_dataset < 0) { if (isOptional) diff --git a/src/databases/SAMRAI/avtSAMRAIFileFormat.h b/src/databases/SAMRAI/avtSAMRAIFileFormat.h index 5f132fd2a05..6f043312ced 100644 --- a/src/databases/SAMRAI/avtSAMRAIFileFormat.h +++ b/src/databases/SAMRAI/avtSAMRAIFileFormat.h @@ -21,7 +21,6 @@ // versions of HDF5 before 1.8 and ensures correct compilation with // version 1.8 and thereafter. When, and if, the HDF5 code in this file // is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include class avtMaterial; diff --git a/src/databases/Tetrad/avtTetradFileFormat.C b/src/databases/Tetrad/avtTetradFileFormat.C index a5fcbe39ec0..37da987f912 100644 --- a/src/databases/Tetrad/avtTetradFileFormat.C +++ b/src/databases/Tetrad/avtTetradFileFormat.C @@ -37,6 +37,8 @@ using std::vector; static herr_t CGetTimesteps(hid_t, const char *, void *); static herr_t CGetVars(hid_t, const char *, void *); +static herr_t CGetTimestepsLiterate(hid_t, const char *, const H5L_info_t *, void *); +static herr_t CGetVarsLiterate(hid_t, const char *, const H5L_info_t *, void *); static int TimeIndexPairSorter(const void *, const void *); @@ -69,8 +71,8 @@ avtTetradFileFormat::avtTetradFileFormat(const char *fname) "it is not even an HDF5 file."); } // Turn off error statements in case the array doesn't exist. - H5Eset_auto(NULL, NULL); - int cell_array = H5Dopen(file_handle, "CellArray"); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); + hid_t cell_array = H5Dopen2(file_handle, "CellArray", H5P_DEFAULT); if (cell_array < 0) { H5Fclose(file_handle); @@ -191,12 +193,12 @@ avtTetradFileFormat::ConstructMesh(void) // Start off by reading in the "CellArray". This is the connectivity of // the hexahedrons. // - int cell_array = H5Dopen(file_handle, "CellArray"); + hid_t cell_array = H5Dopen2(file_handle, "CellArray", H5P_DEFAULT); if (cell_array < 0) { EXCEPTION1(InvalidVariableException, "mesh"); } - int space_id = H5Dget_space(cell_array); + hid_t space_id = H5Dget_space(cell_array); hsize_t vdims[3]; H5Sget_simple_extent_dims(space_id, vdims, NULL); debug5 << "The connectivity has dimensions = " << int(vdims[0]) << " x " @@ -209,12 +211,13 @@ avtTetradFileFormat::ConstructMesh(void) int *connectivity = new int[8*vdims[0]]; H5Dread(cell_array, H5T_NATIVE_INT, H5S_ALL, space_id, H5P_DEFAULT, connectivity); + H5Sclose(space_id); H5Dclose(cell_array); // // Now read in the "VertArray". These are the points. // - int vert_array = H5Dopen(file_handle, "VertArray"); + hid_t vert_array = H5Dopen2(file_handle, "VertArray", H5P_DEFAULT); if (vert_array < 0) { EXCEPTION1(InvalidVariableException, "mesh"); @@ -237,6 +240,7 @@ avtTetradFileFormat::ConstructMesh(void) float *pts_ptr = (float *) pts->GetVoidPointer(0); H5Dread(vert_array, H5T_NATIVE_FLOAT, H5S_ALL, space_id, H5P_DEFAULT, pts_ptr); + H5Sclose(space_id); H5Dclose(vert_array); vtkUnstructuredGrid *ugrid = vtkUnstructuredGrid::New(); @@ -290,7 +294,7 @@ avtTetradFileFormat::GetVar(int ts, const char *var) // // Tell HDF5 that this is the dataset we are interested in. // - int var_handle = H5Dopen(file_handle, buffer); + hid_t var_handle = H5Dopen2(file_handle, buffer, H5P_DEFAULT); if (var_handle < 0) { EXCEPTION1(InvalidVariableException, var); @@ -299,7 +303,7 @@ avtTetradFileFormat::GetVar(int ts, const char *var) // // Determine how big the variable is. // - int space_id = H5Dget_space(var_handle); + hid_t space_id = H5Dget_space(var_handle); hsize_t vdims[3]; H5Sget_simple_extent_dims(space_id, vdims, NULL); debug5 << "The variable has dimensions " << int(vdims[0]) << endl; @@ -316,6 +320,7 @@ avtTetradFileFormat::GetVar(int ts, const char *var) // The actual HDF5 call to get the variable. // H5Dread(var_handle, H5T_NATIVE_FLOAT, H5S_ALL, space_id, H5P_DEFAULT, ptr); + H5Sclose(space_id); H5Dclose(var_handle); return arr; @@ -351,12 +356,26 @@ avtTetradFileFormat::PopulateDatabaseMetaData(avtDatabaseMetaData *md, // Start off by walking through the HDF5 file and determining the // variables and times in this file. // - H5Giterate(file_handle, "root", NULL, CGetVars, this); + { + hid_t root = H5Gopen2(file_handle, "/root", H5P_DEFAULT); + if (root >= 0) + { + hsize_t idx = 0; + H5Literate(root, H5_INDEX_NAME, H5_ITER_INC, &idx, CGetVarsLiterate, this); + H5Gclose(root); + } + } if (variables.size() > 0) { char buffer[1024]; sprintf(buffer, "/root/%s", variables[0].c_str()); - H5Giterate(file_handle, buffer, NULL, CGetTimesteps, this); + hid_t grp = H5Gopen2(file_handle, buffer, H5P_DEFAULT); + if (grp >= 0) + { + hsize_t idx = 0; + H5Literate(grp, H5_INDEX_NAME, H5_ITER_INC, &idx, CGetTimestepsLiterate, this); + H5Gclose(grp); + } // // The timesteps were added in lexicographical order -- we need to @@ -459,6 +478,12 @@ CGetVars(hid_t loc_id, const char *name, void *tetrad) return 0; } +static herr_t +CGetVarsLiterate(hid_t loc_id, const char *name, const H5L_info_t *, void *tetrad) +{ + return CGetVars(loc_id, name, tetrad); +} + // **************************************************************************** // Function: CGetTimesteps @@ -481,6 +506,12 @@ CGetTimesteps(hid_t loc_id, const char *name, void *tetrad) return 0; } +static herr_t +CGetTimestepsLiterate(hid_t loc_id, const char *name, const H5L_info_t *, void *tetrad) +{ + return CGetTimesteps(loc_id, name, tetrad); +} + // **************************************************************************** // Method: TimeIndexPairSorter @@ -516,5 +547,3 @@ TimeIndexPairSorter(const void *arg1, const void *arg2) return 0; } - - diff --git a/src/databases/Tetrad/avtTetradFileFormat.h b/src/databases/Tetrad/avtTetradFileFormat.h index 472213cd346..5e0e30bdea6 100644 --- a/src/databases/Tetrad/avtTetradFileFormat.h +++ b/src/databases/Tetrad/avtTetradFileFormat.h @@ -17,7 +17,6 @@ // versions of HDF5 before 1.8 and ensures correct compilation with // version 1.8 and thereafter. When, and if, the HDF5 code in this file // is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include @@ -68,4 +67,3 @@ class avtTetradFileFormat : public avtMTSDFileFormat #endif - diff --git a/src/databases/UNIC/avtUNICFileFormat.C b/src/databases/UNIC/avtUNICFileFormat.C index 79e38fadf3c..b13011fd1c2 100644 --- a/src/databases/UNIC/avtUNICFileFormat.C +++ b/src/databases/UNIC/avtUNICFileFormat.C @@ -30,7 +30,6 @@ // versions of HDF5 before 1.8 and ensures correct compilation with // version 1.8 and thereafter. When, and if, the HDF5 code in this file // is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include #include @@ -119,20 +118,21 @@ static int vtkCellType210NodeListLength[20]={ avtUNICFileFormat::avtUNICFileFormat(const char *filename) : avtSTMDFileFormat(&filename, 1) { - H5Eset_auto(0, 0); // quiet HDF5 output on stderr + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); // quiet HDF5 output on stderr file_handle = H5Fopen(filename, H5F_ACC_RDONLY, H5P_DEFAULT); if (file_handle < 0) { EXCEPTION1(InvalidDBTypeException, "Cannot be a UNIC data file, since " "it is not even an HDF5 file."); } - hid_t control = H5Dopen(file_handle, "CONTROL"); + hid_t control = H5Dopen2(file_handle, "CONTROL", H5P_DEFAULT); if (control < 0) { H5Fclose(file_handle); EXCEPTION1(InvalidDBTypeException, "Cannot be a UNIC data file, since " "it is not contain the dataset \"CONTROL\"."); } + H5Dclose(control); H5Fclose(file_handle); file_handle = -1; @@ -200,7 +200,7 @@ avtUNICFileFormat::PopulateDatabaseMetaData(avtDatabaseMetaData *md) // if (file_handle < 0) file_handle = H5Fopen(filenames[0], H5F_ACC_RDONLY, H5P_DEFAULT); - hid_t control = H5Dopen(file_handle, "CONTROL"); + hid_t control = H5Dopen2(file_handle, "CONTROL", H5P_DEFAULT); int info[5]; hid_t space_id = H5Dget_space(control); H5Dread(control, H5T_NATIVE_INT, H5S_ALL, space_id, H5P_DEFAULT, info); @@ -227,7 +227,7 @@ avtUNICFileFormat::PopulateDatabaseMetaData(avtDatabaseMetaData *md) char *pt_name_buff = new char[nPtVars*slen+1]; char *cell_name_buff = new char[nCellVars*slen+1]; - hid_t pt_names = H5Dopen(file_handle, "VERTEX_VECTOR_NAMES"); + hid_t pt_names = H5Dopen2(file_handle, "VERTEX_VECTOR_NAMES", H5P_DEFAULT); if (pt_names < 0) { EXCEPTION1(InvalidDBTypeException, "Cannot be a UNIC data file, since " @@ -238,7 +238,7 @@ avtUNICFileFormat::PopulateDatabaseMetaData(avtDatabaseMetaData *md) H5Tclose(type_id); H5Dclose(pt_names); - hid_t cell_names = H5Dopen(file_handle, "ELEMENT_VECTOR_NAMES"); + hid_t cell_names = H5Dopen2(file_handle, "ELEMENT_VECTOR_NAMES", H5P_DEFAULT); if (cell_names < 0) { EXCEPTION1(InvalidDBTypeException, "Cannot be a UNIC data file, since " @@ -360,13 +360,13 @@ avtUNICFileFormat::GetMesh(int domain, const char *meshname) if (file_handle < 0) file_handle = H5Fopen(filenames[0], H5F_ACC_RDONLY, H5P_DEFAULT); snprintf(blockname, 1024, "BLOCK%012d", domain+1); - hid_t block = H5Gopen(file_handle, blockname); + hid_t block = H5Gopen2(file_handle, blockname, H5P_DEFAULT); if (block < 0) { EXCEPTION1(InvalidDBTypeException, "Cannot locate BLOCK data"); } - hid_t control = H5Dopen(block, "INFO"); + hid_t control = H5Dopen2(block, "INFO", H5P_DEFAULT); int info[3]; H5Dread(control, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, info); H5Dclose(control); @@ -377,9 +377,10 @@ avtUNICFileFormat::GetMesh(int domain, const char *meshname) int theVtkCellType = info[2]; float *xyz = new float[3*numVertices]; - hid_t xyz_id = H5Dopen(block, "XYZ"); + hid_t xyz_id = H5Dopen2(block, "XYZ", H5P_DEFAULT); H5Dread(xyz_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, xyz); H5Dclose(xyz_id); + H5Gclose(block); vtkPoints *pts = vtkPoints::New(); pts->SetNumberOfPoints(numVertices); @@ -1444,13 +1445,13 @@ avtUNICFileFormat::GetVar(int domain, const char *varname) if (file_handle < 0) file_handle = H5Fopen(filenames[0], H5F_ACC_RDONLY, H5P_DEFAULT); snprintf(blockname, 1024, "BLOCK%012d", domain+1); - hid_t block = H5Gopen(file_handle, blockname); + hid_t block = H5Gopen2(file_handle, blockname, H5P_DEFAULT); if (block < 0) { EXCEPTION1(InvalidDBTypeException, "Cannot locate BLOCK data"); } - hid_t control = H5Dopen(block, "INFO"); + hid_t control = H5Dopen2(block, "INFO", H5P_DEFAULT); int info[3]; H5Dread(control, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, info); H5Dclose(control); @@ -1553,22 +1554,17 @@ avtUNICFileFormat::GetVar(int domain, const char *varname) } } -#if HDF5_VERSION_GE(1,6,4) hsize_t offsets[2]; hsize_t counts[2]; -#else - hssize_t offsets[2]; - hssize_t counts[2]; -#endif hid_t id = -1; if (isPtVar) - id = H5Dopen(block, "VERTEXDATA"); + id = H5Dopen2(block, "VERTEXDATA", H5P_DEFAULT); else - id = H5Dopen(block, "ELEMENTDATA"); + id = H5Dopen2(block, "ELEMENTDATA", H5P_DEFAULT); hid_t dataspace = H5Dget_space(id); - hid_t rank = H5Sget_simple_extent_ndims(dataspace); (void) rank; + int rank = H5Sget_simple_extent_ndims(dataspace); (void) rank; hsize_t dims[2]; int status_n = H5Sget_simple_extent_dims(dataspace, dims, NULL); (void) status_n; offsets[0] = idx; @@ -1587,6 +1583,7 @@ avtUNICFileFormat::GetVar(int domain, const char *varname) H5Sclose(memdataspace); H5Sclose(dataspace); H5Dclose(id); + H5Gclose(block); if (ntups != ntupsRead) { @@ -1640,5 +1637,3 @@ avtUNICFileFormat::GetVectorVar(int domain, const char *varname) EXCEPTION1(InvalidVariableException, varname); } - - diff --git a/src/databases/UNIC/avtUNICFileFormat.h b/src/databases/UNIC/avtUNICFileFormat.h index babb3384cbc..fe0ec341b0c 100644 --- a/src/databases/UNIC/avtUNICFileFormat.h +++ b/src/databases/UNIC/avtUNICFileFormat.h @@ -16,7 +16,6 @@ // versions of HDF5 before 1.8 and ensures correct compilation with // version 1.8 and thereafter. When, and if, the HDF5 code in this file // is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include #include @@ -84,4 +83,3 @@ class avtUNICFileFormat : public avtSTMDFileFormat #endif - diff --git a/src/databases/Vs/VsFile.C b/src/databases/Vs/VsFile.C index a6f14274c52..394e4cb622b 100644 --- a/src/databases/Vs/VsFile.C +++ b/src/databases/Vs/VsFile.C @@ -42,7 +42,7 @@ VsFile::VsFile(VsRegistry* r, std::string name, hid_t id): // } // Quiet HDF5 stderr output - H5Eset_auto(H5E_DEFAULT , 0, 0); + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); } @@ -88,4 +88,3 @@ std::string VsFile::getName() const { void VsFile::write() const { VsLog::debugLog() <<"File: " <The VisItXdmf reader has been removed, it hasn't been maintained. The Xdmf reader that utilizes the Xdmf library is still available.
  • Added support for MFEM Quadrature Functions to the MFEM and Blueprint database plugins.
  • Fixed a bug in the Blueprint reader where converting Blueprint species sets to the internal representation was performing an unnecessary conversion of the associated material set as well.
  • +
  • Updated many HDF5-based plugins using older (H5_USE_16_API) 1.6 API to use newest HDF5 API. diff --git a/src/tools/data/datagen/unic.C b/src/tools/data/datagen/unic.C index d3f8bbb4448..bad8b9159c5 100644 --- a/src/tools/data/datagen/unic.C +++ b/src/tools/data/datagen/unic.C @@ -10,14 +10,18 @@ using std::cerr; using std::endl; -// Define this symbol BEFORE including hdf5.h to indicate the HDF5 code -// in this file uses version 1.6 of the HDF5 API. This is harmless for -// versions of HDF5 before 1.8 and ensures correct compilation with -// version 1.8 and thereafter. When, and if, the HDF5 code in this file -// is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include +static inline hid_t UnicH5Gcreate(hid_t loc_id, const char *name, size_t) +{ + return H5Gcreate2(loc_id, name, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); +} + +static inline hid_t UnicH5Dcreate(hid_t loc_id, const char *name, hid_t type_id, hid_t space_id, hid_t dcpl_id) +{ + return H5Dcreate2(loc_id, name, type_id, space_id, H5P_DEFAULT, dcpl_id, H5P_DEFAULT); +} + // disable set but unused warning as much of the code // in this file captures, but ignores, the return form hdf5 // calls. presumably this is for easier debugging so we @@ -44,7 +48,7 @@ write_header(const hid_t file_id, const int ndims, const int nblocks) dims[0] = 5; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(file_id, "CONTROL", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(file_id, "CONTROL", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[5]; @@ -67,7 +71,7 @@ write_header(const hid_t file_id, const int ndims, const int nblocks) dims[0] = 20; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(file_id, "VERTEX_VECTOR_NAMES", H5T_NATIVE_CHAR, + dataset_id = UnicH5Dcreate(file_id, "VERTEX_VECTOR_NAMES", H5T_NATIVE_CHAR, dataspace_id, H5P_DEFAULT); char point_names[21] = "xcoord "; @@ -84,7 +88,7 @@ write_header(const hid_t file_id, const int ndims, const int nblocks) dims[0] = 20; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(file_id, "ELEMENT_VECTOR_NAMES", H5T_NATIVE_CHAR, + dataset_id = UnicH5Dcreate(file_id, "ELEMENT_VECTOR_NAMES", H5T_NATIVE_CHAR, dataspace_id, H5P_DEFAULT); char cell_names[21] = "density "; @@ -107,13 +111,13 @@ write_quads(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -133,7 +137,7 @@ write_quads(const hid_t file_id, const int iblock) dims[0] = nx * ny * 4 * 2; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *xyz = new float[nx*ny*4*2]; @@ -166,7 +170,7 @@ write_quads(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*2]; @@ -195,7 +199,7 @@ write_quads(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -231,13 +235,13 @@ write_vtk100(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -257,7 +261,7 @@ write_vtk100(const hid_t file_id, const int iblock) dims[0] = nx * ny * 3 * 2; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 0, yoffset = 1; @@ -289,7 +293,7 @@ write_vtk100(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*3]; @@ -317,7 +321,7 @@ write_vtk100(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -353,13 +357,13 @@ write_vtk101(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -379,7 +383,7 @@ write_vtk101(const hid_t file_id, const int iblock) dims[0] = nx * ny * 6 * 2; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 2, yoffset = 1; @@ -417,7 +421,7 @@ write_vtk101(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*6]; @@ -448,7 +452,7 @@ write_vtk101(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -484,13 +488,13 @@ write_vtk111(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -510,7 +514,7 @@ write_vtk111(const hid_t file_id, const int iblock) dims[0] = nx * ny * 6 * 2; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 0, yoffset = 3; @@ -548,7 +552,7 @@ write_vtk111(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*6]; @@ -579,7 +583,7 @@ write_vtk111(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -615,13 +619,13 @@ write_vtk112(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -641,7 +645,7 @@ write_vtk112(const hid_t file_id, const int iblock) dims[0] = nx * ny * 10 * 2; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 4, yoffset = 3; @@ -688,7 +692,7 @@ write_vtk112(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*10]; @@ -723,7 +727,7 @@ write_vtk112(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -759,13 +763,13 @@ write_vtk150(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -785,7 +789,7 @@ write_vtk150(const hid_t file_id, const int iblock) dims[0] = nx * ny * 4 * 2; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 0, yoffset = 6; @@ -819,7 +823,7 @@ write_vtk150(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*4]; @@ -848,7 +852,7 @@ write_vtk150(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -884,13 +888,13 @@ write_vtk151(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -910,7 +914,7 @@ write_vtk151(const hid_t file_id, const int iblock) dims[0] = nx * ny * 8 * 2; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 2, yoffset = 6; @@ -952,7 +956,7 @@ write_vtk151(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*8]; @@ -985,7 +989,7 @@ write_vtk151(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -1021,13 +1025,13 @@ write_vtk161(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -1047,7 +1051,7 @@ write_vtk161(const hid_t file_id, const int iblock) dims[0] = nx * ny * 9 * 2; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 0, yoffset = 8; @@ -1091,7 +1095,7 @@ write_vtk161(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*9]; @@ -1125,7 +1129,7 @@ write_vtk161(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -1161,13 +1165,13 @@ write_vtk162(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -1187,7 +1191,7 @@ write_vtk162(const hid_t file_id, const int iblock) dims[0] = nx * ny * 16 * 2; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 4, yoffset = 8; @@ -1245,7 +1249,7 @@ write_vtk162(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*16]; @@ -1286,7 +1290,7 @@ write_vtk162(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -1322,13 +1326,13 @@ write_hexes(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -1348,7 +1352,7 @@ write_hexes(const hid_t file_id, const int iblock) dims[0] = nx * ny * 8 * 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *xyz = new float[nx*ny*8*3]; @@ -1397,7 +1401,7 @@ write_hexes(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*8]; @@ -1430,7 +1434,7 @@ write_hexes(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -1466,13 +1470,13 @@ write_vtk200(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -1492,7 +1496,7 @@ write_vtk200(const hid_t file_id, const int iblock) dims[0] = nx * ny * 4 * 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 0, yoffset = 1; @@ -1529,7 +1533,7 @@ write_vtk200(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*4]; @@ -1558,7 +1562,7 @@ write_vtk200(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -1594,13 +1598,13 @@ write_vtk201(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -1620,7 +1624,7 @@ write_vtk201(const hid_t file_id, const int iblock) dims[0] = nx * ny * 10 * 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 2, yoffset = 1; @@ -1676,7 +1680,7 @@ write_vtk201(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*10]; @@ -1711,7 +1715,7 @@ write_vtk201(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -1747,13 +1751,13 @@ write_vtk211(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -1773,7 +1777,7 @@ write_vtk211(const hid_t file_id, const int iblock) dims[0] = nx * ny * 10 * 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 0, yoffset = 3; @@ -1828,7 +1832,7 @@ write_vtk211(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*10]; @@ -1863,7 +1867,7 @@ write_vtk211(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -1899,13 +1903,13 @@ write_vtk212(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -1925,7 +1929,7 @@ write_vtk212(const hid_t file_id, const int iblock) dims[0] = nx * ny * 20 * 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 4, yoffset = 3; @@ -1964,7 +1968,7 @@ write_vtk212(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata= new float[nx*ny*20]; @@ -2001,7 +2005,7 @@ write_vtk212(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -2037,13 +2041,13 @@ write_vtk250(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -2063,7 +2067,7 @@ write_vtk250(const hid_t file_id, const int iblock) dims[0] = nx * ny * 6 * 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 0, yoffset = 6; @@ -2106,7 +2110,7 @@ write_vtk250(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*6]; @@ -2137,7 +2141,7 @@ write_vtk250(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -2173,13 +2177,13 @@ write_vtk251(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -2199,7 +2203,7 @@ write_vtk251(const hid_t file_id, const int iblock) dims[0] = nx * ny * 15 * 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 2, yoffset = 6; @@ -2270,7 +2274,7 @@ write_vtk251(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*15]; @@ -2310,7 +2314,7 @@ write_vtk251(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -2346,13 +2350,13 @@ write_vtk261(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -2372,7 +2376,7 @@ write_vtk261(const hid_t file_id, const int iblock) dims[0] = nx * ny * 18 * 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 0, yoffset = 8; @@ -2452,7 +2456,7 @@ write_vtk261(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*18]; @@ -2495,7 +2499,7 @@ write_vtk261(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -2531,13 +2535,13 @@ write_vtk262(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -2557,7 +2561,7 @@ write_vtk262(const hid_t file_id, const int iblock) dims[0] = nx * ny * 40 * 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 4, yoffset = 8; @@ -2597,7 +2601,7 @@ write_vtk262(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*40]; @@ -2634,7 +2638,7 @@ write_vtk262(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -2670,13 +2674,13 @@ write_vtk300(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -2696,7 +2700,7 @@ write_vtk300(const hid_t file_id, const int iblock) dims[0] = nx * ny * 8 * 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 0, yoffset = 11; @@ -2746,7 +2750,7 @@ write_vtk300(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*8]; @@ -2779,7 +2783,7 @@ write_vtk300(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -2815,13 +2819,13 @@ write_vtk301(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -2841,7 +2845,7 @@ write_vtk301(const hid_t file_id, const int iblock) dims[0] = nx * ny * 20 * 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 2, yoffset = 11; @@ -2927,7 +2931,7 @@ write_vtk301(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*20]; @@ -2972,7 +2976,7 @@ write_vtk301(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -3008,13 +3012,13 @@ write_vtk311(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -3034,7 +3038,7 @@ write_vtk311(const hid_t file_id, const int iblock) dims[0] = nx * ny * 27 * 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 6, yoffset = 11; @@ -3141,7 +3145,7 @@ write_vtk311(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*27]; @@ -3193,7 +3197,7 @@ write_vtk311(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; @@ -3229,13 +3233,13 @@ write_vtk312(const hid_t file_id, const int iblock) sprintf(block_name, "BLOCK%012d", iblock); hid_t block_id; - block_id = H5Gcreate(file_id, block_name, 100); + block_id = UnicH5Gcreate(file_id, block_name, 100); // Write the block information. dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "INFO", H5T_NATIVE_INT, + dataset_id = UnicH5Dcreate(block_id, "INFO", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT); int info[3]; @@ -3255,7 +3259,7 @@ write_vtk312(const hid_t file_id, const int iblock) dims[0] = nx * ny * 64 * 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); int xoffset = 10, yoffset = 11; @@ -3296,7 +3300,7 @@ write_vtk312(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "VERTEXDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *vdata = new float[nx*ny*64]; @@ -3332,7 +3336,7 @@ write_vtk312(const hid_t file_id, const int iblock) dims[0] = 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, + dataset_id = UnicH5Dcreate(block_id, "ELEMENTDATA", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT); float *cdata = new float[nx*ny]; diff --git a/src/tools/data/datagen/xdmf.C b/src/tools/data/datagen/xdmf.C index 95d1af1544a..0872ddd9f2b 100644 --- a/src/tools/data/datagen/xdmf.C +++ b/src/tools/data/datagen/xdmf.C @@ -98,7 +98,7 @@ write_hdf5_2d_curv_data(hid_t file_id) dims[1] = 2; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(file_id, "/XY", H5T_NATIVE_FLOAT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/XY", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -115,7 +115,7 @@ write_hdf5_2d_curv_data(hid_t file_id) dims[1] = NX; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Pressure_2D", H5T_NATIVE_UCHAR, + dataset_id = H5Dcreate2(file_id, "/Pressure_2D", H5T_NATIVE_UCHAR, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_UCHAR, H5S_ALL, H5S_ALL, @@ -129,7 +129,7 @@ write_hdf5_2d_curv_data(hid_t file_id) dims[1] = NX + 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(file_id, "/VelocityX_2D", H5T_NATIVE_CHAR, + dataset_id = H5Dcreate2(file_id, "/VelocityX_2D", H5T_NATIVE_CHAR, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_CHAR, H5S_ALL, H5S_ALL, @@ -182,7 +182,7 @@ write_hdf5_3d_rect_data(hid_t file_id) dims[0] = (NX + 1); dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(file_id, "/X_1D", H5T_NATIVE_FLOAT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/X_1D", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -196,7 +196,7 @@ write_hdf5_3d_rect_data(hid_t file_id) dims[0] = (NY + 1); dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Y_1D", H5T_NATIVE_FLOAT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/Y_1D", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -210,7 +210,7 @@ write_hdf5_3d_rect_data(hid_t file_id) dims[0] = (NZ + 1); dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Z_1D", H5T_NATIVE_FLOAT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/Z_1D", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -258,7 +258,7 @@ write_hdf5_3d_point_data(hid_t file_id) */ dims[0] = (NX+1)*(NY+1)*(NZ+1); dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Indexes", H5T_NATIVE_INT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/Indexes", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, indexes); @@ -267,7 +267,7 @@ write_hdf5_3d_point_data(hid_t file_id) dims[0] = (NX2+1)*(NY2+1)*(NZ2+1); dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Indexes2", H5T_NATIVE_INT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/Indexes2", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, indexes); @@ -574,13 +574,13 @@ write_hdf5_3d_curv_data(hid_t file_id) /* Write Origin and DxDyDz. */ dims[0] = 3; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Origin", H5T_NATIVE_FLOAT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/Origin", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, origin); status = H5Dclose(dataset_id); - dataset_id = H5Dcreate(file_id, "/DxDyDz", H5T_NATIVE_FLOAT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/DxDyDz", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dxdydz); @@ -590,13 +590,13 @@ write_hdf5_3d_curv_data(hid_t file_id) /* Write Origin2 and DxDy. */ dims[0] = 2; dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Origin2", H5T_NATIVE_FLOAT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/Origin2", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, origin); status = H5Dclose(dataset_id); - dataset_id = H5Dcreate(file_id, "/DxDy", H5T_NATIVE_FLOAT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/DxDy", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, dxdydz); @@ -607,7 +607,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[0] = (NZ + 1) * (NY + 1) * (NX + 1); dataspace_id = H5Screate_simple(1, dims, NULL); - dataset_id = H5Dcreate(file_id, "/X", H5T_NATIVE_FLOAT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/X", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -615,7 +615,7 @@ write_hdf5_3d_curv_data(hid_t file_id) status = H5Dclose(dataset_id); - dataset_id = H5Dcreate(file_id, "/Y", H5T_NATIVE_FLOAT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/Y", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -623,7 +623,7 @@ write_hdf5_3d_curv_data(hid_t file_id) status = H5Dclose(dataset_id); - dataset_id = H5Dcreate(file_id, "/Z", H5T_NATIVE_FLOAT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/Z", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -638,7 +638,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[1] = 3; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(file_id, "/XYZ", H5T_NATIVE_FLOAT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/XYZ", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -653,7 +653,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[1] = 3; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(file_id, "/XYZ2", H5T_NATIVE_FLOAT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/XYZ2", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -668,7 +668,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[1] = 3; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(file_id, "/XYZ3", H5T_NATIVE_FLOAT, dataspace_id, + dataset_id = H5Dcreate2(file_id, "/XYZ3", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -686,7 +686,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[2] = NX; dataspace_id = H5Screate_simple(3, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Pressure", H5T_NATIVE_UINT, + dataset_id = H5Dcreate2(file_id, "/Pressure", H5T_NATIVE_UINT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_UINT, H5S_ALL, H5S_ALL, @@ -701,7 +701,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[2] = NX2; dataspace_id = H5Screate_simple(3, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Pressure2", H5T_NATIVE_FLOAT, + dataset_id = H5Dcreate2(file_id, "/Pressure2", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -716,7 +716,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[2] = NX3; dataspace_id = H5Screate_simple(3, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Pressure3", H5T_NATIVE_FLOAT, + dataset_id = H5Dcreate2(file_id, "/Pressure3", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -731,7 +731,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[2] = NX+1; dataspace_id = H5Screate_simple(3, dims, NULL); - dataset_id = H5Dcreate(file_id, "/VelocityZ", H5T_NATIVE_INT, + dataset_id = H5Dcreate2(file_id, "/VelocityZ", H5T_NATIVE_INT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, @@ -746,7 +746,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[2] = NX2+1; dataspace_id = H5Screate_simple(3, dims, NULL); - dataset_id = H5Dcreate(file_id, "/VelocityZ2", H5T_NATIVE_FLOAT, + dataset_id = H5Dcreate2(file_id, "/VelocityZ2", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -761,7 +761,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[2] = NX3+1; dataspace_id = H5Screate_simple(3, dims, NULL); - dataset_id = H5Dcreate(file_id, "/VelocityZ3", H5T_NATIVE_FLOAT, + dataset_id = H5Dcreate2(file_id, "/VelocityZ3", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -780,7 +780,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[3] = 3; dataspace_id = H5Screate_simple(4, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Velocity", H5T_NATIVE_FLOAT, + dataset_id = H5Dcreate2(file_id, "/Velocity", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -795,7 +795,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[2] = NX2+1; dataspace_id = H5Screate_simple(4, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Velocity2", H5T_NATIVE_FLOAT, + dataset_id = H5Dcreate2(file_id, "/Velocity2", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -810,7 +810,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[2] = NX3+1; dataspace_id = H5Screate_simple(4, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Velocity3", H5T_NATIVE_FLOAT, + dataset_id = H5Dcreate2(file_id, "/Velocity3", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -829,7 +829,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[3] = 6; dataspace_id = H5Screate_simple(4, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Stress", H5T_NATIVE_FLOAT, + dataset_id = H5Dcreate2(file_id, "/Stress", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -844,7 +844,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[2] = NX2+1; dataspace_id = H5Screate_simple(4, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Stress2", H5T_NATIVE_FLOAT, + dataset_id = H5Dcreate2(file_id, "/Stress2", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, @@ -859,7 +859,7 @@ write_hdf5_3d_curv_data(hid_t file_id) dims[2] = NX3+1; dataspace_id = H5Screate_simple(4, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Stress3", H5T_NATIVE_FLOAT, + dataset_id = H5Dcreate2(file_id, "/Stress3", H5T_NATIVE_FLOAT, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, diff --git a/src/tools/data/datagen/xdmf2d.C b/src/tools/data/datagen/xdmf2d.C index 27506b4135d..8d94b637880 100644 --- a/src/tools/data/datagen/xdmf2d.C +++ b/src/tools/data/datagen/xdmf2d.C @@ -6,12 +6,6 @@ #include #include -// Define this symbol BEFORE including hdf5.h to indicate the HDF5 code -// in this file uses version 1.6 of the HDF5 API. This is harmless for -// versions of HDF5 before 1.8 and ensures correct compilation with -// version 1.8 and thereafter. When, and if, the HDF5 code in this file -// is explicitly upgraded to the 1.8 API, this symbol should be removed. -#define H5_USE_16_API #include // disable set but unused warning as much of the code @@ -92,8 +86,8 @@ write_hdf5_data() dims[1] = (NX + 1); dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(file_id, coordNames[did], H5T_NATIVE_FLOAT, dataspace_id, - H5P_DEFAULT); + dataset_id = H5Dcreate2(file_id, coordNames[did], H5T_NATIVE_FLOAT, dataspace_id, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, did == 0 ? x : y); @@ -108,8 +102,8 @@ write_hdf5_data() dims[1] = NX; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(file_id, "/Pressure", H5T_NATIVE_FLOAT, - dataspace_id, H5P_DEFAULT); + dataset_id = H5Dcreate2(file_id, "/Pressure", H5T_NATIVE_FLOAT, + dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, pressure); @@ -122,8 +116,8 @@ write_hdf5_data() dims[1] = NX + 1; dataspace_id = H5Screate_simple(2, dims, NULL); - dataset_id = H5Dcreate(file_id, "/VelocityX", H5T_NATIVE_FLOAT, - dataspace_id, H5P_DEFAULT); + dataset_id = H5Dcreate2(file_id, "/VelocityX", H5T_NATIVE_FLOAT, + dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); status = H5Dwrite(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, H5P_DEFAULT, velocityx); diff --git a/src/tools/data/xdmf_writer/xdmf_writer.c b/src/tools/data/xdmf_writer/xdmf_writer.c index fcb89b6f50c..ed197681f3c 100644 --- a/src/tools/data/xdmf_writer/xdmf_writer.c +++ b/src/tools/data/xdmf_writer/xdmf_writer.c @@ -1367,7 +1367,7 @@ HdfWriteCurvMeshBlock(HDFFileParallel *hdfFile, int coordDataType, dataspace_id = H5Screate_simple(2, vdims, NULL); sprintf(str, "/XYZ%d", hdfFile->iProc); - dataset_id = H5Dcreate(file_id, str, dataTypeToHDFType[coordDataType], + dataset_id = H5Dcreate2(file_id, str, dataTypeToHDFType[coordDataType], dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); @@ -1433,7 +1433,7 @@ HdfWriteCurvVarBlock(HDFFileParallel *hdfFile, int nVars, char **varNames, dataspace_id = H5Screate_simple(nvdims, vdims, NULL); sprintf(str, "/%s%d", varNames[iVar], hdfFile->iProc); - dataset_id = H5Dcreate(file_id, str, + dataset_id = H5Dcreate2(file_id, str, dataTypeToHDFType[varDataTypes[iVar]], dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); @@ -1480,7 +1480,7 @@ HdfWriteCurvBlock(HDFFileParallel *hdfFile, const char *gridName, dataspace_id = H5Screate_simple(2, vdims, NULL); sprintf(str, "/XYZ%d", hdfFile->iProc); - dataset_id = H5Dcreate(file_id, str, dataTypeToHDFType[gridDataType], + dataset_id = H5Dcreate2(file_id, str, dataTypeToHDFType[gridDataType], dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); @@ -1518,7 +1518,7 @@ HdfWriteCurvBlock(HDFFileParallel *hdfFile, const char *gridName, dataspace_id = H5Screate_simple(nvdims, vdims, NULL); sprintf(str, "/%s%d", varNames[iVar], hdfFile->iProc); - dataset_id = H5Dcreate(file_id, str, + dataset_id = H5Dcreate2(file_id, str, dataTypeToHDFType[varDataTypes[iVar]], dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); @@ -1563,7 +1563,7 @@ HdfWriteUcdMeshBlock(HDFFileParallel *hdfFile, int coordDataType, dataspace_id = H5Screate_simple(2, vdims, NULL); sprintf(str, "/XYZ%d", hdfFile->iProc); - dataset_id = H5Dcreate(file_id, str, dataTypeToHDFType[coordDataType], + dataset_id = H5Dcreate2(file_id, str, dataTypeToHDFType[coordDataType], dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); @@ -1581,7 +1581,7 @@ HdfWriteUcdMeshBlock(HDFFileParallel *hdfFile, int coordDataType, dataspace_id = H5Screate_simple(1, vdims, NULL); sprintf(str, "/connectivity%d", hdfFile->iProc); - dataset_id = H5Dcreate(file_id, str, dataTypeToHDFType[XDMF_INT], + dataset_id = H5Dcreate2(file_id, str, dataTypeToHDFType[XDMF_INT], dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); @@ -1643,7 +1643,7 @@ HdfWriteUcdVarBlock(HDFFileParallel *hdfFile, int nVars, char **varNames, dataspace_id = H5Screate_simple(nvdims, vdims, NULL); sprintf(str, "/%s%d", varNames[iVar], hdfFile->iProc); - dataset_id = H5Dcreate(file_id, str, + dataset_id = H5Dcreate2(file_id, str, dataTypeToHDFType[varDataTypes[iVar]], dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); @@ -3883,7 +3883,7 @@ HdfPutCoords(HDFFile *hdfFileIn, const char *coordName, vdims[1] = 3; dataspace_id = H5Screate_simple(2, vdims, NULL); - dataset_id = H5Dcreate(hdfFile->fileId, coordName, + dataset_id = H5Dcreate2(hdfFile->fileId, coordName, dataTypeToHDFType[coordDataType], dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); @@ -3924,7 +3924,7 @@ HdfPutConnectivity(HDFFile *hdfFileIn, const char *connectivityName, vdims[0] = connectivityLength; dataspace_id = H5Screate_simple(1, vdims, NULL); - dataset_id = H5Dcreate(hdfFile->fileId, connectivityName, + dataset_id = H5Dcreate2(hdfFile->fileId, connectivityName, dataTypeToHDFType[connectivityDataType], dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); @@ -3989,7 +3989,7 @@ HdfPutCurvVar(HDFFile *hdfFileIn, const char *varName, int varType, dataspace_id = H5Screate_simple(nvdims, vdims, NULL); - dataset_id = H5Dcreate(hdfFile->fileId, varName, + dataset_id = H5Dcreate2(hdfFile->fileId, varName, dataTypeToHDFType[varDataType], dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); @@ -4049,7 +4049,7 @@ HdfPutUcdVar(HDFFile *hdfFileIn, const char *varName, int varType, dataspace_id = H5Screate_simple(nvdims, vdims, NULL); - dataset_id = H5Dcreate(hdfFile->fileId, varName, + dataset_id = H5Dcreate2(hdfFile->fileId, varName, dataTypeToHDFType[varDataType], dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);